Anleitung zum einfachen Einstieg in ROS2: Unterschied zwischen den Versionen
Zeile 68: | Zeile 68: | ||
== Weblinks == | == Weblinks == | ||
=== Verwendete Software | <div class="toccolours mw-collapsible mw-collapsed"> | ||
=== Verwendete Software === | |||
<div class="mw-collapsible-content"> | |||
*https://www.virtualbox.org/ | *https://www.virtualbox.org/ | ||
*https://docs.ros.org/ ROS2 | *https://docs.ros.org/ ROS2 | ||
Zeile 75: | Zeile 77: | ||
*https://ubuntu.com/ | *https://ubuntu.com/ | ||
*https://rapidsvn.org/ | *https://rapidsvn.org/ | ||
*https://code.visualstudio.com/ | *https://code.visualstudio.com/</div> | ||
</div> | |||
=== ROS2 | <div class="toccolours mw-collapsible mw-collapsed"> | ||
=== ROS2 === | |||
<div class="mw-collapsible-content"> | |||
*https://docs.ros.org/en/foxy/index.html | *https://docs.ros.org/en/foxy/index.html | ||
*https://docs.ros.org/en/galactic/index.html | *https://docs.ros.org/en/galactic/index.html | ||
*https://docs.ros.org/en/humble/index.html | *https://docs.ros.org/en/humble/index.html | ||
*https://www.theconstructsim.com/ | *https://www.theconstructsim.com/ | ||
*http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment | *http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment</div> | ||
</div> | |||
=== SVN | <div class="toccolours mw-collapsible mw-collapsed"> | ||
=== SVN === | |||
<div class="mw-collapsible-content"> | |||
*https://rapidsvn.org/ | *https://rapidsvn.org/ | ||
*https://tortoisesvn.net/ | *https://tortoisesvn.net/</div> | ||
</div> | |||
=== WeBots | <div class="toccolours mw-collapsible mw-collapsed"> | ||
=== WeBots === | |||
<div class="mw-collapsible-content"> | |||
*https://cyberbotics.com/doc/reference/webots-world-files | *https://cyberbotics.com/doc/reference/webots-world-files | ||
*https://docs.ros.org/en/foxy/Tutorials/Advanced/Simulators/Webots.html | *https://docs.ros.org/en/foxy/Tutorials/Advanced/Simulators/Webots.html | ||
*https://cyberbotics.com/doc/guide/tutorials | *https://cyberbotics.com/doc/guide/tutorials</div> | ||
</div> | |||
=== Der Umgang mit ROS2 | <div class="toccolours mw-collapsible mw-collapsed"> | ||
=== Der Umgang mit ROS2 === | |||
<div class="mw-collapsible-content"> | |||
*https://code.visualstudio.com/ | *https://code.visualstudio.com/ | ||
*http://wiki.ros.org/catkin/package.xml | *http://wiki.ros.org/catkin/package.xml | ||
*https://roboticscasual.com/tutorial-ros2-launch-files-all-you-need-to-know/ | *https://roboticscasual.com/tutorial-ros2-launch-files-all-you-need-to-know/ | ||
*https://docs.ros.org/en/foxy/Tutorials/Intermediate/Launch/Creating-Launch-Files.html | *https://docs.ros.org/en/foxy/Tutorials/Intermediate/Launch/Creating-Launch-Files.html</div> | ||
</div> | |||
=== Steuerung des FTF in der Simulation | <div class="toccolours mw-collapsible mw-collapsed"> | ||
*https://github.com/ros-teleop/teleop_twist_keyboard | === Steuerung des FTF in der Simulation === | ||
<div class="mw-collapsible-content"> | |||
*https://github.com/ros-teleop/teleop_twist_keyboard</div> | |||
</div> | |||
=== Knoten, Nachrichten und Beziehungen | <div class="toccolours mw-collapsible mw-collapsed"> | ||
=== Knoten, Nachrichten und Beziehungen === | |||
<div class="mw-collapsible-content"> | |||
*https://en.wikipedia.org/wiki/Monte_Carlo_localization | *https://en.wikipedia.org/wiki/Monte_Carlo_localization | ||
*http://wiki.ros.org/rviz | *http://wiki.ros.org/rviz | ||
Zeile 109: | Zeile 129: | ||
*http://wiki.ros.org/roswtf/Plugins | *http://wiki.ros.org/roswtf/Plugins | ||
*https://pypi.org/ | *https://pypi.org/ | ||
*https://pypi.org/project/pip/ | *https://pypi.org/project/pip/</div> | ||
</div> | |||
== Literatur == | == Literatur == |
Version vom 2. Februar 2023, 23:55 Uhr
Autor: Marius Küpper
Art: Projektarbeit
Dauer: April - September 2022
Betreuer: Prof. Schneider
Thema
Das Unternehmen Hanning Elektro-Werke GmbH & Co. KG hat der Hochschule Hamm-Lippstadt ein Fahrerloses Transportfahrzeug (FTF), sowie eine Simulation von diesem zu Forschungszwecken zur Verfügung gestellt. Diese Projektarbeit soll als Anleitung dienen die Simulation in Betrieb zu nehmen und auf dem Weg dahin das verwendete Robot Operating System 2 (ROS2) zu vermitteln. Es wird unter anderem erklärt, wie Sie dazu eine virtuelle Maschine (VM) nutzen können, das Linux-Betriebssystem installieren, an das benötigte Repository kommen, ROS2 und alle anderen benötigten Programme und Pakete installieren, die Simulation des FTF starten und sich darin zurechtfinden und arbeiten können.
Aufgabenstellung
- Einarbeitung in ROS 2 mit Tutorials
- Dokumentation der wesentlichen Anleitungen bezogen auf das FTF im HSHL Wiki
- Evaluation durch andere(n) Studierende
- Optimierung des Artikels
- optional: Bereitstellung von Demoprogrammen zum einfachen Einstieg
Anforderungen an die Projektarbeit
- Wissenschaftliche Vorgehensweise (Projektplan, etc.), nützlicher Artikel: Gantt Diagramm erstellen
- Zweiwöchentlicher Fortschrittsberichte (informativ)
- Projektvorstellung im Wiki
- Studentische Arbeiten bei Prof. Schneider
- Anforderungen an eine wissenschaftlich Arbeit
- Regeln zum Umgang mit SVN
Anforderungen
Hardwareanforderungen
- Prozessor: aktuellere AMD- oder Intel-Prozessoren sind ausreichend.
- Arbeitsspeicher: 8 GB Minimum, aber je mehr, desto besser.
- Festplattenspeicherplatz: Für die Installation werden nur etwa 30 MB benötigt. Für das Gastbetriebssystem wird allerdings deutlich mehr Speicherplatz benötigt. Sie sollten mindestens 20 GB einplanen.
- Prozessor: Aktuellere AMD- oder Intel-Prozessoren sind ausreichend. Eine CPU mit vier Kernen wird empfohlen.
- Grafikkarte/ -chip: Eine NVIDIA oder AMD OpenGL-fähige (Minimum Version 3.3) Grafikkarte mit mindestens 512 MB Grafikspeicher ist erforderlich.
Softwareanforderungen
Installation der virtuellen Maschine VirtualBox
ROS2 in Ubuntu einbinden
SVN-Repository in Linux erstellen
Inbetriebnahme unserer WeBots-Simulation
Der Umgang mit ROS2
Steuerung des FTF in der Simulation
Knoten, Nachrichten und Beziehungen
Zusammenfassung
Im Rahmen der Projektarbeit werden alle notwendigen Anforderungen aufgezeigt und schrittweise erläutert. Die virtuelle Maschine VirtualBox, welche sich aufgrund ihrer vielen Features und Einstellmöglichkeiten sehr gut zur Benutzung eignet, wird vorgestellt und die Installation und Einrichtung gezeigt. Um die Simulation von Hanning in Betrieb zu nehmen, wird die Installation von ROS2 erklärt und vorgestellt, wie ein Workspace mit den benötigten Dateien aus SVN aufgebaut wird. Anhand der bereitgestellten Simulation von Hanning wird gezeigt, welche Möglichkeiten zur Steuerung des FTF zur Verfügung stehen. Durch die Steuerung mit SLAM wird das Thema Navigation aufgegriffen und erläutert. Zum Schluss werden Tools (RQt, RViz, roswtf) zur Anschauung von Knoten, Themen und Abhängigkeiten, sowie zum Debugging aufgezeigt und erklärt.
Lessons Learned
- Die Verwendung einer VM hat sich als großer Vorteil herausgestellt, da man Abbilder des Betriebssystems erstellen kann und die Integrität der Simulation durch Veränderungen von Softwareversionen nicht gefährdet.
- Der Installationsvorgang bis zum Starten der Simulation kann mit einer VM umgangen werden, indem ein Abbild einer funktionsfähigen VM erstellt und zur Verfügung gestellt wird.
- Die Verwendung von Docker, um ein Systemabbild zu erstellen, hat sich als kompliziert herausgestellt, da gewisse Container auf dem Dockerhub gar nicht, oder nicht als kompatible Version vorhanden sind.
- Als Neueinsteiger ins Thema ROS2 und geringen Kenntnissen in Python, sowie dem Betriebssystem Linux empfiehlt sich zunächst der Umgang mit den Grundlagen, bevor man sich an eine komplexe Simulation, wie die von Hanning, begibt.
Ausblick
- Das Thema "Docker" könnte vom Umfang und Komplexität als eigenständiges Projekt bearbeitet werden, mit dem Ziel eine dauerhaft lauffähige Simulation als "Abbild" (ohne VM) für spätere Studierende zu ermöglichen.
Projektunterlagen
Weblinks
Verwendete Software
ROS2
WeBots
Der Umgang mit ROS2
Steuerung des FTF in der Simulation
Knoten, Nachrichten und Beziehungen
Literatur
→ zurück zum Hauptartikel: Studentische Arbeiten