Fields
float
default:"0.5"
How long the follower waits before deciding something is wrong. It covers two
cases: no commands arriving, and your own loop no longer calling
tick().float
default:"100.0"
Commands that arrive later than this are dropped instead of applied. Raise it
on a slow link, lower it when a late command is worse than no command.
float | dict
default:"5.0"
How far a joint may move in one tick, in descriptor units. A slower loop
therefore means a slower arm.Pass a mapping when joints use different units, such as an arm in degrees
with a gripper on
0…100.bool
default:"True"
Commands apply only while the operator holds the deadman.
FailsafeAction
default:"HOLD"
What the arm does when commands stop.
HOLD keeps it where it is.
TORQUE_OFF cuts power to the motors, so a loaded arm will fall, and it
needs a torque_enable() method on your subclass.bool
default:"False"
Stay held after a trip instead of resuming on the next command. Only
arm() releases it.Position limits are not set here. Return them from
Follower.limits()
instead.The defaults are set low on purpose. Measure
watchdog_timeout_s and
max_staleness_ms on your own network, under load, and set them from what you
see.Values
The ones you will see in practice:STARVATION means no commands are arriving from the leader. STALLED means the
follower’s own loop stopped calling tick(). One points at the far machine, the
other at this one.
Related
Follower
Where this is passed, and the stop and resume methods that go with it.
Safety
The states a follower moves between, and what to check before running.