Fundamentals of ROS-2

In ROS-1, the user code would connect to the ROS client libraries (such as rospy or roscpp) and they would communicate directly with other nodes from within the network, whereas in ROS-2, the ROS client libraries act like an abstraction layer and connect to another layer that communicates with the network using other nodes through DDS implementation. A simple comparison is shown here:

Comparison between ROS-1 and ROS-2

As you can see, in ROS-2, the communication with the OS layer and further down to the hardware layer is done through DDS implementation. The DDS component in the preceding diagram is vendor-specific and implemented by the vendors.

The abstract DDS layer component is connected via ROS-2 and helps the user connect their code through DDS implementation. This way, the user need not be explicitly aware of the DDS APIs as they come through ROS-2. Also, ROS-1 uses a custom transport protocol, as well as a custom central discovery mechanism, hence the usage of the master node. ROS-2, on the other hand, has the abstract DDS layer, through which serialization, transport, and discovery are being provided.

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

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