Skip to content

Lateral maneuver report - #37562

Merged
elkoled merged 63 commits into
masterfrom
maneuver
Mar 27, 2026
Merged

elkoled merged 63 commits into
masterfrom
maneuver

Conversation

@elkoled

@elkoled elkoled commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

Lateral maneuver report

Disclaimer: Do not use this tool on public roads.

Description:
Adds lateral maneuver mode that works in a similar way to longitudinal maneuver mode.
The tool commands lateral acceleration steps at different speeds to profile steering response.

Usage:

  1. Check out a development branch such as master on the comma device.

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

    echo -n 1 > /data/params/d/LateralManeuverMode
  3. Turn the vehicle back on. Comma will show "Lateral Maneuver Mode".

  4. Openpilot will command lateral acceleration steps in this mode. Once ready, set ACC manually to the target speed shown on screen and let openpilot stabilize lateral. After 3 seconds of steady straight driving, the maneuver will begin automatically. Openpilot 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, steering is touched or openpilot disengages.

  5. When the testing is complete, an alert shows "Maneuvers Finished." Complete the route by pulling over and turning off the vehicle.

  6. As with the longitudinal report, get the route ID from connect.comma.ai and generate the report:
    python tools/lateral_maneuvers/generate_report.py 98395b7c5b27882e/000001cc--5a73bde686

Verification
Report for Kia EV6:
KIA_EV6_98395b7c5b27882e_000001cc--5a73bde686.html

@github-actions

github-actions Bot commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

UI Preview

mici: ⚠️ Videos differ! View Diff Report
big: ⚠️ Videos differ! View Diff Report

Comment thread cereal/services.py Outdated
Comment thread selfdrive/controls/controlsd.py Outdated
# Steering PID loop and lateral MPC
# Reset desired curvature to current to avoid violating the limits on engage
new_desired_curvature = model_v2.action.desiredCurvature if CC.latActive else self.curvature
if self.sm.recv_frame['lateralManeuverPlan'] > 0 and self.sm.valid['lateralManeuverPlan']:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use sm.all_checks?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using sm.valid as the other optional services do, this does not require ignore.

Comment thread selfdrive/controls/controlsd.py
@github-actions

github-actions Bot commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

Process replay diff report

Replays driving segments through this PR and compares the behavior to master.
Please review any changes carefully to ensure they are expected.

✅ 0 changed, 66 passed, 0 errors

Comment thread tools/lateral_maneuvers/README.md Outdated
Comment thread tools/lateral_maneuvers/generate_report.py Outdated
Comment thread tools/lateral_maneuvers/lateral_maneuversd.py Outdated
Comment thread tools/lateral_maneuvers/lateral_maneuversd.py
Comment thread tools/lateral_maneuvers/lateral_maneuversd.py Outdated
@sshane

sshane commented Mar 24, 2026

Copy link
Copy Markdown
Collaborator

what the
image

@adeebshihadeh adeebshihadeh added this to the 0.11.1 milestone Mar 26, 2026
@elkoled
elkoled merged commit 6b94c47 into master Mar 27, 2026
12 checks passed
@elkoled
elkoled deleted the maneuver branch March 27, 2026 20:31
@TheSecurityDev

Copy link
Copy Markdown
Contributor

what the image

