from expressive_motion_generation import *
from expressive_motion_generation.effects import *
from moveit_commander.robot import RobotCommander
from moveit_commander.move_group import MoveGroupCommander
# initialize MoveIt interface
robot = RobotCommander()
move_group = MoveGroupCommander('panda_arm')
# initialize Expressive Planner
planner = ExpressivePlanner(robot, 'display_robot_state', True)
# get current pose
joint_state = move_group.get_current_joint_values()
# create motion plan
planner.plan_target([0.1, 0.6, 0.3], 'panda_arm',
0.6, 0.6, 'position')
planner.plan_pause(1.0)
planner.plan_target(joint_state, 'panda_arm',
0.6, 0.6, 'joint')
# execute first time!
planner.execute()
# modify plan
upper_limits = [joint.max_bound() for joint in (robot.get_joint(joint_name) for joint_name in robot.get_active_joint_names('panda_arm'))]
lower_limits = [joint.min_bound() for joint in (robot.get_joint(joint_name) for joint_name in robot.get_active_joint_names('panda_arm'))]
planner.get_task_at(0).add_effects(
ExtentEffect(0.7,
['g','n','g','p','m','p','i','i'],
upper_limits,
lower_limits)
)
planner.get_task_at(2).add_effects(
ExtentEffect(0.7,
['g','n','g','p','m','p','i','i'],
upper_limits,
lower_limits)
)
# execute again!
planner.execute()