Repository navigation
Label FourPost jacking and elastic share by what they measure - #156
Merged
Merged
Conversation
avg_anti_roll_<axle>_pct is net axle jacking: the vertical force that a lateral contact-patch force puts on the whole axle. The report called it "Geometric Anti-Roll", but zero net jacking does not mean zero geometric load transfer. avg_lltd_front_pct is the elastic share under imposed roll, but the report called it "LLTD". The keys keep their names. The FourPost plots and summary page, the vehicle review and the SHARK overlay now say net jacking and elastic share. The anti-dive and anti-squat outputs name their force path, a contact-patch force that the upright reacts, and the summary page shows the dFz/dFx coefficients beside the percentages. An app config saved before this change takes these plots from the seed config. Synthetic tests show the meaning of the existing keys: zero net jacking with a nonzero differential, and an FBRC height that the differential sets and net jacking does not change.
FourPost hid invalid samples. An empty sample window took the nearest sample outside the window. A bad measured pulse force was replaced by the reference force. A flat jacking signal quietly switched the source to the contact-load sum. The elastic share was filled from neighbor poses and took abs() of each transfer, which hid opposite signs. Now an invalid sample stays invalid and every summary metric gets a status: ok, partial or invalid. The metrics CSV has a third column, status. The summary page marks a metric that is not ok. The zero-roll pose is not counted for the elastic share, where it is 0/0. Heave poses where a contact patch is in tension are visible. heave_cp_tension_points counts them, a per-pose tension residual is in the series, and the clamped contact load shows as NaN, not 0 N. The anti records keep these poses. common/metrics_csv.py reads the status. The spring free length balance in the response generator rejects a motion ratio that is not ok. vehicle_yaml falls back to its defaults for a roll stiffness that is not ok. The baseline regression test fails a baselined metric whose status is not ok.
…_source lltd_source said four_post_report_roll_stiffness whenever the FourPost metrics file had any row. A roll stiffness that was missing, empty or not ok still fell back to its nominal default. lltd_source now names each roll stiffness that fell back.
The page says what each summary metric measures and does not measure, the anti force path, why net jacking is not geometric load transfer, the status column and its readers, the heave poses in tension, and the default-car value changes.
When the static balance check cannot run, for example because an executed signal is missing, its values are empty. The default status rule of the metrics CSV then marked them invalid. They are not invalid samples. The check did not run. The static balance keys now get status unavailable in that case. The status and reason keys keep status ok, because they hold a valid value. A pass or fail result keeps the default rule.
rhorvath02
approved these changes
Oct 29, 2026
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.
What
Changes
statuscolumn (ok, partial, invalid, unavailable), and the in-repo readers respect it.lltd_sourcenames the stiffnesses that fell back to defaults.docs/four-post-metrics.mddescribes each metric, its limits and the key migration.How to check
tests/test_four_post_metric_status.pyand new kinematics tests, including zero net jacking with nonzero differential jacking and a known asymmetric force-based roll-center height.Notes
Stack
5 of 7.