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)
Falcon Punch Driving Model
The new “falcon punch” model improves upon the previous release in sharp turns. It fixes some turn-cutting behavior the previous models had, and is an important step towards our 🌮 goal.
Improved simulator dynamics & lateral planner
We use a simulator based on real-world data in our training stack to train the model in-loop. The car’s movement in the simulator needs to be as close to reality as possible (or at least unbiased), for the model to easily transfer to the real world. Luckily, the dynamics are simple when going straight, but get complicated during turns. Since the car is a rigid body, the lateral (sideways) motion of the car depends on the velocity, yaw-rate, and a host of car-specific parameters like tire stiffness and center-of-gravity position. Previously, we approximated out a lot of these effects, which resulted in a consistent bias in the simulator in turns. So, the model trained on this biased simulator had a fairly consistent turn-cutting effect when driving in the real world. Improving the dynamics model in the simulator and the lateral planner reduced average turn-cutting bias by ~40%.
Faster model training
The driving models are trained from real data using variants of stochastic gradient descent (SGD). We used modern performance recipes to speed up this process:
- Cuda Graphs
- Automatic Mixed Precision
- Better Learning Rate scheduler
- GPU video decoding and processing
As a result of these speedups, the various building blocks of the falcon punch model were trained in a total time of 110h while the models in 0.8.15 took about 180h of training time (only including time doing SGD steps). While this doesn’t translate into better models immediately, faster model training allows us to iterate faster, which in itself will lead to better models. Our goal over the coming releases is to bring this time down even more.
Right hand drive toggle removal
In the last release, we mentioned that the current driver monitoring (DM) model not only predicts the driver states for both the driver side and the passenger side, but also outputs which side the steering wheel is on. This piece of information is now used to automatically set the RHD bit that is used by both the driving and DM models. Some extra logic is added on top to ensure consistency during and across drives. In addition to reducing complexity, auto-toggling fixes 1% of devices that previously had the RHD toggle in the wrong state.
Improved fan control
A few weeks ago, we noticed an uptick of malfunctioning fans in the field. We traced this down to a new batch of fans used in recently built comma three’s. This batch of fans uses a new fan control chip, and this chip’s stall detection feature was tripping erroneously. Once the stall detection trips, the fan control chip doesn’t try to drive the fan anymore. We added our own stall detection in the panda fan driver, which allows us to recover the fan control chip when it gets in a bad state (commaai/panda#1022). We also added a PID controller on the fan’s RPM to ensure all fans behave similarly.
360° clips
comma connect now supports exporting 360° dashcam clips using the comma three’s wide angle road-facing camera and the interior-facing camera. Check out the demo clip.
Exported 360° clips just work with YouTube. Here’s one by Logan LeGrand, who makes lots of great openpilot content.
MTBF Report
Here’s what the MTBF report had to say about 0.8.15, the previous release, after a month in the field. This is the first release where all the individual unplanned disengagement event types have an MTBF greater than 1000 hours. Overall MTBF of unplanned disengagements is also up to 550 from 330 hours.
Multilanguage
The UI has new translations for Japanese thanks to cydia2020 and Brazilian Portuguese thanks to AlexandreSato. The following contributors made improvements to the existing translations: crwusiz, cydia2020, eFiniLan, and ponzu07. If you’d like to contribute to openpilot’s translations, start here.
Cars
As of this release, openpilot has crossed the 200 car milestone and supports 205 cars. This release includes support for three new sub-platforms: Subaru Global Gen 2, GM Global A with ACC at the camera, and the HDA1 flavor of Hyundai’s CAN-FD platform.
Bug Fixes
- GM: fixed rare ACC faults on resume button press (#25402)
Enhancements
- Mazda: use torque controller (#25265)
- Toyota: FW fingerprint on bus 0 (#25277)
- Chrylser: Ram 1500 steer to 0 for some EPS firmwares (#25279)
- Chrysler: increase steering angle resolution (#25278)
Car Ports
- Chevrolet Bolt EUV 2022-23 support thanks to JasonJShuler! (#24875)
- Chevrolet Silverado 1500 2020-21 support thanks to JasonJShuler! (#25429)
- GMC Sierra 1500 2020-21 support thanks to JasonJShuler! (#25523)
- Hyundai Ioniq 5 2022 support thanks to sunnyhaibin! (#25308)
- Hyundai Kona Electric 2022 support thanks to sunnyhaibin! (#23517)
- Hyundai Tucson Hybrid 2022 support thanks to sunnyhaibin! (#25276)
- Subaru Legacy 2020-22 support thanks to martinl! (#25313)
- Subaru Outback 2020-22 support (#25248)
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!