POST /twins/{uuid}/navigation, can drive an
AgileX Piper’s end effector through one or more poses (position plus
orientation). The Piper driver plans the whole list as one motion with MoveIt
and reports the mission’s result back to the workflow.
Before you start
- A Piper paired with Cyberwave and enabled over CAN. See Get started with the AgileX Piper arm.
- A recent
piper-driverimage on the edge. It starts the planner and the mission service next to the driver. No extra setup is needed.
How a mission runs
- Each waypoint is a pose of the
link6frame (the wrist flange). The fingertips are 0.1358 m further alonglink6’s +z axis. To target the fingertips, set Move Twin’s tool offset. - Each waypoint is planned as a straight-line move (
LIN, the default) or a joint move (PTP). Choose per mission with theplannerfield. - The mission ends as
completed,failed(with the planner’s reason) orcancelled. Move Twin waits for that result.
Things to know
- Stop cancels the running mission, and it reports
cancelled. - No camera. A mission that asks for a picture on arrival fails before the arm moves.
- Don’t teleop during a mission. Teleop and the planner command the same joints, and the most recent command wins.
- Simulation. A simulated Piper takes the same Move Twin node, so you can test a mission before running it live. See Simulation execution target.
- Motions are planned at 20% of the planner’s velocity and acceleration limits, which sit below the arm’s own. The arm’s firmware also enforces its own limits.
API
- Always send a
rotation. If you leave it out, the arm is asked to point the tool straight up, which is usually unreachable. The rotation above points the tool down. source_typeistelefor a live arm andsim_telefor a simulated one. A live arm ignores commands meant for simulation, and a simulated arm ignores live ones.
action_id names the mission. Its status arrives on the
twin’s navigate/status topic. See the MQTT reference.