ROSWorld2021-Tune The System For Real-time-Andrei
ROSWorld2021-Tune The System For Real-time-Andrei
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)
Apps
ROS 2
DDS
Operating System
Hardware
ROS 2 System
reference-system
performance_test
Apps
documentation
ROS 2
Intel x86_64
What is a real-time
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
variable time boundaries for tasks Tight time boundaries for tasks
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
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
Iceoryx Hardware
ROS 2 System
Multi threaded
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