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.