The gate every motion command passes through: an e-stop, a watchdog, and limits.
Creates a gate from limits, copied as they stand, and a watchdog timeout.
Whether the gate is forcing a stop: its e-stop is engaged or its watchdog expired.
Returns the command that is safe to drive: a zero twist while stopped, otherwise desired bounded by the limits.
desired
Engages the latching e-stop.
Feeds the watchdog; call it whenever a fresh command arrives.
Clears the e-stop.
The gate every motion command passes through: an e-stop, a watchdog, and limits.