Table of Contents
Motivation
Wenn du in Humble von den Vorteilen von CycloneDDS profitieren möchtest, zeige ich dir hier den Umstieg.
Was ist eine Middleware?
Eine Middleware ist eine Software-Schicht, die es Programmen ermöglicht, Daten auszutauschen, ohne direkt betriebssystem-spezifische
Funktionen nutzen zu müssen.
Was ist DDS
Data Distribution Service (DDS) ist ein Standard der Object Management Group und wurde 2004 mit der Version 1.0 veröffentlicht.
Mit ROS 2 wurde eine Middleware-Abstraktionsschicht eingeführt, die standardmäßig DDS nutzt, um Skalierbarkeit, Fehlertoleranz und Echtzeitfähigkeit zu verbessern.
FastDDS vs Cyclone DDS
Fast DDS (rmw_fastrtps_cpp) ist ab Foxy Fitzroy (2020) die standardmäßig verwendete Middleware (RMW)-Implementierung in ROS 2, was bedeutet, dass es automatisch in jeder ROS 2 Distribution (LTS und Non-LTS) enthalten ist. Die ROS-2-Community empfiehlt aber den Einsatz von Cyclone DDS aus folgenden Gründen:
- Weniger Discovery-Bugs
- Weniger „mysteriöse“ Kommunikationsprobleme
- Besseres Verhalten bei:
- vielen Nodes
- wechselnden Netzwerken
- Simulation + Hardware parallel
Sehr gutes Verhalten auf:
- Embedded
- ARM
- Realtime-Systemen
Installation CycloneDDS
sudo apt install ros-<ros_distro>-rmw-cyclonedds-cpp
Für Humble:
sudo apt install ros-humble-rmw-cyclonedds-cpp
Wechseln kannst du über die Umgebungsvariable, die Du am besten direkt in deine bashrc hinzufügst:
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
Installation testen
In Terminal 1 startest Du einen Demo-Node:
ros2 run demo_nodes_cpp talker
In Terminal 2 rufst du den ROS-Doktor:
ros2 doctor --report
Jetzt solltest Du folgenden Output sehen:
RMW MIDDLEWARE
middleware name : rmw_cyclonedds_cpp
Quellcode
https://github.com/eclipse-cyclonedds/cyclonedds
Weiterlesen
https://design.ros2.org/articles/ros_middleware_interface.html







