Sign inSign up

opengg/openpilot

By opengg

•Updated over 7 years ago

Image
0

767

opengg/openpilot repository overview

⁠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 selected Honda, Toyota, Acura, Lexus, Chevrolet, Hyundai, Kia. It's about on par with Tesla Autopilot and GM Super Cruise, and better than all other manufacturers⁠.

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

⁠Table of Contents


⁠Community

openpilot is developed by comma.ai⁠ and users like you.

We have a Twitter you should follow⁠.

Also, we have a several thousand people community on Discord⁠.

⁠Hardware

At the moment openpilot supports the EON Dashcam DevKit⁠. A panda⁠ and a giraffe⁠ are recommended tools to interface the EON with the car. 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

MakeModelSupported PackageLateralLongitudinalNo Accel BelowNo Steer BelowGiraffe
AcuraILX 2016-17AcuraWatch PlusYesYes25mph125mphNidec
AcuraRDX 2018AcuraWatch PlusYesYes25mph112mphNidec
Buick3Regal 2018Adaptive CruiseYesYes0mph7mphCustom7
Chevrolet3Malibu 2017Adaptive CruiseYesYes0mph7mphCustom7
Chevrolet3Volt 2017-18Adaptive CruiseYesYes0mph7mphCustom7
Cadillac3ATS 2018Adaptive CruiseYesYes0mph7mphCustom7
ChryslerPacifica 2018Adaptive CruiseYesStock0mph9mphFCA
ChryslerPacifica Hybrid 2017-18Adaptive CruiseYesStock0mph9mphFCA
GMC3Acadia Denali 2018Adaptive CruiseYesYes0mph7mphCustom7
Holden3Astra 2017Adaptive CruiseYesYes0mph7mphCustom7
HondaAccord 2018AllYesStock0mph3mphBosch
HondaCivic Sedan/Coupe 2016-18Honda SensingYesYes0mph12mphNidec
HondaCivic Sedan/Coupe 2019Honda SensingYesStock0mph2mphBosch
HondaCivic Hatchback 2017-19Honda SensingYesStock0mph12mphBosch
HondaCR-V 2015-16TouringYesYes25mph112mphNidec
HondaCR-V 2017-18Honda SensingYesStock0mph12mphBosch
HondaOdyssey 2017-19Honda SensingYesYes25mph10mphInverted Nidec
HondaPilot 2016-18Honda SensingYesYes25mph112mphNidec
HondaPilot 2019AllYesYes25mph112mphInverted Nidec
HondaRidgeline 2017-19Honda SensingYesYes25mph112mphNidec
HyundaiSanta Fe 2019AllYesStock0mph0mphCustom6
HyundaiElantra 2017SCC + LKASYesStock19mph34mphCustom6
HyundaiGenesis 2018AllYesStock19mph34mphCustom6
JeepGrand Cherokee 2017-19Adaptive CruiseYesStock0mph9mphFCA
KiaOptima 2019SCC + LKASYesStock0mph0mphCustom6
KiaSorento 2018AllYesStock0mph0mphCustom6
KiaStinger 2018SCC + LKASYesStock0mph0mphCustom6
LexusRX Hybrid 2016-18AllYesYes20mph0mphToyota
ToyotaCamry 20184AllYesStock0mph50mphToyota
ToyotaC-HR 2017-184AllYesStock0mph0mphToyota
ToyotaCorolla 2017-18AllYesYes220mph10mphToyota
ToyotaHighlander 2017-18AllYesYes20mph0mphToyota
ToyotaHighlander Hybrid 2018AllYesYes20mph0mphToyota
ToyotaPrius 2016TSS-PYesYes20mph0mphToyota
ToyotaPrius 2017-18AllYesYes20mph0mphToyota
ToyotaPrius Prime 2017-18AllYesYes20mph0mphToyota
ToyotaRav4 2016TSS-PYesYes220mph10mphToyota
ToyotaRav4 2017-18AllYesYes220mph10mphToyota
ToyotaRav4 Hybrid 2017-18AllYesYes20mph0mphToyota

1Comma 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.ai⁠
2When disconnecting the Driver Support Unit (DSU), otherwise longitudinal control is stock ACC. For DSU locations, see Toyota Wiki page⁠
3GM installation guide⁠.
4It needs an extra 120Ohm resistor (pic1⁠, pic2⁠) on bus 3 and giraffe switches set to 01X1 (11X1 for stock LKAS), where X depends on if you have the comma power⁠.
528mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control.
6Open sourced Hyundai Giraffe⁠ is designed for the 2019 Sante Fe; pinout may differ for other Hyundais.
7Community built Giraffe, find more information here⁠.

⁠Community Maintained Cars

MakeModelSupported PackageLateralLongitudinalNo Accel BelowNo Steer BelowGiraffe
HondaFit 2018Honda SensingYesYes25mph112mphInverted Nidec
TeslaModel S 2012AllYesNot yetNot applicable0mphCustom9
TeslaModel S 2013AllYesNot yetNot applicable0mphCustom9

[Honda Fit Pull Request]⁠.
[Tesla Model S Pull Request]⁠
9Community built Giraffe, find more information here Community Tesla Giraffe⁠

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

⁠In Progress Cars

  • All TSS-P Toyota with Steering Assist and LSS-P Lexus with Steering Assist or Lane Keep Assist.
    • Only remaining Toyota cars with no port yet are the Avalon and the Sienna.
  • All Hyundai with SmartSense.
  • All Kia with SCC and LKAS.
  • All Chrysler, Jeep, Fiat with Adaptive Cruise Control and LaneSense.

⁠How can I add support for my car?

If your car has adaptive cruise control and lane keep assist, you are in luck. Using a panda⁠ and cabana⁠, you can understand how to make your car drive by wire.

We've written guides for Brand⁠ and Model⁠ ports. These guides might help you after you have the basics figured out.

  • BMW, Audi, Volvo, and Mercedes all use FlexRay⁠ and can be supported after FlexRay support⁠ is merged.
  • We put time into a Ford port, but the steering has a 10 second cutout limitation that makes it unusable.
  • The 2016-2017 Honda Accord uses a custom signaling protocol for steering that's unlikely to ever be upstreamed.

⁠Directory structure

.
├── apk                 # The apk files used for the UI
├── cereal              # The messaging spec 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 and LIN
├── phonelibs           # Libraries used on EON
├── pyextra             # Libraries used on EON
└── selfdrive           # Code needed to drive the car
    ├── assets          # Fonts and images for UI
    ├── boardd          # Daemon to talk to the board
    ├── can             # Helpers for parsing CAN messages
    ├── 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
    ├── mapd            # Fetches map data and computes next global path
    ├── orbd            # Computes ORB features from frames
    ├── proclogd        # Logs information from proc
    ├── sensord         # IMU / GPS interface code
    ├── test            # Car simulator running code through virtual maneuvers
    ├── ui              # The UI
    └── visiond         # Vision pipeline

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

⁠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. The user facing camera is only logged if you explicitly opt-in in settings. It does not log 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.

⁠Testing on PC

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

Also, within openpilot there is a rudimentary infrastructure to run a basic simulation and generate a report of openpilot's behavior in different longitudinal control scenarios.

# Requires working docker
./run_docker_tests.sh

⁠Contributing

We welcome both pull requests and issues on github⁠. Bug fixes and new car ports encouraged.

We also have a bounty program⁠.

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

⁠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.


Tag summary

Content type

Image

Digest

Size

717.5 MB

Last updated

over 7 years ago

docker pull opengg/openpilot