From a3e8520f9ab7dd2820b3871ff94c751b9d3f13fb Mon Sep 17 00:00:00 2001 From: Mirko Ferrati Date: Tue, 27 Jun 2023 15:39:56 +0200 Subject: [PATCH 1/6] add snap for core22, remove ros1, enable humble --- .github/workflows/ros2.yaml | 1 + snap_core22/gui/PlotJuggler.desktop | 9 + snap_core22/gui/plotjuggler.svg | 1 + .../local/fastdds_no_shared_memory.xml | 19 ++ snap_core22/local/launcher-plotjuggler-ros2 | 10 + snap_core22/local/plotjuggler.rosinstall | 2 + snap_core22/snapcraft.yaml | 270 ++++++++++++++++++ 7 files changed, 312 insertions(+) create mode 100644 snap_core22/gui/PlotJuggler.desktop create mode 100644 snap_core22/gui/plotjuggler.svg create mode 100644 snap_core22/local/fastdds_no_shared_memory.xml create mode 100755 snap_core22/local/launcher-plotjuggler-ros2 create mode 100644 snap_core22/local/plotjuggler.rosinstall create mode 100644 snap_core22/snapcraft.yaml diff --git a/.github/workflows/ros2.yaml b/.github/workflows/ros2.yaml index 145b2c847..de3e7c6dd 100644 --- a/.github/workflows/ros2.yaml +++ b/.github/workflows/ros2.yaml @@ -9,6 +9,7 @@ jobs: env: - {ROS_DISTRO: foxy, ROS_REPO: main} - {ROS_DISTRO: galactic, ROS_REPO: main} + - {ROS_DISTRO: humble, ROS_REPO: main} - {ROS_DISTRO: rolling, ROS_REPO: main} runs-on: ubuntu-latest steps: diff --git a/snap_core22/gui/PlotJuggler.desktop b/snap_core22/gui/PlotJuggler.desktop new file mode 100644 index 000000000..da513636b --- /dev/null +++ b/snap_core22/gui/PlotJuggler.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=PlotJuggler +Exec=plotjuggler +Icon=${SNAP}/meta/gui/plotjuggler.svg +Comment=Visualize timeseries like a pro +Terminal=false +Categories=Development; +Name[en_US]=PlotJuggler diff --git a/snap_core22/gui/plotjuggler.svg b/snap_core22/gui/plotjuggler.svg new file mode 100644 index 000000000..0a51f6fc7 --- /dev/null +++ b/snap_core22/gui/plotjuggler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/snap_core22/local/fastdds_no_shared_memory.xml b/snap_core22/local/fastdds_no_shared_memory.xml new file mode 100644 index 000000000..a4f010566 --- /dev/null +++ b/snap_core22/local/fastdds_no_shared_memory.xml @@ -0,0 +1,19 @@ + + + + + CustomUdpTransport + UDPv4 + + + + + + + CustomUdpTransport + + + false + + + diff --git a/snap_core22/local/launcher-plotjuggler-ros2 b/snap_core22/local/launcher-plotjuggler-ros2 new file mode 100755 index 000000000..b39a73f54 --- /dev/null +++ b/snap_core22/local/launcher-plotjuggler-ros2 @@ -0,0 +1,10 @@ +#!/bin/bash + +# Paths to ROS 2 plugins +export PLUGIN_FOLDERS=$SNAP/opt/ros/snap/lib/plotjuggler_ros +export AMENT_PREFIX_PATH=$SNAP/opt/ros/humble +# Disable FastDDS shared-memory +export FASTRTPS_DEFAULT_PROFILES_FILE=${SNAP}/usr/share/fastdds_no_shared_memory.xml + +${SNAP}/usr/local/bin/plotjuggler --plugin_folders $PLUGIN_FOLDERS $@ + diff --git a/snap_core22/local/plotjuggler.rosinstall b/snap_core22/local/plotjuggler.rosinstall new file mode 100644 index 000000000..ea012ab97 --- /dev/null +++ b/snap_core22/local/plotjuggler.rosinstall @@ -0,0 +1,2 @@ +- git: {local-name: plotjuggler-ros-plugins, uri: 'https://github.com/PlotJuggler/plotjuggler-ros-plugins.git', version: 1.7.3} +- git: {local-name: plotjuggler_msgs, uri: 'https://github.com/facontidavide/plotjuggler_msgs.git', version: main} diff --git a/snap_core22/snapcraft.yaml b/snap_core22/snapcraft.yaml new file mode 100644 index 000000000..796b1abf5 --- /dev/null +++ b/snap_core22/snapcraft.yaml @@ -0,0 +1,270 @@ +name: plotjuggler +adopt-info: plotjuggler # parse metadata from the plotjuggler part +summary: The timeseries visualization tool that you deserve +description: | + QT5 based application to display time series in plots, + using an intuitive "drag and drop" interface. + + The snap comes with only ROS 2 plugins. + You can launch it with + + $ plotjuggler + + launching PlotJuggler with ROS 2 plugins by default. + +issues: https://github.com/facontidavide/plotjuggler/issues +source-code: https://github.com/facontidavide/plotjuggler +license: MPL-2.0 + +confinement: strict +base: core22 + +apps: + plotjuggler: + command: usr/bin/launcher-plotjuggler-ros2 + plugs: [network, network-bind, home, removable-media] + extensions: [kde-neon, ros2-humble] + +parts: + plotjuggler: + plugin: cmake + source: . + cmake-parameters: + - -DCMAKE_BUILD_TYPE=Release + - "-DCMAKE_PREFIX_PATH=$(echo $SNAPCRAFT_CMAKE_ARGS | awk -F= '{printf(\"%s/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/cmake/Qt5\", $2)}')" + build-packages: + - distro-info-data + - libpulse0 + - libdw-dev + - libbfd-dev + - libdwarf-dev + - libprotoc-dev + - libgl-dev + - libmosquitto-dev + - libzmq3-dev + - libzstd-dev + stage-packages: + - libdw1 + - libmosquitto1 + - libprotobuf23 + - libprotobuf-dev + - libzmq5 + - libzstd1 + - libfreetype6 + override-pull: | + craftctl default + + version="$(git describe --always --tags| sed -e 's/^v//;s/-/+git/;y/-/./')" + [ -n "$(echo $version | grep "+git")" ] && grade=devel || grade=stable + snapcraftctl set-version "$version" + snapcraftctl set-grade "$grade" + + # Necessary to bypass XDG desktop portals because ROS 2 bags metadata.yaml are refering db3 files relatively + sed -i '/QApplication app(new_argc, new_argv.data());/a QCoreApplication::setAttribute(Qt::AA_DontUseNativeDialogs);' plotjuggler_app/main.cpp + + plotjuggler-ros2: + after: [plotjuggler] + plugin: colcon + source: . + colcon-cmake-args: + - -DCMAKE_BUILD_TYPE=Release + - -DBUILD_TESTING=OFF + - -DBUILD_DOCS=OFF + # point to previously build plotjuggler + - -Dplotjuggler_DIR:PATH=$SNAPCRAFT_STAGE/usr/local/lib/cmake/plotjuggler + # Due to https://github.com/ament/ament_cmake/issues/189 implicity OpenSSL link breaks. So we change CMAKE_PREFIX_PATH and not CMAKE_FIND_ROOT_PATH + - -DCMAKE_PREFIX_PATH=$(echo $SNAPCRAFT_CMAKE_ARGS | awk -F= '{printf("%s/usr/lib/x86_64-linux-gnu/cmake/Qt5", $2)}') + - --event-handlers=console_direct+ + build-packages: + - git + - python3-vcstool + - ros-humble-ros-core + - patchelf + stage-packages: + # ROS 2 plugin need to source messages to plot them + # No custom message is going to be support for now + - ros-humble-geometry-msgs + - ros-humble-ackermann-msgs + - ros-humble-action-msgs + - ros-humble-actionlib-msgs + - ros-humble-actuator-msgs + - ros-humble-apriltag-msgs + - ros-humble-aruco-msgs + - ros-humble-aruco-opencv-msgs + - ros-humble-automotive-autonomy-msgs + - ros-humble-automotive-navigation-msgs + - ros-humble-automotive-platform-msgs + - ros-humble-autoware-auto-msgs + - ros-humble-can-msgs + - ros-humble-cartographer-ros-msgs + - ros-humble-cascade-lifecycle-msgs + - ros-humble-control-msgs + - ros-humble-controller-manager-msgs + - ros-humble-create-msgs + - ros-humble-dataspeed-dbw-msgs + - ros-humble-dataspeed-ulc-msgs + - ros-humble-dbw-fca-msgs + - ros-humble-dbw-ford-msgs + - ros-humble-dbw-polaris-msgs + - ros-humble-delphi-esr-msgs + - ros-humble-delphi-mrr-msgs + - ros-humble-delphi-srr-msgs + - ros-humble-depthai-ros-msgs + - ros-humble-derived-object-msgs + - ros-humble-diagnostic-msgs + - ros-humble-dwb-msgs + - ros-humble-dynamixel-workbench-msgs + - ros-humble-foros-msgs + - ros-humble-four-wheel-steering-msgs + - ros-humble-foxglove-msgs + - ros-humble-gazebo-msgs + - ros-humble-geographic-msgs + - ros-humble-geometry-msgs + - ros-humble-gps-msgs + - ros-humble-graph-msgs + - ros-humble-grasping-msgs + - ros-humble-grbl-msgs + - ros-humble-grid-map-msgs + - ros-humble-ibeo-msgs + - ros-humble-irobot-create-msgs + - ros-humble-kartech-linear-actuator-msgs + - ros-humble-leo-msgs + - ros-humble-lgsvl-msgs + - ros-humble-lifecycle-msgs + - ros-humble-map-msgs + - ros-humble-marker-msgs + - ros-humble-marti-can-msgs + - ros-humble-marti-common-msgs + - ros-humble-marti-dbw-msgs + - ros-humble-marti-introspection-msgs + - ros-humble-marti-nav-msgs + - ros-humble-marti-perception-msgs + - ros-humble-marti-sensor-msgs + - ros-humble-marti-status-msgs + - ros-humble-marti-visualization-msgs + - ros-humble-marvelmind-ros2-msgs + - ros-humble-mavros-msgs + - ros-humble-micro-ros-diagnostic-msgs + - ros-humble-micro-ros-msgs + - ros-humble-microstrain-inertial-msgs + - ros-humble-mobileye-560-660-msgs + - ros-humble-moveit-msgs + - ros-humble-mrpt-msgs + - ros-humble-nao-command-msgs + - ros-humble-nao-sensor-msgs + - ros-humble-nav-2d-msgs + - ros-humble-nav-msgs + - ros-humble-nav2-msgs + - ros-humble-neobotix-usboard-msgs + - ros-humble-nmea-msgs + - ros-humble-novatel-gps-msgs + - ros-humble-novatel-oem7-msgs + - ros-humble-object-recognition-msgs + - ros-humble-octomap-msgs + - ros-humble-ouster-msgs + - ros-humble-pal-statistics-msgs + - ros-humble-pcl-msgs + - ros-humble-pendulum-msgs + - ros-humble-phidgets-msgs + - ros-humble-plansys2-msgs + - ros-humble-play-motion2-msgs + - ros-humble-polygon-msgs + - ros-humble-radar-msgs + - ros-humble-raspimouse-msgs + - ros-humble-rc-common-msgs + - ros-humble-rc-reason-msgs + - ros-humble-rclpy-message-converter-msgs + - ros-humble-rcss3d-agent-msgs + - ros-humble-realsense2-camera-msgs + - ros-humble-rmf-api-msgs + - ros-humble-rmf-building-map-msgs + - ros-humble-rmf-charger-msgs + - ros-humble-rmf-dispenser-msgs + - ros-humble-rmf-door-msgs + - ros-humble-rmf-fleet-msgs + - ros-humble-rmf-ingestor-msgs + - ros-humble-rmf-lift-msgs + - ros-humble-rmf-obstacle-msgs + - ros-humble-rmf-scheduler-msgs + - ros-humble-rmf-site-map-msgs + - ros-humble-rmf-task-msgs + - ros-humble-rmf-traffic-msgs + - ros-humble-rmf-visualization-msgs + - ros-humble-rmf-workcell-msgs + - ros-humble-robot-calibration-msgs + - ros-humble-robot-controllers-msgs + - ros-humble-rosapi-msgs + - ros-humble-rosbridge-msgs + - ros-humble-rosbridge-test-msgs + - ros-humble-rosgraph-msgs + - ros-humble-rtabmap-msgs + - ros-humble-rtcm-msgs + - ros-humble-rviz-2d-overlay-msgs + - ros-humble-sensor-msgs + - ros-humble-sensor-msgs-py + - ros-humble-shape-msgs + - ros-humble-soccer-object-msgs + - ros-humble-soccer-vision-2d-msgs + - ros-humble-soccer-vision-3d-msgs + - ros-humble-soccer-vision-attribute-msgs + - ros-humble-statistics-msgs + - ros-humble-std-msgs + - ros-humble-stereo-msgs + - ros-humble-stubborn-buddies-msgs + - ros-humble-system-modes-msgs + - ros-humble-teleop-tools-msgs + - ros-humble-test-msgs + - ros-humble-tf2-geometry-msgs + - ros-humble-tf2-msgs + - ros-humble-tf2-sensor-msgs + - ros-humble-trajectory-msgs + - ros-humble-turtlebot3-msgs + - ros-humble-turtlebot4-msgs + - ros-humble-tuw-geometry-msgs + - ros-humble-ublox-msgs + - ros-humble-ublox-ubx-msgs + - ros-humble-udp-msgs + - ros-humble-unique-identifier-msgs + - ros-humble-ur-dashboard-msgs + - ros-humble-ur-msgs + - ros-humble-urg-node-msgs + - ros-humble-velodyne-msgs + - ros-humble-vision-msgs + - ros-humble-visualization-msgs + - ros-humble-webots-ros2-msgs + - ros-humble-wiimote-msgs + - ros-humble-wireless-msgs +# - ros-humble-astuff-sensor-msgs # new ppa, should we add it? https://github.com/astuff/pacmod3/commit/ff0f8f1bb1a1ba88f495a3294725207309c739ae +# - ros-humble-clearpath-msgs # not yet released +# - ros-humble-clober-msgs # not yet released +# - ros-humble-mocap-msgs # not yet in humble, not sure why +# - ros-humble-pacmod3-msgs # new ppa, should we add it? https://github.com/astuff/pacmod3/commit/ff0f8f1bb1a1ba88f495a3294725207309c739ae +# - ros-humble-raptor-dbw-msgs # https://github.com/NewEagleRaptor/raptor-dbw-ros/commit/7feaf35d996addac469a0816ab0d7ab9037ca6dd +# - ros-humble-raptor-pdu-msgs # https://github.com/NewEagleRaptor/raptor-dbw-ros/commit/7feaf35d996addac469a0816ab0d7ab9037ca6dd +# - ros-humble-rover-msgs # not yet released + # Additional DDS vendors + - ros-humble-rmw-cyclonedds-cpp + - ros-humble-rmw-fastrtps-cpp + - ros-humble-rmw-gurumdds-cpp + - ros-humble-rmw-connextdds + override-pull: | + if [ ! -d plotjuggler-ros-plugins ]; then + + vcs import < /root/parts/plotjuggler/src/snap/local/plotjuggler.rosinstall + + # prevent rosdep from installing plotjuggler + sed -i "s|plotjuggler||" plotjuggler-ros-plugins/package.xml + + # add plotjuggler_LIBRARIES link + sed -i '/\${Qt5Xml_LIBRARIES}/a ${plotjuggler_LIBRARIES}' plotjuggler-ros-plugins/plugins/CMakeLists.txt + + # Qt dependencies are managed by the kde neon-extension + sed -i '/qt/d' plotjuggler-ros-plugins/package.xml + fi + + fastdds-no-shared-memory: + plugin: dump + source: snap/local/ + organize: + 'fastdds_no_shared_memory.xml': usr/share/ + 'launcher-plotjuggler*': usr/bin/ From f8c898353e830a6e72ab3a1a16ff739eac48bfc8 Mon Sep 17 00:00:00 2001 From: Mirko Ferrati Date: Tue, 11 Jul 2023 15:18:26 +0200 Subject: [PATCH 2/6] duplicate the snap github action to publish new humble track --- .github/workflows/snap.yaml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml index c0caee4f2..41f023784 100644 --- a/.github/workflows/snap.yaml +++ b/.github/workflows/snap.yaml @@ -47,3 +47,40 @@ jobs: with: snap: ${{needs.build.outputs.snap-file}} release: ${{ startsWith(github.ref, 'refs/tags/') && 'candidate' || 'edge'}} + + build22: + runs-on: ubuntu-latest + outputs: + snap-file: ${{ steps.build-snap22.outputs.snap }} + steps: + - uses: actions/checkout@v2 + with: + # full history for latest tag name + fetch-depth: 0 + - uses: snapcore/action-build@v1 + id: build-snap22 + + # Make sure the snap is installable + - run: | + sudo snap install --dangerous ${{ steps.build-snap22.outputs.snap }} + + - uses: actions/upload-artifact@v3 + with: + name: plotjuggler-snap22 + path: ${{ steps.build-snap22.outputs.snap }} + + publish22: + if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + needs: build22 + steps: + - uses: actions/download-artifact@v3 + with: + name: plotjuggler-snap22 + path: . + - uses: snapcore/action-publish@v1 + env: + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }} + with: + snap: ${{needs.build.outputs.snap-file}} + release: humble/${{ startsWith(github.ref, 'refs/tags/') && 'candidate' || 'edge'}} From 260974065bd9e2df2648466ed1e13d5e3c314bb8 Mon Sep 17 00:00:00 2001 From: Mirko Ferrati Date: Tue, 11 Jul 2023 15:22:40 +0200 Subject: [PATCH 3/6] swap default snap with core22 snap for ros humble --- .github/workflows/snap.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml index 41f023784..a231dd1a3 100644 --- a/.github/workflows/snap.yaml +++ b/.github/workflows/snap.yaml @@ -57,6 +57,7 @@ jobs: with: # full history for latest tag name fetch-depth: 0 + - run: rm -r snap && mv snap_core22 snap - uses: snapcore/action-build@v1 id: build-snap22 From a026743e0a555bce5b4504f3d8034dbb252f1620 Mon Sep 17 00:00:00 2001 From: Mirko Ferrati Date: Fri, 18 Aug 2023 15:10:31 +0200 Subject: [PATCH 4/6] Adapt to new snapcraft syntax for core22, sort stage-packages --- snap_core22/snapcraft.yaml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/snap_core22/snapcraft.yaml b/snap_core22/snapcraft.yaml index 796b1abf5..8b5e99630 100644 --- a/snap_core22/snapcraft.yaml +++ b/snap_core22/snapcraft.yaml @@ -31,7 +31,7 @@ parts: source: . cmake-parameters: - -DCMAKE_BUILD_TYPE=Release - - "-DCMAKE_PREFIX_PATH=$(echo $SNAPCRAFT_CMAKE_ARGS | awk -F= '{printf(\"%s/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/cmake/Qt5\", $2)}')" + - "-DCMAKE_PREFIX_PATH=$(echo $SNAPCRAFT_CMAKE_ARGS | awk -F= '{printf(\"%s/usr/lib/$CRAFT_ARCH_TRIPLET/cmake/Qt5\", $2)}')" build-packages: - distro-info-data - libpulse0 @@ -56,8 +56,8 @@ parts: version="$(git describe --always --tags| sed -e 's/^v//;s/-/+git/;y/-/./')" [ -n "$(echo $version | grep "+git")" ] && grade=devel || grade=stable - snapcraftctl set-version "$version" - snapcraftctl set-grade "$grade" + craftctl set version="$version" + craftctl set grade="$grade" # Necessary to bypass XDG desktop portals because ROS 2 bags metadata.yaml are refering db3 files relatively sed -i '/QApplication app(new_argc, new_argv.data());/a QCoreApplication::setAttribute(Qt::AA_DontUseNativeDialogs);' plotjuggler_app/main.cpp @@ -71,7 +71,7 @@ parts: - -DBUILD_TESTING=OFF - -DBUILD_DOCS=OFF # point to previously build plotjuggler - - -Dplotjuggler_DIR:PATH=$SNAPCRAFT_STAGE/usr/local/lib/cmake/plotjuggler + - -Dplotjuggler_DIR:PATH=$CRAFT_STAGE/usr/local/lib/cmake/plotjuggler # Due to https://github.com/ament/ament_cmake/issues/189 implicity OpenSSL link breaks. So we change CMAKE_PREFIX_PATH and not CMAKE_FIND_ROOT_PATH - -DCMAKE_PREFIX_PATH=$(echo $SNAPCRAFT_CMAKE_ARGS | awk -F= '{printf("%s/usr/lib/x86_64-linux-gnu/cmake/Qt5", $2)}') - --event-handlers=console_direct+ @@ -83,7 +83,6 @@ parts: stage-packages: # ROS 2 plugin need to source messages to plot them # No custom message is going to be support for now - - ros-humble-geometry-msgs - ros-humble-ackermann-msgs - ros-humble-action-msgs - ros-humble-actionlib-msgs @@ -234,14 +233,7 @@ parts: - ros-humble-webots-ros2-msgs - ros-humble-wiimote-msgs - ros-humble-wireless-msgs -# - ros-humble-astuff-sensor-msgs # new ppa, should we add it? https://github.com/astuff/pacmod3/commit/ff0f8f1bb1a1ba88f495a3294725207309c739ae -# - ros-humble-clearpath-msgs # not yet released -# - ros-humble-clober-msgs # not yet released -# - ros-humble-mocap-msgs # not yet in humble, not sure why -# - ros-humble-pacmod3-msgs # new ppa, should we add it? https://github.com/astuff/pacmod3/commit/ff0f8f1bb1a1ba88f495a3294725207309c739ae -# - ros-humble-raptor-dbw-msgs # https://github.com/NewEagleRaptor/raptor-dbw-ros/commit/7feaf35d996addac469a0816ab0d7ab9037ca6dd -# - ros-humble-raptor-pdu-msgs # https://github.com/NewEagleRaptor/raptor-dbw-ros/commit/7feaf35d996addac469a0816ab0d7ab9037ca6dd -# - ros-humble-rover-msgs # not yet released + # Additional DDS vendors - ros-humble-rmw-cyclonedds-cpp - ros-humble-rmw-fastrtps-cpp From 98bb556ad0659ad0a18f5bb332db141f0c0a7134 Mon Sep 17 00:00:00 2001 From: Mirko Ferrati Date: Fri, 18 Aug 2023 17:01:59 +0200 Subject: [PATCH 5/6] Skip git security check for git owner inside the snap container --- snap_core22/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap_core22/snapcraft.yaml b/snap_core22/snapcraft.yaml index 8b5e99630..58e45eaf2 100644 --- a/snap_core22/snapcraft.yaml +++ b/snap_core22/snapcraft.yaml @@ -53,7 +53,7 @@ parts: - libfreetype6 override-pull: | craftctl default - + git config --global --add safe.directory '*' version="$(git describe --always --tags| sed -e 's/^v//;s/-/+git/;y/-/./')" [ -n "$(echo $version | grep "+git")" ] && grade=devel || grade=stable craftctl set version="$version" From 83cbe145f21b37f8b06fb3c325ecabc47dd207c7 Mon Sep 17 00:00:00 2001 From: Mirko Ferrati Date: Fri, 15 Sep 2023 14:35:34 +0200 Subject: [PATCH 6/6] Remove deprecated messages from foxy --- snap/snapcraft.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index e90cd5e93..d2b10d9bb 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -232,7 +232,6 @@ parts: - ros-foxy-object-recognition-msgs - ros-foxy-octomap-msgs - ros-foxy-ouster-msgs - - ros-foxy-pacmod-msgs - ros-foxy-pcl-msgs - ros-foxy-pendulum-msgs - ros-foxy-phidgets-msgs