def create(self): # x:1103 y:529, x:321 y:227 _state_machine = OperatableStateMachine( outcomes=['finished', 'failed']) _state_machine.userdata.Pose_Init = "IdlePose" _state_machine.userdata.Closed_Gripper_Width = 1 _state_machine.userdata.Open_Gripper_Width = 255 _state_machine.userdata.ID = 0 _state_machine.userdata.PoseStart = "PoseStart" # Additional creation code can be added inside the following tags # [MANUAL_CREATE] # [/MANUAL_CREATE] # x:30 y:365 _sm_look_in_the_eyes_0 = OperatableStateMachine(outcomes=['finished']) with _sm_look_in_the_eyes_0: # x:189 y:48 OperatableStateMachine.add('wait 3', WaitState(wait_time=3), transitions={'done': 'say ready'}, autonomy={'done': Autonomy.Off}) # x:171 y:288 OperatableStateMachine.add('reset head', SaraSetHeadAngle(pitch=0.1, yaw=0), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:164 y:163 OperatableStateMachine.add( 'say ready', SaraSay( sentence= "Good, I see you want this bag. But, could you hand it to me please?", input_keys=[], emotion=0, block=True), transitions={'done': 'reset head'}, autonomy={'done': Autonomy.Off}) # x:30 y:365 _sm_look_at_it_1 = OperatableStateMachine(outcomes=['fail'], input_keys=['position']) with _sm_look_at_it_1: # x:126 y:99 OperatableStateMachine.add('look', LookAtPos(), transitions={ 'failed': 'look', 'done': 'look' }, autonomy={ 'failed': Autonomy.Off, 'done': Autonomy.Off }, remapping={'pos': 'position'}) # x:30 y:365 _sm_point_at_it_2 = OperatableStateMachine(outcomes=['finished'], input_keys=['position']) with _sm_point_at_it_2: # x:112 y:202 OperatableStateMachine.add( 'Action_point_at', self.use_behavior( Action_point_atSM, 'recevoir sac/Recevoir sac/look at bag/designate bag/point at it/Action_point_at' ), transitions={ 'finished': 'Action_point_at', 'failed': 'Action_point_at' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'targetPoint': 'position'}) # x:30 y:365 _sm_move_to_it_3 = OperatableStateMachine(outcomes=['arrived'], input_keys=['position']) with _sm_move_to_it_3: # x:204 y:52 OperatableStateMachine.add('set distance', SetKey(Value=1), transitions={'done': 'get pose'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'distance'}) # x:211 y:185 OperatableStateMachine.add('get pose', Get_Reacheable_Waypoint(), transitions={'done': 'move to bag'}, autonomy={'done': Autonomy.Off}, remapping={ 'pose_in': 'position', 'distance': 'distance', 'pose_out': 'pose' }) # x:188 y:279 OperatableStateMachine.add('move to bag', SaraMoveBase(reference="map"), transitions={ 'arrived': 'arrived', 'failed': 'arrived' }, autonomy={ 'arrived': Autonomy.Off, 'failed': Autonomy.Off }, remapping={'pose': 'pose'}) # x:30 y:365, x:130 y:365, x:230 y:365, x:330 y:365 _sm_designate_bag_4 = ConcurrencyContainer( outcomes=['finished'], input_keys=['position'], conditions=[('finished', [('look at it', 'fail')]), ('finished', [('point at it', 'finished')]), ('finished', [('move to it', 'arrived')])]) with _sm_designate_bag_4: # x:499 y:118 OperatableStateMachine.add('move to it', _sm_move_to_it_3, transitions={'arrived': 'finished'}, autonomy={'arrived': Autonomy.Inherit}, remapping={'position': 'position'}) # x:239 y:126 OperatableStateMachine.add('point at it', _sm_point_at_it_2, transitions={'finished': 'finished'}, autonomy={'finished': Autonomy.Inherit}, remapping={'position': 'position'}) # x:45 y:121 OperatableStateMachine.add('look at it', _sm_look_at_it_1, transitions={'fail': 'finished'}, autonomy={'fail': Autonomy.Inherit}, remapping={'position': 'position'}) # x:30 y:365, x:130 y:365, x:230 y:365, x:330 y:365 _sm_receive_it_5 = ConcurrencyContainer( outcomes=['finished', 'failed'], input_keys=['Closed_Gripper_Width', 'Open_Gripper_Width'], conditions=[('finished', [('Action_Receive_Bag', 'finished'), ('look in the eyes', 'finished')]), ('failed', [('Action_Receive_Bag', 'failed')])]) with _sm_receive_it_5: # x:30 y:149 OperatableStateMachine.add( 'Action_Receive_Bag', self.use_behavior( Action_Receive_BagSM, 'recevoir sac/Recevoir sac/receive it/Action_Receive_Bag'), transitions={ 'finished': 'finished', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={ 'Closed_Gripper_Width': 'Closed_Gripper_Width', 'Open_Gripper_Width': 'Open_Gripper_Width', 'Closed_Gripper_Width': 'Closed_Gripper_Width' }) # x:259 y:150 OperatableStateMachine.add('look in the eyes', _sm_look_in_the_eyes_0, transitions={'finished': 'finished'}, autonomy={'finished': Autonomy.Inherit}) # x:30 y:322 _sm_look_at_bag_6 = OperatableStateMachine(outcomes=['finished']) with _sm_look_at_bag_6: # x:35 y:70 OperatableStateMachine.add('setName', SetKey(Value="person"), transitions={'done': 'say 1'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'personName'}) # x:233 y:109 OperatableStateMachine.add( 'say 1', SaraSay(sentence="Please, point at the bag you want.", input_keys=[], emotion=0, block=True), transitions={'done': 'list'}, autonomy={'done': Autonomy.Off}) # x:28 y:193 OperatableStateMachine.add('list', list_entities_by_name( frontality_level=0.5, distance_max=10), transitions={ 'found': 'calc', 'none_found': 'list' }, autonomy={ 'found': Autonomy.Off, 'none_found': Autonomy.Off }, remapping={ 'name': 'personName', 'entity_list': 'entity_list', 'number': 'number' }) # x:230 y:363 OperatableStateMachine.add( 'get bag position from pointing', GetPointedPositionOnPlane(planeHeight=0.2), transitions={ 'done': 'designate bag', 'not_pointing': 'say 1', 'pointing_up': 'say 1', 'failed': 'list' }, autonomy={ 'done': Autonomy.Off, 'not_pointing': Autonomy.Off, 'pointing_up': Autonomy.Off, 'failed': Autonomy.Off }, remapping={ 'entity': 'entity', 'position': 'position' }) # x:34 y:362 OperatableStateMachine.add( 'calc', CalculationState(calculation=lambda x: x[0]), transitions={'done': 'get bag position from pointing'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'entity_list', 'output_value': 'entity' }) # x:241 y:554 OperatableStateMachine.add('designate bag', _sm_designate_bag_4, transitions={'finished': 'finished'}, autonomy={'finished': Autonomy.Inherit}, remapping={'position': 'position'}) # x:30 y:365, x:182 y:454 _sm_recevoir_sac_7 = OperatableStateMachine( outcomes=['failed', 'done'], input_keys=['Closed_Gripper_Width', 'Open_Gripper_Width']) with _sm_recevoir_sac_7: # x:66 y:44 OperatableStateMachine.add('look at bag', _sm_look_at_bag_6, transitions={'finished': 'close'}, autonomy={'finished': Autonomy.Inherit}) # x:41 y:267 OperatableStateMachine.add('receive it', _sm_receive_it_5, transitions={ 'finished': 'sayCAr', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={ 'Closed_Gripper_Width': 'Closed_Gripper_Width', 'Open_Gripper_Width': 'Open_Gripper_Width' }) # x:81 y:157 OperatableStateMachine.add( 'close', SetGripperState(width=0, effort=0), transitions={ 'object': 'receive it', 'no_object': 'receive it' }, autonomy={ 'object': Autonomy.Off, 'no_object': Autonomy.Off }, remapping={'object_size': 'object_size'}) # x:139 y:334 OperatableStateMachine.add( 'sayCAr', SaraSay(sentence="PLease tell me when we get to the car.", input_keys=[], emotion=0, block=True), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}) # x:30 y:365 _sm_listen_8 = OperatableStateMachine(outcomes=['done']) with _sm_listen_8: # x:50 y:76 OperatableStateMachine.add( 'SayFollow', SaraSay( sentence= "I will follow you to the car now. Tell me when we get to the car.", input_keys=[], emotion=0, block=False), transitions={'done': 'LIsten'}, autonomy={'done': Autonomy.Off}) # x:161 y:148 OperatableStateMachine.add('LIsten', GetSpeech(watchdog=10), transitions={ 'done': 'Listen2', 'nothing': 'LIsten', 'fail': 'LIsten' }, autonomy={ 'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off }, remapping={'words': 'words'}) # x:201 y:256 OperatableStateMachine.add( 'Listen2', RegexTester(regex=".*((car)|(here it is)|(now)).*"), transitions={ 'true': 'done', 'false': 'Listen2' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }, remapping={ 'text': 'words', 'result': 'result' }) # x:520 y:327 _sm_follow_9 = OperatableStateMachine(outcomes=['failed'], input_keys=['ID']) with _sm_follow_9: # x:128 y:127 OperatableStateMachine.add( 'Action_follow', self.use_behavior(Action_followSM, 'Follow and listen/follow/Action_follow'), transitions={'failed': 'set name'}, autonomy={'failed': Autonomy.Inherit}, remapping={'ID': 'ID'}) # x:288 y:346 OperatableStateMachine.add('list people', list_entities_by_name( frontality_level=0.5, distance_max=10), transitions={ 'found': 'get first ID', 'none_found': 'failed' }, autonomy={ 'found': Autonomy.Off, 'none_found': Autonomy.Off }, remapping={ 'name': 'name', 'entity_list': 'entity_list', 'number': 'number' }) # x:109 y:334 OperatableStateMachine.add( 'get first ID', CalculationState(calculation=lambda x: x[0].ID), transitions={'done': 'Action_follow'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'entity_list', 'output_value': 'ID' }) # x:349 y:116 OperatableStateMachine.add('set name', SetKey(Value="person"), transitions={'done': 'list people'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'name'}) # x:30 y:365, x:130 y:365, x:230 y:365, x:330 y:365, x:430 y:365 _sm_recevoir_sac_10 = ConcurrencyContainer( outcomes=['failed', 'done'], input_keys=['Closed_Gripper_Width', 'Open_Gripper_Width'], conditions=[('failed', [('Recevoir sac', 'failed')]), ('done', [('Recevoir sac', 'done')]), ('done', [('LookAtClosest', 'failed')])]) with _sm_recevoir_sac_10: # x:30 y:40 OperatableStateMachine.add('Recevoir sac', _sm_recevoir_sac_7, transitions={ 'failed': 'failed', 'done': 'done' }, autonomy={ 'failed': Autonomy.Inherit, 'done': Autonomy.Inherit }, remapping={ 'Closed_Gripper_Width': 'Closed_Gripper_Width', 'Open_Gripper_Width': 'Open_Gripper_Width' }) # x:234 y:114 OperatableStateMachine.add('LookAtClosest', self.use_behavior( LookAtClosestSM, 'recevoir sac/LookAtClosest'), transitions={'failed': 'done'}, autonomy={'failed': Autonomy.Inherit}) # x:390 y:296, x:111 y:269, x:230 y:365, x:542 y:339, x:465 y:331, x:530 y:380 _sm_follow_and_listen_11 = ConcurrencyContainer( outcomes=['done', 'failed'], input_keys=['ID'], conditions=[('done', [('Listen', 'done')]), ('failed', [('follow', 'failed')]), ('done', [('continue', 'true')]), ('done', [('continue', 'false')])]) with _sm_follow_and_listen_11: # x:132 y:90 OperatableStateMachine.add('follow', _sm_follow_9, transitions={'failed': 'failed'}, autonomy={'failed': Autonomy.Inherit}, remapping={'ID': 'ID'}) # x:356 y:105 OperatableStateMachine.add('Listen', _sm_listen_8, transitions={'done': 'done'}, autonomy={'done': Autonomy.Inherit}) # x:485 y:162 OperatableStateMachine.add('continue', ContinueButton(), transitions={ 'true': 'done', 'false': 'done' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }) # x:76 y:535 _sm_getidope_12 = OperatableStateMachine(outcomes=['done'], output_keys=['ID']) with _sm_getidope_12: # x:55 y:63 OperatableStateMachine.add('Person', SetKey(Value="person"), transitions={'done': 'GEtId'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'name'}) # x:43 y:180 OperatableStateMachine.add('GEtId', list_entities_by_name( frontality_level=0.5, distance_max=10), transitions={ 'found': 'ID', 'none_found': 'GEtId' }, autonomy={ 'found': Autonomy.Off, 'none_found': Autonomy.Off }, remapping={ 'name': 'name', 'entity_list': 'Entities_list', 'number': 'number' }) # x:52 y:290 OperatableStateMachine.add( 'ID', CalculationState(calculation=lambda x: x[0].ID), transitions={'done': 'setID'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'Entities_list', 'output_value': 'ID' }) # x:37 y:399 OperatableStateMachine.add( 'setID', SetRosParam(ParamName="behavior/Operator/Id"), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}, remapping={'Value': 'ID'}) with _state_machine: # x:38 y:33 OperatableStateMachine.add('continue', ContinueButton(), transitions={ 'true': 'GEtPose', 'false': 'GEtPose' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }) # x:35 y:351 OperatableStateMachine.add( 'ImHere', SaraSay(sentence="I am ready to carry your luggage!", input_keys=[], emotion=1, block=True), transitions={'done': 'recevoir sac'}, autonomy={'done': Autonomy.Off}) # x:28 y:539 OperatableStateMachine.add( 'GetIDOpe', _sm_getidope_12, transitions={'done': 'Follow and listen'}, autonomy={'done': Autonomy.Inherit}, remapping={'ID': 'ID'}) # x:220 y:536 OperatableStateMachine.add('Follow and listen', _sm_follow_and_listen_11, transitions={ 'done': 'Action_Give_Back_Bag', 'failed': 'failed' }, autonomy={ 'done': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'ID': 'ID'}) # x:411 y:525 OperatableStateMachine.add('Action_Give_Back_Bag', self.use_behavior( Action_Give_Back_BagSM, 'Action_Give_Back_Bag'), transitions={ 'finished': 'GoBackHome', 'failed': 'Action_Give_Back_Bag' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }) # x:16 y:206 OperatableStateMachine.add('Init_Sequence', self.use_behavior( Init_SequenceSM, 'Init_Sequence'), transitions={ 'finished': 'move head up', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }) # x:634 y:522 OperatableStateMachine.add( 'GoBackHome', SaraSay(sentence="I will go back home now. Have a good day!", input_keys=[], emotion=0, block=True), transitions={'done': 'setarm'}, autonomy={'done': Autonomy.Off}) # x:922 y:519 OperatableStateMachine.add('Action_Move', self.use_behavior( Action_MoveSM, 'Action_Move'), transitions={ 'finished': 'finished', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'pose': 'Origin'}) # x:35 y:281 OperatableStateMachine.add('move head up', SaraSetHeadAngle(pitch=0.1, yaw=0), transitions={'done': 'ImHere'}, autonomy={'done': Autonomy.Off}) # x:35 y:427 OperatableStateMachine.add('recevoir sac', _sm_recevoir_sac_10, transitions={ 'failed': 'failed', 'done': 'GetIDOpe' }, autonomy={ 'failed': Autonomy.Inherit, 'done': Autonomy.Inherit }, remapping={ 'Closed_Gripper_Width': 'Closed_Gripper_Width', 'Open_Gripper_Width': 'Open_Gripper_Width' }) # x:770 y:526 OperatableStateMachine.add('setarm', RunTrajectory(file="sac_transport", duration=0), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:24 y:134 OperatableStateMachine.add('GEtPose', Get_Robot_Pose(), transitions={'done': 'Init_Sequence'}, autonomy={'done': Autonomy.Off}, remapping={'pose': 'Origin'}) return _state_machine
def create(self): # x:1474 y:331, x:56 y:575 _state_machine = OperatableStateMachine( outcomes=['finished', 'failed']) _state_machine.userdata.half_turn = 3.1416 _state_machine.userdata.person = "person" _state_machine.userdata.operator_param = "behavior/Operaror/Id" _state_machine.userdata.join = ["Move", "spr/initialpose"] _state_machine.userdata.leave = ["Move", "door2/exit"] # Additional creation code can be added inside the following tags # [MANUAL_CREATE] # [/MANUAL_CREATE] # x:1182 y:163 _sm_rotate_0 = OperatableStateMachine(outcomes=['finished']) with _sm_rotate_0: # x:103 y:61 OperatableStateMachine.add('Look Left', SaraSetHeadAngle(pitch=-0.35, yaw=0.5), transitions={'done': 'Rotate Left'}, autonomy={'done': Autonomy.Off}) # x:794 y:54 OperatableStateMachine.add('Look Right', SaraSetHeadAngle(pitch=-0.35, yaw=-0.5), transitions={'done': 'Rotate Right'}, autonomy={'done': Autonomy.Off}) # x:325 y:61 OperatableStateMachine.add('Rotate Left', WaitState(wait_time=8), transitions={'done': 'Look Center'}, autonomy={'done': Autonomy.Off}) # x:961 y:65 OperatableStateMachine.add('Rotate Right', WaitState(wait_time=4), transitions={'done': 'Look Center 2'}, autonomy={'done': Autonomy.Off}) # x:1115 y:62 OperatableStateMachine.add('Look Center 2', SaraSetHeadAngle(pitch=0.1, yaw=0), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:484 y:54 OperatableStateMachine.add('Look Center', SaraSetHeadAngle(pitch=-0.35, yaw=0), transitions={'done': 'Rotate Center'}, autonomy={'done': Autonomy.Off}) # x:657 y:49 OperatableStateMachine.add('Rotate Center', WaitState(wait_time=4), transitions={'done': 'Look Right'}, autonomy={'done': Autonomy.Off}) # x:30 y:458 _sm_follow_head_1 = OperatableStateMachine(outcomes=['end'], input_keys=['person']) with _sm_follow_head_1: # x:214 y:48 OperatableStateMachine.add('list all entities', list_entities_by_name( frontality_level=0.5, distance_max=10), transitions={ 'found': 'Get Nearest', 'none_found': 'list all entities' }, autonomy={ 'found': Autonomy.Off, 'none_found': Autonomy.Off }, remapping={ 'name': 'person', 'entity_list': 'entity_list', 'number': 'number' }) # x:456 y:51 OperatableStateMachine.add( 'Get Nearest', CalculationState(calculation=lambda x: x[0].ID), transitions={'done': 'look'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'entity_list', 'output_value': 'ID' }) # x:291 y:177 OperatableStateMachine.add( 'look', KeepLookingAt(), transitions={'failed': 'list all entities'}, autonomy={'failed': Autonomy.Off}, remapping={'ID': 'ID'}) # x:12 y:125, x:1130 y:515 _sm_nlu_2 = OperatableStateMachine(outcomes=['finished', 'failed']) with _sm_nlu_2: # x:156 y:37 OperatableStateMachine.add( 'say ask', SaraSay(sentence="You can ask me your questions.", input_keys=[], emotion=1, block=True), transitions={'done': 'Loop Questions'}, autonomy={'done': Autonomy.Off}) # x:1091 y:84 OperatableStateMachine.add('Listen', GetSpeech(watchdog=10), transitions={ 'done': 'Engine', 'nothing': 'Listen', 'fail': 'Listen' }, autonomy={ 'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off }, remapping={'words': 'sentence'}) # x:1324 y:110 OperatableStateMachine.add('Engine', SaraNLUspr(), transitions={ 'understood': 'Say_Answer', 'not_understood': 'Listen', 'fail': 'Listen' }, autonomy={ 'understood': Autonomy.Off, 'not_understood': Autonomy.Off, 'fail': Autonomy.Off }, remapping={ 'sentence': 'sentence', 'answer': 'answer' }) # x:632 y:77 OperatableStateMachine.add( 'Select Story', CalculationState(calculation=lambda x: x + 6), transitions={'done': 'Set_a_step'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'index', 'output_value': 'story' }) # x:874 y:78 OperatableStateMachine.add('Set_a_step', Set_a_step(step=1), transitions={'done': 'Listen'}, autonomy={'done': Autonomy.Off}) # x:398 y:81 OperatableStateMachine.add('Loop Questions', ForLoop(repeat=5), transitions={ 'do': 'Select Story', 'end': 'loop step' }, autonomy={ 'do': Autonomy.Off, 'end': Autonomy.Off }, remapping={'index': 'index'}) # x:439 y:252 OperatableStateMachine.add( 'Say Blind Game', SaraSay(sentence="Let's play the blind game !", input_keys=[], emotion=1, block=True), transitions={'done': 'Loop Questions'}, autonomy={'done': Autonomy.Off}) # x:189 y:193 OperatableStateMachine.add('loop step', ForLoop(repeat=1), transitions={ 'do': 'Say Blind Game', 'end': 'finished' }, autonomy={ 'do': Autonomy.Off, 'end': Autonomy.Off }, remapping={'index': 'index'}) # x:721 y:205 OperatableStateMachine.add('Say_Answer', SaraSay(sentence=lambda x: str(x), input_keys=[], emotion=0, block=True), transitions={'done': 'Loop Questions'}, autonomy={'done': Autonomy.Off}) # x:817 y:123, x:130 y:458 _sm_analyse_crowd_3 = OperatableStateMachine( outcomes=['finished', 'error']) with _sm_analyse_crowd_3: # x:87 y:97 OperatableStateMachine.add('clear database', WonderlandClearPeoples(), transitions={ 'done': 'Rotate', 'error': 'error' }, autonomy={ 'done': Autonomy.Off, 'error': Autonomy.Off }) # x:531 y:112 OperatableStateMachine.add('Add Update Persons', WonderlandAddUpdatePeople(), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:311 y:97 OperatableStateMachine.add( 'Rotate', _sm_rotate_0, transitions={'finished': 'Add Update Persons'}, autonomy={'finished': Autonomy.Inherit}) # x:1203 y:11, x:1006 y:366 _sm_init_scenario_4 = OperatableStateMachine( outcomes=['done', 'error']) with _sm_init_scenario_4: # x:30 y:42 OperatableStateMachine.add( 'Generate Vizbox Story', Set_Story(titre="Speech and Person Recognition", storyline=[ "Waiting Begining", "Join Game Room", "Waiting Crowd Placement", "Analysing Crowd", "Begin Game", "Find Operator", "Question 1", "Question 2", "Question 3", "Question 4", "Question 5", "Leave Arena" ]), transitions={'done': 'Set Story Step'}, autonomy={'done': Autonomy.Off}) # x:559 y:44 OperatableStateMachine.add('WaitForBegining', ContinueButton(), transitions={ 'true': 'Reset Persons', 'false': 'Reset Persons' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }) # x:807 y:61 OperatableStateMachine.add('Reset Persons', WonderlandClearPeoples(), transitions={ 'done': 'done', 'error': 'error' }, autonomy={ 'done': Autonomy.Off, 'error': Autonomy.Off }) # x:247 y:49 OperatableStateMachine.add('Set Story Step', Set_a_step(step=0), transitions={'done': 'setIDLE'}, autonomy={'done': Autonomy.Off}) # x:388 y:208 OperatableStateMachine.add('Reset Arm', MoveitMove(move=True, waitForExecution=True, group="RightArm"), transitions={ 'done': 'Reset Persons', 'failed': 'error' }, autonomy={ 'done': Autonomy.Off, 'failed': Autonomy.Off }, remapping={'target': 'target'}) # x:427 y:40 OperatableStateMachine.add('setIDLE', SetKey(Value="IdlePose"), transitions={'done': 'Reset Arm'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'target'}) # x:30 y:458, x:230 y:458 _sm_join_area_5 = OperatableStateMachine( outcomes=['failed', 'finished'], input_keys=['join']) with _sm_join_area_5: # x:95 y:40 OperatableStateMachine.add( 'Say Join Area', SaraSay(sentence="I will join the playing room !", input_keys=[], emotion=1, block=True), transitions={'done': 'Join Arena'}, autonomy={'done': Autonomy.Off}) # x:92 y:134 OperatableStateMachine.add( 'Join Arena', self.use_behavior(sara_flexbe_behaviors__ActionWrapper_MoveSM, 'Join Area/Join Arena'), transitions={ 'finished': 'finished', 'failed': 'failed', 'critical_fail': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit, 'critical_fail': Autonomy.Inherit }, remapping={'Action': 'join'}) # x:489 y:56, x:604 y:278 _sm_waiting_and_turn_6 = OperatableStateMachine( outcomes=['finished', 'failed'], input_keys=['half_turn']) with _sm_waiting_and_turn_6: # x:50 y:51 OperatableStateMachine.add( 'Want Play', SaraSay(sentence="Hum, I want to play riddles !", input_keys=[], emotion=1, block=True), transitions={'done': 'Wait 10s'}, autonomy={'done': Autonomy.Off}) # x:272 y:121 OperatableStateMachine.add( 'action_turn', self.use_behavior(sara_flexbe_behaviors__action_turnSM, 'Waiting And Turn/action_turn'), transitions={ 'finished': 'finished', 'failed': 'Cant turn' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'rotation': 'half_turn'}) # x:437 y:240 OperatableStateMachine.add('Cant turn', SaraSay(sentence="I can't turn !", input_keys=[], emotion=1, block=True), transitions={'done': 'failed'}, autonomy={'done': Autonomy.Off}) # x:63 y:178 OperatableStateMachine.add( 'Wait 10s', WaitState(wait_time=10), transitions={'done': 'Look In Front Of'}, autonomy={'done': Autonomy.Off}) # x:61 y:260 OperatableStateMachine.add('Look In Front Of', SaraSetHeadAngle(pitch=0, yaw=0), transitions={'done': 'action_turn'}, autonomy={'done': Autonomy.Off}) # x:472 y:69, x:476 y:113, x:470 y:196, x:330 y:458, x:430 y:458 _sm_questions_7 = ConcurrencyContainer( outcomes=['finished', 'failed'], input_keys=['person'], conditions=[('finished', [('NLU', 'finished')]), ('failed', [('NLU', 'failed')]), ('finished', [('Follow Head', 'end')])]) with _sm_questions_7: # x:85 y:58 OperatableStateMachine.add('NLU', _sm_nlu_2, transitions={ 'finished': 'finished', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }) # x:84 y:185 OperatableStateMachine.add('Follow Head', _sm_follow_head_1, transitions={'end': 'finished'}, autonomy={'end': Autonomy.Inherit}, remapping={'person': 'person'}) # x:283 y:294, x:60 y:571 _sm_find_operator_8 = OperatableStateMachine( outcomes=['not_found', 'done'], input_keys=['person', 'operator_param']) with _sm_find_operator_8: # x:51 y:40 OperatableStateMachine.add( 'Ask Player', SaraSay(sentence="Who wan't to play with me ?", input_keys=[], emotion=1, block=True), transitions={'done': 'Wait Operator'}, autonomy={'done': Autonomy.Off}) # x:39 y:297 OperatableStateMachine.add( 'Get operator id', CalculationState(calculation=lambda x: x.entities[0].face.id), transitions={'done': 'Set Operator Id'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'entity_list', 'output_value': 'operator' }) # x:33 y:384 OperatableStateMachine.add('Set Operator Id', SetRosParamKey(), transitions={'done': 'Operator Id'}, autonomy={'done': Autonomy.Off}, remapping={ 'Value': 'operator_param', 'ParamName': 'operator' }) # x:46 y:117 OperatableStateMachine.add('Wait Operator', WaitState(wait_time=6), transitions={'done': 'Find Operator'}, autonomy={'done': Autonomy.Off}) # x:35 y:495 OperatableStateMachine.add('Operator Id', LogKeyState( text="Operator find. Id: {}", severity=Logger.REPORT_HINT), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}, remapping={'data': 'operator'}) # x:30 y:205 OperatableStateMachine.add('Find Operator', list_entities_by_name( frontality_level=0.5, distance_max=10), transitions={ 'found': 'Get operator id', 'none_found': 'Find Operator' }, autonomy={ 'found': Autonomy.Off, 'none_found': Autonomy.Off }, remapping={ 'name': 'person', 'entity_list': 'entity_list', 'number': 'number' }) # x:703 y:198, x:88 y:199 _sm_tell_basic_stats_9 = OperatableStateMachine( outcomes=['finished', 'failed']) with _sm_tell_basic_stats_9: # x:50 y:40 OperatableStateMachine.add('wait', WaitState(wait_time=0), transitions={'done': 'GetPeopleStats'}, autonomy={'done': Autonomy.Off}) # x:218 y:43 OperatableStateMachine.add('GetPeopleStats', WonderlandGetPersonStat(), transitions={ 'done': 'GenerateSentence', 'none': 'Nobody', 'error': 'failed' }, autonomy={ 'done': Autonomy.Off, 'none': Autonomy.Off, 'error': Autonomy.Off }, remapping={ 'women': 'women', 'men': 'men', 'others': 'others' }) # x:466 y:46 OperatableStateMachine.add('Nobody', SaraSay( sentence="There is nobody here !", input_keys=[], emotion=1, block=True), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:162 y:243 OperatableStateMachine.add( 'GenerateSentence', FlexibleCalculationState(calculation=lambda x: "There is " + str(x[0] + x[1] + x[2]) + " persons.", input_keys=['men', 'women', 'others']), transitions={'done': 'Tell_Stats'}, autonomy={'done': Autonomy.Off}, remapping={ 'men': 'men', 'women': 'women', 'others': 'others', 'output_value': 'sentence' }) # x:151 y:345 OperatableStateMachine.add( 'Generate Sentence 2', FlexibleCalculationState( calculation=lambda x: "I recognize " + str(x[ 1]) + " women and " + str(x[0]) + " men.", input_keys=['men', 'women', 'others']), transitions={'done': 'Tell_Stats 2'}, autonomy={'done': Autonomy.Off}, remapping={ 'men': 'men', 'women': 'women', 'others': 'others', 'output_value': 'sentence' }) # x:380 y:172 OperatableStateMachine.add( 'Tell_Stats', SaraSay(sentence=lambda x: x, input_keys=[], emotion=0, block=True), transitions={'done': 'Generate Sentence 2'}, autonomy={'done': Autonomy.Off}) # x:409 y:276 OperatableStateMachine.add('Tell_Stats 2', SaraSay(sentence=lambda x: x, input_keys=[], emotion=0, block=True), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) with _state_machine: # x:30 y:40 OperatableStateMachine.add('continue', ContinueButton(), transitions={ 'true': 'Init Scenario', 'false': 'Init Scenario' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }) # x:715 y:127 OperatableStateMachine.add('Tell basic stats', _sm_tell_basic_stats_9, transitions={ 'finished': 'Set Find Operator', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }) # x:899 y:126 OperatableStateMachine.add('Find Operator', _sm_find_operator_8, transitions={ 'not_found': 'Find Operator', 'done': 'Questions' }, autonomy={ 'not_found': Autonomy.Inherit, 'done': Autonomy.Inherit }, remapping={ 'person': 'person', 'operator_param': 'operator_param' }) # x:1120 y:126 OperatableStateMachine.add('Questions', _sm_questions_7, transitions={ 'finished': 'set head', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'person': 'person'}) # x:343 y:49 OperatableStateMachine.add( 'Set Story Waiting', Set_a_step(step=2), transitions={'done': 'Waiting And Turn'}, autonomy={'done': Autonomy.Off}) # x:532 y:48 OperatableStateMachine.add('Set Analyse', Set_a_step(step=3), transitions={'done': 'Analyse Crowd'}, autonomy={'done': Autonomy.Off}) # x:696 y:47 OperatableStateMachine.add( 'Set Begin Game', Set_a_step(step=4), transitions={'done': 'Tell basic stats'}, autonomy={'done': Autonomy.Off}) # x:899 y:49 OperatableStateMachine.add('Set Find Operator', Set_a_step(step=5), transitions={'done': 'Find Operator'}, autonomy={'done': Autonomy.Off}) # x:332 y:127 OperatableStateMachine.add('Waiting And Turn', _sm_waiting_and_turn_6, transitions={ 'finished': 'Set Analyse', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'half_turn': 'half_turn'}) # x:1333 y:232 OperatableStateMachine.add('Set Go Out', Set_a_step(step=11), transitions={'done': 'Say And Of Game'}, autonomy={'done': Autonomy.Off}) # x:1517 y:148 OperatableStateMachine.add( 'Leave Arena', self.use_behavior(sara_flexbe_behaviors__ActionWrapper_MoveSM, 'Leave Arena'), transitions={ 'finished': 'finished', 'failed': 'finished', 'critical_fail': 'finished' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit, 'critical_fail': Autonomy.Inherit }, remapping={'Action': 'leave'}) # x:176 y:42 OperatableStateMachine.add( 'Set Join', Set_a_step(step=1), transitions={'done': 'Set Story Waiting'}, autonomy={'done': Autonomy.Off}) # x:177 y:120 OperatableStateMachine.add('Join Area', _sm_join_area_5, transitions={ 'failed': 'failed', 'finished': 'Set Story Waiting' }, autonomy={ 'failed': Autonomy.Inherit, 'finished': Autonomy.Inherit }, remapping={'join': 'join'}) # x:1302 y:140 OperatableStateMachine.add( 'Say And Of Game', SaraSay( sentence= "The game is finished. I will leave the arena. Thank you for playing with me.", input_keys=[], emotion=1, block=True), transitions={'done': 'Leave Arena'}, autonomy={'done': Autonomy.Off}) # x:1120 y:237 OperatableStateMachine.add('set head', SaraSetHeadAngle(pitch=-0.2, yaw=0), transitions={'done': 'Set Go Out'}, autonomy={'done': Autonomy.Off}) # x:34 y:130 OperatableStateMachine.add('Init Scenario', _sm_init_scenario_4, transitions={ 'done': 'Set Join', 'error': 'failed' }, autonomy={ 'done': Autonomy.Inherit, 'error': Autonomy.Inherit }) # x:517 y:124 OperatableStateMachine.add('Analyse Crowd', _sm_analyse_crowd_3, transitions={ 'finished': 'Set Begin Game', 'error': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'error': Autonomy.Inherit }) return _state_machine
def create(self): # x:391 y:586, x:438 y:304 _state_machine = OperatableStateMachine( outcomes=['finished', 'failed']) _state_machine.userdata.StartPosition = "Operator" _state_machine.userdata.PositionBras = "IdlePose" _state_machine.userdata.title = "GPSR" _state_machine.userdata.EntryName = "door1/enter" _state_machine.userdata.ExitName = "door2/exit" # Additional creation code can be added inside the following tags # [MANUAL_CREATE] # [/MANUAL_CREATE] # x:135 y:542, x:527 y:395 _sm_validate_0 = OperatableStateMachine(outcomes=['done', 'bad'], input_keys=['sentence']) with _sm_validate_0: # x:56 y:62 OperatableStateMachine.add( 'Say_Command', SaraSay( sentence=lambda x: "I heard. " + x + ". Is that correct?", input_keys=[], emotion=0, block=True), transitions={'done': 'get speech'}, autonomy={'done': Autonomy.Off}) # x:44 y:165 OperatableStateMachine.add('get speech', GetSpeech(watchdog=10), transitions={ 'done': 'is yes', 'nothing': 'say repeate', 'fail': 'say repeate' }, autonomy={ 'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off }, remapping={'words': 'words'}) # x:91 y:307 OperatableStateMachine.add( 'is yes', CheckConditionState(predicate=lambda x: "yes" in x or "right" in x or "sure" in x), transitions={ 'true': 'done', 'false': 'say repeate' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }, remapping={'input_value': 'words'}) # x:423 y:332 OperatableStateMachine.add( 'say repeate', SaraSay(sentence="Please, repeat your command.", input_keys=[], emotion=1, block=True), transitions={'done': 'bad'}, autonomy={'done': Autonomy.Off}) # x:30 y:324 _sm_look_at_op_1 = OperatableStateMachine(outcomes=['fail']) with _sm_look_at_op_1: # x:61 y:31 OperatableStateMachine.add('set name', SetKey(Value="person"), transitions={'done': 'list persons'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'name'}) # x:44 y:110 OperatableStateMachine.add('list persons', list_entities_by_name( frontality_level=0.5, distance_max=10), transitions={ 'found': 'get closest', 'none_found': 'list persons' }, autonomy={ 'found': Autonomy.Off, 'none_found': Autonomy.Off }, remapping={ 'name': 'name', 'entity_list': 'entity_list', 'number': 'number' }) # x:43 y:211 OperatableStateMachine.add( 'get closest', CalculationState(calculation=lambda x: x[0].ID), transitions={'done': 'look at'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'entity_list', 'output_value': 'ID' }) # x:210 y:198 OperatableStateMachine.add('look at', KeepLookingAt(), transitions={'failed': 'list persons'}, autonomy={'failed': Autonomy.Off}, remapping={'ID': 'ID'}) # x:307 y:35, x:335 y:491 _sm_get_commands_2 = OperatableStateMachine( outcomes=['fail', 'understood'], output_keys=['ActionForms', 'sentence']) with _sm_get_commands_2: # x:50 y:48 OperatableStateMachine.add( 'say ready', SaraSay(sentence="I'm ready for your commands.", input_keys=[], emotion=1, block=False), transitions={'done': 'GetSpeech'}, autonomy={'done': Autonomy.Off}) # x:32 y:408 OperatableStateMachine.add('SaraNLUgpsr', SaraNLUgpsr(), transitions={ 'understood': 'say understood', 'not_understood': 'say sorry', 'fail': 'say sorry' }, autonomy={ 'understood': Autonomy.Off, 'not_understood': Autonomy.Off, 'fail': Autonomy.Off }, remapping={ 'sentence': 'sentence', 'ActionForms': 'ActionForms' }) # x:597 y:223 OperatableStateMachine.add( 'say sorry', SaraSay( sentence="Sorry, I could not understand what you said.", input_keys=[], emotion=1, block=True), transitions={'done': 'GetSpeech'}, autonomy={'done': Autonomy.Off}) # x:30 y:491 OperatableStateMachine.add('say understood', SaraSay(sentence="Ok", input_keys=[], emotion=1, block=True), transitions={'done': 'understood'}, autonomy={'done': Autonomy.Off}) # x:44 y:131 OperatableStateMachine.add('GetSpeech', GetSpeech(watchdog=5), transitions={ 'done': 'validate', 'nothing': 'GetSpeech', 'fail': 'fail' }, autonomy={ 'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off }, remapping={'words': 'sentence'}) # x:29 y:259 OperatableStateMachine.add('validate', _sm_validate_0, transitions={ 'done': 'SaraNLUgpsr', 'bad': 'GetSpeech' }, autonomy={ 'done': Autonomy.Inherit, 'bad': Autonomy.Inherit }, remapping={'sentence': 'sentence'}) # x:122 y:413 _sm_end_3 = OperatableStateMachine(outcomes=['done'], input_keys=['ExitName']) with _sm_end_3: # x:30 y:40 OperatableStateMachine.add( 'win', SaraSay(sentence="Thank you. I'm going now.", input_keys=[], emotion=1, block=True), transitions={'done': 'Action_Pass_Door'}, autonomy={'done': Autonomy.Off}) # x:33 y:163 OperatableStateMachine.add( 'Action_Pass_Door', self.use_behavior(sara_flexbe_behaviors__Action_Pass_DoorSM, 'End/Action_Pass_Door'), transitions={ 'Done': 'say yay', 'Fail': 'done' }, autonomy={ 'Done': Autonomy.Inherit, 'Fail': Autonomy.Inherit }, remapping={'DoorName': 'ExitName'}) # x:210 y:262 OperatableStateMachine.add( 'say yay', SaraSay(sentence="I did it. I'm the best robot.", input_keys=[], emotion=1, block=True), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}) # x:320 y:82, x:322 y:143, x:265 y:407, x:306 y:225, x:430 y:324 _sm_interact_operator_4 = ConcurrencyContainer( outcomes=['fail', 'understood'], output_keys=['ActionForms', 'sentence'], conditions=[('understood', [('Get Commands', 'understood')]), ('fail', [('Get Commands', 'fail')]), ('fail', [('look at op', 'fail')])]) with _sm_interact_operator_4: # x:95 y:45 OperatableStateMachine.add('Get Commands', _sm_get_commands_2, transitions={ 'fail': 'fail', 'understood': 'understood' }, autonomy={ 'fail': Autonomy.Inherit, 'understood': Autonomy.Inherit }, remapping={ 'ActionForms': 'ActionForms', 'sentence': 'sentence' }) # x:99 y:198 OperatableStateMachine.add('look at op', _sm_look_at_op_1, transitions={'fail': 'fail'}, autonomy={'fail': Autonomy.Inherit}) # x:325 y:387, x:314 y:190 _sm_fail_state_5 = OperatableStateMachine( outcomes=['finished', 'failed'], input_keys=['StartPosition']) with _sm_fail_state_5: # x:36 y:29 OperatableStateMachine.add( 'say failed', SaraSay(sentence="I failed. I'm going back to tell my master.", input_keys=[], emotion=1, block=True), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:42 y:301 OperatableStateMachine.add( 'get error', GetRosParam(ParamName="behavior/GPSR/CauseOfFailure"), transitions={ 'done': 'Say_Error', 'failed': 'finished' }, autonomy={ 'done': Autonomy.Off, 'failed': Autonomy.Off }, remapping={'Value': 'Error'}) # x:48 y:414 OperatableStateMachine.add( 'Say_Error', SaraSay(sentence=lambda x: "Sorry, I failed because " + x, input_keys=[], emotion=0, block=True), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:25 y:172 OperatableStateMachine.add( 'Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'Fail state/Action_Move'), transitions={ 'finished': 'get error', 'failed': 'failed' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'pose': 'StartPosition'}) # x:588 y:141, x:590 y:545, x:642 y:410 _sm_do_the_actions_6 = OperatableStateMachine( outcomes=['finished', 'failed', 'critical fail'], input_keys=['ActionForms', 'OriginalPose']) with _sm_do_the_actions_6: # x:85 y:33 OperatableStateMachine.add('set i', SetKey(Value=0), transitions={'done': 'is form?'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'index'}) # x:48 y:339 OperatableStateMachine.add( 'GetForm', FlexibleCalculationState(calculation=lambda x: x[0][x[1]], input_keys=["ActionForms", "index"]), transitions={'done': 'Action_Executor'}, autonomy={'done': Autonomy.Off}, remapping={ 'ActionForms': 'ActionForms', 'index': 'index', 'output_value': 'ActionForm' }) # x:57 y:131 OperatableStateMachine.add( 'is form?', FlexibleCheckConditionState( predicate=lambda x: x[1] < len(x[0]), input_keys=["ActionForms", "index"]), transitions={ 'true': 'set setp', 'false': 'finished' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }, remapping={ 'ActionForms': 'ActionForms', 'index': 'index' }) # x:204 y:237 OperatableStateMachine.add( '++i', CalculationState(calculation=lambda x: x + 1), transitions={'done': 'is form?'}, autonomy={'done': Autonomy.Off}, remapping={ 'input_value': 'index', 'output_value': 'index' }) # x:72 y:479 OperatableStateMachine.add( 'Action_Executor', self.use_behavior(sara_flexbe_behaviors__Action_ExecutorSM, 'Do the actions/Action_Executor'), transitions={ 'finished': '++i', 'failed': 'failed', 'critical_fail': 'critical fail' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit, 'critical_fail': Autonomy.Inherit }, remapping={'Action': 'ActionForm'}) # x:45 y:241 OperatableStateMachine.add('set setp', StoryboardSetStepKey(), transitions={'done': 'GetForm'}, autonomy={'done': Autonomy.Off}, remapping={'step': 'index'}) # x:424 y:175 _sm_initialisation_7 = OperatableStateMachine( outcomes=['done'], input_keys=['PositionBras', 'EntryName']) with _sm_initialisation_7: # x:62 y:79 OperatableStateMachine.add( 'Action_Pass_Door', self.use_behavior(sara_flexbe_behaviors__Action_Pass_DoorSM, 'Initialisation/Action_Pass_Door'), transitions={ 'Done': 'set step', 'Fail': 'done' }, autonomy={ 'Done': Autonomy.Inherit, 'Fail': Autonomy.Inherit }, remapping={'DoorName': 'EntryName'}) # x:70 y:306 OperatableStateMachine.add('set story', Set_Story(titre="GPSR", storyline=[]), transitions={'done': 'bras en lair'}, autonomy={'done': Autonomy.Off}) # x:288 y:375 OperatableStateMachine.add( 'say start', SaraSay(sentence="I'm ready to start the GPSR scenario.", input_keys=[], emotion=1, block=True), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}) # x:78 y:205 OperatableStateMachine.add('set step', Set_a_step(step=0), transitions={'done': 'set story'}, autonomy={'done': Autonomy.Off}) # x:101 y:395 OperatableStateMachine.add('bras en lair', MoveitMove(move=True, waitForExecution=False, group="RightArm"), transitions={ 'done': 'say start', 'failed': 'say start' }, autonomy={ 'done': Autonomy.Off, 'failed': Autonomy.Off }, remapping={'target': 'PositionBras'}) with _state_machine: # x:33 y:103 OperatableStateMachine.add('Initialisation', _sm_initialisation_7, transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Inherit}, remapping={ 'PositionBras': 'PositionBras', 'EntryName': 'EntryName' }) # x:767 y:196 OperatableStateMachine.add('Do the actions', _sm_do_the_actions_6, transitions={ 'finished': 'say succseed', 'failed': 'Fail state', 'critical fail': 'critical' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit, 'critical fail': Autonomy.Inherit }, remapping={ 'ActionForms': 'ActionForms', 'OriginalPose': 'OriginalPose' }) # x:250 y:126 OperatableStateMachine.add( 'Fail state', _sm_fail_state_5, transitions={ 'finished': 'lift head', 'failed': 'critical' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'StartPosition': 'StartPosition'}) # x:250 y:257 OperatableStateMachine.add( 'critical', SaraSay( sentence="Critical failure! I require medical assistance.", input_keys=[], emotion=1, block=True), transitions={'done': 'failed'}, autonomy={'done': Autonomy.Off}) # x:52 y:468 OperatableStateMachine.add('for 3', ForLoop(repeat=3), transitions={ 'do': 'GetOriginalPose', 'end': 'End' }, autonomy={ 'do': Autonomy.Off, 'end': Autonomy.Off }, remapping={'index': 'index'}) # x:747 y:475 OperatableStateMachine.add('say succseed', SaraSay( sentence="I succeed my mission.", input_keys=[], emotion=1, block=True), transitions={'done': 'for 3'}, autonomy={'done': Autonomy.Off}) # x:204 y:368 OperatableStateMachine.add('Interact operator', _sm_interact_operator_4, transitions={ 'fail': 'critical', 'understood': 'set step' }, autonomy={ 'fail': Autonomy.Inherit, 'understood': Autonomy.Inherit }, remapping={ 'ActionForms': 'ActionForms', 'sentence': 'sentence' }) # x:553 y:316 OperatableStateMachine.add('set story', StoryboardSetStoryFromAction(), transitions={'done': 'Do the actions'}, autonomy={'done': Autonomy.Off}, remapping={ 'titre': 'title', 'actionList': 'ActionForms' }) # x:404 y:377 OperatableStateMachine.add('set step', Set_a_step(step=0), transitions={'done': 'set story'}, autonomy={'done': Autonomy.Off}) # x:41 y:375 OperatableStateMachine.add( 'GetOriginalPose', Get_Robot_Pose(), transitions={'done': 'Interact operator'}, autonomy={'done': Autonomy.Off}, remapping={'pose': 'OriginalPose'}) # x:37 y:564 OperatableStateMachine.add('End', _sm_end_3, transitions={'done': 'finished'}, autonomy={'done': Autonomy.Inherit}, remapping={'ExitName': 'ExitName'}) # x:30 y:288 OperatableStateMachine.add('lift head', SaraSetHeadAngle(pitch=-0.3, yaw=0), transitions={'done': 'GetOriginalPose'}, autonomy={'done': Autonomy.Off}) # x:48 y:23 OperatableStateMachine.add('ContinueButton', ContinueButton(), transitions={ 'true': 'Initialisation', 'false': 'Initialisation' }, autonomy={ 'true': Autonomy.Off, 'false': Autonomy.Off }) # x:21 y:185 OperatableStateMachine.add( 'Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'Action_Move'), transitions={ 'finished': 'lift head', 'failed': 'critical' }, autonomy={ 'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit }, remapping={'pose': 'StartPosition'}) return _state_machine
def create(self): # x:738 y:371, x:736 y:220 _state_machine = OperatableStateMachine(outcomes=['finished', 'failed']) _state_machine.userdata.bin1Waypoint = "trash bin 2" _state_machine.userdata.bin2Waypoint = "trash bin" _state_machine.userdata.bin1Height = "1" _state_machine.userdata.bin2Height = "1" _state_machine.userdata.dropzone1Waypoint = "drop_zone1" _state_machine.userdata.dropzone2Waypoint = "drop_zone2" _state_machine.userdata.DoorName = "door_1_entry" _state_machine.userdata.exit_door = "door_2_exit" # Additional creation code can be added inside the following tags # [MANUAL_CREATE] # [/MANUAL_CREATE] # x:810 y:644, x:808 y:125 _sm_go_to_drop_the_bag_0 = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['dropzoneWaypoint', 'exit_door']) with _sm_go_to_drop_the_bag_0: # x:84 y:36 OperatableStateMachine.add('say drop', SaraSay(sentence="I will go and drop this bag in the drop zone.", input_keys=[], emotion=0, block=False), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:66 y:598 OperatableStateMachine.add('open the gripper', SetGripperState(width=0.1, effort=1), transitions={'object': 'go to pose transport', 'no_object': 'go to pose transport'}, autonomy={'object': Autonomy.Off, 'no_object': Autonomy.Off}, remapping={'object_size': 'object_size'}) # x:341 y:469 OperatableStateMachine.add('say cant go to drop zone', SaraSay(sentence="I am not able to go to the drop zone. I will put the bag here and go to the second bin.", input_keys=[], emotion=0, block=True), transitions={'done': 'run depose sac'}, autonomy={'done': Autonomy.Off}) # x:74 y:490 OperatableStateMachine.add('run depose sac', RunTrajectory(file="poubelle_depose", duration=10), transitions={'done': 'open the gripper'}, autonomy={'done': Autonomy.Off}) # x:69 y:726 OperatableStateMachine.add('go to pose transport', RunTrajectory(file="transport", duration=0), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:76 y:386 OperatableStateMachine.add('Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'First bin/go to drop the bag/Action_Move'), transitions={'finished': 'run depose sac', 'failed': 'say cant go to drop zone'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'dropzoneWaypoint'}) # x:570 y:519, x:575 y:330 _sm_find_the_bin_1 = OperatableStateMachine(outcomes=['finished', 'failed']) with _sm_find_the_bin_1: # x:89 y:62 OperatableStateMachine.add('place arm', RunTrajectory(file="poubelle_init", duration=0), transitions={'done': 'leve la tete'}, autonomy={'done': Autonomy.Off}) # x:270 y:378 OperatableStateMachine.add('get waypoint', Get_Reacheable_Waypoint(), transitions={'done': 'move'}, autonomy={'done': Autonomy.Off}, remapping={'pose_in': 'detectedBin', 'distance': 'distanceToBin', 'pose_out': 'poseToBin'}) # x:296 y:284 OperatableStateMachine.add('set distance to bin', SetKey(Value=0.5), transitions={'done': 'get waypoint'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'distanceToBin'}) # x:278 y:201 OperatableStateMachine.add('pose form lidar to map', TF_transformation(in_ref="front_hokuyo_link", out_ref="map"), transitions={'done': 'set distance to bin', 'fail': 'failed'}, autonomy={'done': Autonomy.Off, 'fail': Autonomy.Off}, remapping={'in_pos': 'detectedObstacle', 'out_pos': 'detectedBin'}) # x:80 y:514 OperatableStateMachine.add('redo ajustements de la position', ForLoop(repeat=2), transitions={'do': 'find closest obstacle point', 'end': 'finished'}, autonomy={'do': Autonomy.Off, 'end': Autonomy.Off}, remapping={'index': 'index'}) # x:87 y:129 OperatableStateMachine.add('find closest obstacle point', GetClosestObstacle(topic="/scan", maximumDistance=2), transitions={'done': 'pose form lidar to map'}, autonomy={'done': Autonomy.Off}, remapping={'Angle': 'Angle', 'distance': 'distance', 'position': 'detectedObstacle'}) # x:288 y:77 OperatableStateMachine.add('leve la tete', SaraSetHeadAngle(pitch=0, yaw=0), transitions={'done': 'find closest obstacle point'}, autonomy={'done': Autonomy.Off}) # x:287 y:464 OperatableStateMachine.add('move', SaraMoveBase(reference="map"), transitions={'arrived': 'redo ajustements de la position', 'failed': 'failed'}, autonomy={'arrived': Autonomy.Off, 'failed': Autonomy.Off}, remapping={'pose': 'poseToBin'}) # x:573 y:546, x:622 y:92 _sm_go_to_bin_2 = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['bin1Waypoint']) with _sm_go_to_bin_2: # x:86 y:104 OperatableStateMachine.add('bras sur le cote', RunTrajectory(file="poubelle_transport", duration=0), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:254 y:199 OperatableStateMachine.add('Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'First bin/go to bin/Action_Move'), transitions={'finished': 'finished', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'bin1Waypoint'}) # x:600 y:617, x:666 y:442 _sm_find_the_bin_3 = OperatableStateMachine(outcomes=['finished', 'failed']) with _sm_find_the_bin_3: # x:89 y:62 OperatableStateMachine.add('place arm', RunTrajectory(file="poubelle_init", duration=0), transitions={'done': 'leve la tete'}, autonomy={'done': Autonomy.Off}) # x:268 y:410 OperatableStateMachine.add('get waypoint', Get_Reacheable_Waypoint(), transitions={'done': 'move'}, autonomy={'done': Autonomy.Off}, remapping={'pose_in': 'detectedBin', 'distance': 'distanceToBin', 'pose_out': 'poseToBin'}) # x:293 y:326 OperatableStateMachine.add('set distance to bin', SetKey(Value=0.5), transitions={'done': 'get waypoint'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'distanceToBin'}) # x:278 y:238 OperatableStateMachine.add('pose form lidar to map', TF_transformation(in_ref="front_hokuyo_link", out_ref="map"), transitions={'done': 'set distance to bin', 'fail': 'failed'}, autonomy={'done': Autonomy.Off, 'fail': Autonomy.Off}, remapping={'in_pos': 'detectedObstacle', 'out_pos': 'detectedBin'}) # x:80 y:598 OperatableStateMachine.add('redo ajustements de la position', ForLoop(repeat=2), transitions={'do': 'find closest obstacle point', 'end': 'finished'}, autonomy={'do': Autonomy.Off, 'end': Autonomy.Off}, remapping={'index': 'index'}) # x:89 y:168 OperatableStateMachine.add('find closest obstacle point', GetClosestObstacle(topic="/scan", maximumDistance=2), transitions={'done': 'pose form lidar to map'}, autonomy={'done': Autonomy.Off}, remapping={'Angle': 'Angle', 'distance': 'distance', 'position': 'detectedObstacle'}) # x:288 y:104 OperatableStateMachine.add('leve la tete', SaraSetHeadAngle(pitch=0, yaw=0), transitions={'done': 'find closest obstacle point'}, autonomy={'done': Autonomy.Off}) # x:285 y:504 OperatableStateMachine.add('move', SaraMoveBase(reference="map"), transitions={'arrived': 'redo ajustements de la position', 'failed': 'failed'}, autonomy={'arrived': Autonomy.Off, 'failed': Autonomy.Off}, remapping={'pose': 'poseToBin'}) # x:30 y:365, x:130 y:365 _sm_go_to_bin_4 = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['bin2Waypoint']) with _sm_go_to_bin_4: # x:59 y:100 OperatableStateMachine.add('bras sur le cote', RunTrajectory(file="poubelle_transport", duration=0), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:254 y:199 OperatableStateMachine.add('Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'second bin/go to bin/Action_Move'), transitions={'finished': 'finished', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'bin2Waypoint'}) # x:418 y:580, x:694 y:339 _sm_go_to_drop_the_bag_5 = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['dropzoneWaypoint', 'exit_door']) with _sm_go_to_drop_the_bag_5: # x:65 y:215 OperatableStateMachine.add('Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'second bin/go to drop the bag/Action_Move'), transitions={'finished': 'run depose sac', 'failed': 'say cant go to drop zone'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'dropzoneWaypoint'}) # x:385 y:324 OperatableStateMachine.add('say cant go to drop zone', SaraSay(sentence="I am not able to go to the drop zone. I will put the bag here.", input_keys=[], emotion=0, block=True), transitions={'done': 'run depose sac'}, autonomy={'done': Autonomy.Off}) # x:76 y:340 OperatableStateMachine.add('run depose sac', RunTrajectory(file="poubelle_depose", duration=10), transitions={'done': 'open the gripper'}, autonomy={'done': Autonomy.Off}) # x:74 y:505 OperatableStateMachine.add('go to pose transport', RunTrajectory(file="transport", duration=0), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:74 y:426 OperatableStateMachine.add('open the gripper', SetGripperState(width=0.1, effort=1), transitions={'object': 'go to pose transport', 'no_object': 'go to pose transport'}, autonomy={'object': Autonomy.Off, 'no_object': Autonomy.Off}, remapping={'object_size': 'object_size'}) # x:704 y:599, x:717 y:53 _sm_first_bin_6 = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['bin1Waypoint', 'bin1Height', 'dropzoneWaypoint', 'exit_door']) with _sm_first_bin_6: # x:57 y:26 OperatableStateMachine.add('Init_Sequence', self.use_behavior(sara_flexbe_behaviors__Init_SequenceSM, 'First bin/Init_Sequence'), transitions={'finished': 'go to bin', 'failed': 'go to bin'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:257 y:329 OperatableStateMachine.add('Action_TakeBag', self.use_behavior(sara_flexbe_behaviors__Action_TakeBagSM, 'First bin/Action_TakeBag'), transitions={'finished': 'go to drop the bag', 'failed': 'Missed It once'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:275 y:35 OperatableStateMachine.add('go to bin', _sm_go_to_bin_2, transitions={'finished': 'find the bin', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'bin1Waypoint': 'bin1Waypoint'}) # x:286 y:164 OperatableStateMachine.add('find the bin', _sm_find_the_bin_1, transitions={'finished': 'Try twice', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:292 y:234 OperatableStateMachine.add('Try twice', ForLoop(repeat=1), transitions={'do': 'Action_TakeBag', 'end': 'failed'}, autonomy={'do': Autonomy.Off, 'end': Autonomy.Off}, remapping={'index': 'index'}) # x:102 y:262 OperatableStateMachine.add('Missed It once', SaraSay(sentence="I will try one more time.", input_keys=[], emotion=0, block=True), transitions={'done': 'Try twice'}, autonomy={'done': Autonomy.Off}) # x:267 y:432 OperatableStateMachine.add('go to drop the bag', _sm_go_to_drop_the_bag_0, transitions={'finished': 'finished', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'dropzoneWaypoint': 'dropzoneWaypoint', 'exit_door': 'exit_door'}) # x:946 y:467, x:907 y:75 _sm_second_bin_7 = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['bin2Waypoint', 'bin2Height', 'dropzoneWaypoint', 'exit_door']) with _sm_second_bin_7: # x:57 y:26 OperatableStateMachine.add('Init_Sequence', self.use_behavior(sara_flexbe_behaviors__Init_SequenceSM, 'second bin/Init_Sequence'), transitions={'finished': 'go to bin', 'failed': 'go to bin'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:267 y:432 OperatableStateMachine.add('go to drop the bag', _sm_go_to_drop_the_bag_5, transitions={'finished': 'finished', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'dropzoneWaypoint': 'dropzoneWaypoint', 'exit_door': 'exit_door'}) # x:257 y:346 OperatableStateMachine.add('Action_TakeBag', self.use_behavior(sara_flexbe_behaviors__Action_TakeBagSM, 'second bin/Action_TakeBag'), transitions={'finished': 'go to drop the bag', 'failed': 'Missed It once'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:275 y:35 OperatableStateMachine.add('go to bin', _sm_go_to_bin_4, transitions={'finished': 'find the bin', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'bin2Waypoint': 'bin2Waypoint'}) # x:286 y:164 OperatableStateMachine.add('find the bin', _sm_find_the_bin_3, transitions={'finished': 'Try twice', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:298 y:254 OperatableStateMachine.add('Try twice', ForLoop(repeat=1), transitions={'do': 'Action_TakeBag', 'end': 'failed'}, autonomy={'do': Autonomy.Off, 'end': Autonomy.Off}, remapping={'index': 'index'}) # x:102 y:262 OperatableStateMachine.add('Missed It once', SaraSay(sentence="I will try one more time.", input_keys=[], emotion=0, block=True), transitions={'done': 'Try twice'}, autonomy={'done': Autonomy.Off}) with _state_machine: # x:15 y:242 OperatableStateMachine.add('button', ContinueButton(), transitions={'true': 'Action_Pass_Door', 'false': 'Action_Pass_Door'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}) # x:485 y:201 OperatableStateMachine.add('try second bin', SaraSay(sentence="I failed to take out the garbage from the first bin but I will try the second bin.", input_keys=[], emotion=0, block=True), transitions={'done': 'second bin'}, autonomy={'done': Autonomy.Off}) # x:267 y:199 OperatableStateMachine.add('say take second bag', SaraSay(sentence="Good! I will now get rid of the second bag.", input_keys=[], emotion=0, block=True), transitions={'done': 'second bin'}, autonomy={'done': Autonomy.Off}) # x:267 y:376 OperatableStateMachine.add('second bin', _sm_second_bin_7, transitions={'finished': 'finished', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'bin2Waypoint': 'bin2Waypoint', 'bin2Height': 'bin2Height', 'dropzoneWaypoint': 'dropzone2Waypoint', 'exit_door': 'exit_door'}) # x:94 y:153 OperatableStateMachine.add('IllManageSomehow', SaraSay(sentence="Hmmm. This is a hard door to pass...", input_keys=[], emotion=0, block=True), transitions={'done': 'First bin'}, autonomy={'done': Autonomy.Off}) # x:277 y:63 OperatableStateMachine.add('First bin', _sm_first_bin_6, transitions={'finished': 'say take second bag', 'failed': 'try second bin'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'bin1Waypoint': 'bin1Waypoint', 'bin1Height': 'bin1Height', 'dropzoneWaypoint': 'dropzone1Waypoint', 'exit_door': 'exit_door'}) # x:65 y:53 OperatableStateMachine.add('Action_Pass_Door', self.use_behavior(sara_flexbe_behaviors__Action_Pass_DoorSM, 'Action_Pass_Door'), transitions={'Done': 'First bin', 'Fail': 'IllManageSomehow'}, autonomy={'Done': Autonomy.Inherit, 'Fail': Autonomy.Inherit}, remapping={'DoorName': 'DoorName'}) return _state_machine
def create(self): # x:832 y:260, x:728 y:256 _state_machine = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['ID']) _state_machine.userdata.ID = 0 _state_machine.userdata.Closed_Gripper_Width = 1 _state_machine.userdata.Open_Gripper_Width = 255 _state_machine.userdata.Relative = False _state_machine.userdata.Pose_Init = "IdlePose" _state_machine.userdata.dropPose = "DropBagPose" _state_machine.userdata.EntryDoor = "door1/enter" _state_machine.userdata.ExitDoor = "door1/exit" # Additional creation code can be added inside the following tags # [MANUAL_CREATE] # [/MANUAL_CREATE] # x:700 y:231, x:418 y:463 _sm_ecoute_getpose_0 = OperatableStateMachine(outcomes=['arrete', 'fail']) with _sm_ecoute_getpose_0: # x:53 y:35 OperatableStateMachine.add('Ecoute', GetSpeech(watchdog=5), transitions={'done': 'stop', 'nothing': 'Ecoute', 'fail': 'fail'}, autonomy={'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off}, remapping={'words': 'words'}) # x:373 y:215 OperatableStateMachine.add('stop', RegexTester(regex=".*stop.*"), transitions={'true': 'arrete', 'false': 'Ecoute'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}, remapping={'text': 'words', 'result': 'result'}) # x:350 y:105, x:261 y:311 _sm_get_operator_id_1 = OperatableStateMachine(outcomes=['not_found', 'done'], output_keys=['ID']) with _sm_get_operator_id_1: # x:42 y:30 OperatableStateMachine.add('nom', SetKey(Value="person"), transitions={'done': 'FindId'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'name'}) # x:37 y:347 OperatableStateMachine.add('setID', SetRosParam(ParamName="OperatorID"), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}, remapping={'Value': 'ID'}) # x:30 y:112 OperatableStateMachine.add('FindId', list_entities_by_name(frontality_level=0.5, distance_max=10), transitions={'found': 'GetID', 'none_found': 'not_found'}, autonomy={'found': Autonomy.Off, 'none_found': Autonomy.Off}, remapping={'name': 'name', 'entity_list': 'Entities_list', 'number': 'number'}) # x:38 y:238 OperatableStateMachine.add('GetID', CalculationState(calculation=lambda x: x[0].ID), transitions={'done': 'setID'}, autonomy={'done': Autonomy.Off}, remapping={'input_value': 'Entities_list', 'output_value': 'ID'}) # x:346 y:367, x:610 y:472, x:230 y:365, x:628 y:425, x:619 y:318, x:54 y:367 _sm_follow_2 = ConcurrencyContainer(outcomes=['done', 'failed', 'not_found'], input_keys=['ID', 'distance'], output_keys=['Position'], conditions=[ ('not_found', [('Action_follow', 'failed')]), ('done', [('Ecoute_getPose', 'arrete')]), ('failed', [('Ecoute_getPose', 'fail')]) ]) with _sm_follow_2: # x:107 y:103 OperatableStateMachine.add('Action_follow', self.use_behavior(sara_flexbe_behaviors__Action_followSM, 'Getting ID Operator and follow /Follow/Action_follow'), transitions={'failed': 'not_found'}, autonomy={'failed': Autonomy.Inherit}, remapping={'ID': 'ID'}) # x:294 y:146 OperatableStateMachine.add('Ecoute_getPose', _sm_ecoute_getpose_0, transitions={'arrete': 'done', 'fail': 'failed'}, autonomy={'arrete': Autonomy.Inherit, 'fail': Autonomy.Inherit}) # x:57 y:371, x:419 y:55 _sm_waiting_for_operator_3 = OperatableStateMachine(outcomes=['done', 'failed']) with _sm_waiting_for_operator_3: # x:57 y:67 OperatableStateMachine.add('getSpeech', GetSpeech(watchdog=15), transitions={'done': 'UnderstandingOpe', 'nothing': 'failed', 'fail': 'failed'}, autonomy={'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off}, remapping={'words': 'words'}) # x:53 y:249 OperatableStateMachine.add('start', SaraSay(sentence="I will follow you. Tell me when to stop.", input_keys=[], emotion=1, block=True), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}) # x:203 y:180 OperatableStateMachine.add('UnderstandingOpe', RegexTester(regex=".*follow.*"), transitions={'true': 'start', 'false': 'failed'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}, remapping={'text': 'words', 'result': 'result'}) # x:130 y:365 _sm_look_at_4 = OperatableStateMachine(outcomes=['failed']) with _sm_look_at_4: # x:105 y:160 OperatableStateMachine.add('LookAtClosest', self.use_behavior(sara_flexbe_behaviors__LookAtClosestSM, 'Recevoir sac/Look at/LookAtClosest'), transitions={'failed': 'failed'}, autonomy={'failed': Autonomy.Inherit}) # x:280 y:296, x:248 y:549 _sm_receive_bag_5 = OperatableStateMachine(outcomes=['failed', 'done'], input_keys=['Closed_Gripper_Width', 'Open_Gripper_Width']) with _sm_receive_bag_5: # x:42 y:326 OperatableStateMachine.add('PutBAg', SaraSay(sentence="Please put the grocery bag in my hand", input_keys=[], emotion=1, block=False), transitions={'done': 'Action_Receive_Bag'}, autonomy={'done': Autonomy.Off}) # x:18 y:427 OperatableStateMachine.add('Action_Receive_Bag', self.use_behavior(sara_flexbe_behaviors__Action_Receive_BagSM, 'Recevoir sac/Receive bag/Action_Receive_Bag'), transitions={'finished': 'bringit', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'Closed_Gripper_Width': 'Closed_Gripper_Width', 'Open_Gripper_Width': 'Open_Gripper_Width', 'Closed_Gripper_Width': 'Closed_Gripper_Width'}) # x:66 y:125 OperatableStateMachine.add('getspeech2', GetSpeech(watchdog=5), transitions={'done': 'takebag', 'nothing': 'getspeech2', 'fail': 'failed'}, autonomy={'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off}, remapping={'words': 'words'}) # x:64 y:218 OperatableStateMachine.add('takebag', RegexTester(regex=".*((take)|(bag)|(ready)).*"), transitions={'true': 'PutBAg', 'false': 'getspeech2'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}, remapping={'text': 'words', 'result': 'result'}) # x:42 y:531 OperatableStateMachine.add('bringit', SaraSay(sentence="I will bring it inside", input_keys=[], emotion=1, block=True), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}) # x:77 y:40 OperatableStateMachine.add('sac', SaraSay(sentence="Ok. Tell me, when you are ready", input_keys=[], emotion=1, block=True), transitions={'done': 'getspeech2'}, autonomy={'done': Autonomy.Off}) # x:147 y:579 _sm_look_at_closest_6 = OperatableStateMachine(outcomes=['failed'], output_keys=['Entity']) with _sm_look_at_closest_6: # x:40 y:39 OperatableStateMachine.add('set person', SetKey(Value="person"), transitions={'done': 'head angle'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'Person'}) # x:36 y:119 OperatableStateMachine.add('head angle', SaraSetHeadAngle(pitch=-0.3, yaw=0), transitions={'done': 'get persons'}, autonomy={'done': Autonomy.Off}) # x:271 y:149 OperatableStateMachine.add('get persons', list_entities_by_name(frontality_level=0.5, distance_max=2), transitions={'found': 'set person', 'none_found': 'get persons'}, autonomy={'found': Autonomy.Off, 'none_found': Autonomy.Off}, remapping={'name': 'Person', 'entity_list': 'entity_list', 'number': 'number'}) # x:30 y:365 _sm_get_op_7 = OperatableStateMachine(outcomes=['true']) with _sm_get_op_7: # x:76 y:40 OperatableStateMachine.add('Say Joke', SaraSay(sentence="Can someone come help me, I only have one arm.", input_keys=[], emotion=1, block=True), transitions={'done': 'ecouteNewPerson'}, autonomy={'done': Autonomy.Off}) # x:208 y:255 OperatableStateMachine.add('listen', RegexTester(regex=".*((i)|(come)|(help)).*"), transitions={'true': 'true', 'false': 'ecouteNewPerson'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}, remapping={'text': 'words', 'result': 'result'}) # x:32 y:106 OperatableStateMachine.add('ecouteNewPerson', GetSpeech(watchdog=5), transitions={'done': 'listen', 'nothing': 'ecouteNewPerson', 'fail': 'ecouteNewPerson'}, autonomy={'done': Autonomy.Off, 'nothing': Autonomy.Off, 'fail': Autonomy.Off}, remapping={'words': 'words'}) # x:65 y:357, x:130 y:365, x:230 y:365 _sm_get_ope_8 = ConcurrencyContainer(outcomes=['true'], output_keys=['Entity'], conditions=[ ('true', [('get op', 'true')]), ('true', [('look at closest', 'failed')]) ]) with _sm_get_ope_8: # x:37 y:35 OperatableStateMachine.add('get op', _sm_get_op_7, transitions={'true': 'true'}, autonomy={'true': Autonomy.Inherit}) # x:238 y:109 OperatableStateMachine.add('look at closest', _sm_look_at_closest_6, transitions={'failed': 'true'}, autonomy={'failed': Autonomy.Inherit}, remapping={'Entity': 'Entity'}) # x:37 y:417, x:236 y:263 _sm_init_sara_9 = OperatableStateMachine(outcomes=['done', 'failed'], input_keys=['Pose_Init'], output_keys=['Origin']) with _sm_init_sara_9: # x:30 y:40 OperatableStateMachine.add('get_pose', Get_Robot_Pose(), transitions={'done': 'SETHEAD'}, autonomy={'done': Autonomy.Off}, remapping={'pose': 'Origin'}) # x:24 y:259 OperatableStateMachine.add('Init Arm', MoveitMove(move=True, waitForExecution=True, group="RightArm"), transitions={'done': 'done', 'failed': 'failed'}, autonomy={'done': Autonomy.Off, 'failed': Autonomy.Off}, remapping={'target': 'Pose_Init'}) # x:23 y:183 OperatableStateMachine.add('SETHEAD', SaraSetHeadAngle(pitch=0, yaw=0), transitions={'done': 'Init Arm'}, autonomy={'done': Autonomy.Off}) # x:92 y:291, x:242 y:133 _sm_exitarena_10 = OperatableStateMachine(outcomes=['finished', 'failed'], input_keys=['ExitDoor']) with _sm_exitarena_10: # x:38 y:119 OperatableStateMachine.add('Action_Pass_Door', self.use_behavior(sara_flexbe_behaviors__Action_Pass_DoorSM, 'ExitArena/Action_Pass_Door'), transitions={'Done': 'finished', 'Fail': 'failed'}, autonomy={'Done': Autonomy.Inherit, 'Fail': Autonomy.Inherit}, remapping={'DoorName': 'ExitDoor'}) # x:353 y:529, x:369 y:296 _sm_enter_arena_11 = OperatableStateMachine(outcomes=['done', 'fail'], input_keys=['EntryDoor']) with _sm_enter_arena_11: # x:132 y:147 OperatableStateMachine.add('Action_Pass_Door', self.use_behavior(sara_flexbe_behaviors__Action_Pass_DoorSM, 'Enter arena/Action_Pass_Door'), transitions={'Done': 'say start', 'Fail': 'fail'}, autonomy={'Done': Autonomy.Inherit, 'Fail': Autonomy.Inherit}, remapping={'DoorName': 'EntryDoor'}) # x:124 y:501 OperatableStateMachine.add('say help', SaraSay(sentence="Hi, i will help you carry some bags. LEt me know when you need me", input_keys=[], emotion=1, block=True), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}) # x:146 y:256 OperatableStateMachine.add('say start', SaraSay(sentence="", input_keys=[], emotion=1, block=True), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:121 y:375 OperatableStateMachine.add('Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'Enter arena/Action_Move'), transitions={'finished': 'say help', 'failed': 'fail'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'EntryDoor'}) # x:372 y:428, x:389 y:477 _sm_getting_id_operator_and_follow__12 = OperatableStateMachine(outcomes=['failed', 'done'], output_keys=['Position']) with _sm_getting_id_operator_and_follow__12: # x:70 y:115 OperatableStateMachine.add('Waiting for operator', _sm_waiting_for_operator_3, transitions={'done': 'Get operator ID', 'failed': 'Waiting for operator'}, autonomy={'done': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:71 y:504 OperatableStateMachine.add('get pose', Get_Robot_Pose(), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}, remapping={'pose': 'Position'}) # x:69 y:415 OperatableStateMachine.add('Follow', _sm_follow_2, transitions={'done': 'get pose', 'failed': 'failed', 'not_found': 'initial'}, autonomy={'done': Autonomy.Inherit, 'failed': Autonomy.Inherit, 'not_found': Autonomy.Inherit}, remapping={'ID': 'ID', 'distance': 'distance', 'Position': 'Position'}) # x:60 y:222 OperatableStateMachine.add('Get operator ID', _sm_get_operator_id_1, transitions={'not_found': 'Get operator ID', 'done': 'set follow distance'}, autonomy={'not_found': Autonomy.Inherit, 'done': Autonomy.Inherit}, remapping={'ID': 'ID'}) # x:60 y:324 OperatableStateMachine.add('set follow distance', SetKey(Value="0.5"), transitions={'done': 'Follow'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'distance'}) # x:286 y:327 OperatableStateMachine.add('initial', SaraSetHeadAngle(pitch=0, yaw=0), transitions={'done': 'Get operator ID'}, autonomy={'done': Autonomy.Off}) # x:247 y:123, x:282 y:200, x:230 y:365 _sm_drop_le_sac_13 = OperatableStateMachine(outcomes=['failed', 'no_object', 'done'], input_keys=['Idle', 'dropPose']) with _sm_drop_le_sac_13: # x:22 y:114 OperatableStateMachine.add('dropbag', MoveitMove(move=True, waitForExecution=True, group="RightArm"), transitions={'done': 'Open', 'failed': 'failed'}, autonomy={'done': Autonomy.Off, 'failed': Autonomy.Off}, remapping={'target': 'dropPose'}) # x:5 y:344 OperatableStateMachine.add('close', SetGripperState(width=0, effort=1), transitions={'object': 'returnIdl', 'no_object': 'returnIdl'}, autonomy={'object': Autonomy.Off, 'no_object': Autonomy.Off}, remapping={'object_size': 'object_size'}) # x:19 y:268 OperatableStateMachine.add('wait', WaitState(wait_time=2), transitions={'done': 'close'}, autonomy={'done': Autonomy.Off}) # x:8 y:433 OperatableStateMachine.add('returnIdl', MoveitMove(move=True, waitForExecution=True, group="RightArm"), transitions={'done': 'done', 'failed': 'failed'}, autonomy={'done': Autonomy.Off, 'failed': Autonomy.Off}, remapping={'target': 'Idle'}) # x:10 y:190 OperatableStateMachine.add('Open', SetGripperState(width=0.1, effort=1), transitions={'object': 'wait', 'no_object': 'no_object'}, autonomy={'object': Autonomy.Off, 'no_object': Autonomy.Off}, remapping={'object_size': 'object_size'}) # x:555 y:54, x:568 y:190 _sm_retour_maison_14 = OperatableStateMachine(outcomes=['done', 'failed'], input_keys=['PoseOrigin', 'Relative']) with _sm_retour_maison_14: # x:54 y:63 OperatableStateMachine.add('keydistance', SetKey(Value=0), transitions={'done': 'adapt the end pose'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'distance'}) # x:258 y:51 OperatableStateMachine.add('Arrived', SaraSay(sentence="I have food, people. I will drop the bags on the floor.", input_keys=[], emotion=1, block=True), transitions={'done': 'done'}, autonomy={'done': Autonomy.Off}) # x:43 y:141 OperatableStateMachine.add('adapt the end pose', Get_Reacheable_Waypoint(), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}, remapping={'pose_in': 'PoseOrigin', 'distance': 'distance', 'pose_out': 'pose_out'}) # x:236 y:182 OperatableStateMachine.add('Action_Move', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'Retour maison/Action_Move'), transitions={'finished': 'Arrived', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'pose_out'}) # x:30 y:365, x:130 y:365, x:230 y:365, x:330 y:365, x:430 y:365 _sm_recevoir_sac_15 = ConcurrencyContainer(outcomes=['failed', 'done'], input_keys=['Closed_Gripper_Width', 'Open_Gripper_Width'], conditions=[ ('failed', [('Receive bag', 'failed')]), ('done', [('Receive bag', 'done')]), ('failed', [('Look at', 'failed')]) ]) with _sm_recevoir_sac_15: # x:84 y:156 OperatableStateMachine.add('Receive bag', _sm_receive_bag_5, transitions={'failed': 'failed', 'done': 'done'}, autonomy={'failed': Autonomy.Inherit, 'done': Autonomy.Inherit}, remapping={'Closed_Gripper_Width': 'Closed_Gripper_Width', 'Open_Gripper_Width': 'Open_Gripper_Width'}) # x:262 y:154 OperatableStateMachine.add('Look at', _sm_look_at_4, transitions={'failed': 'failed'}, autonomy={'failed': Autonomy.Inherit}) # x:728 y:533, x:722 y:468 _sm_getnewperson_16 = OperatableStateMachine(outcomes=['done', 'failed'], input_keys=['Position']) with _sm_getnewperson_16: # x:52 y:77 OperatableStateMachine.add('Get ope', _sm_get_ope_8, transitions={'true': 'set name'}, autonomy={'true': Autonomy.Inherit}, remapping={'Entity': 'Entity'}) # x:46 y:508 OperatableStateMachine.add('SET HEAD', SaraSetHeadAngle(pitch=-0.2, yaw=0), transitions={'done': 'Action_Guide2'}, autonomy={'done': Autonomy.Off}) # x:39 y:297 OperatableStateMachine.add('list', list_entities_by_name(frontality_level=0.5, distance_max=2), transitions={'found': 'get closest ID', 'none_found': 'list'}, autonomy={'found': Autonomy.Off, 'none_found': Autonomy.Off}, remapping={'name': 'name', 'entity_list': 'entity_list', 'number': 'number'}) # x:70 y:194 OperatableStateMachine.add('set name', SetKey(Value="person"), transitions={'done': 'list'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'name'}) # x:151 y:413 OperatableStateMachine.add('get closest ID', CalculationState(calculation=lambda x: x[0].ID), transitions={'done': 'SET HEAD'}, autonomy={'done': Autonomy.Off}, remapping={'input_value': 'entity_list', 'output_value': 'ID'}) # x:293 y:534 OperatableStateMachine.add('Action_Guide2', self.use_behavior(sara_flexbe_behaviors__Action_Guide2SM, 'GetNewPerson/Action_Guide2'), transitions={'finished': 'done', 'failed': 'failed', 'critical_fail': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit, 'critical_fail': Autonomy.Inherit}, remapping={'Position': 'Position', 'ID': 'ID'}) # x:57 y:399 OperatableStateMachine.add('set 0', SetKey(Value=0), transitions={'done': 'SET HEAD'}, autonomy={'done': Autonomy.Off}, remapping={'Key': 'ID'}) with _state_machine: # x:188 y:35 OperatableStateMachine.add('say ready', SaraSay(sentence="I'm ready for the help me carry scenario. I will follow when you ask me.", input_keys=[], emotion=1, block=True), transitions={'done': 'INIT SARA'}, autonomy={'done': Autonomy.Off}) # x:827 y:439 OperatableStateMachine.add('finish', SaraSay(sentence="I am done for the day", input_keys=[], emotion=2, block=True), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:53 y:641 OperatableStateMachine.add('GetNewPerson', _sm_getnewperson_16, transitions={'done': 'say leave', 'failed': 'failed'}, autonomy={'done': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'Position': 'Position'}) # x:48 y:349 OperatableStateMachine.add('Recevoir sac', _sm_recevoir_sac_15, transitions={'failed': 'failed', 'done': 'Retour maison'}, autonomy={'failed': Autonomy.Inherit, 'done': Autonomy.Inherit}, remapping={'Closed_Gripper_Width': 'Closed_Gripper_Width', 'Open_Gripper_Width': 'Open_Gripper_Width'}) # x:36 y:448 OperatableStateMachine.add('Retour maison', _sm_retour_maison_14, transitions={'done': 'drop le sac', 'failed': 'failed'}, autonomy={'done': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'PoseOrigin': 'Origin', 'Relative': 'Relative'}) # x:49 y:556 OperatableStateMachine.add('drop le sac', _sm_drop_le_sac_13, transitions={'failed': 'failed', 'no_object': 'failed', 'done': 'GetNewPerson'}, autonomy={'failed': Autonomy.Inherit, 'no_object': Autonomy.Inherit, 'done': Autonomy.Inherit}, remapping={'Idle': 'Pose_Init', 'dropPose': 'dropPose'}) # x:150 y:260 OperatableStateMachine.add('Getting ID Operator and follow ', _sm_getting_id_operator_and_follow__12, transitions={'failed': 'failed', 'done': 'Recevoir sac'}, autonomy={'failed': Autonomy.Inherit, 'done': Autonomy.Inherit}, remapping={'Position': 'Position'}) # x:148 y:177 OperatableStateMachine.add('Enter arena', _sm_enter_arena_11, transitions={'done': 'Getting ID Operator and follow ', 'fail': 'failed'}, autonomy={'done': Autonomy.Inherit, 'fail': Autonomy.Inherit}, remapping={'EntryDoor': 'EntryDoor'}) # x:498 y:617 OperatableStateMachine.add('ExitArena', _sm_exitarena_10, transitions={'finished': 'finish', 'failed': 'failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'ExitDoor': 'ExitDoor'}) # x:389 y:14 OperatableStateMachine.add('ContinueButton', ContinueButton(), transitions={'true': 'say ready', 'false': 'say ready'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}) # x:329 y:645 OperatableStateMachine.add('say leave', SaraSay(sentence="I will leave now. Goodbye", input_keys=[], emotion=1, block=True), transitions={'done': 'ExitArena'}, autonomy={'done': Autonomy.Off}) # x:319 y:101 OperatableStateMachine.add('wait1', WaitState(wait_time=5), transitions={'done': 'say ready'}, autonomy={'done': Autonomy.Off}) # x:35 y:78 OperatableStateMachine.add('INIT SARA', _sm_init_sara_9, transitions={'done': 'Getting ID Operator and follow ', 'failed': 'failed'}, autonomy={'done': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'Pose_Init': 'Pose_Init', 'Origin': 'Origin'}) return _state_machine
def create(self): # x:358 y:506 _state_machine = OperatableStateMachine(outcomes=['finished']) _state_machine.userdata.relative = False _state_machine.userdata.EntryName = "door_1_entry" _state_machine.userdata.container = None _state_machine.userdata.TestName = "living room" _state_machine.userdata.ExitName = "door_2_exit" # Additional creation code can be added inside the following tags # [MANUAL_CREATE] # [/MANUAL_CREATE] with _state_machine: # x:52 y:27 OperatableStateMachine.add('Bouton to start', ContinueButton(), transitions={'true': 'Action_Pass_Door', 'false': 'Bouton to start'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}) # x:41 y:430 OperatableStateMachine.add('Failed', SaraSound(sound="error.wav"), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:328 y:370 OperatableStateMachine.add('Waiting', SaraSound(sound="to_be_continued.wav"), transitions={'done': 'Bouton continuer'}, autonomy={'done': Autonomy.Off}) # x:310 y:111 OperatableStateMachine.add('Move to test zone', self.use_behavior(sara_flexbe_behaviors__Action_MoveSM, 'Move to test zone'), transitions={'finished': 'say ready', 'failed': 'Failed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'TestName'}) # x:329 y:197 OperatableStateMachine.add('say ready', SaraSay(sentence="I'm ready for my safety check. Press the continue button on my back when you are done.", input_keys=[], emotion=1, block=True), transitions={'done': 'Bouton continuer'}, autonomy={'done': Autonomy.Off}) # x:34 y:115 OperatableStateMachine.add('Action_Pass_Door', self.use_behavior(sara_flexbe_behaviors__Action_Pass_DoorSM, 'Action_Pass_Door'), transitions={'Done': 'Move to test zone', 'Fail': 'Failed'}, autonomy={'Done': Autonomy.Inherit, 'Fail': Autonomy.Inherit}, remapping={'DoorName': 'EntryName'}) # x:332 y:282 OperatableStateMachine.add('Bouton continuer', ContinueButton(), transitions={'true': 'say bye', 'false': 'Waiting'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}) # x:513 y:432 OperatableStateMachine.add('Action_Pass_Door_2', self.use_behavior(sara_flexbe_behaviors__Action_Pass_DoorSM, 'Action_Pass_Door_2'), transitions={'Done': 'finished', 'Fail': 'Failed'}, autonomy={'Done': Autonomy.Inherit, 'Fail': Autonomy.Inherit}, remapping={'DoorName': 'ExitName'}) # x:530 y:282 OperatableStateMachine.add('say bye', SaraSay(sentence="Thank you, See you later.", input_keys=[], emotion=1, block=True), transitions={'done': 'Action_Pass_Door_2'}, autonomy={'done': Autonomy.Off}) return _state_machine
def create(self): # x:1141 y:183, x:1069 y:298 _state_machine = OperatableStateMachine(outcomes=['finished', 'failed']) # Additional creation code can be added inside the following tags # [MANUAL_CREATE] # [/MANUAL_CREATE] with _state_machine: # x:30 y:119 OperatableStateMachine.add('coninue', ContinueButton(), transitions={'true': 'GetOrigin', 'false': 'GetOrigin'}, autonomy={'true': Autonomy.Off, 'false': Autonomy.Off}) # x:750 y:145 OperatableStateMachine.add('Farewell_2', self.use_behavior(FarewellSM, 'Farewell_2'), transitions={'finished': 'finish', 'failed': 'didnt succed'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:410 y:182 OperatableStateMachine.add('Try again', SaraSay(sentence="Sorry, I will try with the next person", input_keys=[], emotion=2, block=True), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:403 y:47 OperatableStateMachine.add('say next', SaraSay(sentence="I will now get the net person.", input_keys=[], emotion=0, block=True), transitions={'done': 'Action_Move'}, autonomy={'done': Autonomy.Off}) # x:549 y:98 OperatableStateMachine.add('Action_Move', self.use_behavior(Action_MoveSM, 'Action_Move'), transitions={'finished': 'Farewell_2', 'failed': 'Action_Move'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}, remapping={'pose': 'poseOrigin'}) # x:1020 y:75 OperatableStateMachine.add('finish', SaraSay(sentence="I am done BYe bye", input_keys=[], emotion=0, block=True), transitions={'done': 'finished'}, autonomy={'done': Autonomy.Off}) # x:906 y:243 OperatableStateMachine.add('didnt succed', SaraSay(sentence="I failed sorry", input_keys=[], emotion=0, block=True), transitions={'done': 'failed'}, autonomy={'done': Autonomy.Off}) # x:173 y:106 OperatableStateMachine.add('Farewell', self.use_behavior(FarewellSM, 'Farewell'), transitions={'finished': 'say next', 'failed': 'Try again'}, autonomy={'finished': Autonomy.Inherit, 'failed': Autonomy.Inherit}) # x:39 y:31 OperatableStateMachine.add('GetOrigin', Get_Robot_Pose(), transitions={'done': 'Farewell'}, autonomy={'done': Autonomy.Off}, remapping={'pose': 'poseOrigin'}) return _state_machine