Why ROS-2?

ROS-2 is designed to work similarly to ROS-1, keeping in mind the robotics community. It is standalone and is not a part of ROS-1. It does, however, interpolate and work alongside ROS-1 packages. ROS-2 is being developed to overcome the challenges faced by ROS-1 by using modern dependencies and tools. Unlike ROS-1, whose feature stack was written in C++, and the client libraries were written in C++ and Python (where Python was built using a ground-up approach and was written based on C++ libraries), the components in ROS-2 are written in the C language. There is a separate layer written in C that connects to ROS-2 client libraries such as rclcpprclpy, and rcljava.

ROS-2 has better support for various network configurations and provides reliable communication. ROS-2 also eliminates the concept of nodelets (http://wiki.ros.org/nodelet) and supports multi-node initialization. Unlike ROS-1, a couple of pretty interesting features in ROS-2 are the heartbeat detection of a node through a state machine cycle and notifications when nodes and topics are added or removed. These could help design fault-tolerant systems. Also, ROS-2 is soon expected to support different platforms and architectures.

Now that we've understood how ROS-2 sets itself apart from ROS-1, let's look at its fundamentals for a detailed explanation.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.171.20