openpilot 0.9.1

4 minute read

New driving model

The training simulator relies on an estimation of height which is done by a neural network. Previously, the height neural network was only trained on cars with heights less than 1.55m, which produced biased results for taller cars. In this release, we improved the training of the height neural network and included taller vehicles in its training set, reducing the bias by 50% and improving the accuracy by 30%. This made the simulator more faithful and improved driving performance for tall cars.

Histogram of heights from (i) Ground truth (ii) Previous Neural Pose model (iii) New Neural Pose model. Using 4,000 test segments.

Driver monitoring

DMoji

The previously static driving monitoring icon in the driving UI has received an update to now show 3D facial movement using the real-time pose output from the DM model (#27070). This helps to increase transparency of the working state of the system, as well as better communicate the presence of it.

Override timer resets

The DM policy has been updated to not reset the distraction timeout when doing steering or accelerator overrides (#26567). This reduces DM false negatives for users with frequent overrides, or occasional unintentional overrides. The change is only for when a face is detected, so the wheeltouch DM behavior remains the same.

micd

micd is a new openpilot daemon that listens to the comma three’s stereo microphones to adjust the volume level for alerts. This allows us to respond to changes in speed and music volume on the fly. Additionally, we can account for differences in vehicle types, such as the lack of an engine in an electric vehicle or excess road noise in a pickup truck.

A-weighting is performed on the output to produce a reading that more closely matches what a human perceives the loudness to be. Low frequencies like engine and tire noise are perceived to be quieter than high frequencies such as music, and so they are not weighted as heavily when determining the ambient sound level.

micd performing a-weighting

cabana

Development on the new cabana is still very active, thanks to deanlee and pd0wm! Here are some highlights since last release:

  • Live streaming from a comma three or panda (#26946)
  • Support for editing DBC value definitions, comments, and units (#27203)
  • Three different chart types: line, step line, and scatter (#27422)
  • Bit-level change frequency highlighting (#27259)
  • Help overlays on each widget for keyboard shortcuts and more (#27349)

Cars

openpilot 0.9 made significant strides in fixing bugs with the new General Motors platform, and in 0.9.1 we continue that trend. Two bugs long-plaguing the Chevrolet Bolt EV and EUV have now been fixed.

More specifically, the Bolt’s Power Steering Control Module (PSCM) is very sensitive to problems with the message counter of the LKAS command—what openpilot sends to steer the vehicle. If the PSCM sees three duplicate or skipped counter values, it will fault.

  • We fixed an LKAS fault when restarting the vehicle too many times by syncing the counter openpilot sends with the camera.
  • We then fixed the unexpected LKAS fault that occurred while engaged by slowing the rate of the LKAS command message, ensuring that the PSCM would never drop a message and believe the counter to be incorrect.

These bug fixes and more are detailed below, check out the source code if you’d like to learn more!

Bug Fixes

  • Chrysler: Log LKAS faults to catch silent events where openpilot could not steer (#27303)
  • GM: Dramatically reduce LKAS faults when turning car on or off (#27163 and 27164)
  • GM: Reduce steering command rate to dramatically reduce unexpected LKAS faults (#27201)
  • GM: Enforce a maximum steering command rate to eliminate unexpected LKAS faults (#27250)
  • GM: Log ACC faults to catch silent events where openpilot could not brake (#27303)
  • Honda: Allow Nidec vehicles with comma pedal to drive at max speed (#26902)
  • Toyota: Log LKAS faults to catch silent events where openpilot could not steer (#26687)

Enhancements

  • GM: Add hysteresis to more closely match cluster speed (#27301)
  • Hyundai: Fix auto-resume on some older cars (#25579)
  • Hyundai: Filter steering pressed to reduce erroneous overrides (#26789 and #26924)
  • Toyota: Improve TSS-P Prius lateral performance (#26455)

Car Ports

  • Cadillac Escalade 2017 support thanks to rickygilleland! (#27276)
  • Chevrolet Bolt EV 2022-23 support thanks to JasonJShuler! (#25430)
  • Genesis GV60 2023 support thanks to sunnyhaibin! (#26777)
  • Hyundai Tucson 2022-23 support (#26427)
  • Kia K5 Hybrid 2020 support thanks to sunnyhaibin! (#26947)
  • Kia Niro Hybrid 2023 support thanks to sunnyhaibin! (#26827)
  • Kia Sorento 2022-23 support thanks to sunnyhaibin! (#26874)
  • Kia Sorento Plug-in Hybrid 2022 support thanks to sunnyhaibin! (#26635)
  • Toyota C-HR 2021 support thanks to eFiniLan! (#27212)
  • Toyota C-HR Hybrid 2022 support thanks to Korben00! (#27269)
  • Volkswagen Crafter and MAN TGE 2017-23 support thanks to jyoung8607! (#26006)

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!

Updated: