-
Notifications
You must be signed in to change notification settings - Fork 9.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce steering error with better lane width calculation #755
Conversation
I have objectively tested this PR with 0.6.1 on my '19 Prius Prime Advanced with good steering angle data and have concluded that straight line performance is in fact, enhanced. I will perform more testing over the next few days and update this PR if I have additional findings. Good work @Gernby |
I tested a version of this fix a few hours older (diff showed here - Gernby@a324a47) and ran it for a few hours today while trying other INDI tuning numbers. It's a much more consistent lateral experience on my stock 2017 Prius Prime Premium. Until now, I ran timeconstant = 3.0 (vs 1.0) to calm over-active lane-keeping; not regular ping-pong, but frequent,noticeable corrections. I found today that timeconstant = 1.0 is tolerable now. I'll be testing the updated version in this PR tomorrow, but am already pretty happy with what I've seen. I'm excited to see where this PR leads. |
3d6af31 isn't nearly as good as the commit I previously referenced. |
@ncflagg I removed the change that limited the probability of the speed_lane_width. That seemed to provide better performance. |
I'm just going to leave this here. Great interstate camber handling, I can loose a lane line and stay perfectly centered. I even had success on an unmarked road with OP. No more exit diving. |
@zorrobyte I'm not sure what the last screenshot is supposed to show, but it seems that you've reversed lane_width_certainty and lane_width_estimate. The certainty shouldn't ever be larger than 1.0, and the estimate would normally be about 3.7. |
After testing this PR logic side-by-side with existing logic, I'm closing this PR. It seems that standard logic has fewer vulnerabilities. |
* feat(lat): import latcontrol_indi from src * feat(lat): add live tuning to indi controller * feat(params): update car params for new indi breakpoints * feat(params): port op changes from src * feat(params): port op params changes from src and add live indi params * fix interp to pass varied length tests * fix(params): fix infinite loop in op params * fix(params): make sure op_edit is seen as an executable file
Live indi tuning (commaai#755)
Live indi tuning (commaai#755)
* feat(lat): import latcontrol_indi from src * feat(lat): add live tuning to indi controller * feat(params): update car params for new indi breakpoints * feat(params): port op changes from src * feat(params): port op params changes from src and add live indi params * fix interp to pass varied length tests * fix(params): fix infinite loop in op params * fix(params): make sure op_edit is seen as an executable file
Live indi tuning (commaai#755)
This change is related to this PR from a couple weeks ago, and was prompted by the comment today from @zorrobyte about steering error when 1 lane line disappeared before a turn.
After some discussion with with the community on Discord, I tested a few changes that made a very significant improvement for lateral stability.
The root issues with the current lane width logic are:
The proposed logic addresses all of those issues.
Below is a screen capture of my dashboard before and after this change on the same turn within a few minutes of each other.
Here is a video of the turn
Here is a link to the drive in Cabana
https://my.comma.ai/cabana/?route=ddd3e089e7bbe0fc%7C2019-07-22--19-18-49&max=22&url=https%3A%2F%2Fchffrprivate-vzn.azureedge.net%2Fchffrprivate3%2Fv2%2Fddd3e089e7bbe0fc%2F6d8537a9b83f1a8c6695f84e3de7a108_2019-07-22--19-18-49