Commit 7122ad5
infra: port Docker, GitHub Actions, external yamls, and docs to ROS2 Jazzy
Update every piece of non-package infrastructure to target ROS2 Jazzy
Jalisco on Ubuntu 24.04 instead of ROS1 Noetic on Ubuntu 20.04. Also
rename branch references in this commit from dev/ros2 to ros2_dev.
Dockerfiles (9):
autonomy_core/{base,client,control,estimation,interface,map_plan,
state_machine}/Dockerfile, autonomy_sim/Dockerfile,
autonomy_sim/unity_sim/Dockerfile
- base/Dockerfile: nvidia/cudagl:11.4.2-base-ubuntu20.04 ->
osrf/ros:jazzy-desktop-full. The nvidia/cudagl lineage was EOL'd
and has no direct Jazzy successor; a multi-line TODO at the top
documents this and notes that compute-CUDA workloads (e.g. YOLOv8
inference) will need a follow-up to either layer CUDA onto this
image or switch to nvidia/cuda:12.x-runtime-ubuntu24.04.
- Stage images (client/control/estimation/map_plan/state_machine/
interface) inherit from the base image via the
kumarrobotics/autonomy:<stage>-jazzy tag chain (the -jazzy suffix
lets ROS1 and ROS2 images coexist on Docker Hub).
- ros-noetic-* -> ros-jazzy-* throughout.
- python-catkin-tools / python-catkin-pkg ->
python3-colcon-common-extensions; python-rosdep -> python3-rosdep;
python-rosinstall -> python3-vcstool.
- ros-noetic-gazebo-ros-pkgs / gazebo-ros / gazebo-plugins ->
ros-jazzy-ros-gz / ros-gz-sim / ros-gz-bridge (Gazebo Harmonic
replaces Gazebo classic). hector-gazebo has no direct ROS2
equivalent; a TODO in autonomy_sim/Dockerfile notes the sensor
plugins it supplied will need replacement.
- ros-noetic-rviz -> ros-jazzy-rviz2 (package renamed).
- ros-noetic-tf -> ros-jazzy-tf2-ros (the tf package no longer
exists in ROS2; tf2_ros replaces it).
- catkin build / catkin config --extend <upstream>/devel ->
single colcon build --symlink-install --cmake-args
-DCMAKE_BUILD_TYPE=... step, with . <upstream>/install/setup.sh
sourcing the upstream overlay.
- state_machine/Dockerfile: added --break-system-packages to the
rospkg pip install because Ubuntu 24.04 / PEP 668 enforces
externally-managed environments.
- unity_sim/Dockerfile: rm src/pkgs/rosflight_msgs/CATKIN_IGNORE
-> rm -f ... /COLCON_IGNORE (marker name changed with colcon;
-f so the build doesn't fail if the marker is already absent).
docker/run.sh scripts (9, one per Dockerfile):
- roslaunch/rosrun/rosbag/rostopic/rosnode/rosservice/rosparam ->
ros2 launch/run/bag/topic/node/service/param. roscore -> echo
stub (ROS2 has no master). roscd <pkg> ->
cd $(ros2 pkg prefix --share <pkg>).
- /opt/ros/noetic -> /opt/ros/jazzy; devel/setup -> install/setup.
- Docker image tags carry a -jazzy suffix to match the Dockerfiles.
- Container names received a _ros2 suffix (autonomy_base_it ->
autonomy_base_ros2_it, etc.) so ROS1 and ROS2 containers coexist.
GitHub Actions workflows (7):
.github/workflows/docker-build-{base,client,control,estimation,
map-plan,sim,state-machine}.yaml
- Image base references updated consistent with the Dockerfiles.
- runs-on: ubuntu-20.04 -> ubuntu-24.04 where applicable.
- Workflow trigger branches: [master] -> [ros2_dev] so CI actually
fires on this branch.
- catkin build -> colcon build --symlink-install;
/opt/ros/noetic -> /opt/ros/jazzy; devel/setup -> install/setup.
- reviewdog workflows (cpplint/pylint/shellcheck) had no
ROS1-specific content and are left unchanged.
external_*.yaml (5: external_all, external_coverage_planner,
external_lidar_odometry, external_real_robot, autonomy_sim/external):
- Add a top-of-file TODO noting that the listed external repos
are ROS1-only vcstool entries and must be ported to their ROS2
equivalents before `vcs import` produces a buildable workspace.
- Individual entries are left as-is so that vcs still resolves
them at snapshot-time when someone starts porting each one.
README.md:
- Banner at the top updated to reference ros2_dev (was dev/ros2
after the initial rename).
- Prereq section rewritten: catkin build -> colcon build
--symlink-install, devel/setup -> install/setup,
/opt/ros/noetic -> /opt/ros/jazzy.
- New subsection "### ROS1 bags -> ROS2 conversion" noting that
demo bags recorded under Noetic need rosbags-convert (from the
`rosbags` pip package) before ros2 bag play can replay them.
- Videos, wiki link, citations, code-structure diagram all
untouched.
exp_usage.md: same dev-command substitutions as the run.sh scripts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 21c4928 commit 7122ad5
32 files changed
Lines changed: 152 additions & 121 deletions
File tree
- .github/workflows
- autonomy_core
- base
- docker
- client
- docker
- control
- docker
- estimation
- docker
- interface
- docker
- map_plan
- docker
- state_machine
- docker
- autonomy_sim
- docker
- unity_sim
- docker
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
17 | 21 | | |
18 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
19 | 26 | | |
20 | | - | |
21 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
22 | 33 | | |
23 | 34 | | |
24 | 35 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
4 | 7 | | |
5 | 8 | | |
6 | 9 | | |
| |||
39 | 42 | | |
40 | 43 | | |
41 | 44 | | |
42 | | - | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
43 | 48 | | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | 49 | | |
48 | | - | |
| 50 | + | |
49 | 51 | | |
50 | | - | |
51 | 52 | | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
58 | 57 | | |
59 | 58 | | |
60 | 59 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
0 commit comments