本文整理匯總了Python中Session.Session.get_current_action方法的典型用法代碼示例。如果您正苦於以下問題:Python Session.get_current_action方法的具體用法?Python Session.get_current_action怎麽用?Python Session.get_current_action使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Session.Session
的用法示例。
在下文中一共展示了Session.get_current_action方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: __init__
# 需要導入模塊: from Session import Session [as 別名]
# 或者: from Session.Session import get_current_action [as 別名]
#.........這裏部分代碼省略.........
def _get_arm_states(self):
'''Returns the current arms states in the right format'''
abs_ee_poses = [Arms.get_ee_state(0),
Arms.get_ee_state(1)]
joint_poses = [Arms.get_joint_state(0),
Arms.get_joint_state(1)]
states = [None, None]
for arm_index in [0, 1]:
nearest_obj = self.world.get_nearest_object(
abs_ee_poses[arm_index])
if (nearest_obj == None):
states[arm_index] = ArmState(ArmState.ROBOT_BASE,
abs_ee_poses[arm_index],
joint_poses[arm_index], Object())
else:
# Relative
rel_ee_pose = World.transform(
abs_ee_poses[arm_index],
'base_link', nearest_obj.name)
states[arm_index] = ArmState(ArmState.OBJECT,
rel_ee_pose,
joint_poses[arm_index], nearest_obj)
return states
def execute_action(self, dummy=None):
'''Starts the execution of the current action'''
if (self.session.n_actions() > 0):
if (self.session.n_frames() > 0):
self.session.save_current_action()
action = self.session.get_current_action()
if (action.is_object_required()):
if (self.world.update_object_pose()):
self.session.get_current_action().update_objects(
self.world.get_frame_list())
self.arms.start_execution(action)
else:
return [RobotSpeech.OBJECT_NOT_DETECTED,
GazeGoal.SHAKE]
else:
self.arms.start_execution(action)
return [RobotSpeech.START_EXECUTION + ' ' +
str(self.session.current_action_index), None]
else:
return [RobotSpeech.EXECUTION_ERROR_NOPOSES + ' ' +
str(self.session.current_action_index), GazeGoal.SHAKE]
else:
return [RobotSpeech.ERROR_NO_SKILLS, GazeGoal.SHAKE]
def speech_command_cb(self, command):
'''Callback for when a speech command is receieved'''
if command.command in self.responses.keys():
rospy.loginfo('\033[32m Calling response for command ' +
command.command + '\033[0m')
response = self.responses[command.command]
if (not self.arms.is_executing()):
if (self._undo_function != None):
response.respond()
self._undo_function = None
else:
示例2: __init__
# 需要導入模塊: from Session import Session [as 別名]
# 或者: from Session.Session import get_current_action [as 別名]
#.........這裏部分代碼省略.........
traj_step.gripperAction = GripperAction(
self.arms.get_gripper_state(0),
self.arms.get_gripper_state(1))
self.session.add_step_to_action(traj_step,
self.world.get_frame_list())
Interaction._arm_trajectory = None
Interaction._trajectory_start_time = None
self.session.save_current_action()
self.freeze_arm(0)
self._demo_state = DemoState.HAS_RECORDED_DEMO
Response.say(RobotSpeech.STOPPED_RECORDING)
Response.perform_gaze_action(GazeGoal.NOD)
else:
Response.say(RobotSpeech.ERROR_NOT_RECORDING)
Response.perform_gaze_action(GazeGoal.SHAKE)
rospy.loginfo('Current state: ' + self._demo_state)
self.busy = False
def replay_demonstration(self, dummy=None):
'''Starts the execution of the current demonstration'''
self.busy = True
execution_z_offset = 0.00
if (self._demo_state == DemoState.HAS_RECORDED_DEMO):
self.session.save_current_action()
action = self.session.get_current_action()
self.arms.start_execution(action, execution_z_offset)
Response.say(RobotSpeech.STARTED_REPLAY)
self._demo_state = DemoState.PLAYING_DEMO
else:
Response.say(RobotSpeech.ERROR_CANNOT_REPLAY)
Response.perform_gaze_action(GazeGoal.SHAKE)
rospy.loginfo('Current state: ' + self._demo_state)
self.busy = False
def _end_replay(self):
'''Responses for when the action execution ends'''
if (self.arms.status == ExecutionStatus.SUCCEEDED):
if self._demo_state == DemoState.PLAYING_DEMO:
Response.say(RobotSpeech.ENDED_REPLAY)
Response.perform_gaze_action(GazeGoal.NOD)
self._demo_state = DemoState.HAS_RECORDED_DEMO
else:
rospy.loginfo('Non-replay motion successful.')
elif (self.arms.status == ExecutionStatus.PREEMPTED):
if self._demo_state == DemoState.PLAYING_DEMO:
Response.say(RobotSpeech.ERROR_PREEMPTED_REPLAY)
Response.perform_gaze_action(GazeGoal.SHAKE)
self._demo_state = DemoState.HAS_RECORDED_DEMO
else:
rospy.loginfo('Non-replay motion pre-empted.')
else:
if self._demo_state == DemoState.PLAYING_DEMO:
Response.say(RobotSpeech.ERROR_REPLAY_NOT_POSSIBLE)
Response.perform_gaze_action(GazeGoal.SHAKE)
self._demo_state = DemoState.HAS_RECORDED_DEMO
else: