From 91e342fc58ddef69d14c3f9dffabcdbdc14fb623 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Thu, 19 Sep 2024 14:14:22 -0700 Subject: [PATCH] longitudinal maneuver report: require two frames above target (#33602) require two frames --- tools/longitudinal_maneuvers/generate_report.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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('

')