ROS2 is well-suited for a variety of applications, including navigation, security, embedded systems, real-time operations, safety-critical tasks, and robotic manipulation.
Data Distribution Service (DDS) for ROS2
(1) An industry-standard communication system, a networking middleware
(2) Data-Centric Publish-Subscribe (DCPS) system
(3) Real-time machine-to-machine (middleware communication)
(4) Uses Real-Time Publish-Subscribe (RTPS) pattern for sending and receiving data, events, and commands among the nodes
(5) DDS allows the user to specify quality of service (QoS) parameters (QoS Profiles)
Data Distribution Service (DDS) Design Goals
(1) Scalability
(2) Real-time
(3) Dependability
(4) High performance
(5) Interoperable data exchange (discovery, serialization, transport)
ROS2 Discovery
(1) DDS replaces the ROS master discovery system
(2) DDS API provides information on node topics, services, etc
(3) Users are prevented from direct access to DDS (hidden behind ROS API)
(4) Fully distributed discovery process (no single point of failure, fault tolerance)
ROS2 Messages
(1) ROS2 maintains the same message definitions as in ROS1
(2) ROS1 *.msg files are converted into *.idl files to be used by DDS transport layer
(3) Experiments show that cost of message conversion is non-significant as compared to cost of serialization