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
(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 oneLeave interpolation unset unless you have a reason: the timing functions already chose the reconstruction their limits were verified on.