ManipulationInterface and HeadInterface give you direct control over the robot’s arm and head. Use these for manipulation tasks, gestures, and camera positioning.
ManipulationInterface
Declare the interface at class level:Methods
| Method | Parameters | Description |
|---|---|---|
| move_to_cartesian_pose() | x: floaty: floatz: floatroll: floatpitch: floatyaw: floatduration: float | Move the end-effector to a target Cartesian pose. |
| goto_joint_state() | joints: list[float] | Move the arm to a target joint configuration (6 values). |
| get_current_orientation_rpy() | None | Get current end-effector orientation as roll/pitch/yaw values. |
| get_current_end_effector_pose() | None | Get current end-effector pose (position + quaternion). |
| solve_ik() | x: floaty: floatz: floatroll: floatpitch: floatyaw: floattimeout: float | Solve inverse kinematics for a target pose without moving the arm. |
Cartesian Control
Move the end-effector to a specific position and orientation:Joint Control
Move directly to joint angles (6 joints):Reading State
Inverse Kinematics
Check if a pose is reachable before moving:HeadInterface
Control camera tilt:Methods
| Method | Parameters | Description |
|---|---|---|
| set_position() | angle: int | Set head tilt angle (from -25deg to +15deg). |
Tilt Angles
| Angle | View |
|---|---|
| -25deg | Floor and objects below. |
| 0deg | Straight ahead. |
| +15deg | Faces and shelves above. |

