Skip to content

Commit

Permalink
Merge pull request #849 from MirkoFerrati/mirko/core22_snap
Browse files Browse the repository at this point in the history
update to core22, remove ros1, enable humble instead of foxy
  • Loading branch information
facontidavide authored Sep 20, 2023
2 parents 670d10c + 83cbe14 commit 23c2d8c
Show file tree
Hide file tree
Showing 9 changed files with 342 additions and 1 deletion.
1 change: 1 addition & 0 deletions .github/workflows/ros2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/snap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,41 @@ 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
- run: rm -r snap && mv snap_core22 snap
- 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'}}
1 change: 0 additions & 1 deletion snap/snapcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions snap_core22/gui/PlotJuggler.desktop
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions snap_core22/gui/plotjuggler.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions snap_core22/local/fastdds_no_shared_memory.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles" >
<transport_descriptors>
<transport_descriptor>
<transport_id>CustomUdpTransport</transport_id>
<type>UDPv4</type>
</transport_descriptor>
</transport_descriptors>

<participant profile_name="participant_profile" is_default_profile="true">
<rtps>
<userTransports>
<transport_id>CustomUdpTransport</transport_id>
</userTransports>

<useBuiltinTransports>false</useBuiltinTransports>
</rtps>
</participant>
</profiles>
10 changes: 10 additions & 0 deletions snap_core22/local/launcher-plotjuggler-ros2
Original file line number Diff line number Diff line change
@@ -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 $@

2 changes: 2 additions & 0 deletions snap_core22/local/plotjuggler.rosinstall
Original file line number Diff line number Diff line change
@@ -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}
262 changes: 262 additions & 0 deletions snap_core22/snapcraft.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
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/$CRAFT_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
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"
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
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=$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+
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-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

# 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|<depend>plotjuggler</depend>||" 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/

0 comments on commit 23c2d8c

Please sign in to comment.