Skip to content

andrewcopenpilot/openpilot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents


What is openpilot?

openpilot is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC) and Automated Lane Centering (ALC) for a growing variety of supported car makes, models and model years. In addition, while openpilot is engaged, a camera based Driver Monitoring (DM) feature alerts distracted or asleep drivers.

Supported Hardware

At the moment, openpilot supports the EON DevKit. A car harness is recommended to connect the EON to the car. In the future, we'd like to support other platforms as well.

Supported Cars

Make Model (US Market Reference) Supported Package Lateral Longitudinal No Accel Below No Steer Below
Acura ILX 2016-18 AcuraWatch Plus Yes Yes 25mph6 25mph
Acura RDX 2016-18 AcuraWatch Plus Yes Yes 25mph6 12mph
Chrysler Pacifica 2017-181 Adaptive Cruise Yes Stock 0mph 9mph
Chrysler Pacifica Hybrid 2017-181 Adaptive Cruise Yes Stock 0mph 9mph
Chrysler Pacifica Hybrid 20191 Adaptive Cruise Yes Stock 0mph 39mph
Honda Accord 2018-19 All Yes Stock 0mph 3mph
Honda Accord Hybrid 2018-19 All Yes Stock 0mph 3mph
Honda Civic Sedan/Coupe 2016-18 Honda Sensing Yes Yes 0mph 12mph
Honda Civic Sedan/Coupe 2019 Honda Sensing Yes Stock 0mph 2mph
Honda Civic Hatchback 2017-19 Honda Sensing Yes Stock 0mph 12mph
Honda CR-V 2015-16 Touring Yes Yes 25mph6 12mph
Honda CR-V 2017-19 Honda Sensing Yes Stock 0mph 12mph
Honda CR-V Hybrid 2017-2019 Honda Sensing Yes Stock 0mph 12mph
Honda Fit 2018-19 Honda Sensing Yes Yes 25mph6 12mph
Honda Odyssey 2018-20 Honda Sensing Yes Yes 25mph6 0mph
Honda Passport 2019 All Yes Yes 25mph6 12mph
Honda Pilot 2016-18 Honda Sensing Yes Yes 25mph6 12mph
Honda Pilot 2019 All Yes Yes 25mph6 12mph
Honda Ridgeline 2017-19 Honda Sensing Yes Yes 25mph6 12mph
Hyundai Santa Fe 20192 All Yes Stock 0mph 0mph
Hyundai Elantra 2017-192 SCC + LKAS Yes Stock 19mph 34mph
Hyundai Genesis 20182 All Yes Stock 19mph 34mph
Jeep Grand Cherokee 2016-181 Adaptive Cruise Yes Stock 0mph 9mph
Jeep Grand Cherokee 20191 Adaptive Cruise Yes Stock 0mph 39mph
Kia Optima 20192 SCC + LKAS Yes Stock 0mph 0mph
Kia Sorento 20182 All Yes Stock 0mph 0mph
Kia Stinger 20182 SCC + LKAS Yes Stock 0mph 0mph
Lexus CT Hybrid 2017-18 All Yes Stock5 0mph 0mph
Lexus ES Hybrid 2019 All Yes Yes 0mph 0mph
Lexus RX Hybrid 2016-19 All Yes Stock5 0mph 0mph
Lexus IS 2017-2019 All Yes Stock 22mph 0mph
Lexus IS Hybrid 2017 All Yes Stock 0mph 0mph
Subaru Crosstrek 2018-19 EyeSight Yes Stock 0mph 0mph
Subaru Impreza 2019-20 EyeSight Yes Stock 0mph 0mph
Toyota Avalon 2016 TSS-P Yes Stock5 20mph6 0mph
Toyota Avalon 2017-18 All Yes Stock5 20mph6 0mph
Toyota Camry 2018-19 All Yes Stock 0mph3 0mph
Toyota Camry Hybrid 2018-19 All Yes Stock 0mph3 0mph
Toyota C-HR 2017-19 All Yes Stock 0mph 0mph
Toyota C-HR Hybrid 2017-19 All Yes Stock 0mph 0mph
Toyota Corolla 2017-19 All Yes Stock5 20mph6 0mph
Toyota Corolla 2020 All Yes Yes 0mph 0mph
Toyota Corolla Hatchback 2019 All Yes Yes 0mph 0mph
Toyota Corolla Hybrid 2020 All Yes Yes 0mph 0mph
Toyota Highlander 2017-19 All Yes Stock5 0mph 0mph
Toyota Highlander Hybrid 2017-19 All Yes Stock5 0mph 0mph
Toyota Prius 2016 TSS-P Yes Stock5 0mph 0mph
Toyota Prius 2017-19 All Yes Stock5 0mph 0mph
Toyota Prius Prime 2017-20 All Yes Stock5 0mph 0mph
Toyota Rav4 2016 TSS-P Yes Stock5 20mph6 0mph
Toyota Rav4 2017-18 All Yes Stock5 20mph6 0mph
Toyota Rav4 2019 All Yes Yes 0mph 0mph
Toyota Rav4 Hybrid 2016 TSS-P Yes Stock5 0mph 0mph
Toyota Rav4 Hybrid 2017-18 All Yes Stock5 0mph 0mph
Toyota Sienna 2018 All Yes Stock5 0mph 0mph
Volkswagen Golf 2016-194 Driver Assistance Yes Stock 0mph 0mph

