Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
6a35505
update fundamental gitignore
WinstonHChou Feb 12, 2025
635ee4c
import image built files (credit to ART)
WinstonHChou Feb 13, 2025
c54fb15
update Makefile
WinstonHChou Feb 13, 2025
e7e097c
fix dir in gitignore
WinstonHChou Feb 13, 2025
a0cafb4
refactor robocar external directories
WinstonHChou Feb 13, 2025
eb4b844
added base_common
WinstonHChou Feb 13, 2025
6936eef
remove rosdep that need to be build from source
WinstonHChou Feb 13, 2025
1534ad3
commneted foxglove_bridge as it's not avalible in foxy
WinstonHChou Feb 13, 2025
266aa07
add common_metadata
WinstonHChou Feb 13, 2025
a22c4bd
added startup services
WinstonHChou Feb 13, 2025
101643f
modified the joystick scripts in basestation_launch
WinstonHChou Feb 13, 2025
f5c1600
fix robocar typo
WinstonHChou Feb 13, 2025
e5f35e5
[Refactor] rename `vesc_odom` as `vesc_interface`, and put under control
WinstonHChou Feb 13, 2025
66a2cb0
[Remap] add vesc namespace and joystick namespace
WinstonHChou Feb 13, 2025
e07c997
[Feat] added support to different car model of vesc_interface param
WinstonHChou Feb 13, 2025
518d8a5
x4 speed for joystick input
WinstonHChou Feb 13, 2025
cb58407
update readme.md
WinstonHChou Feb 13, 2025
609cd10
add docker-cache-clean
WinstonHChou Feb 13, 2025
dfd82ce
replace base image as nvcr.io/nvidia/l4t-jetpack:r35.4.1
WinstonHChou Feb 13, 2025
ada24f8
[BugFix] as base image set to l4t-jetpack. ROS needs to be installed …
WinstonHChou Feb 13, 2025
6335e45
typo fix
WinstonHChou Feb 13, 2025
bb1dc12
[Feature] Added cyclonedds-foxy for broadcasting on `wlan0`
WinstonHChou Feb 13, 2025
e217b2f
added ci.yaml
WinstonHChou Feb 14, 2025
ccf66aa
set platform for jetson to `linux/arm64/v8`, and cpu to `linux/amd64`
WinstonHChou Feb 14, 2025
c91bde0
setup QEMU for building `arm64v8` on `amd64` runners
WinstonHChou Feb 14, 2025
6f36536
try fixing shebang
WinstonHChou Feb 14, 2025
54aa4aa
[Refacror] temporarily remove jetpack_image built from ci
WinstonHChou Feb 14, 2025
eda6139
[Refactor] use https instead of ssh
WinstonHChou Feb 14, 2025
f6dfc40
[Refactor] dosn't support pcl msgs on foxy
WinstonHChou Feb 15, 2025
31031d0
add pointonenav gps support
WinstonHChou Feb 15, 2025
4aa10ec
update example.env
WinstonHChou Feb 15, 2025
9865cce
added robocar_launch pkg
WinstonHChou Feb 15, 2025
905c9a9
add yellow profile for robocar
WinstonHChou Feb 15, 2025
16799ff
add ttl and transform_helper (credit to ART)
WinstonHChou Feb 16, 2025
4a012cd
add kml_extractor_polygon
WinstonHChou Feb 18, 2025
0c8c861
add useful ttl scripts
WinstonHChou Feb 19, 2025
56ef6f5
add UCSD_EIGHT_FIG_ENU_TTL_CSV ttl dir
WinstonHChou Feb 19, 2025
8f39178
fix 1st line of UCSD_EIGHT_FIG_ENU_TTL_OPTM_15
WinstonHChou Feb 19, 2025
39b10bd
import boundary_publisher (credit to ART), TO-DO: fix path msgs type
WinstonHChou Feb 20, 2025
6b602aa
fix typo
WinstonHChou Feb 20, 2025
58422dc
add autonomy_launch
WinstonHChou Feb 20, 2025
ea38e8a
add maunal tmux
WinstonHChou Feb 20, 2025
fe26724
add gps waypoint follower and set default gps origin to ucsd
WinstonHChou Feb 20, 2025
0318585
inlcude ttls/
WinstonHChou Feb 20, 2025
ea51c02
add tmux scipts
WinstonHChou Feb 21, 2025
5ee1b97
set blue vesc to /dev/ttyACM0
WinstonHChou Feb 22, 2025
ff3713a
added make `robocar` and `robocar-debug` target
WinstonHChou Feb 22, 2025
8bcc365
[BugFix] ntrip_client node working
WinstonHChou Feb 22, 2025
b6bcba1
[Refactor] Use forked ntrip_client repo, and remap `/ntrip_client/nme…
WinstonHChou Feb 22, 2025
346f91f
[BugFix] set rtcm_message_package type to `mavros_msgs`, which is use…
WinstonHChou Feb 22, 2025
9253ed0
check for rtcm messaged received (RTK correction)
WinstonHChou Feb 22, 2025
2d79bc9
set `gps_top` as default frame_id for p1_gnss
WinstonHChou Feb 22, 2025
d99c736
[trial] jetpack image built ci
WinstonHChou Feb 22, 2025
123fdbc
[Refactor] use `vesc-robocar` as vesc packages
WinstonHChou Feb 23, 2025
eb22604
add frame_id to vesc_driver, set to `base_link`
WinstonHChou Feb 23, 2025
6fe1b6d
add autonomy_launch into `robocar` target
WinstonHChou Feb 23, 2025
b726f04
add misc.launch.py to manul tmux
WinstonHChou Feb 23, 2025
12490b9
[BugFix] `#include "tf2_geometry_msgs/tf2_geometry_msgs.h"`
WinstonHChou Feb 23, 2025
b5f0f0d
add robot_localization as dependecies of autonomy_launch
WinstonHChou Feb 23, 2025
29d6233
add MID360_configs
WinstonHChou Apr 13, 2025
ed67145
add support to livox mid 360 in `robocar_launch`
WinstonHChou Apr 13, 2025
b081f89
add oakd_support
WinstonHChou Apr 28, 2025
c2a6e56
add rtabmap as dependencies
WinstonHChou Apr 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
291 changes: 291 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
name: Robocar Docker + ROS2 Build and Test Workflow

