def __init__(self): smach.StateMachine.__init__(self, outcomes=['succeeded', 'preempted', 'aborted'], input_keys=[], output_keys=['pose_current']) with self: # Calculate the actual position smach.StateMachine.add( 'get_actual_pos', get_current_robot_pose(), transitions={'succeeded': 'save_robot_position', 'aborted': 'get_actual_pos', 'preempted': 'succeeded'}) # Save position smach.StateMachine.add( 'save_robot_position', save_robot_position(), transitions={'succeeded': 'sleep_state', 'aborted': 'save_robot_position', 'preempted':'preempted'}) # Sleep smach.StateMachine.add( 'sleep_state', Sleeper(2), transitions={'succeeded': 'check_button', 'aborted': 'check_button', 'preempted':'preempted'}) # Check if the button is pressed smach.StateMachine.add( 'check_button', emergency_button(), transitions= {'succeeded':'succeeded', 'aborted':'get_actual_pos', 'preempted':'preempted'})
def __init__(self): smach.StateMachine.__init__(self, outcomes=['succeeded', 'preempted', 'aborted'], input_keys=[], output_keys=[]) with self: self.userdata.pressed = False self.userdata.press = False self.userdata.tts_time_before_speaking = 0 self.userdata.tts_text = "" self.userdata.tts_lang = "" # Check if the button is pressed smach.StateMachine.add( 'check_button', emergency_button(), transitions= {'succeeded':'check_button_pressed', 'aborted':'check_button', 'preempted':'preempted'}) smach.StateMachine.add( 'check_button_pressed', check_button_pressed(), transitions= {'pressed':'say_pressed_button', 'unpressed':'say_not_pressed_button', 'succeeded':'check_button', 'preempted':'preempted'}) # Say button pressed smach.StateMachine.add( 'say_pressed_button', text_to_say("Oh you pressed my emergency button, feel free to check me around"), transitions= {'succeeded':'check_button', 'aborted':'check_button', 'preempted':'preempted'}) # Say button is not pressed smach.StateMachine.add( 'say_not_pressed_button', text_to_say("Thank you for unpressing my emergency button. I'll recover my status shortly."), transitions= {'succeeded':'succeeded', 'aborted':'succeeded', 'preempted':'preempted'})
def __init__(self): smach.StateMachine.__init__(self, outcomes=['succeeded', 'preempted', 'aborted', 'end'], input_keys=[], output_keys=[]) with self: self.userdata.pressed = False self.userdata.press = False self.userdata.tts_time_before_speaking = 0 self.userdata.tts_text = "" self.userdata.tts_lang = "" # Check if the button is pressed smach.StateMachine.add( 'check_button', emergency_button(), transitions= {'succeeded':'check_button_pressed', 'aborted':'check_button', 'preempted':'preempted'}) #Cas 1 - Crec que es perdra tota l'estona si esta premut o no # transitions= {'succeeded':'check_button_pressed', 'aborted':'aborted', 'preempted':'preempted'}) smach.StateMachine.add( 'check_button_pressed', check_button_pressed(), transitions= {'pressed':'say_pressed_button', 'unpressed':'say_not_pressed_button', 'succeeded':'sleep_state', 'preempted':'preempted'}) # Sleep smach.StateMachine.add( 'sleep_state', Sleeper(2), transitions={'succeeded': 'check_button', 'aborted': 'check_button', 'preempted':'preempted'}) # Say button pressed smach.StateMachine.add( 'say_pressed_button', text_to_say("Oh you pressed my emergency button, feel free to check me around"), transitions= {'succeeded':'check_button', 'aborted':'check_button', 'preempted':'preempted'}) # Say button is not pressed smach.StateMachine.add( 'say_not_pressed_button', text_to_say("Thank you for unpressing my emergency button. I'll recover my status shortly."), transitions= {'succeeded':'end', 'aborted':'end', 'preempted':'preempted'})