1Requires a panda and FCA giraffe
2Requires a panda and open sourced Hyundai Giraffe, designed for the 2019 Sante Fe; pinout may differ for other Hyundai and Kia models.
328mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control.
4Requires a custom connector for the car harness

Community Maintained Cars and Features

Make Model (US Market Reference) Supported Package Lateral Longitudinal No Accel Below No Steer Below
Buick Regal 20187 Adaptive Cruise Yes Yes 0mph 7mph
Chevrolet Malibu 20177 Adaptive Cruise Yes Yes 0mph 7mph
Chevrolet Volt 2017-187 Adaptive Cruise Yes Yes 0mph 7mph
Cadillac ATS 20187 Adaptive Cruise Yes Yes 0mph 7mph
GMC Acadia Denali 20187 Adaptive Cruise Yes Yes 0mph 7mph
Holden Astra 20177 Adaptive Cruise Yes Yes 0mph 7mph

5When disconnecting the Driver Support Unit (DSU), openpilot longitudinal control will replace stock ACC. For DSU locations, see Toyota Wiki page. NOTE: disconnecting the DSU disables Automatic Emergency Braking (AEB).
6Comma Pedal is used to provide stop-and-go capability to some of the openpilot-supported cars that don't currently support stop-and-go. Here is how to build a Comma Pedal. NOTE: The Comma Pedal is not officially supported by comma.
7Requires a panda and community built giraffe. NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).

Community Maintained Cars and Features are not confirmed by comma to meet our safety model. Be extra cautious using them.

Installation Instructions

Install openpilot on a EON by entering https://openpilot.comma.ai during the installer setup.

Follow this video instructions to properly mount the EON on the windshield. Note: openpilot features an automatic pose calibration routine and openpilot performance should not be affected by small pitch and yaw misalignments caused by imprecise EON mounting.

You will be able to engage openpilot after reviewing the onboarding screens and finishing the calibration procedure.

Limitations of openpilot ALC

openpilot Automated Lane Centering (ALC) does not automatically drive the vehicle or reduce the amount of attention that must be paid to operate your vehicle. The driver must always keep control of the steering wheel and be ready to correct the openpilot ALC action at all times.

Many factors can impact the performance of openpilot ALC, causing it to be unable to function as intended. These include, but are not limited to:

  • Poor visibility (heavy rain, snow, fog, etc.) or weather conditions that may interfere with sensor operation.
  • The road facing camera is obstructed, covered or damaged by mud, ice, snow, etc.
  • Obstruction caused by applying excessive paint or adhesive products (such as wraps, stickers, rubber coating, etc.) onto the vehicle.
  • The EON is mounted incorrectly.
  • When in sharp curves, like on-off ramps, intersections etc...; openpilot is designed to be limited in the amount of steering torque it can produce.
  • In the presence of restricted lanes or construction zones.
  • When driving on highly banked roads or in presence of strong cross-wind.
  • Extremely hot or cold temperatures.
  • Bright light (due to oncoming headlights, direct sunlight, etc.).
  • Driving on hills, narrow, or winding roads.

The list above does not represent an exhaustive list of situations that may interfere with proper operation of openpilot components. It is the driver's responsibility to be in control of the vehicle at all times.

Limitations of openpilot ACC

openpilot Adaptive Cruise Control (ACC) is not a system that allows careless or inattentive driving. It is still necessary for the driver to pay close attention to the vehicle’s surroundings and to be ready to re-take control of the gas and the brake at all times.

Many factors can impact the performance of openpilot ACC, causing it to be unable to function as intended. These include, but are not limited to:

  • Poor visibility (heavy rain, snow, fog, etc.) or weather conditions that may interfere with sensor operation.
  • The road facing camera or radar are obstructed, covered, or damaged by mud, ice, snow, etc.
  • Obstruction caused by applying excessive paint or adhesive products (such as wraps, stickers, rubber coating, etc.) onto the vehicle.
  • The EON is mounted incorrectly.
  • Approaching a toll booth, a bridge or a large metal plate.
  • When driving on roads with pedestrians, cyclists, etc...
  • In presence of traffic signs or stop lights, which are not detected by openpilot at this time.
  • When the posted speed limit is below the user selected set speed. openpilot does not detect speed limits at this time.
  • In presence of vehicles in the same lane that are not moving.
  • When abrupt braking maneuvers are required. openpilot is designed to be limited in the amount of deceleration and acceleration that it can produce.
  • When surrounding vehicles perform close cut-ins from neighbor lanes.
  • Driving on hills, narrow, or winding roads.
  • Extremely hot or cold temperatures.
  • Bright light (due to oncoming headlights, direct sunlight, etc.).
  • Interference from other equipment that generates radar waves.