@sshane Adeeb broke recording on ffmpeg here I believe (I think for hardware that doesn't support HW acceleration):
commaai/dependencies@0fc2d13

FrogAi pushed a commit to FrogAi/FrogPilot that referenced this pull request Apr 3, 2026
* lateral report

* mutually exclude buttons

* gating

* set maneuver

* add timer

* timer text

* fix plot

* use curvature

* more curves

* fix gating

* rm delay

* highway speed only

* msg

* add sine

* add step-down

* use relative

* text

* stabilize

* tuning

* windup

* text

* winddown

* no windup

* tuning

* more tuning

* more

* formatting

* test faster

* extend sine

* report crossings

* add readme

* clean report

* fix lint

* gating

* fix

* straighter

* compensate roll

* rm abs roll

* len

* Revert "rm abs roll"

This reverts commit a22d6bb.

* Revert "compensate roll"

This reverts commit dfda521.

* print actuators

* show curve and roll

* tune roll

* text

* slower

* timer

* too much banked streets in US

* readme

* filter incomplete

* plot jerk

* plot angle jerk

* lil edits

* fix lint

* apply suggestions

* better table

* apply comments

* clean

* shane comments

* deflicker

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
AlexandreSato pushed a commit to AlexandreSato/openpilot that referenced this pull request Apr 20, 2026
* lateral report

* mutually exclude buttons

* gating

* set maneuver

* add timer

* timer text

* fix plot

* use curvature

* more curves

* fix gating

* rm delay

* highway speed only

* msg

* add sine

* add step-down

* use relative

* text

* stabilize

* tuning

* windup

* text

* winddown

* no windup

* tuning

* more tuning

* more

* formatting

* test faster

* extend sine

* report crossings

* add readme

* clean report

* fix lint

* gating

* fix

* straighter

* compensate roll

* rm abs roll

* len

* Revert "rm abs roll"

This reverts commit a22d6bb.

* Revert "compensate roll"

This reverts commit dfda521.

* print actuators

* show curve and roll

* tune roll

* text

* slower

* timer

* too much banked streets in US

* readme

* filter incomplete

* plot jerk

* plot angle jerk

* lil edits

* fix lint

* apply suggestions

* better table

* apply comments

* clean

* shane comments

* deflicker

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
montge added a commit to montge/openpilot that referenced this pull request May 11, 2026
Two follow-on issues discovered when running pytest against the merged
schema migration:

1. Import: use vendored openpilot.common.parameterized (project standard
   per the merge conflict resolution) instead of the third-party
   parameterized package, which is no longer in the venv.
2. SubMaster fixtures: controlsd.py now subscribes to lateralManeuverPlan
   (added by upstream PR commaai#37562). Add it to all 11 mock service lists so
   self.sm.valid['lateralManeuverPlan'] doesn't KeyError.

pytest selfdrive/controls/tests/test_controlsd.py: 60 passed in 3.53s.
cursor Bot pushed a commit to jmbrunick/openpilot that referenced this pull request Sep 16, 2026
* lateral report

* mutually exclude buttons

* gating

* set maneuver

* add timer

* timer text

* fix plot

* use curvature

* more curves

* fix gating

* rm delay

* highway speed only

* msg

* add sine

* add step-down

* use relative

* text

* stabilize

* tuning

* windup

* text

* winddown

* no windup

* tuning

* more tuning

* more

* formatting

* test faster

* extend sine

* report crossings

* add readme

* clean report

* fix lint

* gating

* fix

* straighter

* compensate roll

* rm abs roll

* len

* Revert "rm abs roll"

This reverts commit a22d6bb.

* Revert "compensate roll"

This reverts commit dfda521.

* print actuators

* show curve and roll

* tune roll

* text

* slower

* timer

* too much banked streets in US

* readme

* filter incomplete

* plot jerk

* plot angle jerk

* lil edits

* fix lint

* apply suggestions

* better table

* apply comments

* clean

* shane comments

* deflicker

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
triet228 pushed a commit to triet228/TrietPilot that referenced this pull request Sep 18, 2026
* lateral report

* mutually exclude buttons

* gating

* set maneuver

* add timer

* timer text

* fix plot

* use curvature

* more curves

* fix gating

* rm delay

* highway speed only

* msg

* add sine

* add step-down

* use relative

* text

* stabilize

* tuning

* windup

* text

* winddown

* no windup

* tuning

* more tuning

* more

* formatting

* test faster

* extend sine

* report crossings

* add readme

* clean report

* fix lint

* gating

* fix

* straighter

* compensate roll

* rm abs roll

* len

* Revert "rm abs roll"

This reverts commit a22d6bb.

* Revert "compensate roll"

This reverts commit dfda521.

* print actuators

* show curve and roll

* tune roll

* text

* slower

* timer

* too much banked streets in US

* readme

* filter incomplete

* plot jerk

* plot angle jerk

* lil edits

* fix lint

* apply suggestions

* better table

* apply comments

* clean

* shane comments

* deflicker

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants