diff --git a/tools/longitudinal_maneuvers/generate_report.py b/tools/longitudinal_maneuvers/generate_report.py index 712d76d95b..36e2d3eecc 100755 --- a/tools/longitudinal_maneuvers/generate_report.py +++ b/tools/longitudinal_maneuvers/generate_report.py @@ -59,13 +59,18 @@ def report(platform, route, _description, CP, maneuvers): aTarget = longitudinalPlan[0].aTarget target_cross_time = None f.write(f'

Initial aTarget: {aTarget} m/s^2') + + # Localizer is noisy, require two consecutive 20Hz frames above threshold + prev_crossed = False for t, lp in zip(t_livePose, livePose, strict=True): - if (0 < aTarget < lp.accelerationDevice.x) or (0 > aTarget > lp.accelerationDevice.x): + crossed = (0 < aTarget < lp.accelerationDevice.x) or (0 > aTarget > lp.accelerationDevice.x) + if crossed and prev_crossed: f.write(f', crossed in {t:.3f}s') target_cross_time = t if maneuver_valid: target_cross_times[description].append(t) break + prev_crossed = crossed else: f.write(', not crossed') f.write('

')