cover image

ROS 2 launch: required nodes

When using the Robot Operating System (ROS), it’s fairly common to want to shut down a launched system if a specific node (or set of nodes) exits. This is pretty easy in ROS1, because launch files support the required attribute on each node. As a result, crafting a two-node system where one of the nodes is required is straightforward: <launch> <node name = "talker" pkg = "talker" type = "talker_node" /> <node name = "listener" pkg = "listener" type = "talker_node" required = "true" /> </launch> This launch file creates a talker/listener system where, if the talker exits the system continues trucking along, but if the listener exits the entire launched system is shut down....

March 11, 2019 · 3 min · Kyle
cover image

Building ROS 2 snaps with Colcon

The snapcraft CLI has supported building ROS1 snaps for a while via the catkin plugin. We supported the ROS2 betas via the ament plugin, but that was before Open Robotics had a ROS 2 package repository setup, which meant that the ament plugin built the ROS 2 underlay from source, and it was predictably dreadfully slow. However, the stable releases of ROS2 introduced a new build system called colcon, and also had their own package repositories setup....

February 28, 2019 · 6 min · Kyle
cover image

Are you passionate about open-source robotics? Join us.

Ubuntu is a very popular operating system for robotics, for a number of reasons. Perhaps the software stack one happens to use prefers Ubuntu, or the hardware one is using only distributes drivers for Ubuntu. Maybe one’s team is already familiar with it, or decision-makers like that it has long-term support releases and extended security maintenance. Perhaps one views snaps as the perfect way to support and update robots in the field, and so on....

February 22, 2019 · 2 min · Kyle
cover image

Develop your snaps faster

Snaps bundle their dependencies, which take time to fetch and unpack, and they’re typically made up of multiple parts, each of which need to be built and installed into the snap. Once you finish this process, you need to install the snap and test it out. Once you notice that your code is terrible and doesn’t work the way you thought, you have to make a change and go back through that process again....

October 25, 2018 · 5 min · Kyle

ROS Melodic on Fedora 27

Part of the snapcraft CLI’s development roadmap this cycle includes the ability to build snaps on distros other than Ubuntu. Part of that work includes investigating each plugin to determine if it’s possible to get it working on other distros. As a result, I’ve been looking into the Catkin plugin recently, using Fedora 27 as my proving ground (since that’s the distro with which I’m most familiar after Ubuntu). The first thing you’ll notice trying to get ROS working on Fedora is that, unlike Ubuntu, where Open Robotics maintains infrastructure hosting a repository of Debian packages, there is no repository for you to use: you must build ROS from source....

May 25, 2018 · 2 min · Kyle