on:
workflow_dispatch:
pull_request:
branches:
- stable
push:
branches:
- stable

jobs:
build-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
strategy:
fail-fast: false
matrix:
include:
- SAVE_NAME: robocar_foxy_cpu
BASE_IMAGE: ubuntu:20.04
ROS_DISTRO: foxy
ROS_SOURCE: foxy
ROS_INSTALL: ros-install.sh
SKIP_KEYS: skip-keys
APT_FILE: apt-packages
APT_GPU_FILE: empty-deps
PIP_FILE: pip3-packages
PIP_GPU_FILE: empty-deps
PYTORCH_FILE: pytorch-cpu
EXPORTS_SCRIPT: exports.sh
EXPORTS_GPU_SCRIPT: empty-script.sh
VCS_IMPORTS_SCRIPT: vcs-imports-foxy.sh
CUSTOM_INSTALL_FILE: custom-installs.sh
CYCLONEDDS_SCRIPT: cyclonedds-foxy.xml
outputs:
image_name: ${{ steps.save_image_name.outputs.image_name }}
cache_name: ${{ steps.save_image_name.outputs.cache_name }}
tag_name: ${{ steps.save_image_name.outputs.tag_name }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Get the Ref
id: get-ref
uses: sisaha9/ref-to-tag-action@v2
with:
ref: ${{ github.ref }}
head_ref: ${{ github.head_ref }}
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: true
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
key: ${{ runner.os }}-buildx-dev-${{ matrix.SAVE_NAME }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-dev-${{ matrix.SAVE_NAME }}
${{ runner.os }}-buildx-dev
- name: Build and Push Docker image
id: docker_build_push
uses: docker/build-push-action@v6
with:
platforms: linux/amd64
context: .
file: tools/image/Dockerfile
pull: true
push: true
tags: |
ghcr.io/triton-ai/${{ matrix.SAVE_NAME }}:${{ steps.get-ref.outputs.tag }}
ssh: |
default=${{ env.SSH_AUTH_SOCK }}
cache-from: type=local,src=/tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
cache-to: type=local,dest=/tmp/.buildx-cache-new-${{ matrix.SAVE_NAME }},mode=max
build-args: |
BASE_IMAGE=${{ matrix.BASE_IMAGE }}
ROS_DISTRO=${{ matrix.ROS_DISTRO }}
ROS_SOURCE=${{ matrix.ROS_SOURCE }}
ROS_INSTALL=${{ matrix.ROS_INSTALL }}
SKIP_KEYS=${{ matrix.SKIP_KEYS }}
APT_FILE=${{ matrix.APT_FILE }}
APT_GPU_FILE=${{ matrix.APT_GPU_FILE }}
PIP_FILE=${{ matrix.PIP_FILE }}
PIP_GPU_FILE=${{ matrix.PIP_GPU_FILE }}
PYTORCH_FILE=${{ matrix.PYTORCH_FILE }}
EXPORTS_SCRIPT=${{ matrix.EXPORTS_SCRIPT }}
EXPORTS_GPU_SCRIPT=${{ matrix.EXPORTS_GPU_SCRIPT }}
VCS_IMPORTS_SCRIPT=${{ matrix.VCS_IMPORTS_SCRIPT }}
CUSTOM_INSTALL_FILE=${{ matrix.CUSTOM_INSTALL_FILE }}
CYCLONEDDS_SCRIPT=${{ matrix.CYCLONEDDS_SCRIPT }}
target: robocar_image
- name: Delete old cache
run: |
rm -rf /tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
mv /tmp/.buildx-cache-new-${{ matrix.SAVE_NAME }} /tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
- name: Save image name to Github Output
id: save_image_name
run: |
echo "image_name=ghcr.io/triton-ai/${{ matrix.SAVE_NAME }}:${{ steps.get-ref.outputs.tag }}" >> $GITHUB_OUTPUT
echo "cache_name=${{ matrix.SAVE_NAME }}" >> $GITHUB_OUTPUT
echo "tag_name=${{ steps.get-ref.outputs.tag }}" >> $GITHUB_OUTPUT
build-test:
runs-on: ubuntu-latest
needs: build-push
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
container:
image: ${{ needs.build-push.outputs.image_name }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Import External Repos
run: |
bash -c 'make vcs-import VCS_FILE=robocar.${ROS_DISTRO}.repos; \
make vcs-import VCS_FILE=drivers.${ROS_DISTRO}.repos'
- name: Ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ needs.build-push.outputs.cache_name }}-ccache
max-size: "500M"
- name: Restore build artifacts
uses: actions/cache/restore@v4
with:
path: |
install
build
key: ${{ needs.build-push.outputs.cache_name }}-ros2-artifacts--${{ github.sha }}
restore-keys: |
${{ needs.build-push.outputs.cache_name }}-ros2-artifacts
- name: Build Workspace
run: |
bash -ic 'make build-ci'
- name: Save build artifacts
uses: actions/cache/save@v4
with:
path: |
install
build
key: ${{ needs.build-push.outputs.cache_name }}-ros2-artifacts--${{ github.sha }}
- name: Run Tests
run: |
bash -ic 'make test-ci'
- name: Clean tests
run: |
bash -ic 'make clean-test'
build-push-jetpack:
runs-on: 22.04-arm64-runner-16-core
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
strategy:
fail-fast: false
matrix:
include:
- SAVE_NAME: robocar_foxy_gpu_jetpack5
BASE_IMAGE: nvcr.io/nvidia/l4t-jetpack:r35.4.1
ROS_DISTRO: foxy
ROS_SOURCE: foxy
ROS_INSTALL: ros-install.sh
SKIP_KEYS: skip-keys
APT_FILE: apt-packages-jetson
APT_GPU_FILE: empty-deps
PIP_FILE: pip3-packages-jetson
PIP_GPU_FILE: empty-deps
PYTORCH_FILE: pytorch-gpu-jetson
EXPORTS_SCRIPT: exports-jetson.sh
EXPORTS_GPU_SCRIPT: empty-script.sh
VCS_IMPORTS_SCRIPT: vcs-imports-foxy-jetson.sh
CUSTOM_INSTALL_FILE: custom-installs-jetson.sh
CYCLONEDDS_SCRIPT: cyclonedds-foxy.xml
outputs:
image_name: ${{ steps.save_image_name.outputs.image_name }}
cache_name: ${{ steps.save_image_name.outputs.cache_name }}
tag_name: ${{ steps.save_image_name.outputs.tag_name }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64/v8
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Get the Ref
id: get-ref
uses: sisaha9/ref-to-tag-action@v2
with:
ref: ${{ github.ref }}
head_ref: ${{ github.head_ref }}
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: true
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
key: ${{ runner.os }}-buildx-dev-${{ matrix.SAVE_NAME }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-dev-${{ matrix.SAVE_NAME }}
${{ runner.os }}-buildx-dev
- name: Build and Push Docker image
id: docker_build_push
uses: docker/build-push-action@v6
with:
platforms: linux/arm64/v8
context: .
file: tools/image/Dockerfile
pull: true
push: true
tags: |
ghcr.io/triton-ai/${{ matrix.SAVE_NAME }}:${{ steps.get-ref.outputs.tag }}
ssh: |
default=${{ env.SSH_AUTH_SOCK }}
cache-from: type=local,src=/tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
cache-to: type=local,dest=/tmp/.buildx-cache-new-${{ matrix.SAVE_NAME }},mode=max
build-args: |
BASE_IMAGE=${{ matrix.BASE_IMAGE }}
ROS_DISTRO=${{ matrix.ROS_DISTRO }}
ROS_SOURCE=${{ matrix.ROS_SOURCE }}
ROS_INSTALL=${{ matrix.ROS_INSTALL }}
SKIP_KEYS=${{ matrix.SKIP_KEYS }}
APT_FILE=${{ matrix.APT_FILE }}
APT_GPU_FILE=${{ matrix.APT_GPU_FILE }}
PIP_FILE=${{ matrix.PIP_FILE }}
PIP_GPU_FILE=${{ matrix.PIP_GPU_FILE }}
PYTORCH_FILE=${{ matrix.PYTORCH_FILE }}
EXPORTS_SCRIPT=${{ matrix.EXPORTS_SCRIPT }}
EXPORTS_GPU_SCRIPT=${{ matrix.EXPORTS_GPU_SCRIPT }}
VCS_IMPORTS_SCRIPT=${{ matrix.VCS_IMPORTS_SCRIPT }}
CUSTOM_INSTALL_FILE=${{ matrix.CUSTOM_INSTALL_FILE }}
CYCLONEDDS_SCRIPT=${{ matrix.CYCLONEDDS_SCRIPT }}
target: robocar_image
- name: Delete old cache
run: |
rm -rf /tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
mv /tmp/.buildx-cache-new-${{ matrix.SAVE_NAME }} /tmp/.buildx-cache-${{ matrix.SAVE_NAME }}
- name: Save image name to Github Output
id: save_image_name
run: |
echo "image_name=ghcr.io/triton-ai/${{ matrix.SAVE_NAME }}:${{ steps.get-ref.outputs.tag }}" >> $GITHUB_OUTPUT
echo "cache_name=${{ matrix.SAVE_NAME }}" >> $GITHUB_OUTPUT
echo "tag_name=${{ steps.get-ref.outputs.tag }}" >> $GITHUB_OUTPUT
Loading
Loading