Recently, a new robot operating system (ROS)2 distribution was launched on 23 May 2021. Since the launch of ROS in 2007, a great deal has evolved in the robotics and ROS communities. ROS is a collection of software frameworks and tools for developing robot applications.
List of ROS2 Distributions
|ROS 2 Distro Name||Release Date||EOL Date|
|Galactic Geochelone||23rd May, 2021||November 2022|
|Foxy Fitzroy||5th June, 2020||May 2023|
|Eloquent Elusor||22nd November, 2019||November 2020|
|Dashing Diademata||31st May, 2019||May 2021|
|Crystal Clemmys||14th December, 2018||December 2019|
|Bouncy Bolson||2nd July, 2018||July 2019|
|Ardent Apalone||8th December, 2017||December 2018|
|beta3||13th September, 2017||December 2017|
|beta2||5th July, 2017||September 2017|
|beta1||19th December, 2016||Jul 2017|
|alpha1 – alpha8||31st August, 2015||December 2016|
The expectation is that new ROS 2 distributions will be released once a year. Likewise, Humble Hawksbill is expected to release in May 2022.
The most significant change introduced by ROS 2 was the adoption of the data distribution service (DDS) middleware as the communication layer. Its initial release was mostly employed in academic applications, and it was created with the intention of being used in commercial ventures. Simultaneously, ROS 2 has expanded its application base through multi-robot communication, real-time communication, and platform support. At the moment, ROS 2 is used in a variety of applications, ranging from humanoid robots to industrial robots and autonomous vehicles. Apart from that, the OpenCV library is a detection library for ROS 2. Additionally, the QT graphic library is used to create the user interface in ROS 2 applications and is available as an add-on.
Sign up for your weekly dose of what's up in emerging technology.
Why not enhance ROS?
Generally, the modifications described above can be included in the existing ROS core code. Given the intrusive nature of the changes, there is far too much danger connected with replacing the current ROS system so many people rely on. ROS should serve as a reminder of the same as it does today. As a result, ROS2 will be developed as a set of parallel packages that may be deployed alongside and interact with ROS.
The Architecture of ROS 2
ROS 2 is based on a distributed real-time system architecture. Sensors on robots, motion controllers, detection algorithms, artificial intelligence algorithms, and navigation algorithms are all components of this distributed architecture (referred to as nodes). DDS middleware, which was chosen for data interchange in ROS 2, enables these components to communicate in a distributed environment.
Instead of directly utilising the DDS middleware, ROS 2 provides its own abstraction layer on top of it. Thus, the user is abstracted from the specifics of the DDS middleware interface. The ROS 2 binary releases for currently supported distros include out-of-the-box compatibility for numerous RMW implementations (Fast DDS, RTI Connext Pro, Eclipse Cyclone DDS). Since Galactic, the default is Cyclone DDS, which runs automatically as part of our binary packages. Prior to Galactic, the default was Fast DDS. Apart from that, several DDS products support rmw. The user can use any DDS library they choose, and thanks to network-level compatibility, many DDS libraries can be used in the same project.
Design goals for ROS 2 compared to ROS 1
- Support for multiple robot systems: ROS 2 adds support for multiple robot systems and improves the network performance of multi-robot communication. The ROS community will see an increase in multi-robot systems and applications.
- Bridging the gap between prototypes and products: ROS 2 is not only concerned with scientific research but also with the transition of robots from research to application, enabling more robots to carry ROS 2 systems directly to the market.
- Support for embedded microcontrollers: ROS 2 is compatible with existing X86 and ARM platforms and with embedded microcontrollers such as MCUs (ARM-M4, M7 cores).
- Support for real-time control: ROS 2 has support for real-time control, which can increase control timeliness and overall robot performance.
- Multi-platform support: ROS 2 not only operates on Linux computers but also on Windows, macOS, RTOS, and other platforms, providing developers with additional options.
ROS 2 and Its Application in Projects
ROS 2 has garnered considerable attention in recent years, particularly from creators of autonomous vehicles. These companies have begun developing prototypes using ROS 2, which provides numerous infrastructures for their design systems. Apex.ai has released a ROS 2 distribution that is functionally safe and ISO 26262 certified. Additionally, businesses have begun developing ROS 2 libraries that may be utilised in safety-critical projects, together with the associated tests and documentation.