Contents
H2: What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
H3: Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
H1: This is a Heading 1
This is some paragraph. lorem epsum.
This is a fig caption. This is how it will look like under a video frame as a description.
H4: How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
H5: Sample text is being used as a placeholder. Sample text helps you understand how real text may look. Sample text is being used as a placeholder for real text that is normally present.
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
H6: How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
Block Quote: Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
This is a heading 3.
- Sample text is being used as a placeholder.
- Sample text is being used as a placeholder.
- Sample text is being used as a placeholder.
This is a heading 2.
- Sample text is being used as a placeholder.
- Sample text is being used as a placeholder.
- Sample text is being used as a placeholder.
# clone openpilot into your home directory
cd ~
git clone --recurse-submodules https://github.com/commaai/openpilot.git
# setup ubuntu environment
openpilot/tools/ubuntu_setup.sh
# build openpilot
cd openpilot && scons -j$(nproc)
Our latest release is for you, the people. You asked for better sounds, we designed a completely new set of sounds for 0.8.12. You asked for better longitudinal control in stop and go, so we put that in 0.8.12. You asked for a model that doesn’t take exits, 0.8.12 has that too. We really like 0.8.12, and we think you will too. Merry Christmas!
New sounds
In this release, the alert experience got a minor overhaul. We started with a completely new set of sounds, brought to you by Chris Lane. In previous releases, openpilot used four different sounds for all of its alerts. Now, openpilot has a set of seven purposefully-designed sounds. They’re a consistent family and sound great on both the comma three and comma two.
Once we had new sounds, we decided to polish up the rest of the rough edges in openilot’s alert experience. Soft disabling is a state in openpilot where openpilot will disengage in 3 seconds if a particular condition, such as an unfastened seatbelt, hasn’t cleared. Soft disable alerts were indistinguishable from immediate disables, meaning soft disables were both a confusing and unnecessarily harsh experience. Soft disable alerts now have text that indicates imminent disengagement, as well as a pleasant, distinct sound and background color.
In addition to the improved soft disables, many alerts have been simplified (#23186), and a bug was also fixed (#23191) that made alerts show for slightly longer than intended.
Improved Longitudinal
Human inspired longitudinal policy
One of the issues with openpilot longitudinal has been unnatural stopping behavior. The MPC system would cause openpilot to brake early and hard when coming up to a stopped car, and then creep slowly forward towards the stopped car, taking a very long time to come to a full stop. This stopping profile is a consequence of the follow distance function based on ego speed and lead speed. The old function had a large component linear with ego speed and a small factor quadratic with ego speed.
The new follow distance function has a smaller linear factor and a much larger quadratic factor. This creates a different stopping profile with later braking and no creeping. This is much more comfortable and similar to how humans brake. You can see stopping maneuver simulations with both these functions below. The 0.8.12 function confidently comes to a full stop, while 0.8.11 brakes hard in the beginning and then asymptotically releases brakes, taking 10+ seconds to come to a full stop.
Shorter follow distance
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.
Acceleration from stop bugfix
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.
New model
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.
AGNOS 3
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).
Log Uploading
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!
Cars
Toyota pedal rework
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).
Bug fixes
- Fixed HUD alerts on newer Honda Bosch thanks to csouers! (#23000)
Car Ports
- Audi Q3 2020-21 support thanks to jyoung8607! (#23128)
- Lexus RC 2020 support thanks to ErichMoraga! (#22941)
Join Us
Come help us build incredible software for the people.