ROS2 uses DDS, in the wiki it says that DDS is "The Data Distribution Service (DDS) for real-time systems is an Object Management Group (OMG) machine-to-machine (sometimes called middleware or connectivity framework)"

The question is, how can a real-time system run within a general-purpose operating system (like ubuntu, windows, etc)? a real-time system is supposed to be predictable and to ensure that it should communicate directly with the hardware (i.e. hardware timers) instead of being handled, for example, with ubuntu


"Realtime" is a fairly vague term. What ROS is referring to is often termed "soft realtime" because it is able to calculate control actions as fast enough to keep up with the robot's physical motion. More often than not, this is actually good enough and certainly easier to achieve. Especially if watchdog timers are used appropriately, soft realtime systems can be very reliable.

What you are referring to, requiring strict guarantees on latency, would then be termed "hard realtime". At first it might seem this is necessary for robotic control but it really isn't. If the control is a little bit late the system doesn't suffer catastrophic failure; the performance is just a bit worse. For safety systems, though, hard realtime is often required.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.