Forks - ponzu07/openpilot GitHub Wiki
openpilot forks are used for various purposes, often for use on a certain vehicle or for the development and testing of new features.
See JFrux's guide for installing forks here.
You can also use the fork manager at emu-sh/.oh-my-comma see: demo
Or, if you just want something to help you SSH into your device, check out Utilities for Developers
Owner | Link | Description |
---|---|---|
@kegman | kegman | Largely supports Honda. Has many various customization options. |
@zorrobyte | zorrobyte | Close to stock, automatically learns your curvature factor for better curve handling. Also supports the highly-accurate Zorro Steering Sensor (ZSS). |
@ErichMoraga | ErichMoraga | Toyota / ZSS |
@xx979xx | xx979xx | Hyundai / Kia / Genesis |
@eFini | dragonpilot | Heavily modified fork of openpilot with many different customizations accessible via UI. |
@jyoung8607 | jyoung8607 | Volkswagen |
@ShaneSmiskol | Stock Additions | Close to stock, has an implementation of following distance profiles similar to the stock Toyota cruise control system. Supports Prius w/ ZSS |
@bugsy924 | bugsy924 | Subaru (Recommended to use use mlp's fork which contains Bugsy's work). |
@mlp | martinl | Subaru (In progress PR supporting both Global and Pre-Global models). |
@RoxasTheNobody98 | RoxasTheNobody98 | Ford (WIP code. Not recommended due to lack of functional safety code). |
@afa | Afa | Honda fork for Chinese users who like customization |
@Ponzu | Ponzu07 | Japanese? |
Development
Helpful tips for creating and maintaining a successful openpilot fork.
-
comma.ai suggests familiarizing yourself with functional safety before starting development on a custom fork.
-
Here's where some of the commonly modified openpilot files are:
-
longcontrol.py: Controls gas and brakes from an input desired speed, using a PI controller
-
lane_planner.py: Calculates
dPoly
(the path openpilot tries to drive) from input lane line and path polys from the model -
planner.py: Has longitudinal acceleration limits. Picks the slowest longitudinal solution to use for cruise control (between set speed and the two longitudinal MPCs)
-
interface.py (path: selfdrive/car/YOUR MAKE/interface.py): Houses the tuning values for each car. Specifies custom alerts/events for that make. Inherits from interfaces.py
-
-
From @Torq_boi:
A lot of people seem to be changing the CAMERA_OFFSET parameter. So I just want to make clear that that just modifies the laneline positions, not the predicted path. If you want the car to consistently drive more left or right you should change the path too. Since OP sometimes relies on lanelines sometimes on path, having them mismatched can cause weirdness.
Custom Fork Do's and Don'ts
Forks can change many of the fundamental pieces of openpilot software. Because of this, custom forks are expected to maintain certain safety procedures in order to access comma.ai's server infrastructure.
Do's
Don'ts
-
By in large, comma.ai recommends developers to not touch any of the panda safety code to add new features or modify existing behavior. One exception is
unsafe_mode
defined insafety_declarations.h
, near the bottom. Some definitions of what each mode does can also be found in that file.- If you would like to propose a change in panda safety, consider opening a pull request.
-
The integrity of the time variables in the driver_monitor.py file must remain consistent with what's been predefined by comma.
-
Don't use the car's Parking Assist parameters to drive at highway speeds unless you know what you're doing. Don't promote to other users. See medium article for more details: https://medium.com/@comma_ai/safer-control-of-steering-362f3526c9ab
NOTE: To fork maintainers. Disabling or nerfing safety features may get you and your users banned from our servers. comma.ai strongly discourages the use of openpilot forks with safety code either missing or not fully meeting the requirements defined in SAFETY.md.