Enhancing live localization using Laika
Laikad: Faster position for navigation and a higher accuracy for driving.
The follow distance has also been shortened for this release at almost all speeds. The stationary stopping distance has been increased slightly, which is needed to make the new stopping behavior still stop comfortably behind a stopped car. In the graph below you can see how the 0.8.11 follow distance and 0.8.12 follow distance compare to human behavior.
Comparison of follow distance in 0.8.11 and 0.8.12. The median human follow distance collected from user data is displayed as context.
Legacy code in the longitudinal planner would cause the planner state to reset when the car was about to start moving. Fixing this (#23149) makes openpilot start moving from a stop noticeably faster.
This release includes a new model with improved behavior around exits. We don’t want the model to take exits unless specifically instructed to, so to this end, we made two different improvements. First, we made some changes to our desire stack (which detects maneuvers like lane changes, keeps, and turns in our driving dataset). These changes significantly reduced the number of false negative keeps, where the stack “misses” an exit. During training we tell the model what desires it should execute to follow the human trajectory, so by making the desire signals more accurate, the model can trust them more and is less likely to take exits when we didn’t tell it to.
Secondly, we addressed a deeper problem with our stack: Our stack is great at detecting when a road splits in two, but it didn’t understand that certain forks in the road have a clear “default” direction. The default choice when approaching an exit is to stay on the highway, so when openpilot is approaching an exit and we haven’t told it to execute any specific desire, it should stay on the highway by default. To help the desire stack understand when one path at a fork is the “default”, we use a clever trick: Our driving models already predict when you’re using your blinkers, so we can let the model take both paths at the fork in our simulator, and if the model thinks you’re MUCH less likely to use your blinkers in one direction than the other, that direction is the default. For example, you might use your blinker when taking an exit, but you’ll almost never use your blinker when passing an exit. Using this trick, we can filter out all the extraneous keeps (like passing an exit), leaving just the keeps where drivers took the non-default path. So now when the model is approaching an exit and it’s not explicitly told to keep-left or keep-right, it will try to take whichever path a human would think is more obvious.
Comparison of model's predicted path in 0.8.11 (red) and 0.8.12 (green).
AGNOS is the Ubuntu-based operating system built for the comma three. The headlining feature of this release is a small daemon (commaai/agnos-builder#22) that limits the display’s max brightness as the display stays on. This should mitigate burn-in on the comma three’s beautiful OLED display, with little impact to the user’s experience. This version also has an updated Python and amplifier configuration to support the new sounds. It also includes some mitigations for filesystem corruption (commaai/agnos-builder#12, commaai/agnos-builder#13).
openpilot records several types of logs. Until now, an optional toggle would allow automatic uploading of your raw logs. We’ve removed the toggle and moved uploading raw logs to comma connect (commaai/connect#160). Raw logs are useful for the openpilot tools and getting the high-res video from your drives. It’s a great experience - try it out at https://connect.comma.ai!
Click the "Files" button to upload your logs
Manage and watch your uploads with the beautiful upload queue popup
The code to support the comma pedal on Toyotas was bloated and had several issues. The logic has been cleaned up and most issues have been addressed (#23067).
Come help us build incredible software for the people.