一个开源的驾驶辅助系统

Adeeb Shihadeh d56426e236 lat planner retune + slow down for turns 1 年之前
.github 01db07375c nav model replay (#26697) 1 年之前
body @ dc780f858c 13c3dc40db body: fix UDS reqests (#26552) 1 年之前
cereal @ 22b1431132 c94365ea81 Revert "deprecate carControl gas + brake fields" 1 年之前
common 725e0665df common: add new class OpenPilotPrefix (#26753) 1 年之前
docs 31d14da03e Hyundai: Add FW Versions for Southeast Asia 2022 Ioniq 5 HDA1 (#26755) 1 年之前
laika_repo @ e1049cde0a 549a65d51e rawgpsd: publish ephemerides (#25931) 2 年之前
opendbc @ 4a7ad636ff 6dac5ed9e7 HKG CAN-FD: log brake errors/ACC faults (#26781) 1 年之前
panda @ 0da3177f0f 87a026bfa0 ev6 blinkers + increased low speed torque 1 年之前
pyextra 059dbf57e7 longitudinal MPC: use reset() function instead of recreating the solver in (#24091) 2 年之前
rednose_repo @ 3b6bd703b7 33a85302e0 Fix master-ci dirty working tree + CI test (#25087) 2 年之前
release 725e0665df common: add new class OpenPilotPrefix (#26753) 1 年之前
scripts 984134be0e FPv2: fixed fingerprint overrides query result (#25990) 2 年之前
selfdrive d56426e236 lat planner retune + slow down for turns 1 年之前
site_scons 640e19f1a1 Add scanner for Cython dependencies (#19722) 3 年之前
system 2bbf68c63b camerad: lower cost for OX high gain idxs (#26775) 1 年之前
third_party 0f6b5d8b04 third party: add -Wno-unqualified-std-cast-call to fix json11 build (#25686) 2 年之前
tinygrad_repo @ 0b96780a38 d0695ad506 nav model + driving style 1 年之前
tools a3a052b828 Cabana: improve DBC file selector (#26787) 1 年之前
.clang-tidy d89bb8b29c setup clang tidy (#19533) 3 年之前
.dir-locals.el 5fc734773e root directory hidden files 4 年之前
.dockerignore 42b4521f7b sim: update CARLA to 0.9.12 (#22497) 3 年之前
.editorconfig 76a465e0ec Write orientation & transform in C++ (#1637) 4 年之前
.gitattributes 3cffc7c175 cleanup .gitattributes (#23503) 2 年之前
.gitignore 46f70592ae navmodeld (#26665) 1 年之前
.gitmodules 78f0a175ae use upstream tinygrad (#26178) 2 年之前
.lfsconfig 3b3a61fcdf lfs: easier to use config (#23490) 2 年之前
.pre-commit-config.yaml 3ca9b7f02e Pipenv -> poetry (#24858) 2 年之前
.pylintrc 3c48bc47b7 Move a bunch of stuff to system/ part 3 (#24829) 2 年之前
.python-version b8215f213c update to python 3.8.10 (#22551) 3 年之前
Dockerfile.openpilot 5425336963 misc jenkins fixups (#24840) 2 年之前
Dockerfile.openpilot_base 3ca9b7f02e Pipenv -> poetry (#24858) 2 年之前
Dockerfile.openpilot_base_cl 8a4a390d6f Fix OpenCL driver URL (#26650) 1 年之前
Jenkinsfile bd9e2320ca jenkins: don't clog up build queue (#26724) 1 年之前
LICENSE 06c6ee312b root directory non hidden files 4 年之前
README.md 35ff65121e pre-commit: add codespell (#25571) 2 年之前
RELEASES.md eaecbb8995 HKG: Car Port for Genesis GV60 2022 (#26777) 1 年之前
SConstruct 5f8b46eabe Build panda/SConscript (#26646) 1 年之前
SECURITY.md be4392faaa Create SECURITY.md 2 年之前
codecov.yml 680c4e39bf disable codecov comment 4 年之前
laika 06c6ee312b root directory non hidden files 4 年之前
launch_chffrplus.sh 9a45a3b99b Move selfdrive/hardware/ to system/ (#24725) 2 年之前
launch_env.sh d87ea66802 agnos 6.2 (#26441) 1 年之前
launch_openpilot.sh 06c6ee312b root directory non hidden files 4 年之前
lgtm.yml 782d7023d2 phonelibs -> third_party (#22477) 3 年之前
mypy.ini 23a4e66b17 configure mypy outside of pre-commit environment (#25892) 2 年之前
poetry.lock 89c92996bb fix dependencies for macOS (#26684) 1 年之前
pyproject.toml 89c92996bb fix dependencies for macOS (#26684) 1 年之前
rednose 8f71de0dbe Rednose (#1503) 4 年之前
tinygrad 29cd51b876 modeld: Move from SNPE to tinygrad (#25207) 2 年之前
update_requirements.sh 89c92996bb fix dependencies for macOS (#26684) 1 年之前

README.md

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 on a dedicated device in a car

To use openpilot in a car, you need four things

  • A supported device to run this software: a comma three.
  • This software. The setup procedure of the comma three allows the user to enter a URL for custom software. The URL, openpilot.comma.ai will install the release version of openpilot. To install openpilot master, you can use installer.comma.ai/commaai/master, and replacing commaai with another GitHub username can install a fork.
  • One of the 200+ 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 car harness to connect to your car.

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

Running on PC

All openpilot services can run as usual on a PC without requiring special hardware or a car. You can also run openpilot on recorded or simulated data to develop or experiment with openpilot.

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.

A PC running openpilot can also control your vehicle if it is connected to a webcam, a black panda, and a harness.

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
└── system              # Generic services
    ├── camerad         # Driver to capture images from the camera sensors
    ├── clocksd         # Broadcasts current time
    ├── hardware        # Hardware abstraction classes
    ├── logcatd         # systemd journal as a service
    └── proclogd        # Logs information from /proc
└── 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
    ├── car             # Car specific code to read states and control actuators
    ├── controls        # Planning and controls
    ├── debug           # Tools to help you debug and do car ports
    ├── locationd       # Precise localization and vehicle parameter estimation
    ├── loggerd         # Logger and uploader of car data
    ├── manager         # Daemon that starts/stops all other daemons as needed
    ├── modeld          # Driving and monitoring model runners
    ├── monitoring      # Daemon to determine driver attention
    ├── navd            # Turn-by-turn navigation
    ├── 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 codecov