What is ROS(Robot Operating System)?
ROS is open source tool, not OS.
This allowed people to share their work in robotics.
If you want to only focus on certain area such as control, you can use other's ROS package to implement robot.
For example, camera driver and filter package can deliver you /image topic for your AI project or traditional line detection algorithm.
After ROS is invented, robot industry got developed explosively.
ROS1 VS ROS2
ROS1 communicated through their own 'TCPROS' birth from community.
So mostly it's only used in academic area.
Unlike ROS1, ROS2 communicates through the DDS RTPS protocol standardized by OMG.
It's allowing ROS using robots to be industrialized with reliability.
Real Time Public Subscription (RTPS) is supported. One of the DDS vendor named eprosiam providing fast-rtps on HERE.
Experts are saying it will be hard to apply real-time on upper layer and just give its task to embedded system, but still on work.
ROS2 network security is now ensured based on DDS by default now.
DDS has 22 QoS types and ROS2 uses 6 options like below.
QoS Parameter from DDS
Parameter | Description |
---|---|
History | Select length of queue. (KEEP_LAST/ KEEP_ALL) |
Reliability | Select using ACK/NACK signal for reliability. (BEST_EFFORT/ RELIABLE) |
Durability | Select removing history of sent data before subscriber created. (TRANSIENT_LOCAL/ VOLATILE) |
Deadline | Get noticed from the latency delay and run EventCallback. (deadline_duration = num) |
Lifespan | Remove data only received in time. (lifespan_duration = num) |
Liveliness | Check that the node is alive like 'handshake'. (liveliness/ lease_duration = num) |
Note: In parameters like `xxx = num`, the num refers to a numerical value in the specified unit (seconds, milliseconds, etc.)
RMW QoS Profile
ROS2's RMW QoS profiles make it easy to configure and apply various settings for QoS. The most frequently used QoS settings in ROS2 are grouped under the RMW QoS Profile. These profiles can be divided into six categories: Reliability, History, Depth (History Depth), and Durability, as shown below.
Profile | Default | Sensor Data | Service | Action Status | Parameters | Parameter Events |
---|---|---|---|---|---|---|
Reliability | RELIABLE | BEST_EFFORT | RELIABLE | RELIABLE | RELIABLE | RELIABLE |
History | KEEP_LAST | KEEP_LAST | KEEP_LAST | KEEP_LAST | KEEP_LAST | KEEP_LAST |
Depth (History Depth) | 10 | 5 | 10 | 1 | 1,000 | 1,000 |
Durability | VOLATILE | VOLATILE | VOLATILE | TRANSIENT LOCAL | VOLATILE | VOLATILE |