-
Notifications
You must be signed in to change notification settings - Fork 0
Basics
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)
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 listausgeben, und mitros2 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 listausgeben
Parameter, die einfach ROS Variablen sind (zb welcher Knopf macht was am Joystick)
Lassen sich mit
ros2 param listauflisten und mitros2 param dumpmit Werten ausgeben.
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.