Skip to content

Time joint moves with RUCKIG by default; a timed move is TOPPRA-timed - #58

Open
Jepson2k wants to merge 2 commits into
mainfrom
fix/preview-motion-profile
Open

Jepson2k wants to merge 2 commits into
mainfrom
fix/preview-motion-profile

Conversation

@Jepson2k

@Jepson2k Jepson2k commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

TOPPRA times paths: cartesian moves, blended chains, and moves given a duration. A plain move_j only reached it because TOPPRA was the startup profile, so every joint move ran TOPPRA's jerk-free bang-bang acceleration.

  • RUCKIG is now the startup profile and is listed first in ProfileType (Robot.motion_profiles), as in par6.
  • A timed move under RUCKIG is TOPPRA-timed, so Ruckig's minimum_duration input is no longer used. An explicitly selected profile plans as before.

On par6, which feeds planned acceleration into an inertia torque feedforward, TOPPRA's acceleration step rang J1 into chatter. Under RUCKIG, the same 5° J1 moves on the arm ran at 3.3–4.3 deg/s vibration RMS, against 5.8–13.5 under TOPPRA.

Pairs with Jepson2k/Waldo-Commander#87, whose stored-profile fallback takes the backend's first-listed profile.

🤖 Generated with Claude Code

https://claude.ai/code/session_016uVshJDKTz7nCqrMGVxVJU

Jepson2k and others added 2 commits November 3, 2026 15:01
TOPPRA times paths: a cartesian move or a blended chain follows its own,
and a move given a duration is a path stretched to a clock. A plain
move_j reached it only because TOPPRA was the startup profile, so every
joint move ran TOPPRA's jerk-free bang-bang acceleration. RUCKIG is now
the startup profile, as in par6, where that acceleration step became a
torque step through the inertia feedforward and rang J1 into chatter.

A timed move under RUCKIG is TOPPRA-timed, so Ruckig's minimum-duration
input is no longer used. An explicitly selected profile plans as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016uVshJDKTz7nCqrMGVxVJU
TOPPRA's path acceleration is bang-bang. A move it times (any cartesian
move or blended chain under RUCKIG or TOPPRA, and a timed move under
RUCKIG) now has its path position averaged over the shortest window that
ramps each joint's acceleration steps within its jerk limit: only the
timing along the path changes, never the path, as in par6, where those
steps reached the drives as torque steps through the inertia feedforward.

Averaged, a bend TOPPRA slowed for would be crossed at the window's mean
speed, so the path speed is capped at the lowest of the maximum-velocity
curve within half a window of each point; and since the averaged path
acceleration is spent where the joints answer it differently, up to three
more solves lower the acceleration limits where the average still passes
them. The segment pass takes any remainder.

The jerk limit costs time: a timed wrist turn now needs more than the 2 s
its test asked for, and a spline's bend slows to 37 mm/s, not under 40.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016uVshJDKTz7nCqrMGVxVJU
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant