Skip to content

1Thamer/openpilot0.5

Repository files navigation

Welcome to openpilot by Arne Schwarck https://youtu.be/WKwSq8TPdpo

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.

Highlight Features

  • Automatic Lane Change Assist (ALC): Check your surroundings, signal in the direction you would like to change lanes, and let openpilot do the rest. You can choose between three ALC profiles, Normal, Wifey, and Mad Max. Each increasing in steering torque.
  • Stock Lane Keeping Assist (LKA): Arne has worked on recreating the lane keeping assist system present in your car for openpilot. It works with cruise control not engaged, attempting to steer to keep you inside your lane when it detects you are departing it.
  • Dynamic Following Distance Profile: Three following distance (TR) profiles are available to select; 0.9 seconds, 2.7 seconds, and a custom tuned dynamic follow profile. The first two behave as your stock cruise control system does. Dynamic follow aims to provide a more natural feeling drive, adjusting your distance from the lead car based on your speed, your relative velocity with the lead car, and your acceleration (or deceleration). If the system detects the lead car decelerating, your car should start to brake sooner than a hard-coded TR value. Same with accelerating.
  • Slow Mode (SLO): For cars with longitudinal control down to 0 mph, you have the option to activate SLO mode which enables you to set your car's cruise control under your car's limit. For example, you could coast along at 15, 10, or even 5 mph.
  • Acceleration Profiles (GAS): You can select from three acceleration profiles with the GAS button. If your car accelerates too slowly for your liking, this will solve that. Recently added: dynamic acceleration profile for users with comma pedals. This should provide a smoother acceleration experience in stop and go traffic.
  • Select Vision Model (on 0.5.8, dynamic-follow branch only): You can select whether you would like to use the wiggly model or the normal vision model for path planning. Wiggly has more torque and can better guess the road curvature without lane lines, but it occasionally crashes or mispredicts the path.
  • EON and openpilot Stats: With the on-screen UI, you can view stats about your EON such as its temperature, your grey panda's GPS accuracy, the lead car's relative velocity, its distance, and more.

Warning from kegman: WARNING: Do NOT depend on OP to stop the car in time if you are approaching an object which is not in motion in the same direction as your car. The radar will NOT detect the stationary object in time to slow your car enough to stop. If you are approaching a stopped vehicle you must disengage and brake as radars ignore objects that are not in motion.



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

Make Model Supported Package Lateral Longitudinal No Accel Below No Steer Below Giraffe
Acura ILX 2016-17 AcuraWatch Plus Yes Yes 25mph1 25mph Nidec
Acura RDX 2018 AcuraWatch Plus Yes Yes 25mph1 12mph Nidec
Buick3 Regal 2018 Adaptive Cruise Yes Yes 0mph 7mph Custom7
Chevrolet3 Malibu 2017 Adaptive Cruise Yes Yes 0mph 7mph Custom7
Chevrolet3 Volt 2017-18 Adaptive Cruise Yes Yes 0mph 7mph Custom7
Cadillac3 ATS 2018 Adaptive Cruise Yes Yes 0mph 7mph Custom7
Chrysler Pacifica 2018 Adaptive Cruise Yes Stock 0mph 9mph FCA
Chrysler Pacifica Hybrid 2017-18 Adaptive Cruise Yes Stock 0mph 9mph FCA
GMC3 Acadia Denali 2018 Adaptive Cruise Yes Yes 0mph 7mph Custom7
Holden3 Astra 2017 Adaptive Cruise Yes Yes 0mph 7mph Custom7
Honda Accord 2018 All Yes Stock 0mph 3mph Bosch
Honda Civic Sedan/Coupe 2016-18 Honda Sensing Yes Yes 0mph 12mph Nidec
Honda Civic Sedan/Coupe 2019 Honda Sensing Yes Stock 0mph 2mph Bosch
Honda Civic Hatchback 2017-19 Honda Sensing Yes Stock 0mph 12mph Bosch
Honda CR-V 2015-16 Touring Yes Yes 25mph1 12mph Nidec
Honda CR-V 2017-18 Honda Sensing Yes Stock 0mph 12mph Bosch
Honda Odyssey 2017-19 Honda Sensing Yes Yes 25mph1 0mph Inverted Nidec
Honda Pilot 2016-18 Honda Sensing Yes Yes 25mph1 12mph Nidec
Honda Pilot 2019 All Yes Yes 25mph1 12mph Inverted Nidec
Honda Ridgeline 2017-19 Honda Sensing Yes Yes 25mph1 12mph Nidec
Hyundai Santa Fe 2019 All Yes Stock 0mph 0mph Custom6
Hyundai Elantra 2017 SCC + LKAS Yes Stock 19mph 34mph Custom6
Hyundai Genesis 2018 All Yes Stock 19mph 34mph Custom6
Jeep Grand Cherokee 2017-19 Adaptive Cruise Yes Stock 0mph 9mph FCA
Kia Optima 2019 SCC + LKAS Yes Stock 0mph 0mph Custom6
Kia Sorento 2018 All Yes Stock 0mph 0mph Custom6
Kia Stinger 2018 SCC + LKAS Yes Stock 0mph 0mph Custom6
Lexus RX Hybrid 2016-18 All Yes Yes2 0mph 0mph Toyota
Toyota Camry 20184 All Yes Stock 0mph5 0mph Toyota
Toyota C-HR 2017-184 All Yes Stock 0mph 0mph Toyota
Toyota Corolla 2017-18 All Yes Yes2 20mph1 0mph Toyota
Toyota Highlander 2017-18 All Yes Yes2 0mph 0mph Toyota
Toyota Highlander Hybrid 2018 All Yes Yes2 0mph 0mph Toyota
Toyota Prius 2016 TSS-P Yes Yes2 0mph 0mph Toyota
Toyota Prius 2017-18 All Yes Yes2 0mph 0mph Toyota
Toyota Prius Prime 2017-18 All Yes Yes2 0mph 0mph Toyota
Toyota Rav4 2016 TSS-P Yes Yes2 20mph1 0mph Toyota
Toyota Rav4 2017-18 All Yes Yes2 20mph1 0mph Toyota
Toyota Rav4 Hybrid 2017-18 All Yes Yes2 0mph 0mph Toyota

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

Make Model Supported Package Lateral Longitudinal No Accel Below No Steer Below Giraffe
Honda Fit 2018 Honda Sensing Yes Yes 25mph1 12mph Inverted Nidec
Tesla Model S 2012-13 All Yes Not yet Not applicable 0mph Custom8

[Honda Fit Pull Request].
[Tesla Model S Pull Request]
8Community 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.