Trajectory · repose-trajectory

Following

CuFollowTrajectoryTask<N, MAX_POINTS> turns a stored trajectory into one setpoint per cycle for the controller.

Behaviour

  • Adopt: a non-empty trajectory that differs from the current one replaces it, and time starts at that message's time of validity. Republishing the same trajectory doesn't restart it.
  • Sample: each cycle, the trajectory is sampled at the elapsed time on the message clock (not wall time), so replay is exact.
  • Finish: after the end, the final point is held with status Finished.
  • Cancel: an empty trajectory drops the current one and reports ErrorEmptyTrajectory.

Output: CuTrajectoryFollowOutput<N>

positions, velocities and a CuFollowStatus: Idle (nothing adopted yet), Running, Finished, ErrorEmptyTrajectory. The controller maps these to its own status.

Config

ron
(id: "follower", type: "repose_trajectory::CuFollowTrajectoryTask<6, 1024>"),                        // use each trajectory's interpolation
(id: "follower", type: "repose_trajectory::CuFollowTrajectoryTask<6, 1024>", config: {"interpolation": "cubic"}),  // force one

Leave interpolation unset unless you have a reason: the timing functions already chose the reconstruction their limits were verified on.

API reference