def main(): rospy.init_node('learn_face_test') sm = smach.StateMachine(outcomes=['succeeded', 'preempted', 'aborted']) with sm: # it preper the name for learning smach.StateMachine.add( 'learn_face', new_database_and_learn(learning_time=5, minConfidence=80, name_face="pepito", name_database='"following'), transitions={'succeeded': 'succeeded','aborted' : 'aborted_info'}) # it prints the standard error smach.StateMachine.add( 'aborted_info', learn_Face_error(), transitions={'succeeded': 'succeeded', 'aborted':'aborted'}) # This is for the smach_viewer so we can see what is happening, rosrun smach_viewer smach_viewer.py it's cool! sis = smach_ros.IntrospectionServer( 'learn_face_introspection', sm, '/LFI_ROOT') sis.start() sm.execute() rospy.spin() sis.stop()
def main(): rospy.init_node('learn_face_test') sm = smach.StateMachine(outcomes=['succeeded', 'preempted', 'aborted']) with sm: # it preper the name for learning smach.StateMachine.add('learn_face', new_database_and_learn( learning_time=5, minConfidence=80, name_face="pepito", name_database='"following'), transitions={ 'succeeded': 'succeeded', 'aborted': 'aborted_info' }) # it prints the standard error smach.StateMachine.add('aborted_info', learn_Face_error(), transitions={ 'succeeded': 'succeeded', 'aborted': 'aborted' }) # This is for the smach_viewer so we can see what is happening, rosrun smach_viewer smach_viewer.py it's cool! sis = smach_ros.IntrospectionServer('learn_face_introspection', sm, '/LFI_ROOT') sis.start() sm.execute() rospy.spin() sis.stop()
def __init__(self,learn_face=False): smach.StateMachine.__init__(self, ['succeeded', 'preempted', 'aborted'], output_keys=['standard_error','in_learn_person']) self.learn_face = learn_face self.follow_pub = rospy.Publisher('/follow_me/id', Int32, latch=True) with self: self.userdata.tts_wait_before_speaking=0 self.userdata.tts_text=None self.userdata.tts_lang=None self.userdata.standard_error='OK' smach.StateMachine.add('INIT_VAR', init_var(), transitions={'succeeded': 'READ_TRACKER_TOPIC', 'aborted': 'SAY_LIFTIME'}) smach.StateMachine.add('SAY_LIFTIME', text_to_say(SAY_GO_MIDLE), transitions={'succeeded': 'CONTROL_TIME', 'aborted': 'SAY_LIFTIME'}) smach.StateMachine.add('CONTROL_TIME', control_time(), transitions={'succeeded': 'READ_TRACKER_TOPIC', 'lif_time': 'SAY_LIFTIME'}) #TODO:: aborted->CONTROL_TIME smach.StateMachine.add('READ_TRACKER_TOPIC', topic_reader(topic_name='/pipol_tracker_node/peopleSet', topic_type=personArray,topic_time_out=60), transitions={'succeeded':'SELECT_ID', 'aborted':'READ_TRACKER_TOPIC', 'preempted':'preempted'}, remapping={'topic_output_msg': 'tracking_msg'}) # it learns the person that we have to follow smach.StateMachine.add('SELECT_ID', select_ID(self.learn_face, self.follow_pub), transitions={'succeeded': 'STOP_LEARNING', 'aborted': 'CONTROL_TIME','learn_face':'FACE_SAY'}) smach.StateMachine.add('FACE_SAY', text_to_say(SAY_LEARN), transitions={'succeeded': 'LEARN_FACE','aborted':'LEARN_FACE'}) # it learns the person that we have to follow smach.StateMachine.add('LEARN_FACE', new_database_and_learn(learning_time=2, minConfidence=80, name_face="following", name_database="follow"), transitions={'succeeded': 'STOP_LEARNING', 'aborted': 'CONTROL_TIME'}) smach.StateMachine.add('STOP_LEARNING', text_to_say(SAY_FINISH), transitions={'succeeded': 'succeeded','aborted':'STOP_LEARNING'})
def __init__(self,time_enroll=10): smach.StateMachine.__init__(self, outcomes=['succeeded', 'preempted', 'aborted'], input_keys=['name_face','delete_database'], output_keys=['name_face']) with self: self.userdata.name_face = '' self.userdata.asr_userSaid = '' self.userdata.grammar_name = '' # Ask for name smach.StateMachine.add( 'listen_name', AskQuestionSM("Hi, what's your name?", GRAMMAR_NAME), transitions={'succeeded': 'prepare_name', 'aborted': 'ask_name_again', 'preempted': 'preempted'}) # We prepare the name for face_detection smach.StateMachine.add( "prepare_name", prepare_name(), transitions={'succeeded': 'say_start', 'aborted': 'ask_name_again', 'preempted': 'preempted'}) # Ask for name again smach.StateMachine.add( 'ask_name_again', AskQuestionSM("Sorry, I don't understand you. Can you repeat your name, please?", GRAMMAR_NAME), transitions={'succeeded': 'prepare_name', 'aborted': 'aborted', 'preempted': 'preempted'}) smach.StateMachine.add( 'say_start', text_to_say("OK, now i am going to enroll your face, don't move"), transitions={'succeeded': 'learn_face', 'aborted': 'aborted', 'preempted': 'preempted'}) # Start learning smach.StateMachine.add( 'learn_face', new_database_and_learn(time_enroll), transitions={'succeeded': 'prepare_say_name', 'aborted': 'aborted', 'preempted': 'preempted'}) # Say learn name smach.StateMachine.add( 'prepare_say_name', prepare_say_name(), transitions={'succeeded': 'say_name', 'aborted': 'aborted', 'preempted': 'preempted'}) smach.StateMachine.add( 'say_name', text_to_say(), transitions={'succeeded': 'succeeded', 'aborted': 'aborted', 'preempted': 'preempted'})
def __init__(self): smach.StateMachine.__init__(self, ['succeeded', 'preempted', 'aborted']) #rospy.init_node("SM_GPSR_ORDERS") with self: smach.StateMachine.add( 'Stand_Still', text_to_say(text="Please don't move for a moment",wait_before_speaking=0), transitions={'succeeded': 'DataBase_and_Learn'}) smach.StateMachine.add( 'DataBase_and_Learn', new_database_and_learn(name_face='referee', name_database='Soar'), transitions={'succeeded': 'succeeded'})
def __init__(self): smach.StateMachine.__init__(self, ['succeeded', 'preempted', 'aborted']) #rospy.init_node("SM_GPSR_ORDERS") with self: smach.StateMachine.add( 'Stand_Still', text_to_say(text="Please don't move for a moment", wait_before_speaking=0), transitions={'succeeded': 'DataBase_and_Learn'}) smach.StateMachine.add('DataBase_and_Learn', new_database_and_learn( name_face='referee', name_database='Soar'), transitions={'succeeded': 'succeeded'})
def __init__(self, learn_face=False): smach.StateMachine.__init__( self, ['succeeded', 'preempted', 'aborted'], output_keys=['standard_error', 'in_learn_person']) self.learn_face = learn_face self.follow_pub = rospy.Publisher('/follow_me/id', Int32, latch=True) with self: self.userdata.tts_wait_before_speaking = 0 self.userdata.tts_text = None self.userdata.tts_lang = None self.userdata.standard_error = 'OK' smach.StateMachine.add('INIT_VAR', init_var(), transitions={ 'succeeded': 'READ_TRACKER_TOPIC', 'aborted': 'SAY_LIFTIME' }) smach.StateMachine.add('SAY_LIFTIME', text_to_say(SAY_GO_MIDLE), transitions={ 'succeeded': 'CONTROL_TIME', 'aborted': 'SAY_LIFTIME' }) smach.StateMachine.add('CONTROL_TIME', control_time(), transitions={ 'succeeded': 'READ_TRACKER_TOPIC', 'lif_time': 'SAY_LIFTIME' }) #TODO:: aborted->CONTROL_TIME smach.StateMachine.add( 'READ_TRACKER_TOPIC', topic_reader(topic_name='/pipol_tracker_node/peopleSet', topic_type=personArray, topic_time_out=60), transitions={ 'succeeded': 'SELECT_ID', 'aborted': 'READ_TRACKER_TOPIC', 'preempted': 'preempted' }, remapping={'topic_output_msg': 'tracking_msg'}) # it learns the person that we have to follow smach.StateMachine.add('SELECT_ID', select_ID(self.learn_face, self.follow_pub), transitions={ 'succeeded': 'STOP_LEARNING', 'aborted': 'CONTROL_TIME', 'learn_face': 'FACE_SAY' }) smach.StateMachine.add('FACE_SAY', text_to_say(SAY_LEARN), transitions={ 'succeeded': 'LEARN_FACE', 'aborted': 'LEARN_FACE' }) # it learns the person that we have to follow smach.StateMachine.add('LEARN_FACE', new_database_and_learn( learning_time=2, minConfidence=80, name_face="following", name_database="follow"), transitions={ 'succeeded': 'STOP_LEARNING', 'aborted': 'CONTROL_TIME' }) smach.StateMachine.add('STOP_LEARNING', text_to_say(SAY_FINISH), transitions={ 'succeeded': 'succeeded', 'aborted': 'STOP_LEARNING' })
def __init__(self, time_enroll=10): smach.StateMachine.__init__( self, outcomes=['succeeded', 'preempted', 'aborted'], input_keys=['name_face', 'delete_database'], output_keys=['name_face']) with self: self.userdata.name_face = '' self.userdata.asr_userSaid = '' self.userdata.grammar_name = '' # Ask for name smach.StateMachine.add('listen_name', AskQuestionSM("Hi, what's your name?", GRAMMAR_NAME), transitions={ 'succeeded': 'prepare_name', 'aborted': 'ask_name_again', 'preempted': 'preempted' }) # We prepare the name for face_detection smach.StateMachine.add("prepare_name", prepare_name(), transitions={ 'succeeded': 'say_start', 'aborted': 'ask_name_again', 'preempted': 'preempted' }) # Ask for name again smach.StateMachine.add( 'ask_name_again', AskQuestionSM( "Sorry, I don't understand you. Can you repeat your name, please?", GRAMMAR_NAME), transitions={ 'succeeded': 'prepare_name', 'aborted': 'aborted', 'preempted': 'preempted' }) smach.StateMachine.add( 'say_start', text_to_say( "OK, now i am going to enroll your face, don't move"), transitions={ 'succeeded': 'learn_face', 'aborted': 'aborted', 'preempted': 'preempted' }) # Start learning smach.StateMachine.add('learn_face', new_database_and_learn(time_enroll), transitions={ 'succeeded': 'prepare_say_name', 'aborted': 'aborted', 'preempted': 'preempted' }) # Say learn name smach.StateMachine.add('prepare_say_name', prepare_say_name(), transitions={ 'succeeded': 'say_name', 'aborted': 'aborted', 'preempted': 'preempted' }) smach.StateMachine.add('say_name', text_to_say(), transitions={ 'succeeded': 'succeeded', 'aborted': 'aborted', 'preempted': 'preempted' })