33bb46fdfc | ||
---|---|---|
.github | ||
cereal | ||
common | ||
docs | ||
msgq_repo | ||
opendbc | ||
opendbc_repo | ||
openpilot | ||
panda | ||
rednose_repo | ||
scripts | ||
selfdrive | ||
site_scons/site_tools | ||
system | ||
third_party | ||
tinygrad_repo | ||
tools | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
.importlinter | ||
CHANGELOGS.md | ||
Dockerfile.openpilot | ||
Dockerfile.openpilot_base | ||
HOW-TOS.md | ||
Jenkinsfile | ||
LICENSE | ||
LICENSE.md | ||
README.md | ||
RELEASES.md | ||
SConstruct | ||
codecov.yml | ||
launch_chffrplus.sh | ||
launch_env.sh | ||
launch_openpilot.sh | ||
mkdocs.yml | ||
msgq | ||
prebuilt | ||
pyproject.toml | ||
rednose | ||
tinygrad |
README.md
Table of Contents
- Join our Discord
- What is bluepilot?
- Running in a car
- Read Before Installing
- Prohibited Safety Modifications
- Installation
- Highlight Features
- Branch Definitions
- Recommended Branches
- Special Thanks
- User Data
- Licensing
💭 Join our Discord
Join the official #Ford channel at the sunnypilot Discord server to stay up to date with all the latest features and be a part of shaping the future of bluepilot!
🌞 What is bluepilot?
bluepilot is a fork of the hugely popular SunnyPilot project for the Comma3 and Comma3X. The goal of BluePilot is to develop, test, and stage Ford specific enhancements, validating them before submission to the SunnyPilot team for inclusion in the parent project.
⛔ Prohibited Safety Modifications
All official sunnypilot branches strictly adhere to comma.ai's safety policy. Any changes that go against this policy will result in your fork and your device being banned from both comma.ai and sunnypilot channels. This same stipulation applies to all bluepilot instances as well.
The following changes are a VIOLATION of this policy and ARE NOT included in any sunnypilot branches:
- Driver Monitoring:
- ❌ "Nerfing" or reducing monitoring parameters.
- Panda safety:
- ❌ No preventing disengaging of LONGITUDINAL CONTROL (acceleration/brake) on brake pedal press.
- ❌ No auto re-engaging of LONGITUDINAL CONTROL (acceleration/brake) on brake pedal release.
- ❌ No disengaging on ACC MAIN in OFF state.
⚒ Installation
Please refer to Recommended Branches to find your preferred/supported branch. This guide will assume you want to install the latest stable
branch.
-
bluepilot not installed
- Factory reset/uninstall the previous software if you have another software/fork installed.
- After factory reset/uninstall and upon reboot, select
Custom Software
when given the option. - Input the installation URL per Recommended Branches. Example:
https://bit.ly/bp-stable
[^4] (note:https://
is not requirement on the comma three) - Complete the rest of the installation following the onscreen instructions.
-
bluepilot already installed and you installed a version after 0.8.17?
- On the comma three, go to
Settings
▶️Software
. - At the
Download
option, pressCHECK
. This will fetch the list of latest branches from sunnypilot. - At the
Target Branch
option, pressSELECT
to open the Target Branch selector. - Scroll to select the desired branch per Recommended Branches. Example:
stable
- On the comma three, go to
Branch | Installation URL |
---|---|
stable |
https://bit.ly/bp-stable |
experimental |
https://bit.ly/bp-staging |
Requires further assistance with software installation? Join the sunnypilot Discord server and message us in the #ford
channel.
🚗 Highlight Features
In addition to all sunnypilot features, bluepilot incorporates the following Ford specific enhacements.
- [Improved Ford Longitudinal controls] - logic to adjust stock OpenPilot single acceleration signal into seperate gas and brake signals for much smoother long control on ford vehicles.
- [Anti-Windup in Turns] - Logic to reset the EPAS back to zero when a human turn is detected. This prevents the EPAS from winding up and fighting to keep turning after the car has straightened up. Makes experimental mode and MADS safer to use.
- [Tunable Lateral Control] - customize many aspects of the lateral control. Before tuning the lateral variables, it is important to understand the disticntion between predicted curvature and desired curvature. See the following forum posts (#4 and #5) for an explination with visuals: https://www.f150gen14.com/forum/threads/introducing-bluepilot-a-ford-specific-fork-for-comma3x-openpilot.24241/#post-457706
-
- [Lane Change Modifier] - This is the percentage of the calculated curvature signal to send when making a lane change. OpenPilot models request very aggressive lane changes which can be uncomfortable in a Ford. This is a decimal number 0-1 where 0 would send no curvature (and a lane change would not happen) and 1 would send the full curvature derived from the model and result in an aggressive lane change. Te lower the number, the smoother the lane change, however too low of a number can result in the lane change aborting part of the way through (espeically in curves). The hard-coded number in initial releases of BluePilot was 65%
-
- [Low Curvature PC Factor] - This controls the amount of predicted curvature used to derive the steering signal in straight aways. It is a decimal number 0 to 1 where 0 would use 0% predicted curvature and 100% desired curvature. More predicted curvature results in less aggressive control and less ping pong. Too much predicted curvature results in "lazy control" or "low torque". The idea is to slowly increase this variable until ping pong stops, but go no further. For lazy control or low torque, decrease this number. The hard-coded value in the initial releases of BluePilot was 40%.
-
- [High Curvature PC Factor] - This controls the amount of predicted curvature used to derive the steering signal in curves. It is a decimal number 0 to 1 where 0 would use 0% predicted curvature and 100% desired curvature. More predicted curvature results in less aggressive control and less ping pong. Too much predicted curvature results in "lazy control" or "low torque". The idea is to slowly increase this variable until ping pong stops, but go no further. For lazy control or low torque, decrease this number. The hard-coded value in the initial releases of BluePilot was 55%
-
- [High Curvature Factor] - This variables reduces the final control signal to the steering. It is a decimal number 0 to 1 where 0 would send no steering signal to the vehicle and 1 would send the full steering signal to the vehicle. Anything less than 1.0 will reduce the torque available and make steering feel lazy, use this variable only if having issues with cutting corners in curves and all other variables are tuned to satisfaction. The hard-coded value in early releases of BluePilot was 1.0
⚒ Branch Definitions
Tag | Definition | Description |
---|---|---|
stable |
stable branches | Include features that are verified by trusted testers and the community. Ready to use. ✅ |
staging |
staging branches | Include new features that are in testing, this branch might fail to boot, crash, or have unpredictable behavior. Please test with caution ⚠ |
Example:
stable
: Latest stable branch that is verified by trusted testers and the community. Ready to use.experimental
: Latest development branch that include all sunnypilot and experimental bluepilot features Testing required with extreme caution
✅ Recommended Branches
Branch | Definition | Compatible Device | |
---|---|---|---|
stable |
• Latest release/stable branch | comma three | |
experimental |
• Latest development branch with experimental features | comma three |
📊 User Data
By default, sunnypilot/bluepilot uploads the driving data to comma servers. You can also access your data through comma connect.
sunnypilot/bluepilot is open source software. The user is free to disable data collection if they wish to do so.
sunnypilot/bluepilot logs the road-facing camera, 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 this software, 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.
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.
Support sunnypilot
💰 Support sunnypilot
If you find any of the features useful, consider becoming a patron on Patreon or a sponsor on GitHub to support future feature development and improvements.
By becoming a patron/sponsor, you will gain access to exclusive content, early access to new features, and the opportunity to directly influence the project's development.
Patreon
GitHub Sponsor
PayPal
- BluePilotDev Team