commaai / openpilot

openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 275+ supported cars.
https://comma.ai/openpilot
MIT License
50.01k stars 9.13k forks source link

params learner unstable during dynamic driving #33074

Open jyoung8607 opened 4 months ago

jyoung8607 commented 4 months ago

Describe the bug

The params learner displays unexpected behavior when coming out of a corner, or accelerating or braking. The biggest problem seems to be going around corners in city driving, but acceleration or braking in a straight line can be a problem too.

When allowing the wheel to return to center under self-aligning torque, there is often a very large spike in learned tire stiffness along with some downward pressure on learned steering ratio. There are multiple issues:

The effect seems to be cumulative, and can manifest as quality degrading over the course of a drive. Much of the effect doesn't persist for the next drive, because the learned tire stiffness factor resets at the beginning of every drive, but effects on the learned steering ratio can persist.

I'm not sure of the best way to fix this. As a workaround, I've done some testing with a patch that tries to exclude more dynamic driving. It's very crude and doesn't completely work, but does seem to reduce the problem somewhat. Anecdotally, the learned params with this patch do seem to have a positive effect on driving behavior.

Provide a route where the issue occurs

04836f13759962ab/00000077--a510468422, 73adbb0a04418743/00000027--d30dd7b9db

openpilot version

edd8759f3934b44c640d7d044bd0c383caf68a42 (today's master)

Additional info

From my own car, 04836f13759962ab/00000077--a510468422.

image

From Eyezenheim's car, 73adbb0a04418743/00000027--d30dd7b9db.

Note the tire stiffness factor transients, and the factor made it all the way to 1.5.

image

Return-to-center (falling below 45 degrees) transient example 1:

image

Return-to-center (falling below 45 degrees) transient example 2:

image

Return-to-center (falling below 45 degrees) transient example 3:

image

simontheflutist commented 3 months ago

The params learner really only understands steady-state handling, not dynamic handling

Can you also share the Kalman variances from a sample trajectory? I'm wondering if they also spike during dynamic uncertainty.