From 589cbd43dbb8ebeb640659e873f12765630aabc3 Mon Sep 17 00:00:00 2001 From: Blake McHale Date: Tue, 11 Aug 2026 13:07:57 -0700 Subject: [PATCH 1/5] Recommend APT package as default installation method Signed-off-by: Blake McHale --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index baaf19e..6848568 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,14 @@ Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, ## Installation -From source: +Recommended: + +```bash +sudo apt install ros-${ROS_DISTRO}-greenwave-monitor +``` + +From source, for development: + ```bash cd ros_ws/src git clone https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor.git From fa10bd17cc3de30c0dcc5ec9ebdbca3014eed55b Mon Sep 17 00:00:00 2001 From: Blake McHale Date: Tue, 11 Aug 2026 13:16:45 -0700 Subject: [PATCH 2/5] Use default of jazzy Signed-off-by: Blake McHale --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6848568..7940f74 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, Recommended: ```bash -sudo apt install ros-${ROS_DISTRO}-greenwave-monitor +sudo apt install ros-${ROS_DISTRO:-jazzy}-greenwave-monitor ``` From source, for development: From de326018b74f13fbd9470b71f5d84b92d5add91b Mon Sep 17 00:00:00 2001 From: Blake McHale Date: Tue, 11 Aug 2026 13:30:46 -0700 Subject: [PATCH 3/5] Use Resolute for ROS Rolling CI Signed-off-by: Blake McHale --- .github/workflows/debian-packages.yml | 4 ++-- .github/workflows/ros-tests.yml | 2 +- scripts/build_debian_packages.sh | 9 ++++++--- scripts/docker-test.sh | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/debian-packages.yml b/.github/workflows/debian-packages.yml index da25bd7..2b1e58c 100644 --- a/.github/workflows/debian-packages.yml +++ b/.github/workflows/debian-packages.yml @@ -75,7 +75,7 @@ jobs: - ros_distro: kilted ubuntu_distro: noble - ros_distro: rolling - ubuntu_distro: noble + ubuntu_distro: resolute steps: - name: Checkout code @@ -117,7 +117,7 @@ jobs: - ros_distro: kilted ubuntu_distro: noble - ros_distro: rolling - ubuntu_distro: noble + ubuntu_distro: resolute steps: - name: Setup ROS repository and install base ROS diff --git a/.github/workflows/ros-tests.yml b/.github/workflows/ros-tests.yml index 014ebb2..f240d89 100644 --- a/.github/workflows/ros-tests.yml +++ b/.github/workflows/ros-tests.yml @@ -57,7 +57,7 @@ jobs: - ros_distro: kilted ubuntu_distro: noble - ros_distro: rolling - ubuntu_distro: noble + ubuntu_distro: resolute steps: - name: Checkout code diff --git a/scripts/build_debian_packages.sh b/scripts/build_debian_packages.sh index 4f011af..5abd625 100755 --- a/scripts/build_debian_packages.sh +++ b/scripts/build_debian_packages.sh @@ -26,13 +26,14 @@ # ./scripts/build_debian_packages.sh # Uses defaults (humble/jammy) # ./scripts/build_debian_packages.sh humble jammy # ROS Humble on Ubuntu 22.04 # ./scripts/build_debian_packages.sh jazzy noble # ROS Jazzy on Ubuntu 24.04 +# ./scripts/build_debian_packages.sh rolling resolute # ROS Rolling on Ubuntu 26.04 # # Docker Usage (Recommended): # docker run -it --rm -v $(pwd):/workspace -w /workspace \ # ubuntu:jammy ./scripts/build_debian_packages.sh humble jammy # # Supported combinations: -# humble/jammy, iron/jammy, jazzy/noble, kilted/noble, rolling/noble +# humble/jammy, iron/jammy, jazzy/noble, kilted/noble, rolling/resolute # # Output: Debian packages will be created in debian_packages/[ROS_DISTRO]/ # Install: sudo apt install ./debian_packages/[ROS_DISTRO]/*.deb @@ -59,10 +60,10 @@ esac # Validate Ubuntu distro case "$UBUNTU_DISTRO" in -jammy | noble) ;; +jammy | noble | resolute) ;; *) echo "Error: Unsupported Ubuntu distro: $UBUNTU_DISTRO" - echo "Supported distros: jammy, noble" + echo "Supported distros: jammy, noble, resolute" exit 1 ;; esac @@ -148,10 +149,12 @@ greenwave_monitor_interfaces: ubuntu: jammy: [ros-$ROS_DISTRO-greenwave-monitor-interfaces] noble: [ros-$ROS_DISTRO-greenwave-monitor-interfaces] + resolute: [ros-$ROS_DISTRO-greenwave-monitor-interfaces] greenwave_monitor: ubuntu: jammy: [ros-$ROS_DISTRO-greenwave-monitor] noble: [ros-$ROS_DISTRO-greenwave-monitor] + resolute: [ros-$ROS_DISTRO-greenwave-monitor] EOF # Setup rosdep diff --git a/scripts/docker-test.sh b/scripts/docker-test.sh index dc5ec0c..ee8e3ce 100755 --- a/scripts/docker-test.sh +++ b/scripts/docker-test.sh @@ -40,7 +40,7 @@ kilted) IMAGE="ros:kilted-ros-base-noble" ;; rolling) - IMAGE="ros:rolling-ros-base-noble" + IMAGE="ros:rolling-ros-base-resolute" ;; *) echo "Unsupported ROS 2 distribution: $DISTRO" From a4a65a270925894e487b8f1680f6d9b7a22123b4 Mon Sep 17 00:00:00 2001 From: Blake McHale Date: Tue, 11 Aug 2026 13:50:10 -0700 Subject: [PATCH 4/5] Document ROS_DISTRO for APT install Signed-off-by: Blake McHale --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7940f74..e6a5a57 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,11 @@ Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, Recommended: +> **Note:** Make sure `ROS_DISTRO` is set to your ROS 2 distribution, for example by +> running `source /opt/ros//setup.bash`. + ```bash -sudo apt install ros-${ROS_DISTRO:-jazzy}-greenwave-monitor +sudo apt install ros-${ROS_DISTRO}-greenwave-monitor ``` From source, for development: From ee0d4a6b0cb9de4dc3f0851f064f73fb92d3954a Mon Sep 17 00:00:00 2001 From: Blake McHale Date: Tue, 11 Aug 2026 13:56:53 -0700 Subject: [PATCH 5/5] Use testing apt repo for ROS Rolling Signed-off-by: Blake McHale --- .github/workflows/debian-packages.yml | 6 +++++- .github/workflows/ros-tests.yml | 6 +++++- scripts/build_debian_packages.sh | 12 +++++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/.github/workflows/debian-packages.yml b/.github/workflows/debian-packages.yml index 2b1e58c..186d2cc 100644 --- a/.github/workflows/debian-packages.yml +++ b/.github/workflows/debian-packages.yml @@ -129,7 +129,11 @@ jobs: apt-get update -qq apt-get install -y curl gnupg lsb-release curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2.list + ROS_APT_REPOSITORY="ros2" + if [[ "${{ matrix.ros_distro }}" == "rolling" ]]; then + ROS_APT_REPOSITORY="ros2-testing" + fi + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/${ROS_APT_REPOSITORY}/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2.list apt-get update -qq # Install minimal ROS to get /opt/ros and basic infrastructure diff --git a/.github/workflows/ros-tests.yml b/.github/workflows/ros-tests.yml index f240d89..0997336 100644 --- a/.github/workflows/ros-tests.yml +++ b/.github/workflows/ros-tests.yml @@ -92,7 +92,11 @@ jobs: apt-get update -qq apt-get install -y curl gnupg lsb-release curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2.list + ROS_APT_REPOSITORY="ros2" + if [[ "${{ matrix.ros_distro }}" == "rolling" ]]; then + ROS_APT_REPOSITORY="ros2-testing" + fi + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/${ROS_APT_REPOSITORY}/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2.list apt-get update -qq apt-get install -y python3-rosdep python3-colcon-common-extensions build-essential cmake git python3-pip ros-${{ matrix.ros_distro }}-ros-base shell: bash diff --git a/scripts/build_debian_packages.sh b/scripts/build_debian_packages.sh index 5abd625..f1942a9 100755 --- a/scripts/build_debian_packages.sh +++ b/scripts/build_debian_packages.sh @@ -90,10 +90,16 @@ ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ >/etc/timezone apt-get update -qq apt-get install -y curl gnupg lsb-release -if [ ! -f "/etc/apt/sources.list.d/ros2.list" ]; then - echo "Adding ROS 2 apt repository..." +ROS_APT_REPOSITORY="ros2" +if [[ "$ROS_DISTRO" == "rolling" ]]; then + ROS_APT_REPOSITORY="ros2-testing" +fi +ROS_APT_URL="http://packages.ros.org/$ROS_APT_REPOSITORY/ubuntu" + +if [ ! -f "/etc/apt/sources.list.d/ros2.list" ] || ! grep -q "$ROS_APT_URL" /etc/apt/sources.list.d/ros2.list; then + echo "Adding ROS 2 apt repository ($ROS_APT_REPOSITORY)..." curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" >/etc/apt/sources.list.d/ros2.list + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] $ROS_APT_URL $(lsb_release -cs) main" >/etc/apt/sources.list.d/ros2.list apt-get update -qq else echo "ROS 2 repository already configured"