Go to file
SusanYu25 33bb46fdfc
Update long_mpc.py
2024-11-19 08:42:57 +08:00
.github
cereal
common
docs Update CARS.md 2024-11-18 22:12:01 +08:00
msgq_repo
opendbc
opendbc_repo
openpilot
panda
rednose_repo
scripts
selfdrive Update long_mpc.py 2024-11-19 08:42:57 +08:00
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


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

    1. Factory reset/uninstall the previous software if you have another software/fork installed.
    2. After factory reset/uninstall and upon reboot, select Custom Software when given the option.
    3. Input the installation URL per Recommended Branches. Example: https://bit.ly/bp-stable [^4] (note: https:// is not requirement on the comma three)
    4. Complete the rest of the installation following the onscreen instructions.
  • bluepilot already installed and you installed a version after 0.8.17?

    1. On the comma three, go to Settings ▶️ Software.
    2. At the Download option, press CHECK. This will fetch the list of latest branches from sunnypilot.
    3. At the Target Branch option, press SELECT to open the Target Branch selector.
    4. Scroll to select the desired branch per Recommended Branches. Example: stable
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

📗 How To's


How-To instructions can be found in HOW-TOS.md.

🏆 Special Thanks


📊 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

Become a Patron

GitHub Sponsor

Become a Sponsor

PayPal

PayPal this

- BluePilotDev Team