@@ -71,16 +71,6 @@ description: |
7171
7272 $ snap set micro-ros-agent device="device path"
7373
74- If connecting the micro-ROS Agent using an IP based connection mode,
75- that is, `udp4`, `udp6`, `tcp4` or `tcp6`, care must be taken to
76- connect first the `micro-ros-agent-shm-netplug` plug.
77- This is due to the fact that ROS 2 Foxy is using Fast-DDS as the
78- default DDS middleware, and Fast-DDS comes with *shared memory transport*.
79- Thus, this plugin must be enabled, in order to gain access to the
80- `/dev/shm` folder from the snap image, prior to running it:
81-
82- $ sudo snap connect micro-ros-agent:micro-ros-agent-shm-netplug
83-
8474 When using the snap with a serial device, some steps need to be taken
8575 in order to establish a successful connection:
8676
@@ -120,49 +110,59 @@ architectures:
120110 - build-on : armhf
121111 - build-on : ppc64el
122112
113+ package-repositories :
114+ - components : [main]
115+ formats : [deb]
116+ key-id : C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
117+ key-server : keyserver.ubuntu.com
118+ suites : [focal]
119+ type : apt
120+ url : http://repo.ros2.org/ubuntu/main
121+
123122parts :
123+ ros2-foxy-extension :
124+ build-packages : [ros-foxy-ros-core]
125+ override-build : install -D -m 0755 launch ${SNAPCRAFT_PART_INSTALL}/snap/command-chain/ros2-launch
126+ plugin : nil
127+ source : $SNAPCRAFT_EXTENSIONS_DIR/ros2
124128
125129 uros-agent :
126130 plugin : colcon
127131 source : .
128- override-build : |
129- set +u
130- git clone https://github.com/eProsima/Micro-XRCE-DDS-Agent.git -b $ROS_DISTRO
131- git clone https://github.com/eProsima/Micro-CDR.git -b $ROS_DISTRO
132- git clone https://github.com/micro-ROS/micro_ros_msgs.git -b $ROS_DISTRO
133- git clone https://github.com/micro-ROS/rosidl_typesupport_microxrcedds.git -b $ROS_DISTRO
134- git clone https://github.com/micro-ROS/rmw-microxrcedds. git -b $ROS_DISTRO
135- git clone https://github.com/micro-ROS/micro-ROS-Agent.git -b $ROS_DISTRO
136- . /opt/ros/$ROS_DISTRO/setup.sh
137- 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
138- set -u
132+ colcon-cmake-args :
133+ - -DMICROROSAGENT_SUPERBUILD=ON
134+ - --cmake-force-configure
135+ override-pull : |
136+ snapcraftctl pull
137+
138+ version="$( git describe --always --tags| sed -e 's/^v//;s/-/+ git/;y/-/./')"
139+ [ -n "$(echo $version | grep "+git")" ] && grade=devel || grade=stable
140+ snapcraftctl set-version "$version"
141+ snapcraftctl set-grade "$grade"
142+
139143 build-packages : [make, gcc, g++]
140144 stage-packages : [ros-foxy-ros2launch]
145+ build-environment :
146+ - ROS_VERSION : ' 2'
147+ - ROS_DISTRO : foxy
141148
142149 runner :
143150 plugin : dump
144151 source : snap/local/
145152 organize :
146- ' * ' : usr/bin/
147-
148- plugs :
149- micro-ros-agent-shm-netplug :
150- interface : system-files
151- allow-auto-connection : true
152- write :
153- - /dev/shm
153+ ' micro-ros-agent-daemon ' : usr/bin/
154+ ' fastdds_no_shared_memory.xml ' : usr/share/
154155
155156apps :
156157 micro-ros-agent :
157- command : lib/micro_ros_agent/micro_ros_agent
158+ command : opt/ros/snap/ lib/micro_ros_agent/micro_ros_agent
158159 environment :
159- LD_LIBRARY_PATH : " $LD_LIBRARY_PATH:$SNAP/lib"
160- plugs : [network, network-bind, serial-port, micro-ros-agent-shm-netplug]
161- extensions : [ros2-foxy]
160+ FASTRTPS_DEFAULT_PROFILES_FILE : ${SNAP}/usr/share/fastdds_no_shared_memory.xml
161+ plugs : [network, network-bind, serial-port]
162162
163163 daemon :
164164 command : usr/bin/micro-ros-agent-daemon
165165 environment :
166- LD_LIBRARY_PATH : " $LD_LIBRARY_PATH:$ SNAP/lib "
166+ FASTRTPS_DEFAULT_PROFILES_FILE : ${ SNAP}/usr/share/fastdds_no_shared_memory.xml
167167 daemon : simple
168- plugs : [network, network-bind, serial-port, micro-ros-agent-shm-netplug ]
168+ plugs : [network, network-bind, serial-port]
0 commit comments