Repository navigation
Conversation
A septic time scaling of the path coordinate whose velocity, acceleration and jerk are all zero at both ends, alongside the existing profiles: the trajectory builder, the profile command, the error catalogue, the state and streaming executors, both clients and the README, with tests. It is what par6 moves on too, so the two backends offer the same profile set. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MozxHZWkbgHcaRGMkHnJe9 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016uVshJDKTz7nCqrMGVxVJU
Timed as one polynomial along a cartesian path, SEPTIC sized the whole move from its steepest row. From standby the wrist's turn off its singularity leaves a few degrees of J4 in the path's first row, so a 40 mm MoveL planned 24 s against TOPPRA's 2 s; along a bent path its jerk bound did not hold either. SEPTIC now runs a straight joint run only, on the per-joint polynomial builder it shares with QUINTIC, and a cartesian path or a blended chain is timed by TOPPRA, as with RUCKIG and as par6 does. - VALID_PROFILES and the invalid-profile remedy come from ProfileType. - The async client's robot setter takes any waldoctl Robot, as the interface declares; ty 0.0.86 refuses the narrower one. - The limit test runs a move the jerk limit times, and the velocity test differentiates at the tick the rows are played at. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016uVshJDKTz7nCqrMGVxVJU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds SEPTIC, a seventh-order point-to-point profile whose velocity, acceleration and jerk are all zero at both ends. QUINTIC starts and stops with a jerk step, while SEPTIC ramps jerk in and out. par6 moves with the same profile under the same rule, so both backends offer the same set of profiles.
_septic_samplesbeside_quintic_samples). QUINTIC's output is unchanged.VALID_PROFILESand the invalid-profile remedy are now derived fromProfileType, instead of being lists maintained by hand.robotsetter, a line this PR didn't otherwise touch. The setter now takes any waldoctlRobot, as the interface declares, and asserts that it is parol6's own.Tests
test_septic_holds_its_limits_and_starts_and_stops_without_a_jerk_stepuses a move short enough that the jerk limit sets its duration. Without the jerk term, jerk reaches 1.97× the limit. The test also checks that SEPTIC's jerk ramps in and out while QUINTIC's steps, using a threshold that holds at any control rate.test_a_septic_cartesian_move_is_timed_along_its_pathpreviews a 40 mm MoveL from standby under SEPTIC and under TOPPRA. Before the point-to-point rule, SEPTIC planned 23.76 s against TOPPRA's 2.02 s.test_trajectory_respects_joint_velocity_limitsnow differentiates at the control tick. It used to divide byduration / (N − 1), which understated velocity.test_msg_mounts_on_the_flange_not_inside_the_wrist, is caused byrtreemissing from the local venv; the dev extra installs it.Not in this PR
_enforce_segment_limitsnever checks jerk, and its acceleration stretch only takes effect on segments already at full speed. As a result, QUINTIC, LINEAR and TOPPRA along a path that bends can exceed the hard acceleration and jerk limits. This is pre-existing and deserves its own PR.🤖 Generated with Claude Code
https://claude.ai/code/session_016uVshJDKTz7nCqrMGVxVJU