ROS 2
This page will provide an introduction to ROS 2, as well as its potential effectiveness./
Overview
ROS 2 is a project that seeks to improve upon ROS 1 by implementing a framework that eliminates the need for a ROS master. Normally, when you run a ROS 1 instance, the nodes connect to the ROS 1 master in order to advertise their topics. Once the topics are advertised, and they find the one(s) they need to subscribe to, the ROS node provides the network address for that specific node to facilitate communication. While this works well for single robots, it does not scale really well for multi-robot systems. This is where ROS 2 comes in, as it completely removes the need for a ROS master by instead introducing a Data Distribution Service middleware [1]. This allows the nodes to directly find each other without the need for a ROS Master, and instead the only requirement is that we have all the robots operate on the same network.
Achieving the Same Effect with ROS 1
Technically, it is possible to achieve a similar design by using special multimaster packages that allow nodes to broadcast their messages onto other ROS 1 masters. Multimaster Package Overview presents a more in-depth explanation of this process.
Installing ROS 2 Dashing Diademata
These instructions will be presented with the assumption that you are performing this installation on a device with Ubuntu 18.04. This is because most of our testing worked with ROS 2 Dashing Diademata, which is targeted at this operating system. If you cannot run Ubuntu 18.04, please go to this link which has instructions for other operating systems. You may also want to look into using a Docker container.
If you are able to run all of these steps without any errors, then congratulations! You have successfully installed and enabled ROS 2 on your system.
Docker Container Repository
If you are interested in running ROS 2 in a Docker container, you have two options:
Download the
ubuntu:bionic
image and run the commands listed in the previous section.Download the
ros:dashing-ros-core-bionic
image.
I personally recommend the second of the two options as it entails less effort for the same result, but if your task requires more customization, you may find it more suitable to use the first option.
Last updated