forked from commaai/openpilot
-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
20e7904
commit 3cc9b77
Showing
7 changed files
with
269 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
name: Update Dev | ||
|
||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 0 * * *' | ||
branches: | ||
- dev | ||
push: | ||
branches: | ||
- dev | ||
|
||
jobs: | ||
update-dev: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
token: ${{ secrets.CI_GITHUB_TOKEN }} | ||
|
||
- name: Set up Git | ||
run: | | ||
git config --global user.name "OPGM CI Automated" | ||
git config --global user.email "[email protected]" | ||
git remote add upstream https://github.com/commaai/openpilot.git | ||
- name: Fetch branches | ||
run: | | ||
git fetch origin dev | ||
git fetch upstream master | ||
git fetch upstream master-ci | ||
- name: Cache Docker layers | ||
uses: actions/cache@v3 | ||
with: | ||
path: /tmp/.docker-cache | ||
key: ${{ runner.os }}-docker-${{ hashFiles('**/Dockerfile') }} | ||
restore-keys: | | ||
${{ runner.os }}-docker- | ||
- name: Push dev to backup branch | ||
run: | | ||
backup_branch_name="dev-bkp-$(date -u +%Y-%m-%d)" | ||
git checkout -f dev | ||
git switch -c $backup_branch_name | ||
git push -f origin $backup_branch_name --no-verify | ||
- name: Unsubmodule master | ||
run: | | ||
declare -a submodules=("panda" "msgq_repo" "opendbc" "body" "rednose_repo" "tinygrad_repo" "teleoprtc_repo") | ||
function unsubmodule() { | ||
for submodule in $submodules; do | ||
mv $submodule .tmp | ||
git submodule deinit -f $submodule | ||
git rm -f $submodule | ||
mv .tmp $submodule | ||
rm -rf $submodule/.git | ||
rm -rf $submodule/.github | ||
git add $submodule | ||
done | ||
git rm -f .gitmodules | ||
} | ||
git checkout -f upstream/master | ||
git reset --hard upstream/master | ||
rm -rf $submodules | ||
git submodule init | ||
git submodule update | ||
git branch -D unsubmoduled || : | ||
git switch -c unsubmoduled | ||
unsubmodule | ||
git commit -am "I h8 submodules" --author="OPGM CI Automated <[email protected]>" | ||
- name: Prepare dev-new branch | ||
run: | | ||
git checkout -f upstream/master-ci | ||
git reset --hard upstream/master-ci | ||
git branch -D dev-new || : | ||
git switch -c dev-new | ||
git checkout unsubmoduled panda/tests/ | ||
git commit -am "Re-add panda tests" --author="OPGM CI Automated <[email protected]>" --no-verify | ||
git checkout upstream/master tools | ||
git checkout upstream/master .github | ||
git checkout upstream/master Dockerfile.openpilot | ||
git commit -am "Re-add tools" --author="OPGM CI Automated <[email protected]>" --no-verify | ||
- name: Cherry-pick dev commits onto dev-new | ||
run: | | ||
commit_hash=$(git log --pretty=format:"%H %s" | grep -E 'openpilot v[0-9]+\.[0-9]+\.[0-9]+ release' | head -n 1 | cut -d ' ' -f 1) | ||
# Get all commit hashes after and including the found commit hash | ||
if [ -n "$commit_hash" ]; then | ||
diverged_commits=$(git log --pretty=format:"%H" --reverse $commit_hash..origin/dev | tail -n +3) | ||
echo "Will cherry-pick the following commits:" | ||
for commit in $diverged_commits; do | ||
echo " $commit : $(git log -1 --pretty=format:"%s" $commit)" | ||
done | ||
else | ||
echo "Commit with the message 'Initial commit' not found." | ||
exit 1 | ||
fi | ||
if [ -z "$diverged_commits" ]; then | ||
echo "Error: no commits to cherry-pick" | ||
exit 1 | ||
fi | ||
git checkout -f dev-new | ||
skip_commits=[] | ||
for commit in $diverged_commits; do | ||
if [[ $skip_commits =~ $commit ]]; then | ||
echo "Skipping $commit" | ||
continue | ||
fi | ||
echo "Cherry-picking $commit : $(git log -1 --pretty=format:"%s" $commit)" | ||
git cherry-pick $commit || exit 1 | ||
done | ||
- name: Build docker image | ||
run: | | ||
docker build -t openpilot -f Dockerfile.openpilot --cache-from type=local,src=/tmp/.docker-cache . | ||
- name: Test panda | ||
run: | | ||
docker run --rm openpilot panda/tests/safety/test.sh | ||
- name: Test selfdrive | ||
run: | | ||
docker run --rm openpilot pytest selfdrive/car/tests/ | ||
- name: Push dev-new to dev | ||
run: | | ||
git checkout -f dev-new | ||
git branch -D dev || : | ||
git switch -c dev | ||
git push -f origin dev --no-verify | ||
- name: Save Docker cache | ||
if: success() | ||
uses: actions/cache@v3 | ||
with: | ||
path: /tmp/.docker-cache | ||
key: ${{ runner.os }}-docker-${{ hashFiles('**/Dockerfile') }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Changelog | ||
This changelog pertains to OPGM specific changes. The fork will be rebased off of the upstream repo every so often, | ||
and those changes will not be recorded here. | ||
## 2023-12-26 | ||
- Add changelog |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# OPGM openpilot fork | ||
|
||
This is a fork of [openpilot](https://github.com/commaai/openpilot/), an open source driver assistance system. Please | ||
consult the official documentation for most questions. | ||
|
||
OPGM strives to align as closely to the official openpilot as possible, while adding functionality for GM vehicles that | ||
are officially unsupported. Additionally, OPGM adds some creature comforts and quality of life improvements. | ||
|
||
OPGM will be rebased on top of the official openpilot frequently to keep up with upstream changes. The latest sync was | ||
with commit [`{{.Env.COMMIT | strings.Trunc 10}}`](https://github.com/commaai/openpilot/tree/{{.Env.COMMIT}}) from the | ||
master branch. The latest build was done on {{time.Now.Format "January 02, 2006"}}. | ||
|
||
## Features | ||
* Support for GM vehicles with LKAS but no ACC | ||
* Pedal interceptor support for longitudinal control | ||
* Also provides full regen on GM Bolt EV/EUV with ACC (*in process of upstreaming*) | ||
* CC long, aka "[redneck ACC](https://www.youtube.com/watch?v=41wZ1EAmf94)" to automatically adjust nonadaptive cruise | ||
control | ||
* > CC long is not a substitute for ACC. It is incapable of reducing the vehicle speed below 24mph. | ||
* Neural network steering control, credit twilsonco | ||
* Always On Lateral (AOL), credit pfeiferj | ||
|
||
## Supported vehicles list | ||
OPGM is capable of supportng vehicles on the Global A architecture that have factory LKAS. Currently supported vehicles | ||
include: | ||
* All vehicles supported by upstream openpilot | ||
* 2016-2019 Chevrolet Volt | ||
* 2017-2019 Chevrolet Bolt EV | ||
* 2020-2023 Chevrolet Bolt EV/EUV w/o ACC | ||
* Chevrolet Equinox/GMC Terrain w/o ACC | ||
* Chevrolet Tahoe/GMC Yukon w/o ACC | ||
* Chevrolet Suburban w/o ACC | ||
|
||
If your vehicle is not on this list, there is a very good chance that already is or can be supported! You will need to | ||
collect your vehicle's fingerprint. | ||
|
||
> At this time, Global B and VIP architectures are unsupported due to CAN bus encryption. If you have a vehicle on one | ||
> of these architectures and consider yourself to be a hacker/tinkerer type, we would love to hear from you! | ||
### Fingerprinting your vehicle | ||
Note! You likely do not have to do this. Try installing OPGM first, and only proceed with the fingerprinting process if | ||
it does not work out of the box. | ||
|
||
You will first need to set up [SSH access](https://github.com/commaai/openpilot/wiki/SSH) to your device. Then, follow | ||
the fingerprinting instructions posted [here](https://github.com/commaai/openpilot/wiki/Fingerprinting#fingerprinting-10). | ||
|
||
> You must follow the **v1.0** instructions. Fingerprint v2.0 is not yet supported for GM vehicles. | ||
Reach out in the [OPGM discord channel](#discussion) with questions, or after you have fingerprinted your vehicle so it | ||
can be added to OPGM. | ||
|
||
## Installation | ||
### Hardware | ||
OPGM supports the Comma Three development platform; legacy support for Comma Two is not guaranteed. Some older development | ||
branches may work on Comma Two. Use at your own risk. | ||
|
||
Verify first that your vehicle has LKAS. Verify as well that it has a forward-facing camera; you can do this by removing | ||
the plastic cover on the windshield behind the rearview mirror. If you see a silver rectangular camera, you're good to go. | ||
|
||
If you have vehicle supported by upstream openpilot, buy the corresponding hardware from Comma. | ||
|
||
If you have a vehicle without ACC, buy the [Bolt EV/EUV kit from Comma](https://comma.ai/shop/comma-three). If you have | ||
a Bolt EV/EUV, it is **strongly** recommended to purchase a pedal interceptor for the best experience. (You may always | ||
add one later, if you want to try OPGM before committing.) | ||
|
||
You may buy a pedal interceptor from the following vendors: | ||
* [TinyBear](https://www.etsy.com/listing/952895642/openpilot-comma-pedal-non-customizable?variation0=3013902165) | ||
|
||
### Software | ||
For the latest stable build, use the install URL: `opgm.cc` | ||
|
||
> #### Installation troubleshooting | ||
> If the installation fails partway through, try moving your device closer to your WiFi router. | ||
> * You may plug the Comma Three into a USB power source delivering at least 2A of current. | ||
Ensure that your car is *completely* powered off during software installation, otherwise you may get a "no panda" error. | ||
To be sure that your car is completely powered down: | ||
1. Turn the car on and off | ||
2. Open and close the driver's door | ||
3. Wait 5 minutes | ||
|
||
## Known issues | ||
* Curve hugging and laneline crossing are known issues of upstream openpilot. | ||
* Officially supported cars (e.g. ACC Volt and Bolt) may have issues fingerprinting on OPGM. Currently, the only workaround is to hardcode your fingerprint in the `/data/openpilot/launch_openpilot.sh` file. | ||
|
||
## Discussion | ||
Come join us on the OPGM channel in the [openpilot community discord](https://discord.gg/KGWEdwSnCU)! | ||
|
||
## Contributing | ||
Feel free to open a pull request against the `dev` branch. | ||
|
||
## Credits | ||
* [comma.ai](https://comma.ai) for openpilot | ||
* jshuler | ||
* nworby | ||
* twilsonco | ||
* k1mu | ||
* kliu | ||
* mochi86420 | ||
* Many others | ||
|
||
# License | ||
OPGM is under the MIT license. See [LICENSE](LICENSE) for more information. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,7 +25,7 @@ rm -rf $BUILD_DIR | |
mkdir -p $BUILD_DIR | ||
cd $BUILD_DIR | ||
git init | ||
git remote add origin [email protected]:commaai/openpilot.git | ||
git remote add origin [email protected]:opgm/openpilot.git | ||
git checkout --orphan $RELEASE_BRANCH | ||
|
||
# do the files copy | ||
|
@@ -51,7 +51,7 @@ export PYTHONPATH="$BUILD_DIR" | |
scons -j$(nproc) --minimal | ||
|
||
# release panda fw | ||
CERT=/data/pandaextra/certs/release RELEASE=1 scons -j$(nproc) panda/ | ||
scons -j$(nproc) panda/ | ||
|
||
# Ensure no submodules in release | ||
if test "$(git submodule--helper list | wc -l)" -gt "0"; then | ||
|
@@ -90,14 +90,14 @@ TEST_FILES="tools/" | |
cd $SOURCE_DIR | ||
cp -pR -n --parents $TEST_FILES $BUILD_DIR/ | ||
cd $BUILD_DIR | ||
RELEASE=1 pytest -n0 -s selfdrive/test/test_onroad.py | ||
#RELEASE=1 pytest -n0 -s selfdrive/test/test_onroad.py | ||
#system/manager/test/test_manager.py | ||
pytest selfdrive/car/tests/test_car_interfaces.py | ||
rm -rf $TEST_FILES | ||
#pytest selfdrive/car/tests/test_car_interfaces.py | ||
#rm -rf $TEST_FILES | ||
|
||
if [ ! -z "$RELEASE_BRANCH" ]; then | ||
echo "[-] pushing release T=$SECONDS" | ||
git push -f origin $RELEASE_BRANCH:$RELEASE_BRANCH | ||
GIT_SSH_COMMAND="ssh -i /data/id_rsa_github" git push -f origin $RELEASE_BRANCH:$RELEASE_BRANCH | ||
fi | ||
|
||
echo "[-] done T=$SECONDS" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
export GIT_COMMITTER_NAME="Vehicle Researcher" | ||
export GIT_COMMITTER_NAME="OPGM CI Automated" | ||
export GIT_COMMITTER_EMAIL="[email protected]" | ||
export GIT_AUTHOR_NAME="Vehicle Researcher" | ||
export GIT_AUTHOR_NAME="OPGM CI Automated" | ||
export GIT_AUTHOR_EMAIL="[email protected]" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
Looking for updates? | ||
======================== | ||
* C3 users: Update to the `build` branch to continue to receive updates. | ||
* Issues or questions? Reach out on Discord. | ||
* Discord link is in the github readme: github.com/opgm/openpilot | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters