openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for 250+ supported car makes and models.
Go to file
John Jones e2b3b65db5 adding steering change from video and removing integer div and adding ki/kp changes
old-commit-hash: 942655c9479e20f414b853a96a96f8ba529eb03c
2017-06-11 13:20:19 -04:00
apk openpilot v0.3.2 release 2017-05-22 22:26:12 -07:00
cereal openpilot v0.3.2 release 2017-05-22 22:26:12 -07:00
common adding steering change from video and removing integer div and adding ki/kp changes 2017-06-11 13:20:19 -04:00
dbcs Adds support for 2016 Honda CR-V Touring 2017-06-08 01:37:39 -04:00
panda@be7d2ee397 openpilot v0.3.1 release 2017-05-17 00:40:33 -07:00
phonelibs openpilot v0.3.0-devel release 2017-05-11 12:41:17 -07:00
selfdrive adding steering change from video and removing integer div and adding ki/kp changes 2017-06-11 13:20:19 -04:00
.gitattributes openpilot release 2016-11-29 18:34:21 -08:00
.gitignore openpilot v0.3.2 release 2017-05-22 22:26:12 -07:00
.gitmodules openpilot v0.3.0 release 2017-05-12 16:46:20 -07:00
.travis.yml openpilot v0.3.0-devel release 2017-05-11 12:41:17 -07:00
Dockerfile.openpilot openpilot v0.2 release 2016-12-12 20:18:19 -08:00
LICENSE.openpilot openpilot v0.2.1 release 2016-12-14 21:29:12 -08:00
Makefile openpilot v0.2.4 release 2017-01-29 16:10:13 -08:00
README.md openpilot v0.3.0-devel release 2017-05-11 12:41:17 -07:00
RELEASES.md openpilot v0.3.2 release 2017-05-22 22:26:12 -07:00
SAFETY.md openpilot release 2016-11-29 18:34:21 -08:00
requirements_openpilot.txt openpilot v0.3.0-devel release 2017-05-11 12:41:17 -07:00
run_docker_tests.sh openpilot v0.2 release 2016-12-12 20:18:19 -08:00

README.md

Welcome to openpilot

openpilot is an open source driving agent.

Currently it performs the functions of Adaptive Cruise Control (ACC) and Lane Keeping Assist System (LKAS) for Hondas and Acuras. It's about on par with Tesla Autopilot at launch, and better than all other manufacturers.

The openpilot codebase has been written to be concise and enable rapid prototyping. We look forward to your contributions - improving real vehicle automation has never been easier.

Hardware

Right now openpilot supports the neo research platform for vehicle control. We'd like to support other platforms as well.

Install openpilot on a neo device by entering https://openpilot.comma.ai during NEOS setup.

Supported Cars

  • Acura ILX 2016 with AcuraWatch Plus

    • Limitations: Due to use of the cruise control for gas, it can only be enabled above 25 mph
  • Honda Civic 2016 with Honda Sensing

    • Limitations: Due to limitations in steering firmware, steering is disabled below 18 mph

Directory structure

  • cereal -- The messaging spec used for all logs on the phone
  • common -- Library like functionality we've developed here
  • dbcs -- Files showing how to interpret data from cars
  • panda -- Code used to communicate on CAN and LIN
  • phonelibs -- Libraries used on the phone
  • selfdrive -- Code needed to drive the car
    • assets -- Fonts for ui
    • boardd -- Daemon to talk to the board
    • car -- Code that talks to the car and implements CarInterface
    • common -- Shared C/C++ code for the daemons
    • controls -- Python controls (PID loops etc) for the car
    • debug -- Tools to help you debug and do car ports
    • logcatd -- Android logcat as a service
    • loggerd -- Logger and uploader of car data
    • proclogd -- Logs information from proc
    • radar -- Code that talks to the radar and implements RadarInterface
    • sensord -- IMU / GPS interface code
    • test/plant -- Car simulator running code through virtual maneuvers
    • ui -- The UI
    • visiond -- embedded vision pipeline

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

Testing on PC

There is rudimentary infrastructure to run a basic simulation and generate a report of openpilot's behavior in different scenarios.

# Requires working docker
./run_docker_tests.sh

The results are written to selfdrive/test/plant/out/index.html

More extensive testing infrastructure and simulation environments are coming soon.

Adding Car Support

It should be relatively easy to add support for the Honda CR-V Touring. The brake message is the same. Steering has a slightly different message with a different message id. Sniff CAN while using LKAS to find it.

The Honda Accord uses different signaling for the steering and probably requires new hardware.

Adding other manufacturers besides Honda/Acura is doable but will be more of an undertaking.

User Data / chffr Account / Crash Reporting

By default openpilot creates an account and includes a client for chffr, our dashcam app. We use your data to train better models and improve openpilot for everyone.

It's open source software, so you are free to disable it if you wish.

It logs the road facing camera, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs. It does not log the user facing camera or the microphone.

By using it, 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.ai. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma.ai for the use of this data.

Contributing

We welcome both pull requests and issues on github. See the TODO file for a list of good places to start.

Want to get paid to work on openpilot? comma.ai is hiring

Licensing

openpilot is released under the MIT license.

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.