-
v0.3.1 — smooth jogging
Stablereleased this
2026-09-16 17:29:45 +00:00 | 0 commits to main since this releaseJogging a real Lite6 moved the arm in discrete steps rather than travelling. This release
makes it smooth.The fix
set_cartesian_velocitypassedduration=velocity_command_ttl_son every message. That
parameter is a maximum — the SDK documents it as "over this time will automatically set
the speed to 0" — so each message re-armed a half-second timed segment and the controller
re-planned the same motion again.Sending less often does not help: re-arming four times a second steps just as much as
twenty. So the velocity is now set withduration=0("always effective, will not stop
automatically") and an unchanged velocity is not sent to the arm at all. One command
stands until a different one replaces it.Behaviour change worth knowing about
durationwas also the controller-side deadman, and_expire_jogwas relying on it — it
reportedreadywithout commanding anything, because the controller's own timer had
already stopped the arm.VELOCITY_COMMAND_TTL_Sis now enforced by this node rather than by the controller.
Same name, same default (0.5 s), same meaning to a caller: a jog sender that goes quiet
for longer than this gets the arm stopped. What changed is who stops it._expire_jog
now commands the stop itself instead of assuming the controller already did.Nothing to change in a dataflow.
jogbehaves as before from the outside.Tests
86 → 92. Adds
tests/test_driver.py: the driver had no direct coverage, becauseFakeArm
replaces it everywhere else — which is why this was invisible to the suite.Known gap
The new
_expire_jogstop path is covered by unit tests but has not been exercised on
hardware. The smooth-jogging half was confirmed on a real arm; killing a sender mid-jog
to watch the stop fire was not. Worth doing before relying on it.Full detail: liria/dora-ulite6#4
Downloads