本文整理汇总了Python中Session.Session.save_current_action方法的典型用法代码示例。如果您正苦于以下问题:Python Session.save_current_action方法的具体用法?Python Session.save_current_action怎么用?Python Session.save_current_action使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Session.Session
的用法示例。
在下文中一共展示了Session.save_current_action方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from Session import Session [as 别名]
# 或者: from Session.Session import save_current_action [as 别名]
#.........这里部分代码省略.........
Response.glance_actions[arm_index]]
def relax_arm(self, arm_index):
'''Relaxes arm on the indicated side'''
if self.arms.set_arm_mode(arm_index, ArmMode.RELEASE):
return [Response.release_responses[arm_index],
Response.glance_actions[arm_index]]
else:
return [Response.already_released_responses[arm_index],
Response.glance_actions[arm_index]]
def freeze_arm(self, arm_index):
'''Stiffens arm on the indicated side'''
if self.arms.set_arm_mode(arm_index, ArmMode.HOLD):
return [Response.hold_responses[arm_index],
Response.glance_actions[arm_index]]
else:
return [Response.already_holding_responses[arm_index],
Response.glance_actions[arm_index]]
def edit_action(self, dummy=None):
'''Goes back to edit mode'''
if (self.session.n_actions() > 0):
if (Interaction._is_programming):
return [RobotSpeech.ALREADY_EDITING, GazeGoal.SHAKE]
else:
Interaction._is_programming = True
return [RobotSpeech.SWITCH_TO_EDIT_MODE, GazeGoal.NOD]
else:
return [RobotSpeech.ERROR_NO_SKILLS, GazeGoal.SHAKE]
def save_action(self, dummy=None):
'''Goes out of edit mode'''
self.session.save_current_action()
Interaction._is_programming = False
return [RobotSpeech.ACTION_SAVED + ' ' +
str(self.session.current_action_index), GazeGoal.NOD]
def create_action(self, dummy=None):
'''Creates a new empty action'''
self._move_to_arm_pose('take', 0)
self.world.clear_all_objects()
self.session.new_action()
Interaction._is_programming = True
return [RobotSpeech.SKILL_CREATED + ' ' +
str(self.session.current_action_index), GazeGoal.NOD]
def next_action(self, dummy=None):
'''Switches to next action'''
if (self.session.n_actions() > 0):
if self.session.next_action(self.world.get_frame_list()):
return [RobotSpeech.SWITCH_SKILL + ' ' +
str(self.session.current_action_index), GazeGoal.NOD]
else:
return [RobotSpeech.ERROR_NEXT_SKILL + ' ' +
str(self.session.current_action_index), GazeGoal.SHAKE]
else:
return [RobotSpeech.ERROR_NO_SKILLS, GazeGoal.SHAKE]
def previous_action(self, dummy=None):
'''Switches to previous action'''
if (self.session.n_actions() > 0):
if self.session.previous_action(self.world.get_frame_list()):
return [RobotSpeech.SWITCH_SKILL + ' ' +
str(self.session.current_action_index), GazeGoal.NOD]
else:
示例2: __init__
# 需要导入模块: from Session import Session [as 别名]
# 或者: from Session.Session import save_current_action [as 别名]
#.........这里部分代码省略.........
self.busy = True
if (self._demo_state == DemoState.RECORDING_DEMO):
traj_step = ActionStep()
traj_step.type = ActionStep.ARM_TRAJECTORY
waited_time = Interaction._arm_trajectory.timing[0]
for i in range(len(Interaction._arm_trajectory.timing)):
Interaction._arm_trajectory.timing[i] -= waited_time
Interaction._arm_trajectory.timing[i] += rospy.Duration(0.1)
'''If motion was relative, record transformed pose'''
traj_step.armTrajectory = ArmTrajectory(
Interaction._arm_trajectory.rArm[:],
Interaction._arm_trajectory.lArm[:],
Interaction._arm_trajectory.timing[:],
Interaction._arm_trajectory.rRefFrame,
Interaction._arm_trajectory.lRefFrame,
Interaction._arm_trajectory.rRefFrameObject,
Interaction._arm_trajectory.lRefFrameObject)
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