New driving model
This release comes with a driving model trained on a new dataset. The dataset was constructed similarly to the previous one, but is more diverse thanks to our growing fleet. Some interesting facts about the new dataset compared to the old dataset:
- number of platforms: new=191, old=153
- number of countries: new=66, old=60
- number of dongle IDs: new=8524, old=6606
The new model also significantly reduces the cases of unprompted turns (mostly at lower speeds).
The lateral MPC takes the driving model’s inputs and plans the required trajectory to get to where the model wants the car to be. Previously this plan was generated for the next 2.5s, in this PR it was expanded to 10s. In doing so, we also discovered and fixed a bug that would cause a slight amount of turn-cutting.
By expanding the MPC plan to 10s we can now draw the MPC trajectory instead of the model path in the UI. This MPC trajectory is a better representation of what the car will attempt to do. It is smoother and starts at the car’s current position.
New experimental mode visualization
The path visualization has been updated to show the desired acceleration at every step of the planned path as a color gradient. This extra communication allows for a much more intuitive understanding of what the model intends to do in the future.
There has always been logic in openpilot’s calibration code that automatically resets calibration when it detects a large change in mount angles. This is intended to shorten the time it takes to recalibrate when remounting or switching vehicles. This behavior was silent though and could cause a lot of confusion. In these two pull requests, we ensure there is an appropriate alert to let the user know what is happening.
This AGNOS update reduces boot time from 38s to 20s:
- 1s saved in the XBL by speeding up display initialization
- 1s saved in the ABL by shortening the fastboot timeout
- 6.5s saved in the kernel with the
- 9.5s saved in userspace display initialization
Along with the speedup, this update fixes a bug where the bootsplash didn’t work when the device was hot and a rare bug where sounds wouldn’t initialize.
The original web version of cabana has been deprecated in favor of the new refreshed cabana.
Just a few short years ago, openpilot supported a handful of select vehicles. Now, the list includes over 250. With this release, we are not only yet again expanding our range of supported vehicles — we’re also welcoming Ford to the fleet. This marks an important milestone, as openpilot now supports all major US automakers.
We are also announcing support for longitudinal control (alpha) for Ford, enabling the use of experimental mode. Finally, while working towards supporting Ford’s curvature-based steering control API, we also refactored safety code and fixed a few bugs:
- Enhancement: generically handle quality flag signals from the car, this describes if a signal is degraded or not (panda#1264)
- Enhancement: use averaged wheel speeds for Nissan’s angle safety, this allowed us to reduce the tolerance on the angle safety (panda#1255)
- Bug fix: the Ford’s Electronic Stability Control (ESC) module will occasionally reset its stored steering angle offset on startup, which we detect to temporarily deny engagement (#28140)
- Bug fix: enforce that angle is not active when steer request is not active (panda#1372)
Join the Discord to discuss further upcoming Ford support with the community!
Chevrolet Bolt EUV
We introduced a non-linear feedforward function for the Chevrolet Bolt EV and EUV in #27696. All cars that use the torque-based lateral controller currently assume a linear steer torque vs. lateral acceleration relationship. This assumption works fairly well for most Toyota and Hyundai platforms, but GM has a notoriously non-linear relationship. The non-linear function was optimized offline over driven data points. Next steps are to extend this formulation to all popular GM platforms, and learn the optimized factors in
torqued. Thanks to twilsonco for insights and extensive testing! Non-linear equation: .
- Fingerprinting: fix bug that could extend timeout to 10 seconds (#27764)
- Fingerprinting: fix bug that could extend timeout to a minute (#27762)
- Ford: detect when steering wheel angle is not ready (#28140)
- General Motors: reduced laggy response due to internal EPS torque wind up (#27331)
- Chevrolet Bolt: improved steering tuning (#27344)
- Fingerprinting: improve brand matching by considering extra logging ECUs (#27688)
- Fingerprinting: speed up by only querying FW versions for brands with present ECUs (#27697)
- General Motors: add actuator delay to all cars to improve braking response (#27406)
- Buick LaCrosse 2017-19 support thanks to koch-cf!
- Chevrolet Trailblazer 2021-22 support thanks to TurboCE!
- Ford Bronco Sport 2021-22 support
- Ford Escape 2020-22 support
- Ford Explorer 2020-22 support
- Ford Kuga 2020-22 support
- Ford Maverick 2022-23 support
- Genesis GV80 2023 support thanks to JWingate80!
- Honda HR-V 2023 support thanks to AlexandreSato and galegozi!
- Kia Niro EV 2023 support thanks to JosselinLecocq!
- Lexus ES 2017-18 support
- Lincoln Aviator 2021 support
- Škoda Fabia 2022-23 support thanks to jyoung8607!
Join the team
We’re hiring great engineers to own and work on all parts of the openpilot stack. If anything here interests you, apply for a job or join us on GitHub! We’re also offering a cash hiring bounty if you refer someone.