Skip to content
snaens edited this page Dec 8, 2025 · 2 revisions

Basics

Was ist ROS

ROS ist nichts anderes als ein Kommunikator.
Beim Programmieren eines Systems, zb einen Roboter, hat man viele Subsysteme die irgendwie miteinander Kommunizieren müssen.
(z.b. Joystick Empfänger // Rad Steuerer, Kamera Leser // Kamera Anzeiger)

aufbau

Wie im Beispiel zu erkennen gibt es immer Sender und Empfänger.
Auf ROS übersetzt ist "Kommunizierender" Code ein Node, der Sender der Publisher und der Empfänger der Subscriber.
Publisher und Subscriber sprechen einander über Chatkanäle, den Topics an.

Diese Kanäle lassen sich mit ros2 topic list ausgeben, und mit ros2 topic echo <topic name aus list> abhören.

Die Chatkanäle haben jeweils einen Datentyp. z.B. sensor_msgs/msg/Joy für den Joystick

Topics haben aber Limitationen, daher hat ROS auch noch:
Services, die etwas ausführen und dann Feedback geben (zb der Enable der auf Knopfdruck die Räder aus-/einschaltet)

Lassen sich mit ros2 service list ausgeben

Parameter, die einfach ROS Variablen sind (zb welcher Knopf macht was am Joystick)

Lassen sich mit ros2 param list auflisten und mit ros2 param dump mit Werten ausgeben.

warum?

Man verwendet ROS weil man dadurch die unterlegene Übertragung quasi wegdenken kann.
Das macht das Programmieren wesentlich leichter.
ROS kann über allerlei Mitteln übertragen werden, wir verwenden halt WLAN und Ethernet (beides TCP/IP).
Zudem gibt es extrem viel bereits für ROS gebaute Software.
Damit müssen wir nicht selber erkämpfen wie man Kameras oder den LiDAR ausliest.

Clone this wiki locally