0% found this document useful (0 votes)
38 views19 pages

ROSWorld2021-Tune The System For Real-time-Andrei

Uploaded by

haodomybest
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views19 pages

ROSWorld2021-Tune The System For Real-time-Andrei

Uploaded by

haodomybest
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

Te c h n o l o g y O f f i c e

Tune the (ROS 2) system for real-time


Andrei Kholodnyi, ROS 2 Real-time working group

2 0 2 1 W I N D R I V E R , A L L R I G H T S R E S E R V E D
Who we are (https://github.com/ros-realtime/community)

• ROS 2 real-time Working Group (RTWG):


• one of the working groups under the ROS 2 Technical Steering Committee
(TSC) umbrella
• Company list:
• Apex.AI
• Bosch
• Open Robotics
• Wind River
• and other contributors
What are we doing

• ROS 2 real-time WG Goals


• Provide a reference ROS2 real-time
system
• Provide guidelines
• Create benchmarks and test the
system
• Improve ROS2 real-time behavior
• Provide a collection of the useful
ROS 2 real-time resources
ROS 2 System

Apps

ROS 2

DDS

Operating System

Hardware
ROS 2 System

reference-system

performance_test
Apps

documentation
ROS 2

Ubuntu Linux ros_tracing


DDS

QNX Operating System rt_kernel

VxWorks Hardware Raspberry PI 4

Intel x86_64
What is a real-time

• Real-time system must guarantee response within specified time constraints,


often referred to as "deadlines“
• Hardware and software pieces make up the entire real-time system
• The key component that is needed to build a real-time system is a Real-Time
Operating System (RTOS)

https://www.indiamart.com/proddetail/heart-lung-machine-stockert-machine-20156402955.html
A reference_system run with and without RT config + stress
Operating systems taxonomy

General OS Soft real-time OS Hard real-time OS

variable time boundaries for tasks Tight time boundaries for tasks

May exceed the deadline Stay within the deadline

100s ms 10s ms 1s ms
When do you need a real-time?
• Building a real-time system can be a good idea if you need to make
sure that certain parts of your program run in a certain amount of time
• If you are working on a mission-critical or safety-related project, then
the need for building a real-time system is must.
• You can find real-time components in the safety-critical system
ROS 2 System
• Raspberry Pi 4 reference system (community, hobbyists)
• Intel x86_64 (a generic PC)
• Production HW – automotive (AVP), industrial (robot)

Apps

ROS2

DDS

Operating System Intel x86_64

Hardware Raspberry PI 4
ROS 2 System
• RT_PREEMPT kernel for Ubuntu 20.04 – Tier 1 platform
• A ready-to-use RT kernel for Raspberry PI4 available here

Apps

ROS2
Ubuntu raspi Ubuntu raspi
ROS 2 RT Linux DDS
RT_PREEMPT patch ROS 2 RT kernel
Operating System
ROS 2 RT config
Hardware
ROS 2 System
• There are different DDS vendors, we test them using a reference_system
, performance_test
• Tune DDS is a vendor specific, we need an individual support (call for
action)
• https://real-time-working-group.readthedocs.io/en/rolling/Guides/guides.html

Apps

CycloneDDS ROS2

Fast DDS DDS

Connext DDS Operating System

Iceoryx Hardware
ROS 2 System

• ROS2 Executors to improve a real-time behavior, ros_tracing, LTT-NG


Single threaded

Multi threaded

Callback groups Apps


Event
ROS2
PiCAS
DDS
RCLC
Operating System
Lock-free
Hardware
with wait-set
ROS 2 System
• https://github.com/ros-realtime/reference-system#setup-raspberry-pi-4-for
-the-test

• constant CPU frequency


• CPU isolation
• assign RT priorities to threads
• real-time coding guidelines Apps

ROS2

DDS

Operating System

Hardware
ROS 2 real-time tests
• reference_system, performance_test, pendulum_control

Apps

ROS2

Tests
DDS

Operating System

Hardware
Roadmap

• x86_64 support
• Buildfarm (generate ready-to-use ISO images)
• Create a HW test farm
• Some new tooling?
• Help with Executors performance (reference system evolution)
Conclusion

• Real-time ROS 2 depends on layers below (HW, OS, DDS) and layers
above (Application).
• Join us and contribute:
https://github.com/ros-realtime/community#how-to-contribute
• Please use it, and provide a feedback
References

• https://real-time-working-group.readthedocs.io/en/rolling/

• https://github.com/ros-realtime
• https://github.com/ros-realtime/reference-system
• https://github.com/ros-realtime/rt-kernel-docker-builder

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy