59 lines
4.1 KiB
TeX
59 lines
4.1 KiB
TeX
\chapter{Ausblick}
|
|
\section{Umsetzung in anderem Simulator}
|
|
Die Umsetzung des gleichen Problems in einem anderen Simulator bietet die Möglichkeit, weitere Simulationsplatformen zu testen und miteinander zu vergleichen.
|
|
Hierbei ist vor allem die Anbindung an ROS interessant, welche mit Gazebo mit nur einem Plugin gleichzeitig funktioniert.
|
|
|
|
Eine verbesserte Anbindung an ROS würde die schnellere Entwicklung von Komponenten und Szenarien erlauben.
|
|
Da diese für viele andere Simulatoren erst geschaffen werden muss, kann von Anfang an ein Fokus auf Erweiterbarkeit gelegt werden.
|
|
|
|
Je nach gewählter Umgebung ist es potentiell nötig, bestimmte Basisfunktionen neu zu implementieren, falls diese noch nicht unterstützt werden.
|
|
Moderne Gameengines sind für diesen Einsatzzweck geeignet, da diese viele Bestandteile einer Simulationsplatform bereits enthalten.
|
|
Außerdem ist die hohe Verfügbarkeit von Tutorials und Dokumentation für diese weitläufig eingesetzten Engines vorteilhaft.
|
|
|
|
Mitgelieferte Werkzeuge bekannter Engines wie Unity, Unreal Engine und Godot beinhalten ausgereifte Physik- und Animationssysteme.
|
|
Diese können für Roboterbewegungen und Menschensimulation verwendet werden.
|
|
\subsection{Simulation bewegter Objekte}
|
|
-Aufgrund von Komplexität des Prozesses nicht integriert
|
|
\subsection{Ergänzung von Umgebungserkennung}
|
|
-MoveIt hat Unterstützung
|
|
|
|
-Daten aus Gazebo extrahieren und in MoveIt einbinden
|
|
|
|
-Person in OctoMap\cite{octomap} erkennen
|
|
\section{Vereinigung von ActorPlugin und ActorServer}
|
|
-Mechanismus für Datenaustausch zwischen ROS und Gazebo überdenken/überarbeiten
|
|
|
|
-Geteilte ROS Instanz zwischen Plugins? Wie?
|
|
|
|
-Potentielle Integration von ROS als Messagedients in Gazebo
|
|
|
|
\section{Migration auf die neuste ROS-Version}
|
|
Die neuste ROS-Version bietet keine expliziten Vorteile der Umgebung selbst, jedoch sind in dieser mehr Pakete verfügbar.
|
|
In der für das Projekt genutzten Umgebung befinden sich mehrere Pakete, die so auf eine neuere Version gebracht werden könnten.
|
|
Jedoch ist der Aufwand einer Migration nur schwer abschätzbar.
|
|
Dies führte zu der Entscheidung, diesen Prozesses in dieser Arbeit nicht durchzuführen.
|
|
|
|
Ein Vorteil dieser Maßnahme ist die Möglichkeit, das Paket \code{gz_ros2_control} aus einer offiziellen Paketquelle zu beziehen.
|
|
Dieses Paket stellt das Gazebo-Plugin für den Roboter bereit und muss so nicht manuell auf dem neusten Stand gehalten werden.
|
|
|
|
\section{Verbesserung der Behavior Trees}
|
|
Eine weitere mögliche Verbesserung ist der Ausbau der Implementation der Behavior Trees.
|
|
|
|
Ein Update auf die neuste Version, die während der Entwicklung diese Projektes erschienen ist, würde die verbesserte Nutzung von asynchronen Nodes erlauben.
|
|
Die Integration von Pre- und Post-Conditions erlaubt die Ausführung von Events vor und nach dem Ausführen einer Node.
|
|
Weitere universelle Node-Parameter vereinfachen den Aufbau von Bäumen durch die Vereinfachung von Schleifen und Bedingungen.
|
|
|
|
Ein Nachteil der Migration wäre jedoch das Wegfallen einiger Funktionen des Editors, welcher in dieser Version unter einer neuen Lizenz vertrieben wird.
|
|
Die Analyse von Logdateien nach der Ausführung und die Überwachung von Bäumen zur Laufzeit sind ohne kostenpflichtige Lizenz nicht mehr möglich.
|
|
|
|
Eine weitere Alternative ist die Nutzung von MoveIt Studio, welches auch mit Behavior Trees arbeitet.
|
|
Die direkte Integration mit MoveIt vereinfacht die Anbindung an den Roboter, da wichtige Funktionen bereits implementiert sind.
|
|
Jedoch ist die Unterstützung für eigene Befehle nur schlecht dokumentiert.
|
|
Diese werden aber für die Steuerung des Menschen benötigt, was dieses Alternative nur für die Robotersteuerung attraktiv macht.
|
|
|
|
Die Anpassung der aktuellen Implementation für größere Projekte ist eine weitere Option.
|
|
Um die Übersichtlichkeit des Projekts zu erhöhen, werden häufig separate Module verwendet.
|
|
Diese können einzelne Funktionen bereitstellen, die separat von anderen Modulen agieren.
|
|
Alle Module müssen aktuell im Buildfile deklariert und mit in das Programm kompilliert werden.
|
|
Bei einer großen Anzahl an Modulen erschwert dieser Umstand die Übersicht über benötigte Module für spezifische Trees.
|