Manipulation

On platforms fitted with a manipulator, the webserver exposes an arm control interface for jogging joints, sending Cartesian goals, operating the gripper, and recording and replaying motion waypoints. The interface is only available when manipulation_enabled is set in the configuration.

Arm Control

The manipulation panel provides:

  • Per-joint jogging within the configured joint limits

  • Cartesian goals in the configured planning frame

  • Gripper open/close across the configured range

  • Forward kinematics and motion planning feedback

Joint groups and their controllers are described by the manipulation_joint_groups parameter, allowing multiple arms or arm-plus-gripper configurations on a single platform.

Waypoint Recording and Playback

Arm motions can be recorded as ordered waypoint sets and replayed later. Saved missions are stored as JSON files under manipulation/waypoints/.

  • Recorded missions are dispatched as a single trajectory frame list; the motion controller owns the trajectory timing.

  • Each frame carries its own timestamp, so the recorded timeline is preserved on playback.

  • Joint-mode waypoints may carry optional velocity and acceleration scaling fields (clamped to [0.0, 1.0]). These are captured from the UI speed slider when recording.

Each saved mission is automatically registered as a reusable skill (mission_<name>) that can be attached to navigation waypoints. See Skills and Missions for how missions combine with navigation.

Note

Manipulation routes are registered only when manipulation_enabled: true. On platforms without an arm, this section does not apply and the panel is hidden.