Files
2026-07-28 23:55:56 -05:00

2.9 KiB

Lateral Maneuvers Testing Tool

Warning

Use caution when using this tool.

Test your vehicle's lateral control tuning with this tool. The tool will test the vehicle's ability to follow a few lateral maneuvers and includes a tool to generate a report from the route.

Instructions

  1. Check out a development branch such as master-mici on your device. The toggle is hidden on release branches.

  2. The full maneuver suite runs at 20 and 30 mph.

  3. Enable "Lateral Maneuver Mode" in Settings > Developer on the device while offroad. Alternatively, set the parameter manually:

    echo -n 1 > /data/params/d/LateralManeuverMode
    
  4. Turn your vehicle back on. You will see "Lateral Maneuver Mode".

  5. Ensure the area ahead is clear, as IQ.Pilot will command lateral acceleration steps in this mode. Once you are ready, set ACC manually to the target speed shown on screen and let IQ.Pilot stabilize lateral. After 2 seconds of steady straight driving on a road under 250 m radius and under 6.8° of roll, the maneuver will begin automatically. IQ.Pilot lateral control stays engaged between maneuvers normally while waiting for the next maneuver's readiness conditions. The maneuver will be aborted and repeated if speed is out of range, the steering wheel or gas is touched, or IQ.Pilot disengages.

  6. When the testing is complete, you'll see an alert that says "Maneuvers Finished." Complete the route by pulling over and turning off the vehicle.

  7. Locate the route(s) — they will stand out with lots of orange intervals in their timeline. Ensure "All logs" show as "uploaded."

  8. Gather the route ID and then run the report generator. The file will be exported to the same directory:

    $ python tools/lateral_maneuvers/generate_report.py 98395b7c5b27882e/000001cc--5a73bde686
    
    processing report for KIA_EV6
    plotting maneuver: step right 20mph, runs: 3
    plotting maneuver: step left 20mph, runs: 3
    plotting maneuver: sine 0.5Hz 20mph, runs: 3
    plotting maneuver: step right 30mph, runs: 3
    
    Opening report: tools/lateral_maneuvers/lateral_reports/KIA_EV6_98395b7c5b27882e_000001cc--5a73bde686.html
    

    The IQ.Pilot generate_report.py also takes a path to a local rlog.zst or a directory of them, supports auto-detection of lateral sweeps in any route without alertDebug markers (pass --auto), and ranks the top-N highest-peak sweeps by speed/peak filters. See generate_report.py --help.

Testing the tooling without a car

sim_maneuvers.py runs lateral_maneuversd as a real process against a synthetic steering rack and writes an rlog that generate_report.py reads. Use it to verify the daemon and the report generator after changing either:

$ python tools/lateral_maneuvers/sim_maneuvers.py --out /tmp/lat/rlog.zst
$ python tools/lateral_maneuvers/generate_report.py /tmp/lat/rlog.zst

The full suite takes about 5 minutes of wall clock; --max-maneuvers N stops early.