Einstieg ROS 2
→ zurück zum Hauptartikel: Robotik und autonome Systeme
Autor: Gerrit Wurth
Einleitung
Im Forschungsgebiet Robotik und autonome Systeme wird mit dem Robot Operating System 2 (ROS 2) gearbeitet. Das Robot Operating System ist ein Framework und soll bei der Softwareentwicklung von Roboteranwendungen helfen. Bereits 2007 startete die Entwicklung am Stanford Artificial Intelligence Laboratory im Rahmen des Stanford-AI-Robot-Projektes. Seit 2009 wird die Software überwiegend am Robotikinstitut Willow Garage weiterentwickelt. Ab 2012 übernahm die gemeinnützige Organisation Open Source Robotics Foundation (OSRF) die Entwicklung.
ROS 2 Galactic Geochelone ist die aktuelle Version und bietet Softwarebibliotheken und Werkzeugen zur Entwicklung von Robotern und autonomen Systemen.
Für unsere vielfältigen Projekte hat ROS 2 einiges zu bieten:
- Gerätetreiber für viele Aktoren und Sensoren
- Algorithmen zur Navigation und Bahnsteuerung
- Leistungsstarke Entwicklertools
- Software für die Bildverarbeitung
- Algorithmen für die Simultane Positionsbestimmung und Kartierung (SLAM)
- Echtzeitfähigkeit
Installation
Installation Ubuntu 20.04 LTS
Wir empfehlen die Installation von ROS 2 Galactic Geochelone unter Ubuntu 20.04 LTS (Focal Fossa). Für die Installation von Ubuntu kann dieses Tutorial verwendet werden. Alternativ kann auch mit UNetbootin ein USB-Stick für das Starten und Installieren von Ubuntu erstellt werden.
Installation ROS 2 Galactic Geochelone
Auch für die Installation von ROS 2 Galactic Geochelone werden Tutorials bereitgestellt. Wir empfehlen Installing ROS 2 via Debian Packages. Die in der Anleitung aufgeführten Befehle werden nacheinander in die Kommandozeile kopiert und ausgeführt. Zum Öffnen eines Terminalfensters kann die Tastenkombination [Strg] + [Alt] + [T] verwendet werden. Sollten noch keine Erfahrungen mit der Shell oder Kommandozeile vorhanden sein empfehlen wir den Einstieg über diese Shell Einführung.
Tutorials
Für den schnellen einstieg in das Robot Operating System empfehlen wir diese Tutorials In dem ersten Teil Beginner: Command-Line Interface Tools wird unter anderem vermittelt, was Nodes, Topics, Services, Parameters und Actions sind und wofür sie verwendet werden. Im zweiten Teil Beginner: Client Libraries wird der erste eigene Workspace erstellt, erklärt was Packages sind und die ersten einfachen Programme erstellt. Hierbei besteht immer die Wahl zwischen C++ und Python als Programmiersprache. Für fortgeschrittene Anfänger ist der dritte Teil Intermediate, hier wird eine eigene Action erstellt, mehrere Nodes in einem Prozess zusammengeführt und das Unified Robot Description Format (URDF) vorgestellt. Wer noch tiefer einsteigen möchte kann im vierten Teil Advanced weitere Erfahrungen sammeln. Danach werden noch Simulation Tutorials, Verschiedenes, weitere Demos und Beispiele angeboten.
Demo Fahrerloses Transport System
Von Stefan Arndt wurde in Kooperation mit der Firma Hanning Elektro-Werke GmbH & Co. KG eine Webots Simulation aufgebaut, diese wird hier als Demo vorgestellt. In der Demo wird ein Fahrerloses Transport System in einer virtuellen Umgebung navigiert. Hierbei wird von dem Roboter die Umgebung kartografiert und autonom ein Weg von der Start zur Ziel Position gesucht.
Voraussetzungen
- ROS 2 Galactic Geochelone wurde erfolgreich installiert
- Die Tutorials wurden bis einschließlich Beginner: Client Libraries durchgeführt
- Ein eigener Workspace wurde erstellt
- Webots wurde installiert
Pakete herunterladen und installieren
Die Demo ist im SVN-Ordner zu finden und wird in den src-Ordner des Workspaces kopiert. Danach werden im Workspace die Pakete aufgebaut:
- Go into the root of your workspace:
~$ cd ~/FTS_ws
- In the root of your workspace, build your packages:
~$ colcon build
Starten der Demo
- Source ROS2 Environment as your underlay:
~$ source /opt/ros/galactic/setup.bash
- Go into the root of your workspace:
~$ cd ~/FTS_ws
- In the root, source your overlay:
~$ . install/local_setup.bash
- Start Webots and RViz with Hanning FTS
~$ ros2 launch hewagv_simulation full_system_launch.py