89 lines
7.3 KiB
TeX

\acswitchoff
\babel@toc {ngerman}{}\relax
\contentsline {chapter}{\numberline {1}Einleitung}{1}{chapter.1}%
\contentsline {section}{\numberline {1.1}Motivation}{1}{section.1.1}%
\contentsline {section}{\numberline {1.2}Stand der Wissenschaft}{1}{section.1.2}%
\contentsline {section}{\numberline {1.3}Welche Szenarien}{2}{section.1.3}%
\contentsline {section}{\numberline {1.4}Welcher Nutzen / Contributions}{3}{section.1.4}%
\contentsline {chapter}{\numberline {2}Konzept}{4}{chapter.2}%
\contentsline {section}{\numberline {2.1}Simulation des Roboters}{4}{section.2.1}%
\contentsline {section}{\numberline {2.2}Simulation des Menschen}{5}{section.2.2}%
\contentsline {section}{\numberline {2.3}Behavior Trees als Beschreibungssprache}{5}{section.2.3}%
\contentsline {section}{\numberline {2.4}Virtualisierungsumgebung als Platform}{7}{section.2.4}%
\contentsline {chapter}{\numberline {3}Komponenten-/Softwareauswahl}{9}{chapter.3}%
\contentsline {section}{\numberline {3.1}Dienstumgebung}{9}{section.3.1}%
\contentsline {subsection}{\numberline {3.1.1}Auswahl}{9}{subsection.3.1.1}%
\contentsline {subsection}{\numberline {3.1.2}Beschreibung}{10}{subsection.3.1.2}%
\contentsline {section}{\numberline {3.2}Simulationsumgebung (Gazebo)}{12}{section.3.2}%
\contentsline {subsection}{\numberline {3.2.1}Auswahl}{12}{subsection.3.2.1}%
\contentsline {subsection}{\numberline {3.2.2}Welt- und Modellbeschreibung}{14}{subsection.3.2.2}%
\contentsline {subsection}{\numberline {3.2.3}Robotersimulation}{15}{subsection.3.2.3}%
\contentsline {subsection}{\numberline {3.2.4}Menschensimulation}{16}{subsection.3.2.4}%
\contentsline {section}{\numberline {3.3}Roboterumgebung}{16}{section.3.3}%
\contentsline {section}{\numberline {3.4}Programmiersprache}{18}{section.3.4}%
\contentsline {section}{\numberline {3.5}Behavior Trees}{19}{section.3.5}%
\contentsline {subsection}{\numberline {3.5.1}Asynchrone Nodes}{20}{subsection.3.5.1}%
\contentsline {subsection}{\numberline {3.5.2}Dateiformat}{21}{subsection.3.5.2}%
\contentsline {section}{\numberline {3.6}Docker-Compose als Virtualisierungsumgebung}{22}{section.3.6}%
\contentsline {chapter}{\numberline {4}Umsetzung}{24}{chapter.4}%
\contentsline {section}{\numberline {4.1}Docker-Compose}{25}{section.4.1}%
\contentsline {section}{\numberline {4.2}Entwicklungsumgebung}{26}{section.4.2}%
\contentsline {section}{\numberline {4.3}Verwendete Datentypen}{27}{section.4.3}%
\contentsline {section}{\numberline {4.4}Simulationswelt}{29}{section.4.4}%
\contentsline {section}{\numberline {4.5}Mensch}{31}{section.4.5}%
\contentsline {subsection}{\numberline {4.5.1}Übersicht}{31}{subsection.4.5.1}%
\contentsline {subsection}{\numberline {4.5.2}Modellierung}{31}{subsection.4.5.2}%
\contentsline {subsection}{\numberline {4.5.3}Export der Modellanimationen}{34}{subsection.4.5.3}%
\contentsline {subsection}{\numberline {4.5.4}Programmierung}{36}{subsection.4.5.4}%
\contentsline {subsubsection}{\nonumberline Message Queue}{36}{subsubsection*.15}%
\contentsline {subsubsection}{\nonumberline ROS-Nachrichten}{38}{subsubsection*.17}%
\contentsline {subsubsection}{\nonumberline ActorPlugin}{39}{subsubsection*.19}%
\contentsline {subsubsection}{\nonumberline ActorServer}{42}{subsubsection*.22}%
\contentsline {section}{\numberline {4.6}Roboter}{43}{section.4.6}%
\contentsline {subsection}{\numberline {4.6.1}Übersicht}{43}{subsection.4.6.1}%
\contentsline {subsection}{\numberline {4.6.2}Modellierung}{43}{subsection.4.6.2}%
\contentsline {subsection}{\numberline {4.6.3}MoveIt 2 Konfiguration}{45}{subsection.4.6.3}%
\contentsline {subsection}{\numberline {4.6.4}Integration mit Gazebo}{46}{subsection.4.6.4}%
\contentsline {section}{\numberline {4.7}Behavior Trees}{46}{section.4.7}%
\contentsline {subsubsection}{\nonumberline Allgemein nutzbare Nodes}{46}{subsubsection*.26}%
\contentsline {subsubsection}{\nonumberline Menschenspezifisch}{47}{subsubsection*.28}%
\contentsline {subsubsection}{\nonumberline Roboterspezifisch}{48}{subsubsection*.30}%
\contentsline {subsection}{\numberline {4.7.1}Subtrees}{48}{subsection.4.7.1}%
\contentsline {subsection}{\numberline {4.7.2}Verhalten des Roboters}{48}{subsection.4.7.2}%
\contentsline {subsection}{\numberline {4.7.3}Verhalten des Menschen}{48}{subsection.4.7.3}%
\contentsline {chapter}{\numberline {5}Szenarienbasierte Evaluation}{49}{chapter.5}%
\contentsline {section}{\numberline {5.1}Simulation des Menschen}{49}{section.5.1}%
\contentsline {section}{\numberline {5.2}Bewegung des Roboters}{49}{section.5.2}%
\contentsline {section}{\numberline {5.3}BehaviorTrees}{49}{section.5.3}%
\contentsline {subsection}{\numberline {5.3.1}Nodes}{49}{subsection.5.3.1}%
\contentsline {subsection}{\numberline {5.3.2}Kombinieren von Nodes zu einer Request}{49}{subsection.5.3.2}%
\contentsline {chapter}{\numberline {6}Diskussion}{50}{chapter.6}%
\contentsline {section}{\numberline {6.1}Lessons Learned bei der Umsetzung}{50}{section.6.1}%
\contentsline {subsection}{\numberline {6.1.1}Erstellung des Robotermodells}{50}{subsection.6.1.1}%
\contentsline {subsection}{\numberline {6.1.2}Erweiterung des Robotermodells mit MoveIt}{50}{subsection.6.1.2}%
\contentsline {subsection}{\numberline {6.1.3}Gazebo}{50}{subsection.6.1.3}%
\contentsline {subsubsection}{\nonumberline Upgrade auf Ignition}{50}{subsubsection*.32}%
\contentsline {subsubsection}{\nonumberline Pluginarchitektur}{51}{subsubsection*.34}%
\contentsline {subsubsection}{\nonumberline Fehlende Animationsgrundlagen}{52}{subsubsection*.36}%
\contentsline {subsection}{\numberline {6.1.4}ROS2}{52}{subsection.6.1.4}%
\contentsline {subsubsection}{\nonumberline Nachrichten und deren Echtzeitfähigkeit}{52}{subsubsection*.38}%
\contentsline {subsubsection}{\nonumberline Änderung der Compilertoolchain}{52}{subsubsection*.40}%
\contentsline {subsection}{\numberline {6.1.5}MoveIt2}{52}{subsection.6.1.5}%
\contentsline {subsubsection}{\nonumberline Upgrade auf MoveIt2}{52}{subsubsection*.42}%
\contentsline {subsubsection}{\nonumberline Fehlerhafte Generierung der Roboter}{53}{subsubsection*.44}%
\contentsline {subsubsection}{\nonumberline Controller}{53}{subsubsection*.46}%
\contentsline {section}{\numberline {6.2}Lessons Learned bei den Szenarien}{53}{section.6.2}%
\contentsline {subsection}{\numberline {6.2.1}Debugging}{53}{subsection.6.2.1}%
\contentsline {chapter}{\numberline {7}Zusammenfassung und Ausblick}{54}{chapter.7}%
\contentsline {section}{\numberline {7.1}Ergebnisse}{54}{section.7.1}%
\contentsline {subsection}{\numberline {7.1.1}Graphische Repräsentation der Szenarien}{54}{subsection.7.1.1}%
\contentsline {subsection}{\numberline {7.1.2}Anpassung der Behavior Trees an Szenarien}{54}{subsection.7.1.2}%
\contentsline {section}{\numberline {7.2}Diskussion}{54}{section.7.2}%
\contentsline {section}{\numberline {7.3}Ausblick}{54}{section.7.3}%
\contentsline {subsection}{\numberline {7.3.1}Umsetzung in anderem Simulator}{54}{subsection.7.3.1}%
\contentsline {subsection}{\numberline {7.3.2}Simulation bewegter Objekte}{54}{subsection.7.3.2}%
\contentsline {subsection}{\numberline {7.3.3}Ergänzung von Umgebungserkennung}{55}{subsection.7.3.3}%
\contentsline {subsection}{\numberline {7.3.4}Zusammenbringen von ActorPlugin und ActorServer}{55}{subsection.7.3.4}%
\contentsline {subsection}{\numberline {7.3.5}Separieren der Subtrees in eigene Dateien}{55}{subsection.7.3.5}%
\providecommand \tocbasic@end@toc@file {}\tocbasic@end@toc@file