skip to content
Hankyu Kim's blog
A cartoon cactus looking at the 'Astro.build' logo

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.



A cartoon cactus looking at the 'Astro.build' logo

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