Skip to content

Commit

Permalink
Simple longitudinal maneuver summary (commaai#33553)
Browse files Browse the repository at this point in the history
* check for overrides as well

* only used twice

* longActive is false for gas pressed

* label cross time

* love pycharm

* quick summary

* add min/max

* show unreached maneuvers
  • Loading branch information
sshane authored Sep 13, 2024
1 parent f89b59b commit fa892a9
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions tools/longitudinal_maneuvers/generate_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io
import os
import pprint
from collections import defaultdict
from pathlib import Path
import matplotlib.pyplot as plt

Expand All @@ -19,6 +20,7 @@ def report(platform, route, CP, maneuvers):
output_path = Path(__file__).resolve().parent / "longitudinal_reports"
output_fn = output_path / f"{platform}_{route.replace('/', '_')}.html"
output_path.mkdir(exist_ok=True)
target_cross_times = defaultdict(list)
with open(output_fn, "w") as f:
f.write("<h1>Longitudinal maneuver report</h1>\n")
f.write(f"<h3>{platform}</h3>\n")
Expand Down Expand Up @@ -57,6 +59,8 @@ def report(platform, route, CP, maneuvers):
if (0 < aTarget < cs.aEgo) or (0 > aTarget > cs.aEgo):
f.write(f', <strong>crossed in {t:.3f}s</strong>')
target_cross_time = t
if maneuver_valid:
target_cross_times[description].append(t)
break
else:
f.write(', <strong>not crossed</strong>')
Expand Down Expand Up @@ -101,6 +105,14 @@ def report(platform, route, CP, maneuvers):
f.write(f"<img src='data:image/png;base64,{base64.b64encode(buffer.getvalue()).decode()}' style='width:100%; max-width:800px;'>\n")
f.write("</details>\n")

f.write("<h2>Summary</h2>\n")
for description, runs in maneuvers:
times = target_cross_times[description]
f.write(f"<h3>{description}</h3>\n")
f.write(f"<p>Target crossed {len(times)} out of {len(runs)} runs</p>\n")
if len(times):
f.write(f"<p>Mean time to cross: {sum(times) / len(times):.3f}s, min: {min(times):.3f}s, max: {max(times):.3f}s</p>\n")

print(f"\nReport written to {output_fn}\n")


Expand Down

0 comments on commit fa892a9

Please sign in to comment.