mirror of
https://github.com/micro-ROS/micro-ROS-Agent.git
synced 2026-09-06 09:55:15 +02:00
Fix/snap (#141)
* fix(snap): build snap using explicitly pulled dependency * ci(snap): add snap workflow * feat(CI): snap publication channel depending on tags * fix(CI): push tagged snap to candidate instead of stable * fix(snap): use MICROROSAGENT_SUPERBUILD
This commit is contained in:
+21
-38
@@ -4,9 +4,7 @@ version: git
|
||||
summary: Bridge between Micro ROS client applications and ROS 2
|
||||
description: |
|
||||
Micro-ROS, whose default implementation is based on eProsima's
|
||||
Micro XRCE-DDS middleware, is composed of client applications
|
||||
which interact with the ROS 2 world by means of an Agent.
|
||||
This agent keeps tracks of the entities created by means of
|
||||
Micro XRCE-DDS middleware, is composed of client applications which interact with the ROS 2 world by means of an Agent. This agent keeps tracks of the entities created by means of
|
||||
requests performed on the microcontroller side, and uses them
|
||||
to communicate with the ROS 2 dataspace.
|
||||
|
||||
@@ -71,16 +69,6 @@ description: |
|
||||
|
||||
$ snap set micro-ros-agent device="device path"
|
||||
|
||||
If connecting the micro-ROS Agent using an IP based connection mode,
|
||||
that is, `udp4`, `udp6`, `tcp4` or `tcp6`, care must be taken to
|
||||
connect first the `micro-ros-agent-shm-netplug` plug.
|
||||
This is due to the fact that ROS 2 Foxy is using Fast-DDS as the
|
||||
default DDS middleware, and Fast-DDS comes with *shared memory transport*.
|
||||
Thus, this plugin must be enabled, in order to gain access to the
|
||||
`/dev/shm` folder from the snap image, prior to running it:
|
||||
|
||||
$ sudo snap connect micro-ros-agent:micro-ros-agent-shm-netplug
|
||||
|
||||
When using the snap with a serial device, some steps need to be taken
|
||||
in order to establish a successful connection:
|
||||
|
||||
@@ -121,21 +109,20 @@ architectures:
|
||||
- build-on: ppc64el
|
||||
|
||||
parts:
|
||||
|
||||
uros-agent:
|
||||
plugin: colcon
|
||||
source: .
|
||||
override-build: |
|
||||
set +u
|
||||
git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git -b $ROS_DISTRO
|
||||
git clone https://github.com/eProsima/Micro-CDR.git -b $ROS_DISTRO
|
||||
git clone https://github.com/micro-ROS/micro_ros_msgs.git -b $ROS_DISTRO
|
||||
git clone https://github.com/micro-ROS/rosidl_typesupport_microxrcedds.git -b $ROS_DISTRO
|
||||
git clone https://github.com/micro-ROS/rmw-microxrcedds.git -b $ROS_DISTRO
|
||||
git clone https://github.com/micro-ROS/micro-ROS-Agent.git -b $ROS_DISTRO
|
||||
. /opt/ros/$ROS_DISTRO/setup.sh
|
||||
colcon build --merge-install --install-base $SNAPCRAFT_PRIME --cmake-args "-DUAGENT_BUILD_EXECUTABLE=OFF -DUAGENT_USE_SYSTEM_FASTDDS=ON" --packages-up-to micro_ros_agent
|
||||
set -u
|
||||
colcon-cmake-args:
|
||||
- -DMICROROSAGENT_SUPERBUILD=ON
|
||||
- --cmake-force-configure
|
||||
override-pull: |
|
||||
snapcraftctl pull
|
||||
|
||||
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"
|
||||
|
||||
build-packages: [make, gcc, g++]
|
||||
stage-packages: [ros-foxy-ros2launch]
|
||||
|
||||
@@ -143,26 +130,22 @@ parts:
|
||||
plugin: dump
|
||||
source: snap/local/
|
||||
organize:
|
||||
'*': usr/bin/
|
||||
|
||||
plugs:
|
||||
micro-ros-agent-shm-netplug:
|
||||
interface: system-files
|
||||
allow-auto-connection: true
|
||||
write:
|
||||
- /dev/shm
|
||||
'micro-ros-agent-daemon': usr/bin/
|
||||
'fastdds_no_shared_memory.xml': usr/share/
|
||||
|
||||
apps:
|
||||
micro-ros-agent:
|
||||
command: lib/micro_ros_agent/micro_ros_agent
|
||||
command: opt/ros/snap/lib/micro_ros_agent/micro_ros_agent
|
||||
environment:
|
||||
LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:$SNAP/lib"
|
||||
plugs: [network, network-bind, serial-port, micro-ros-agent-shm-netplug]
|
||||
FASTRTPS_DEFAULT_PROFILES_FILE: ${SNAP}/usr/share/fastdds_no_shared_memory.xml
|
||||
plugs: [network, network-bind, serial-port]
|
||||
extensions: [ros2-foxy]
|
||||
|
||||
daemon:
|
||||
command: usr/bin/micro-ros-agent-daemon
|
||||
environment:
|
||||
LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:$SNAP/lib"
|
||||
FASTRTPS_DEFAULT_PROFILES_FILE: ${SNAP}/usr/share/fastdds_no_shared_memory.xml
|
||||
daemon: simple
|
||||
plugs: [network, network-bind, serial-port, micro-ros-agent-shm-netplug]
|
||||
plugs: [network, network-bind, serial-port]
|
||||
extensions: [ros2-foxy]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user