Robot Operating System 2 (ROS 2) is Here – Why Should You Care?
Companies around the world are spending huge amounts of money on robotics development. Autonomous cars, industrial robots, autonomous lawn mowers and work machines all are some kind of robots. Almost daily there are news about new R & D efforts and new progress made in robot development.
Robot control requires a complex software stack to sense the environment, navigate, move, avoid obstacles, and perform the tasks the robot is designed for. A major part of the on-board software is common for all robot types, no matter whether the robot operates in logistics, agriculture, or some other field. Robot software is divided into subsystems or “nodes” that control its sensors and actuators, process information, plan the path, avoid obstacles, and communicate with other robots or control systems. Together these systems make the robot sense, plan actions, and act.
There are several commercial robot software platforms available, but open source alternatives have also emerged. Of the latter, the most widely used is ROS (Robot Operating System) which is a set of open source software components, libraries and tools to help developers build robot applications with less effort. The first version of ROS – ROS 1 – is mainly used for educational purposes and building proof-of-concept or demo applications. Although ROS 1 has been used for a few commercial applications, it lacks some essential features to enable wider commercial use.
ROS 2 is a new version of the Robot Operating System. It has been built from ground up to meet industrial grade safety and real-time requirements. If you are a robot developer, you should know following five things about ROS 2:
1. Safety and reliability. ROS 2 has been designed to meet industrial grade requirements for safety and reliability. A central part of the new design is the use of DDS (Data Distribution System) messaging between robot software nodes. DDS is fault tolerant and supports a variety of Quality of Service (QoS) policies. You can for example define in a QoS policy if a certain node wants to always receive all messages or if it is acceptable to lose some messages if the data is updated frequently.
2. Lots of major companies are contributing to ROS 2 and developing ROS 2 support for their products. Here are some examples:
- AWS (getting RoboMaker working with ROS 2)
- Bosch (Porting their IMU drivers)
- Xsense (porting their IMU drivers)
- Velodyne (porting their lidar drivers)
- Ouster (porting their lidar drivers)
- Slamtech (porting their lidar drivers)
- Hokuyo (porting their lidar drivers)
- SICK (porting their lidar drivers)
- Swift Navigation (porting their GPS drivers)
- ELP (porting usb_cam)
- Roboteq (porting their motor controller driver)
- Dimension Engineering (porting their motor controller driver)
- Adafruit (porting their various sensor drivers and writing tutorials)
3. Lots of things are available for free and ready to use. There are simulators, visualizers, hardware drivers and other components needed in robot application development. There are for example several commercial and non-commercial DDS messaging implementations to choose from.
4. Many players in the field are already using ROS 2. Many companies who build autonomous machines or software for them are either using ROS 2 or considering using it. There are companies who start developing new products on top of ROS 2 and those who have an old on-board software platform and are now switching to ROS 2.
5. ROS 2 has wide support. The final release of ROS 1 has been released in May 2020 and all the future releases will be ROS 2 releases. The ROS community has switched development focus to ROS 2 and there are bug fixes, support and help available. If you need community support, have a look at the ROS Discourse forum.
If you are considering building a robot or robotics software, ROS 2 is definitely worth considering. ROS 2 user base is growing, and it is becoming a serious alternative to commercial robot software platforms. Maybe we will see the same happening with robot software platforms that happened with operating systems a few decades ago. In the 90s there were several commercial Unix variants available, Solaris, AIX, HP-UX, IRIX etc, but open source based Linux became dominant.
Will the same happen with robot software? We will see.
See new Atostek website ros2consulting.com for more information.