How to create a ROS snap correctly?
I am following the tutorial at https://snapcraft.io/#ros to create a Ubuntu Snap
from a ROS package on Github. This all goes well until running the snapcraft
command, from https://snapcraft.io/first-snap/ros/l..., which results in the following error:
ERROR: no rosdep rule for 'roscpp_serialization'
Package 'roscpp_serialization' isn't a valid system dependency. Did you forget to add it to catkin-packages? If not, add the Ubuntu package containing it to stage-packages until you can get it into the rosdep database.
I'm assuming this means I should change something in the .yaml
file but I am unsure exactly how this should look. Could anyone offer an example or any guidance?
Here's the .yaml
file from the tutorial:
name: test-ros-talker-listener-test
version: '0.1'
summary: ROS Talker/Listener Example
description: |
This example launches a ROS talker and listener.
confinement: devmode
base: core18
parts:
ros-tutorials:
plugin: catkin
source: https://github.com/ros/ros_tutorials.git
source-branch: melodic-devel
source-space: roscpp_tutorials/
apps:
test-ros-talker-listener-test:
command: roslaunch roscpp_tutorials talker_listener.launch
It would be helpful to see the snapcraft.yaml you're using so we can duplicate your results. That tutorial seems to works fine, but it sounds like you're trying to snap something else, correct?
Just added this :)
Wait, that IS the tutorial, no? I just built that and it worked fine. Can you add details regarding which OS/version you're using, as well as how you installed snapcraft and its version?
Yes that's right. See answer :)