Shane Smiskol 474ba19c81 Add Disengage on Accelerator Toggle (#23977)
* Squashed commit of the following:

commit 953bcf0ecf8d03f0fec9ce0d5442cc660ae2347d
Merge: b4198608d efd04715e
Author: Shane Smiskol <shane@smiskol.com>
Date:   Fri Apr 1 19:58:06 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit b4198608dac9595bfeb9443f95cd6c5d385cd62d
Merge: 24f90b2c8 0e983562d
Author: Shane Smiskol <shane@smiskol.com>
Date:   Fri Apr 1 14:32:54 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 24f90b2c8d6ae509c0776b6e33b743467aa08dee
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Mar 31 14:07:52 2022 -0700

    revert changes and get ready for override

commit aa514df6b5e8431f0faa07f6b25eb5cb6c9f2749
Author: Shane Smiskol <shane@smiskol.com>
Date:   Wed Mar 30 20:52:24 2022 -0700

    temporary

commit c874e10c2555968c683f629c4582ab22e51d431f
Author: Shane Smiskol <shane@smiskol.com>
Date:   Wed Mar 30 00:30:13 2022 -0700

    move gasPressed to controlsd

commit fe670439dff5bc6dfc5963d79ca2febe0c5920c7
Merge: 49d3b6d11 c78701e47
Author: Shane Smiskol <shane@smiskol.com>
Date:   Wed Mar 30 00:15:48 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 49d3b6d1162893fa94b2294152f0718eeb4698ed
Merge: 475b27e74 3e819bc5a
Author: Shane Smiskol <shane@smiskol.com>
Date:   Mon Mar 28 13:06:08 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 475b27e74fd6479f1d148e9ded1eca6ee476865c
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Mar 24 20:24:59 2022 -0700

    update SAFETY.md

commit 0798eadb82749e12ecbaa86f4e57b21bd3dbc7e8
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Mar 24 17:52:06 2022 -0700

     ➡️ 🔋

    bump

commit d2b64b89cf8d7265bc90848b4e3a2276c9a4cb78
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Mar 24 16:19:34 2022 -0700

    these changes will be in border PR

    these changes will be border PR

commit bed31e63de2244c161729773978fef8a9246ddb5
Merge: 491417640 603e07793
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Mar 24 16:17:31 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 49141764098e3a701ff123ead52de4656b31db4d
Merge: 9291e9f00 46ed8bb8e
Author: Shane Smiskol <shane@smiskol.com>
Date:   Wed Mar 23 19:00:26 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 9291e9f0045780669b2ffa7f08fb10373c03b070
Merge: 2aed64157 2c947f193
Author: Shane Smiskol <shane@smiskol.com>
Date:   Fri Mar 18 19:03:13 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 2aed64157d6e9dc993d103a2c6abf7e643410562
Author: Shane Smiskol <shane@smiskol.com>
Date:   Fri Mar 18 19:03:03 2022 -0700

    Revert "send pre-enable state when gas is pressed"

    This reverts commit 8d82e697dc2efade307413e767d14b56b4d2d079.

commit a219defe5342efa731a957b2ff4fd86292c1f239
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Mar 17 12:50:46 2022 -0700

    bump cereal

commit 8d82e697dc2efade307413e767d14b56b4d2d079
Author: Shane Smiskol <shane@smiskol.com>
Date:   Wed Mar 16 22:40:13 2022 -0700

    send pre-enable state when gas is pressed

    formatting and it's out

    forgot one

    allow gas press

    show toggle

    revert changes

    revert changes

commit 5eb4d1ab1b77ac65bdd901f692ebfb848d5187ca
Merge: bad1bdc74 d0ef25959
Author: Shane Smiskol <shane@smiskol.com>
Date:   Wed Mar 16 22:29:43 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit bad1bdc7428c5d8a4a765b259da504f0ade84424
Author: Shane Smiskol <shane@smiskol.com>
Date:   Tue Mar 15 23:03:56 2022 -0700

    clean up a bit

commit 7516ed9b786536a07f00a92b9c1742ca252a01d1
Author: Shane Smiskol <shane@smiskol.com>
Date:   Tue Mar 15 22:55:09 2022 -0700

    these are null checks right now

commit 408f5f1d633521b29b08d966c9b387fa79dff0d6
Author: Shane Smiskol <shane@smiskol.com>
Date:   Tue Mar 15 22:51:14 2022 -0700

    should work

commit be1978e29c03d8843cf073cc9ddf84020fd2b378
Author: Shane Smiskol <shane@smiskol.com>
Date:   Tue Mar 15 22:36:16 2022 -0700

    stash

commit f0bd4c47e9d27061c6cd3b88765a7c10995f42db
Author: Shane Smiskol <shane@smiskol.com>
Date:   Tue Mar 15 22:26:24 2022 -0700

    this was flipped

commit d5b6e30389a727e8559331acd706422e1b246f60
Merge: 820b19894 c814c1383
Author: Shane Smiskol <shane@smiskol.com>
Date:   Tue Mar 15 22:25:49 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 820b1989496225df1f66f39b477f1e9402db1b19
Merge: 91763f9ff 6d2483ff9
Author: Shane Smiskol <shane@smiskol.com>
Date:   Mon Mar 14 23:39:34 2022 -0700

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 91763f9ff4321986babce1a7b1272fcf64c8f753
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Feb 24 20:15:26 2022 -0800

    add icon from jozef 🔥

commit 1885c9e2bacd9351c7e421b1436dcbfbde238436
Merge: 1f591736a eae207a84
Author: Shane Smiskol <shane@smiskol.com>
Date:   Thu Feb 24 20:08:07 2022 -0800

    Merge remote-tracking branch 'upstream/master' into disengage-on-gas

commit 1f591736a2767b1ed892c29ec5000cc7348f01c7
Merge: 465811f0b ebf5b27a7
Author: Jason Wen <47793918+sunnyhaibin@users.noreply.github.com>
Date:   Sat Feb 12 10:24:29 2022 -0500

    Merge branch 'master' into disengage-on-gas

commit 465811f0b4776e43a289398e4d4369362b7da58c
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Feb 11 11:20:32 2022 -0500

    Add param to process replay

commit 0344363a533505435cff87eb33356b2364a4156f
Merge: 700efcb3f 1175355b7
Author: Jason Wen <47793918+sunnyhaibin@users.noreply.github.com>
Date:   Fri Feb 11 11:07:31 2022 -0500

    Merge branch 'master' into disengage-on-gas

commit 700efcb3f444092f99ef10e9908f83402429d742
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Feb 11 11:04:39 2022 -0500

    Add param to unsafeMode

commit 220ce272fee1f7f5ace2a04052605a6e4f95712b
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Feb 11 10:54:16 2022 -0500

    Add param to unsafeMode

commit d273bb78acbc23ee5255e461fa71b2f0400a5e03
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Feb 11 10:52:22 2022 -0500

    Resolve conflicts

commit 1a85afd60c2f0d3140dfa8e7cd574d6b88abd5e3
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Feb 11 10:51:50 2022 -0500

    Resolve conflicts

commit e3be32afc2bb2423d29e2b4f85b3cff3fe72aab9
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Feb 11 10:51:08 2022 -0500

    Resolve conflicts

commit f27203af3afe612173bf9a63e15c57118598b5b8
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Wed Jan 19 00:30:09 2022 -0500

    Add param to process replay

commit 04c0ad1a54f4fea5efe74b3203d9bdbd693b64a6
Author: Jason Wen <47793918+sunnyhaibin@users.noreply.github.com>
Date:   Wed Jan 19 00:28:49 2022 -0500

    Update interfaces.py

    Co-authored-by: Willem Melching <willem.melching@gmail.com>

commit 99cf13caeb4d9f2c95c25e1e78b6e353ea508cb6
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Sat Jan 15 00:03:38 2022 -0500

    Fix missing params lib

commit 2230254ca709625d591b0c73d1a6022c450f6ef6
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Jan 14 23:38:46 2022 -0500

    Disengage on gas toggle

commit 87475e02cb63cc39c9b16edc67f303e02d17e6ef
Author: Jason Wen <haibin.wen3@gmail.com>
Date:   Fri Jan 14 23:24:00 2022 -0500

    Disengage on gas toggle

* bump

* use ALTERNATIVE_EXPERIENCE

* or it

* de-bump

* update refs

* update refs!

* you can just ctrl+click ALTERNATIVE_EXPERIENCE!

* already have a params

* update text
old-commit-hash: f1f40c117a
2022-04-04 21:59:52 -07:00
2022-03-23 16:42:04 -07:00
2022-04-01 20:59:15 -07:00
2022-03-30 12:09:38 -07:00
2022-03-25 17:27:30 -07:00
2022-04-01 15:12:54 -07:00
2021-01-05 12:50:23 -08:00
2020-01-17 10:25:50 -08:00
2022-01-12 23:07:06 -08:00
2020-06-15 16:49:18 -07:00
2022-01-10 23:14:30 -08:00
2020-05-11 10:40:49 -07:00
2020-01-17 10:22:00 -08:00
2022-02-08 19:48:14 -08:00
2021-10-07 16:32:44 -07:00
2020-01-17 10:22:00 -08:00
2020-05-28 15:05:04 -07:00
2021-12-01 15:37:59 -08:00
2020-05-14 15:36:56 -07:00

Table of Contents


What is openpilot?

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. In addition, while openpilot is engaged, a camera based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about the vehicle integration and limitations.

Running in a car

To use openpilot in a car, you need four things

  • This software. It's free and available right here.
  • One of the 150+ supported cars. 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 supported device to run this software. This can be a comma two, comma three, or if you like to experiment, a Ubuntu computer with webcams.
  • A way to connect to your car. With a comma two or three, you need only a car harness. With an EON Gold or PC, you also need a black panda.

We have detailed instructions for how to install the device in a car.

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.

With openpilot's tools you can plot logs, replay drives and watch the full-res camera streams. See the tools README for more information.

You can also run openpilot in simulation with the CARLA simulator. 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.

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. Check out the contributing docs.

Documentation related to openpilot development can be found on docs.comma.ai. Information about running openpilot (e.g. FAQ, fingerprinting, troubleshooting, custom forks, community hardware) should go on the wiki.

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.

And follow us on Twitter.

User Data and comma Account

By default, openpilot uploads the driving data to our servers. You can also access your data through comma connect. 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.

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. 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 details.
  • openpilot has software in the loop tests that run on every commit.
  • The code enforcing the safety model 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 comma devices continuously replaying routes.

Directory Structure

.
├── cereal              # The messaging spec and libs used for all logs
├── common              # Library like functionality we've developed here
├── docs                # Documentation
├── opendbc             # Files showing how to interpret data from cars
├── panda               # Code used to communicate on CAN
├── third_party         # External libraries
├── pyextra             # Extra python packages
└── selfdrive           # Code needed to drive the car
    ├── assets          # Fonts, images, and sounds 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        # Planning and controls
    ├── debug           # Tools to help you debug and do car ports
    ├── locationd       # Precise localization and vehicle parameter estimation
    ├── logcatd         # Android logcat as a service
    ├── loggerd         # Logger and uploader of car data
    ├── modeld          # Driving and monitoring model runners
    ├── proclogd        # Logs information from proc
    ├── sensord         # IMU interface code
    ├── test            # Unit tests, system tests, and a car simulator
    └── ui              # The UI

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.


openpilot tests Total alerts Language grade: Python Language grade: C/C++ codecov

Languages
Python 70.6%
C++ 21.7%
C 2.2%
Cap'n Proto 1.9%
Shell 1.6%
Other 1.9%