[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW) and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models and model years](docs/CARS.md). In addition, while openpilot is engaged, a camerabased Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
<table>
<tr>
@ -40,9 +40,9 @@ Running on a dedicated device in a car
To use openpilot in a car, you need four things
* A supported device to run this software: a [comma three](https://comma.ai/shop/products/three).
* This software. The setup procedure of the comma three allows the user to enter a url for custom software.
The url, openpilot.comma.ai will install the release version of openpilot. To install openpilot master, you can use installer.comma.ai/commaai/master, and replacing commaai with another github username can install a fork.
* One of [the 150+ supported cars](docs/CARS.md). We support Honda, Toyota, Hyundai, Nissan, Kia, Chrysler, Lexus, Acura, Audi, VW, and more. If your car is not supported, but has adaptive cruise control and lane keeping assist, it's likely able to run openpilot.
* This software. The setup procedure of the comma three allows the user to enter a URL for custom software.
The URL, openpilot.comma.ai will install the release version of openpilot. To install openpilot master, you can use installer.comma.ai/commaai/master, and replacing commaai with another GitHub username can install a fork.
* One of [the 200+ supported cars](docs/CARS.md). We support Honda, Toyota, Hyundai, Nissan, Kia, Chrysler, Lexus, Acura, Audi, VW, and more. If your car is not supported but has adaptive cruise control and lane-keeping assist, it's likely able to run openpilot.
* A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car.
We have detailed instructions for [how to mount the device in a car](https://comma.ai/setup).
@ -50,13 +50,13 @@ We have detailed instructions for [how to mount the device in a car](https://com
Running on PC
------
All of openpilot's services can run as normal on a PC, even without special hardware or a car. To develop or experiment with openpilot you can run openpilot on recorded or simulated data.
All openpilot services can run as usual on a PC without requiring special hardware or a car. You can also run openpilot on recorded or simulated data to develop or experiment with openpilot.
With openpilot's tools you can plot logs, replay drives and watch the full-res camera streams. See [the tools README](tools/README.md) for more information.
With openpilot's tools, you can plot logs, replay drives, and watch the full-res camera streams. See [the tools README](tools/README.md) for more information.
You can also run openpilot in simulation [with the CARLA simulator](tools/sim/README.md). This allows openpilot to drive around a virtual car on your Ubuntu machine. The whole setup should only take a few minutes, but does require a decent GPU.
You can also run openpilot in simulation [with the CARLA simulator](tools/sim/README.md). This allows openpilot to drive around a virtual car on your Ubuntu machine. The whole setup should only take a few minutes but does require a decent GPU.
A PC running openpilot can also control your vehicle if it is connected to a [a webcam](https://github.com/commaai/openpilot/tree/master/tools/webcam), a [black panda](https://comma.ai/shop/products/panda), and [a harness](https://comma.ai/shop/products/car-harness).
A PC running openpilot can also control your vehicle if it is connected to a [webcam](https://github.com/commaai/openpilot/tree/master/tools/webcam), a [black panda](https://comma.ai/shop/products/panda), and a [harness](https://comma.ai/shop/products/car-harness).
Community and Contributing
------
@ -78,8 +78,8 @@ By default, openpilot uploads the driving data to our servers. You can also acce
openpilot is open source software: the user is free to disable data collection if they wish to do so.
openpilot logs the roadfacing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
The driverfacing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.
openpilot logs the road-facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
The driver-facing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.
By using openpilot, you agree to [our Privacy Policy](https://comma.ai/privacy). You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
@ -87,11 +87,11 @@ Safety and Testing
----
* openpilot observes ISO26262 guidelines, see [SAFETY.md](docs/SAFETY.md) for more details.
* openpilot has software in the loop [tests](.github/workflows/selfdrive_tests.yaml) that run on every commit.
* openpilot has software-in-the-loop [tests](.github/workflows/selfdrive_tests.yaml) that run on every commit.
* The code enforcing the safety model lives in panda and is written in C, see [code rigor](https://github.com/commaai/panda#code-rigor) for more details.
* panda has software in the loop [safety tests](https://github.com/commaai/panda/tree/master/tests/safety).
* Internally, we have a hardware in the loop Jenkins test suite that builds and unit tests the various processes.
* panda has additional hardware in the loop [tests](https://github.com/commaai/panda/blob/master/Jenkinsfile).
* panda has software-in-the-loop [safety tests](https://github.com/commaai/panda/tree/master/tests/safety).
* Internally, we have a hardware-in-the-loop Jenkins test suite that builds and unit tests the various processes.
* panda has additional hardware-in-the-loop [tests](https://github.com/commaai/panda/blob/master/Jenkinsfile).
* We run the latest openpilot in a testing closet containing 10 comma devices continuously replaying routes.
Directory Structure
@ -119,7 +119,7 @@ Directory Structure
├── debug # Tools to help you debug and do car ports
├── locationd # Precise localization and vehicle parameter estimation
├── loggerd # Logger and uploader of car data
├── manager # Deamon that starts/stops all other daemons as needed
├── manager # Daemon that starts/stops all other daemons as needed
├── modeld # Driving and monitoring model runners
├── monitoring # Daemon to determine driver attention
A supported vehicle is one that just works when you install a comma device. Every car performs differently with openpilot, but all supported cars should provide a better experience than any stock system.
A supported vehicle is one that just works when you install a comma three. All supported cars provide a better experience than any stock system.
## How We Rate The Cars
# 205 Supported Cars
### Stop and Go
- [](##) - openpilot operates down to 0 mph.
- [](##) - openpilot operates only above a minimum speed. See your car's manual for the minimum speed.
### Steer to 0
- [](##) - openpilot can control the steering wheel down to 0 mph.
- [](##) - No steering control below certain speeds. See your car's manual for the minimum speed.
### Steering Torque
- [](##) - Car has enough steering torque to comfortably take most highway turns.
- [](##) - Limited ability to make tighter turns.
# 201 Supported Cars
|Make|Model|Supported Package|openpilot ACC|Stop and Go|Steer to 0|Steering Torque|
|Audi|A3 2014-19|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|Audi|A3 Sportback e-tron 2017-18|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|Audi|Q2 2018|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|Audi|Q3 2020-21|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|Audi|RS3 2018|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|Audi|S3 2015-17|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|Cadillac|Escalade ESV 2016[<sup>1</sup>](#footnotes)|Adaptive Cruise Control (ACC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Ioniq Electric 2019|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Ioniq Electric 2020|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Ioniq Hybrid 2017-19|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Ioniq Hybrid 2020-22|Smart Cruise Control (SCC) & LFA|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Ioniq Plug-in Hybrid 2019|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Ioniq Plug-in Hybrid 2020-21|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Kona 2020|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Kona Electric 2018-21|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Kona Electric 2022|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Kona Hybrid 2020|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Santa Fe 2019-20|All|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Santa Fe 2021-22|All|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Santa Fe Hybrid 2022|All|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Santa Fe Plug-in Hybrid 2022|All|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Sonata 2018-19|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Tucson 2021|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Tucson Diesel 2019|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Hyundai|Veloster 2019-20|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Kia|K5 2021-22|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Kia|Niro Electric 2019|All|[](##)|[](##)|[](##)|[](##)|
|Kia|Niro Electric 2020|All|[](##)|[](##)|[](##)|[](##)|
|Kia|Niro Electric 2021|All|[](##)|[](##)|[](##)|[](##)|
|Kia|Niro Electric 2022|All|[](##)|[](##)|[](##)|[](##)|
|Kia|Niro Hybrid 2021|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Kia|Niro Hybrid 2022|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Kia|Niro Plug-in Hybrid 2018-19|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Kia|Optima 2017|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Kia|Optima 2019|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Kia|Seltos 2021|Smart Cruise Control (SCC)|[](##)|[](##)|[](##)|[](##)|
|Kia|Sorento 2018|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Kia|Sorento 2019|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Kia|Stinger 2018-20|Smart Cruise Control (SCC) & LKAS|[](##)|[](##)|[](##)|[](##)|
|Toyota|Avalon 2016|Toyota Safety Sense P|[](##)[<sup>3</sup>](#footnotes)|[](##)|[](##)|[](##)|
|Toyota|Prius 2016|Toyota Safety Sense P|[](##)[<sup>3</sup>](#footnotes)|[](##)|[](##)|[](##)|
|Toyota|Prius Prime 2017-20|All|[](##)[<sup>3</sup>](#footnotes)|[](##)|[](##)|[](##)|
|Toyota|Prius Prime 2021-22|All|[](##)|[](##)|[](##)|[](##)|
|Toyota|Prius v 2017|Toyota Safety Sense P|[](##)[<sup>3</sup>](#footnotes)|[](##)|[](##)|[](##)|
|Toyota|RAV4 2016|Toyota Safety Sense P|[](##)[<sup>3</sup>](#footnotes)|[](##)|[](##)|[](##)|
|Volkswagen|Arteon R 2020-22[<sup>7,8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|Volkswagen|Atlas Cross Sport 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|Volkswagen|Golf R 2015-19[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|Volkswagen|Jetta GLI 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|Volkswagen|Teramont Cross Sport 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|Volkswagen|Teramont X 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|Audi|A3 2014-19|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|[](##)|VW|
|Audi|A3 Sportback e-tron 2017-18|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|[](##)|VW|
|Audi|Q2 2018|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|[](##)|VW|
|Audi|Q3 2020-21|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|[](##)|VW|
|Audi|RS3 2018|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|[](##)|VW|
|Audi|S3 2015-17|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|[](##)|VW|
|Cadillac|Escalade ESV 2016[<sup>1</sup>](#footnotes)|Adaptive Cruise Control (ACC) & LKAS|openpilot|0 mph|6 mph|[](##)|[](##)|OBD-II|
|Chevrolet|Bolt EUV 2022-23|Premier or Premier Redline Trim without Super Cruise Package|Stock|0 mph|6 mph|[](##)|[](##)|GM|
|Hyundai|Ioniq Plug-in Hybrid 2020-21|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|Hyundai|Kona 2020|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai B|
|Hyundai|Kona Electric 2018-21|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai G|
|Hyundai|Kona Electric 2022|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai O|
|Toyota|Prius Prime 2017-20|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|Toyota|Prius Prime 2021-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|Toyota|Prius v 2017|Toyota Safety Sense P|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|Toyota|RAV4 2016|Toyota Safety Sense P|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
<sup>1</sup>Requires a <ahref="https://github.com/commaai/openpilot/wiki/GM#hardware">community built ASCM harness</a>. <b><i>NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).</i></b><br/>
@ -241,13 +230,13 @@ Although they're not upstream, the community has openpilot running on other make
# Don't see your car here?
**openpilot can support many more cars than it currently does.** There are a few reasons your car may not be supported.
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported! We're adding support for new cars all the time. We don't have a roadmap for car support, and in fact, most car support comes from users like you!
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported! We're adding support for new cars all the time. **We don't have a roadmap for car support**, and in fact, most car support comes from users like you!
### Which cars are able to be supported?
openpilot uses the existing steering, gas, and brake interfaces in your car. If your car lacks any one of these interfaces, openpilot will not be able to control the car. If your car has any form of [LKAS](https://en.wikipedia.org/wiki/Automated_Lane_Keeping_Systems)/[LCA](https://en.wikipedia.org/wiki/Lane_centering) and [ACC](https://en.wikipedia.org/wiki/Adaptive_cruise_control), then it almost certainly has these interfaces. These interfaces generally started shipping on cars around 2016.
openpilot uses the existing steering, gas, and brake interfaces in your car. If your car lacks any one of these interfaces, openpilot will not be able to control the car. If your car has [ACC](https://en.wikipedia.org/wiki/Adaptive_cruise_control) and any form of [LKAS](https://en.wikipedia.org/wiki/Automated_Lane_Keeping_Systems)/[LCA](https://en.wikipedia.org/wiki/Lane_centering), then it almost certainly has these interfaces. These features generally started shipping on cars around 2016. Note that manufacturers will often make their own [marketing terms](https://en.wikipedia.org/wiki/Adaptive_cruise_control#Vehicle_models_supporting_adaptive_cruise_control) for these features, such as Hyundai's "Smart Cruise Control" branding of Adaptive Cruise Control.
If your car has the following packages or features, then it's a good candidate for support. If it does not, then it's unlikely able to be supported.
If your car has the following packages or features, then it's a good candidate for support.
| Make | Required Package/Features |
| ---- | ------------------------- |
@ -265,8 +254,9 @@ All the cars that openpilot supports use a [CAN bus](https://en.wikipedia.org/wi
### Toyota Security
Specific new Toyota models are shipping with a new message authentication method that openpilot does not yet support.
So far, this list includes:
openpilot does not yet support these Toyota models due to a new message authentication method.
[Vote](https://comma.ai/shop/products/vote) if you'd like to see openpilot support on these models.
A supported vehicle is one that just works when you install a comma device. Every car performs differently with openpilot, but all supported cars should provide a better experience than any stock system.
## How We Rate The Cars
{% for star_row in STAR_DESCRIPTIONS.values() %}
{% for name, stars in star_row.items() %}
### {{name}}
{% for star, description in stars %}
- {{star_icon.format(star)}} - {{description}}
{% endfor %}
{% endfor %}
{% endfor %}
A supported vehicle is one that just works when you install a comma three. All supported cars provide a better experience than any stock system.
# {{all_car_info | length}} Supported Cars
|{{Column | map(attribute='value') | join('|')}}|
|---|---|---|:---:|:---:|:---:|:---:|
|---|---|---|{% for _ in range((Column | length) - 3) %}{{':---:|'}}{% endfor +%}
{% for car_info in all_car_info %}
|{% for column in Column %}{{car_info.get_column(column, star_icon, footnote_tag)}}|{% endfor %}
@ -39,13 +27,13 @@ Although they're not upstream, the community has openpilot running on other make
# Don't see your car here?
**openpilot can support many more cars than it currently does.** There are a few reasons your car may not be supported.
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported! We're adding support for new cars all the time. We don't have a roadmap for car support, and in fact, most car support comes from users like you!
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported! We're adding support for new cars all the time. **We don't have a roadmap for car support**, and in fact, most car support comes from users like you!
### Which cars are able to be supported?
openpilot uses the existing steering, gas, and brake interfaces in your car. If your car lacks any one of these interfaces, openpilot will not be able to control the car. If your car has any form of [LKAS](https://en.wikipedia.org/wiki/Automated_Lane_Keeping_Systems)/[LCA](https://en.wikipedia.org/wiki/Lane_centering) and [ACC](https://en.wikipedia.org/wiki/Adaptive_cruise_control), then it almost certainly has these interfaces. These interfaces generally started shipping on cars around 2016.
openpilot uses the existing steering, gas, and brake interfaces in your car. If your car lacks any one of these interfaces, openpilot will not be able to control the car. If your car has [ACC](https://en.wikipedia.org/wiki/Adaptive_cruise_control) and any form of [LKAS](https://en.wikipedia.org/wiki/Automated_Lane_Keeping_Systems)/[LCA](https://en.wikipedia.org/wiki/Lane_centering), then it almost certainly has these interfaces. These features generally started shipping on cars around 2016. Note that manufacturers will often make their own [marketing terms](https://en.wikipedia.org/wiki/Adaptive_cruise_control#Vehicle_models_supporting_adaptive_cruise_control) for these features, such as Hyundai's "Smart Cruise Control" branding of Adaptive Cruise Control.
If your car has the following packages or features, then it's a good candidate for support. If it does not, then it's unlikely able to be supported.
If your car has the following packages or features, then it's a good candidate for support.
| Make | Required Package/Features |
| ---- | ------------------------- |
@ -63,8 +51,9 @@ All the cars that openpilot supports use a [CAN bus](https://en.wikipedia.org/wi
### Toyota Security
Specific new Toyota models are shipping with a new message authentication method that openpilot does not yet support.
So far, this list includes:
openpilot does not yet support these Toyota models due to a new message authentication method.
[Vote](https://comma.ai/shop/products/vote) if you'd like to see openpilot support on these models.
CAR.BOLT_EUV:GMCarInfo("Chevrolet Bolt EUV 2022-23","Premier or Premier Redline Trim without Super Cruise Package",video_link="https://youtu.be/xvwzGMUA210",footnotes=[],harness=Harness.gm),
# The camera does SCC on these cars, rather than the radar
CAMERA_SCC_CAR={CAR.KONA_EV_2022,}
HYBRID_CAR={CAR.IONIQ_PHEV,CAR.ELANTRA_HEV_2021,CAR.KIA_NIRO_HEV,CAR.KIA_NIRO_HEV_2021,CAR.SONATA_HYBRID,CAR.KONA_HEV,CAR.IONIQ,CAR.IONIQ_HEV_2022,CAR.SANTA_FE_HEV_2022,CAR.SANTA_FE_PHEV_2022,CAR.IONIQ_PHEV_2019}# these cars use a different gas signal
HYBRID_CAR={CAR.IONIQ_PHEV,CAR.ELANTRA_HEV_2021,CAR.KIA_NIRO_PHEV,CAR.KIA_NIRO_HEV_2021,CAR.SONATA_HYBRID,CAR.KONA_HEV,CAR.IONIQ,CAR.IONIQ_HEV_2022,CAR.SANTA_FE_HEV_2022,CAR.SANTA_FE_PHEV_2022,CAR.IONIQ_PHEV_2019}# these cars use a different gas signal
set_speed=hud_control.setSpeed*CV.MS_TO_KPH# FIXME: follow the recent displayed-speed updates, also use mph_kmh toggle to fix display rounding problem?