motion_arbiter.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:mhri 作者: mhri 项目源码 文件源码
def __init__(self):
        self.is_rendering = False

        rospy.loginfo('\033[91m[%s]\033[0m waiting for bringup social_mind...'%rospy.get_name())
        self.rd_memory = {}
        try:
            rospy.wait_for_service('social_events_memory/read_data')
            self.rd_memory['social_events_memory'] = rospy.ServiceProxy('social_events_memory/read_data', ReadData)
            rospy.wait_for_service('environmental_memory/read_data')
            self.rd_memory['environmental_memory'] = rospy.ServiceProxy('environmental_memory/read_data', ReadData)
            rospy.wait_for_service('system_events_memory/read_data')
            self.rd_memory['system_events_memory'] = rospy.ServiceProxy('system_events_memory/read_data', ReadData)
        except rospy.exceptions.ROSInterruptException as e:
            rospy.logerr(e)
            quit()

        self.renderer_client = actionlib.SimpleActionClient('render_scene', RenderSceneAction)
        rospy.loginfo('\033[91m[%s]\033[0m waiting for motion_renderer to start...'%rospy.get_name())

        try:
            self.renderer_client.wait_for_server()
        except rospy.exceptions.ROSInterruptException as e:
            quit()

        rospy.Subscriber('reply', Reply, self.handle_domain_reply)
        self.pub_log_item = rospy.Publisher('log', LogItem, queue_size=10)

        self.pub_start_speech_recognizer = rospy.Publisher('speech_recognizer/start', Empty, queue_size=1)
        self.pub_stop_speech_recognizer = rospy.Publisher('speech_recognizer/stop', Empty, queue_size=1)

        self.pub_start_robot_speech = rospy.Publisher('robot_speech/start', Empty, queue_size=1)
        self.pub_stop_robot_speech = rospy.Publisher('robot_speech/stop', Empty, queue_size=1)

        self.is_speaking_started = False
        rospy.Subscriber('start_of_speech', Empty, self.handle_start_of_speech)
        rospy.Subscriber('end_of_speech', Empty, self.handle_end_of_speech)

        # rospy.Subscriber('emotion_status', EmotionStatus, self.handle_emotion_status, queue_size=10)
        # self.current_emotion = 'neutral'
        # self.current_emotion_intensity = 1.0

        self.pub_set_idle_motion = rospy.Publisher('idle_motion/set_enabled', Bool, queue_size=10)
        self.pub_set_idle_motion.publish(True)

        self.scene_queue = Queue.Queue(MAX_QUEUE_SIZE)
        self.scene_handle_thread = Thread(target=self.handle_scene_queue)
        self.scene_handle_thread.start()

        rospy.loginfo("\033[91m[%s]\033[0m initialized." % rospy.get_name())
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号