openpilot 0.10.3
New driving model
The Cool People’s Model 😎 (#36249) comes with two minor changes in the model’s architecture and simulator training conditions.
A more flexible temporal policy architecture
We changed the encoding of the Vision Features, Desire Signal (lane changes, turns, etc.), and Traffic Convention (left-hand drive vs right-hand drive) from a fixed-length non-causal attention layer to a variable-length causal attention layer. While this does not change the behavior of the current training stack, it opens up the possibility to train with variable temporal lengths and makes more sense from an architectural point of view.
A new on-policy training physics noise model
In order to make the model robust to real-world physics noise, we introduce a wide array of noise types during on-policy training in the simulator [1]. This release includes a small change in those noise models, making them start at a noise-free initial value, which is a required change to train using the World Model Simulation.
Left: a simulation rollout using the previous noise model (starts at a deviated state) and the reprojective simulator (tinysim)
Right: a simulation rollout using the new noise model (starts at a noise-free state) and the world model simulator (mlsim)
New driver monitoring model
New training dataset
We are incrementally adding incoming comma four segments to the driver monitoring training dataset, which will improve the experience overall, but especially for comma four users. The comma four driver-facing camera has a different position compared to the comma three and 3X, which is why training on those segments is important. If you just received your comma four, please consider turning on the “Record and Upload Driver Camera” toggle.
Device type distribution in the new training set
10x more memory efficient IPC
MSGQ, openpilot’s custom pub-sub IPC, previously allocated a 10MB ring buffer for every service, regardless of the service’s message size. This also meant that tiny low-frequency services, such as clocks, may take weeks of runtime to reach steady state memory usage. While wasteful, this was fine when openpilot had fewer services, however this ballooned to 711MB over the years.
This PR (#36884) reduces MSGQ’s memory usage to 90MB by setting up configurable buffer sizes per-service. In the future, we’ll explore using the capnproto schema and service frequency definitions to automatically determine suitable buffer sizes.
Refreshed flash.comma.ai
We refreshed our web flasher with a new guided wizard to make it easier to get your device back to a factory state (flash#177). Using our new custom USB Vendor ID, we’re able to cut some steps out of the flashing procedure for comma four.
Join the community
openpilot is built by comma together with the openpilot community. Get involved in the community to push the driving experience forward.
- Join the community Discord
- Post your driving feedback in
#driving-feedbackon Discord - Upload your driving data with Firehose Mode
- Get started with openpilot development
Want to build the next release with us? We’re hiring.
[1] Peng, Xue Bin, et al. “Sim-to-real transfer of robotic control with dynamics randomization.” 2018 IEEE international conference on robotics and automation (ICRA). IEEE, 2018.

Leave a comment