| """ | |
| A Franka Panda moves using delta end effector pose control. | |
| This script contains examples of: | |
| - IK calculations. | |
| - Joint movement by setting joint target positions. | |
| """ | |
| from os.path import dirname, join, abspath | |
| from pyrep import PyRep | |
| from pyrep.robots.arms.panda import Panda | |
| SCENE_FILE = join(dirname(abspath(__file__)), 'scene_panda_reach_target.ttt') | |
| DELTA = 0.01 | |
| pr = PyRep() | |
| pr.launch(SCENE_FILE, headless=False) | |
| pr.start() | |
| agent = Panda() | |
| starting_joint_positions = agent.get_joint_positions() | |
| pos, quat = agent.get_tip().get_position(), agent.get_tip().get_quaternion() | |
| def move(index, delta): | |
| pos[index] += delta | |
| new_joint_angles = agent.solve_ik_via_jacobian(pos, quaternion=quat) | |
| agent.set_joint_target_positions(new_joint_angles) | |
| pr.step() | |
| [move(2, -DELTA) for _ in range(20)] | |
| [move(1, -DELTA) for _ in range(20)] | |
| [move(2, DELTA) for _ in range(10)] | |
| [move(1, DELTA) for _ in range(20)] | |
| pr.stop() | |
| pr.shutdown() | |