Repository navigation
feat: read physical rack displacement in L5 hardpoint steering - #36
Merged
Merged
Conversation
Read SteeringOutput.rack_travel as physical +y travel when VehicleParams.steer_input is rack_travel. Default remains roadwheel. Reject Dynamic steering and missing front hardpoints from SimSession::tick. L2-L4 warn once and keep existing rack_travel meaning. Tests cover default identity, rejects, locked-table geometry, same-sign rack, unused Ackerman, and disable-env fallback.
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.
Physical +y rack displacement now reaches L5 hardpoint geometry when steer_input="rack_travel". The default roadwheel path retains its previous steering output contract.
Acceptance and fixed conditions
Post-measurement changes
Local verification
HEAD at measurement: c63aa1f
Confirmation HEAD: e10bb55
Canonical serial validation: 595/595.
Main registration: 587; additions: L5RackTravel.T1T2_DefaultMatchesRoadwheel, L5RackTravel.T3_RackWithoutHardpointThrows, L5RackTravel.T4_RackPlusDynamicThrows, L5RackTravel.T5T6T8_LockedTableAndSameSign, L5RackTravel.T7_BadKeyThrows, L5RackTravel.T8_AckermanDoesNotChangeRackOutput, L5RackTravel.T9_DisableEnvFailsT5ThenRestores, l5_rack_travel; removals: none.
Language counts: {"Python": 45, "C++": 550}.
Baseline 94113b6 vs current: ten serialized file pairs (L1-L5, omitted/explicit roadwheel) byte-identical.
D0FlatContactBaseline and restored targeted C++/Python acceptance pass.
mkdocs strict rc=0. Documentation audit FAIL count matches main after currency fill.
CI measurement
Same-head measurement run 41351185235 (head c63aa1f):
Confirmation run 41360044716 (head e10bb55, VALIDATION 1 file):
Wheels 41360143451 (head e10bb55): ubuntu-latest, windows-latest, sdist, verify success; publish skipped.
No merge, tag or publication performed.
Documentation impact
Updated hardpoint-kinematics section and CHANGELOG input-contract table; no changes to other levels' rack meaning. Raw evidence: /home/ailab-12/q48b/settlement/ and /home/ailab-12/q48b/followup/.