The list above does not represent an exhaustive list of situations that may interfere with proper operation of openpilot components. It is the driver's responsibility to be in control of the vehicle at all times.

Limitation of openpilot DM

openpilot Driver Monitoring (DM) should not be considered an exact measurements of the status of alertness of the driver.

Many factors can impact the performance of openpilot DM, causing it to be unable to function as intended. These include, but are not limited to:

  • Low light conditions, such as driving at night or in dark tunnels.
  • Bright light (due to oncoming headlights, direct sunlight, etc.).
  • The driver face is partially or completely outside field of view of the the driver facing camera.
  • Right hand driving vehicles.
  • The driver facing camera is obstructed, covered, or damaged.

The list above does not represent an exhaustive list of situations that may interfere with proper operation of openpilot components. A fatigued or impared driver should not rely on openpilot DM to asses his level of attention.

Integration with Stock Features

Lane Departure Warning (LDW), Lane Keep Assist (LKAS), and Automated Lane Centering (ALC) are replaced by openpilot ALC, which only functions when openpilot is engaged.

Adaptive Cruise Control (ACC) is replaced by openpilot ACC.

openpilot preserves all other vehicle's stock features, including, but are not limited to: AEB, auto high-beam, blind spot warning, and side collision warning.

User Data and comma Account

By default, openpilot uploads the driving data to our servers. You can also access your data by pairing with the comma connect app (iOS, android). We use your data to train better models and improve openpilot for everyone.

openpilot is open source software: the user is free to disable data collection if they wish to do so.

It logs the road facing camera, 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. 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.

Safety and Testing

  • openpilot observes ISO26262 guidelines, see SAFETY.md for more detail.
  • openpilot has software in the loop tests that run on every commit.
  • The safety model code lives in panda and is written in C, see code rigor for more details.
  • panda has software in the loop safety tests.
  • 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.
  • We run the latest openpilot in a testing closet containing 10 EONs continuously replaying routes.

Testing on PC

Check out openpilot-tools: lots of tools you can use to replay driving data, test and develop openpilot from your pc.

Community and Contributing

openpilot is developed by comma and by users like you. We welcome both pull requests and issues on GitHub. Bug fixes and new car ports are encouraged.

You can add support for your car by following guides we have written for Brand and Model ports. Generally, a car with adaptive cruise control and lane keep assist is a good candidate. Join our Discord to discuss car ports: most car makes have a dedicated channel.

Want to get paid to work on openpilot? comma is hiring. We also have a bounty program.

And follow us on Twitter.

Directory Structure

.
├── apk                 # The apk files used for the UI
├── cereal              # The messaging spec and libs used for all logs on EON
├── common              # Library like functionality we've developed here
├── installer/updater   # Manages auto-updates of openpilot
├── opendbc             # Files showing how to interpret data from cars
├── panda               # Code used to communicate on CAN
├── phonelibs           # Libraries used on EON
├── pyextra             # Libraries used on EON
└── selfdrive           # Code needed to drive the car
    ├── assets          # Fonts and images for UI
    ├── athena          # Allows communication with the app
    ├── boardd          # Daemon to talk to the board
    ├── camerad         # Driver to capture images from the camera sensors
    ├── car             # Car specific code to read states and control actuators
    ├── common          # Shared C/C++ code for the daemons
    ├── controls        # Perception, planning and controls
    ├── debug           # Tools to help you debug and do car ports
    ├── locationd       # Soon to be home of precise location
    ├── logcatd         # Android logcat as a service
    ├── loggerd         # Logger and uploader of car data
    ├── modeld          # Driving model runner
    ├── monitoringd     # Driver monitoring model runner
    ├── proclogd        # Logs information from proc
    ├── sensord         # IMU / GPS interface code
    ├── tests           # Unit tests, system tests and a car simulator
    └── ui              # The UI

To understand how the services interact, see cereal/service_list.yaml.

Licensing

openpilot is released under the MIT license. Some parts of the software are released under other licenses as specified.

Any user of this software shall indemnify and hold harmless comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.

THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT. YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS. NO WARRANTY EXPRESSED OR IMPLIED.


About

open source driving agent

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 65.1%
  • C++ 21.7%
  • Python 10.8%
  • Objective-C 0.6%
  • Cap'n Proto 0.5%
  • Makefile 0.5%
  • Other 0.8%