spellcheck.

This commit is contained in:
yenon 2023-07-03 03:58:31 +02:00
parent 8a6b7455f9
commit 93ff4038e6
3 changed files with 96 additions and 93 deletions

View File

@ -89,7 +89,7 @@ h1.textidote {
<p>Here is the result of analyzing your file(s) with TeXtidote. Hover the mouse over highlighted portions of the document to read a tooltip that gives you some writing advice.</p>
<h2 class="filename">tex/4_Umsetzung.tex</h2>
<p>Found 376 warning(s)</p>
<p>Found 370 warning(s)</p>
<div class="original-file">
<div class="linenb">&nbsp;&nbsp;&nbsp;1</div><div class="codeline"><span class="highlight-sh" title="If a section has sub-sections, it should have more than one such sub-section. [sh:nsubdiv]"></span>\chapter{Umsetzung}</div><div class="clear"></div>
<div class="linenb">&nbsp;&nbsp;&nbsp;2</div><div class="codeline">&nbsp;</div><div class="clear"></div>
@ -596,7 +596,7 @@ h1.textidote {
<div class="linenb">&nbsp;503</div><div class="codeline">Das Plugin wird durch den Startvorgang und später von den empfangenen Nachrichten in folgende Zustände versetzt werden:</div><div class="clear"></div>
<div class="linenb">&nbsp;504</div><div class="codeline"><span class="keyword2">\begin{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Deskription, deskriptiv, deskriptive, deskriptiven, Inskription] (33259) [lt:de:GERMAN_SPELLER_RULE]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">&nbsp;505</div><div class="codeline"> <span class="keyword1">\item</span>[Setup]</div><div class="clear"></div>
<div class="linenb">&nbsp;506</div><div class="codeline"> wird ausschließlich zu Simulationsbeginn verwendet, um alle benötigten Referenzen aus der Simulationsumgebung im Plugin zu <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [hin erlegen, hinterlegen, Binärlegen, hinverlegen, hinlegen, widerlegen, Kinderlegen, hiergegen, herlegen, hinterlegten, hineinlegen, hinzulegen, Winterlegen, Eierlegen, Hinterlegen, Tierlegen, Minenlegen, Widerlegen, Bierlegen, Fingerlegen] (33405) [lt:de:GERMAN_SPELLER_RULE]">hinerlegen</span>, <span class="highlight" title="Empfehlung: Möchten Sie die Schreibweise 'sodass' verwenden?. Suggestions: [sodass] (33417) [lt:de:EMPFOHLENE_ZUSAMMENSCHREIBUNG]">so dass</span> diese in den anderen Zuständen genutzt werden können.</div><div class="clear"></div>
<div class="linenb">&nbsp;506</div><div class="codeline"> wird ausschließlich zu Simulationsbeginn verwendet, um alle benötigten Referenzen aus der Simulationsumgebung im Plugin zu hinterlegen, sodass diese in den anderen Zuständen genutzt werden können.</div><div class="clear"></div>
<div class="linenb">&nbsp;507</div><div class="codeline"> <span class="keyword1">\item</span>[Idle]</div><div class="clear"></div>
<div class="linenb">&nbsp;508</div><div class="codeline"> definiert den Zustand, der nach erfolgreicher Ausführung eines Befehls angenommen wird.</div><div class="clear"></div>
<div class="linenb">&nbsp;509</div><div class="codeline"> <span class="keyword1">\item</span>[Movement]</div><div class="clear"></div>
@ -890,8 +890,8 @@ h1.textidote {
<div class="linenb">&nbsp;797</div><div class="codeline">Dazu wird das letzte Ziel bis zu dessen Erreichen vorgehalten, um die Ausführung neu zu starten, falls eine Geschwindigkeitsänderung durchgeführt werden muss.</div><div class="clear"></div>
<div class="linenb">&nbsp;798</div><div class="codeline">Um die <span class="highlight" title="Möglicher Tippfehler gefunden. (54964) [lt:de:GERMAN_SPELLER_RULE]">RobotMove-Node</span> nicht zu unterbrechen, wird diese nur über einen Callback über den Erfolg oder Misserfolg der gesamten Bewegung und nicht über den Erfolg einzelner Teilbewegungen informiert.</div><div class="clear"></div>
<div class="linenb">&nbsp;799</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">&nbsp;800</div><div class="codeline">\<span class="highlight-sh" title="The first heading of a document should be the one with the highest level. For example, if a document contains sections, the first section cannot be preceded by a sub-section. [sh:secorder]">subsection</span>{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Separees, Subtiles, Subteen, Superbes, Séparées, Süperbes] (55155) [lt:de:GERMAN_SPELLER_RULE]"></span>Subtrees}</div><div class="clear"></div>
<div class="linenb">&nbsp;801</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [um] (55164) [lt:de:DE_CASE]">Um</span> die Wiederverwendung von bestimmten Abläufen zu erleichtern, wurden diese in <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Separees, Subtiles, Subteen, Superbes, Séparées, Süperbes] (55244) [lt:de:GERMAN_SPELLER_RULE]">Subtrees</span> ausgelagert.</div><div class="clear"></div>
<div class="linenb">&nbsp;800</div><div class="codeline">\<span class="highlight-sh" title="The first heading of a document should be the one with the highest level. For example, if a document contains sections, the first section cannot be preceded by a sub-section. [sh:secorder]">subsection</span>{Subtrees}</div><div class="clear"></div>
<div class="linenb">&nbsp;801</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [um] (55164) [lt:de:DE_CASE]">Um</span> die Wiederverwendung von bestimmten Abläufen zu erleichtern, wurden diese in Subtrees ausgelagert.</div><div class="clear"></div>
<div class="linenb">&nbsp;802</div><div class="codeline">In diesem Fall wurden die Aktionen ``Arbeiten an der Werkbank'' und ``Ablegen eines Objekts im Lagerregal'' des Menschen ausgelagert, da diese in mehreren Fällen verwendet werden.</div><div class="clear"></div>
<div class="linenb">&nbsp;803</div><div class="codeline">Diese Abstraktion erhöht die Lesbarkeit der Bäume und vereinfacht die Verwendung gleicher Aktionen in mehreren Bäumen.</div><div class="clear"></div>
<div class="linenb">&nbsp;804</div><div class="codeline">&nbsp;</div><div class="clear"></div>
@ -1041,7 +1041,7 @@ h1.textidote {
<div class="linenb">&nbsp;948</div><div class="codeline">Im anderen Zweig wird mit einer Wahrscheinlichkeit von 5\% eine Bewegung in die Sicherheitszone ausgelöst.</div><div class="clear"></div>
<div class="linenb">&nbsp;949</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">&nbsp;950</div><div class="codeline">Der normale Arbeitsvorgang ist ein linearer Ablauf und wird von einer Sequence-Node repräsentiert.</div><div class="clear"></div>
<div class="linenb">&nbsp;951</div><div class="codeline">In dieser werden nacheinander die beiden <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Separees, Subtiles, Subteen, Superbes, Séparées, Süperbes] (62528) [lt:de:GERMAN_SPELLER_RULE]">Subtrees</span> ``<span class="highlight" title="Möglicher Tippfehler gefunden. (62539) [lt:de:GERMAN_SPELLER_RULE]">WorkOnBench</span>'' und ``<span class="highlight" title="Möglicher Tippfehler gefunden. (62559) [lt:de:GERMAN_SPELLER_RULE]">DepositToShelf</span>'' ausgeführt.</div><div class="clear"></div>
<div class="linenb">&nbsp;951</div><div class="codeline">In dieser werden nacheinander die beiden Subtrees ``<span class="highlight" title="Möglicher Tippfehler gefunden. (62539) [lt:de:GERMAN_SPELLER_RULE]">WorkOnBench</span>'' und ``<span class="highlight" title="Möglicher Tippfehler gefunden. (62559) [lt:de:GERMAN_SPELLER_RULE]">DepositToShelf</span>'' ausgeführt.</div><div class="clear"></div>
<div class="linenb">&nbsp;952</div><div class="codeline">Das Bewegen in die Sicherheitszone wird auch durch eine Sequence-Node erreicht.</div><div class="clear"></div>
<div class="linenb">&nbsp;953</div><div class="codeline">Diese enthält eine <span class="highlight" title="Möglicher Tippfehler gefunden. (62687) [lt:de:GERMAN_SPELLER_RULE]">GenerateXYPose-Node</span>, um ein Ziel in der Sicherheitszone auszuwählen und eine ActorMovement-Node, um die Bewegung auszulösen.</div><div class="clear"></div>
<div class="linenb">&nbsp;954</div><div class="codeline">Der Baum für diese Interaktion wird in Abbildung \ref{tree_actor_coex} dargestellt.</div><div class="clear"></div>
@ -1067,7 +1067,7 @@ h1.textidote {
<div class="linenb">&nbsp;974</div><div class="codeline">Dies erfolgt durch eine ActorMovement-Node, welche den Mensch zum rechten Tisch bewegt.</div><div class="clear"></div>
<div class="linenb">&nbsp;975</div><div class="codeline">Nach dieser werden zwei ActorAnimation-Nodes ausgeführt, welche die Animationen ``<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Standing, Titanding, ständig, Uranding, ständisch, Etatding, standen, Kranding, ständige, ständische, sandig, ständen, Branding, Standring, Standding, stündig] (63868) [lt:de:GERMAN_SPELLER_RULE]">standing</span>_<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [endend, erdend, textend, ächtend, ächzend, ächzten, ächztest, enthält, sechsten, Texten, enden, externe, echten, geltend, extern, wütend, existent, endende, ertönt, latent] (63877) [lt:de:GERMAN_SPELLER_RULE]">extend</span>_arm'' und ``<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Standing, Titanding, ständig, Uranding, ständisch, Etatding, standen, Kranding, ständige, ständische, sandig, ständen, Branding, Standring, Standding, stündig] (63896) [lt:de:GERMAN_SPELLER_RULE]">standing</span>_<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [beträgt, betraut, betrat, Betracht, erträgt, getraut, Extrakt, Tretakt, Tretrad, betraft, betragt, ertragt, getränt, getrackt] (63905) [lt:de:GERMAN_SPELLER_RULE]">retract</span>_arm'' durchführen.</div><div class="clear"></div>
<div class="linenb">&nbsp;976</div><div class="codeline">Dies simuliert den Griff auf den Tisch, um das Objekt aufzuheben.</div><div class="clear"></div>
<div class="linenb">&nbsp;977</div><div class="codeline">Um das Objekt im Schrank zu verstauen, wird der bereits definierte <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bürde, Subtile, Separee, Subteen, Soupiere, Subtype, Superbe, Séparée, Süperbe, Supreme, Zuparke, Zustrebe, Zutrete] (64065) [lt:de:GERMAN_SPELLER_RULE]">Subtree</span> ``<span class="highlight" title="Möglicher Tippfehler gefunden. (64075) [lt:de:GERMAN_SPELLER_RULE]">DepositToShelf</span>'' genutzt.</div><div class="clear"></div>
<div class="linenb">&nbsp;977</div><div class="codeline">Um das Objekt im Schrank zu verstauen, wird der bereits definierte Subtree ``<span class="highlight" title="Möglicher Tippfehler gefunden. (64075) [lt:de:GERMAN_SPELLER_RULE]">DepositToShelf</span>'' genutzt.</div><div class="clear"></div>
<div class="linenb">&nbsp;978</div><div class="codeline">Der Behavior Tree für die Kooperation des Menschen ist in Abbildung \ref{tree_actor_coop} dargestellt.</div><div class="clear"></div>
<div class="linenb">&nbsp;979</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">&nbsp;980</div><div class="codeline"><span class="keyword2">\begin{figure}</span></div><div class="clear"></div>
@ -1118,7 +1118,7 @@ h1.textidote {
</div>
<h2 class="filename">tex/3_Auswahl.tex</h2>
<p>Found 196 warning(s)</p>
<p>Found 180 warning(s)</p>
<div class="original-file">
<div class="linenb">&nbsp;&nbsp;1</div><div class="codeline">\<span class="highlight-sh" title="This section is very short (about 73 words). You should consider merging it with another section or make it longer. [sh:seclen]">chapter</span>{Komponenten-/Softwareauswahl}</div><div class="clear"></div>
<div class="linenb">&nbsp;&nbsp;2</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [die] (29) [lt:de:DE_CASE]">Die</span> Auswahl der verwendeten Softwarekomponenten beeinflusst den späteren Entwicklungsprozess nachhaltig.</div><div class="clear"></div>
@ -1254,40 +1254,40 @@ h1.textidote {
<div class="linenb">132</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">133</div><div class="codeline">\<span class="highlight-sh" title="Avoid stacked headings, i.e. consecutive headings without text in between. [sh:stacked]">subsection</span>{Auswahl}</div><div class="clear"></div>
<div class="linenb">134</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [als] (9970) [lt:de:DE_CASE]">Als</span> Simulationsumgebung eignen sich verschiedenen Programme, die sich hinsichtlich ihres Funktionsumfangs stark unterscheiden.</div><div class="clear"></div>
<div class="linenb">135</div><div class="codeline">Hierfür kommen beispielsweise dedizierte Werkzeuge zur Robotersimulation, aber auch universell einsetzbare <span class="highlight" title="Möglicher Tippfehler gefunden. (10204) [lt:de:GERMAN_SPELLER_RULE]">Gameengines</span> <span class="highlight" title="Empfehlung: Möchten Sie die Schreibweise 'infrage' verwenden?. Suggestions: [infrage] (10216) [lt:de:EMPFOHLENE_ZUSAMMENSCHREIBUNG]">in Frage</span>.</div><div class="clear"></div>
<div class="linenb">135</div><div class="codeline">Hierfür kommen beispielsweise dedizierte Werkzeuge zur Robotersimulation, aber auch universell einsetzbare <span class="highlight" title="Möglicher Tippfehler gefunden. (10204) [lt:de:GERMAN_SPELLER_RULE]">Gameengines</span> infrage.</div><div class="clear"></div>
<div class="linenb">136</div><div class="codeline">Ein Vergleich dieser Werkzeuge ist hierbei sinnvoll, da sich der gebotene Funktionsumfang der Softwares stark unterscheidet.</div><div class="clear"></div>
<div class="linenb">137</div><div class="codeline">Auch andere Aspekte, wie Lizenzen oder die schwer bewertbare Nutzerfreundlichkeit, sind hierbei zu betrachten.</div><div class="clear"></div>
<div class="linenb">138</div><div class="codeline">Eine Auswahl der als Simulationsumgebung <span class="highlight" title="Empfehlung: Möchten Sie die Schreibweise 'infrage' verwenden?. Suggestions: [infrage] (10503) [lt:de:EMPFOHLENE_ZUSAMMENSCHREIBUNG]">in Frage</span> kommenden Programme wird hier vorgestellt.</div><div class="clear"></div>
<div class="linenb">138</div><div class="codeline">Eine Auswahl der als Simulationsumgebung infrage kommenden Programme wird hier vorgestellt.</div><div class="clear"></div>
<div class="linenb">139</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">140</div><div class="codeline"><span class="highlight" title="Möglicher Tippfehler gefunden. (10556) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> \cite{coppelia}, früher auch <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [V-ERP, V-CEP, V-REM, V-EP, V-RDP] (10585) [lt:de:GERMAN_SPELLER_RULE]">V-REP</span> genannt, ist eine Robotersimulationsumgebung mit integriertem Editor und ROS-Unterstützung.</div><div class="clear"></div>
<div class="linenb">141</div><div class="codeline">Es unterstützt viele Sprachen (C/C++, Python, Java, Lua, Matlab oder <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Oktave, Oktaven, Aktive, Oktav, Schafe, Oktava, Sklave, Ozeane, Osthafen, Oktamer, Oktan, Oktant, Octavia, Oktavia] (10752) [lt:de:GERMAN_SPELLER_RULE]">Octave</span>) zur Entwicklung von Erweiterungen des Simulators.</div><div class="clear"></div>
<div class="linenb">140</div><div class="codeline"><span class="highlight" title="Möglicher Tippfehler gefunden. (10554) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> \cite{coppelia}, früher auch <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [V-ERP, V-CEP, V-REM, V-EP, V-RDP] (10583) [lt:de:GERMAN_SPELLER_RULE]">V-REP</span> genannt, ist eine Robotersimulationsumgebung mit integriertem Editor und ROS-Unterstützung.</div><div class="clear"></div>
<div class="linenb">141</div><div class="codeline">Es unterstützt viele Sprachen (C/C++, Python, Java, Lua, Matlab oder <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Oktave, Oktaven, Aktive, Oktav, Schafe, Oktava, Sklave, Ozeane, Osthafen, Oktamer, Oktan, Oktant, Octavia, Oktavia] (10750) [lt:de:GERMAN_SPELLER_RULE]">Octave</span>) zur Entwicklung von Erweiterungen des Simulators.</div><div class="clear"></div>
<div class="linenb">142</div><div class="codeline">Der Simulator selbst unterstützt menschliche Aktoren, diese können aber nur Animationen allein oder in Kombination mit einer Bewegung abspielen.</div><div class="clear"></div>
<div class="linenb">143</div><div class="codeline"><span class="highlight" title="Möglicher Tippfehler gefunden. (10955) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> existiert in 3 Versionen, die sich hinsichtlich Funktionsumfang und Lizenz unterscheiden.</div><div class="clear"></div>
<div class="linenb">143</div><div class="codeline"><span class="highlight" title="Möglicher Tippfehler gefunden. (10953) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> existiert in 3 Versionen, die sich hinsichtlich Funktionsumfang und Lizenz unterscheiden.</div><div class="clear"></div>
<div class="linenb">144</div><div class="codeline">Jedoch besitzt nur die professionelle Version Zugriff auf alle Funktionen und Verwendungsszenarien.</div><div class="clear"></div>
<div class="linenb">145</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">146</div><div class="codeline">Gazebo <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Munition, Kognition] (11165) [lt:de:GERMAN_SPELLER_RULE]">Ignition</span> \cite{gazebo} ist wie <span class="highlight" title="Möglicher Tippfehler gefunden. (11186) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> eine Robotersimulationsumgebung, besitzt aber keinen integrierten Editor und direkte ROS-Unterstützung.</div><div class="clear"></div>
<div class="linenb">147</div><div class="codeline">Gazebo setzt wie <span class="highlight" title="Möglicher Tippfehler gefunden. (11319) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> auf Erweiterungen, um zusätzliche Funktionen einbinden zu können.</div><div class="clear"></div>
<div class="linenb">146</div><div class="codeline">Gazebo <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Munition, Kognition] (11163) [lt:de:GERMAN_SPELLER_RULE]">Ignition</span> \cite{gazebo} ist wie <span class="highlight" title="Möglicher Tippfehler gefunden. (11184) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> eine Robotersimulationsumgebung, besitzt aber keinen integrierten Editor und direkte ROS-Unterstützung.</div><div class="clear"></div>
<div class="linenb">147</div><div class="codeline">Gazebo setzt wie <span class="highlight" title="Möglicher Tippfehler gefunden. (11317) [lt:de:GERMAN_SPELLER_RULE]">CoppeliaSim</span> auf Erweiterungen, um zusätzliche Funktionen einbinden zu können.</div><div class="clear"></div>
<div class="linenb">148</div><div class="codeline">So existiert zum Beispiel auch eine ROS-Brücke, die die Anbindung an ROS ermöglicht.</div><div class="clear"></div>
<div class="linenb">149</div><div class="codeline">Auch hier unterstützt der Simulator nur Animationen für menschliche Aktoren.</div><div class="clear"></div>
<div class="linenb">150</div><div class="codeline">Das Projekt ist Open Source, unter der <span class="highlight" title="Dieses Wort wird mit Bindestrich geschrieben.. Suggestions: [Apache-Lizenz] (11598) [lt:de:DE_COMPOUNDS]">Apache Lizenz</span> (Version 2.0), was die Verwendung in jeglichen Szenarien erleichtert.</div><div class="clear"></div>
<div class="linenb">150</div><div class="codeline">Das Projekt ist Open Source, unter der Apache-Lizenz (Version 2.0), was die Verwendung in jeglichen Szenarien erleichtert.</div><div class="clear"></div>
<div class="linenb">151</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">152</div><div class="codeline">Unity \cite{unity} hingegen ist primär eine <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Grafikengen] (11718) [lt:de:GERMAN_SPELLER_RULE]">Grafikengine</span> für die Nutzung in Computerspielen.</div><div class="clear"></div>
<div class="linenb">153</div><div class="codeline">Es existieren mehrere Systeme zur Anbindung der Engine an ROS, vor allem das offizielle ``<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Robotik, Roboters, Nobodys, Robotisch, Robots] (11857) [lt:de:GERMAN_SPELLER_RULE]">Robotics</span> Simulation''-Paket und <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Serösem, Kerosin, Dersim, Erosiv, Serös, Seröse, Serösen, Seröser, Seröses] (11889) [lt:de:GERMAN_SPELLER_RULE]">ZeroSim</span>.</div><div class="clear"></div>
<div class="linenb">154</div><div class="codeline">Beide Systeme erlauben die Erweiterung der <span class="highlight" title="Möglicher Tippfehler gefunden. (11941) [lt:de:GERMAN_SPELLER_RULE]">Gameengine</span> um die Simulation von Robotern.</div><div class="clear"></div>
<div class="linenb">152</div><div class="codeline">Unity \cite{unity} hingegen ist primär eine <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Grafikengen] (11716) [lt:de:GERMAN_SPELLER_RULE]">Grafikengine</span> für die Nutzung in Computerspielen.</div><div class="clear"></div>
<div class="linenb">153</div><div class="codeline">Es existieren mehrere Systeme zur Anbindung der Engine an ROS, vor allem das offizielle ``<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Robotik, Roboters, Nobodys, Robotisch, Robots] (11855) [lt:de:GERMAN_SPELLER_RULE]">Robotics</span> Simulation''-Paket und <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Serösem, Kerosin, Dersim, Erosiv, Serös, Seröse, Serösen, Seröser, Seröses] (11887) [lt:de:GERMAN_SPELLER_RULE]">ZeroSim</span>.</div><div class="clear"></div>
<div class="linenb">154</div><div class="codeline">Beide Systeme erlauben die Erweiterung der <span class="highlight" title="Möglicher Tippfehler gefunden. (11939) [lt:de:GERMAN_SPELLER_RULE]">Gameengine</span> um die Simulation von Robotern.</div><div class="clear"></div>
<div class="linenb">155</div><div class="codeline">Unity besitzt eine gute Dokumentation, die vor allem auf die Nutzung im Einsteigerbereich zurückzuführen ist.</div><div class="clear"></div>
<div class="linenb">156</div><div class="codeline">Auch die Optionen zur Menschensimulation sind umfangreich, da diese häufig in Spielen verwendet werden.</div><div class="clear"></div>
<div class="linenb">157</div><div class="codeline">Ein großer Nachteil hingegen ist die Lizenz, die nur für Einzelpersonen kostenfrei ist.</div><div class="clear"></div>
<div class="linenb">158</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">159</div><div class="codeline">Die Unreal Engine \cite{unreal} ist wie Unity eine <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Grafikengen] (12328) [lt:de:GERMAN_SPELLER_RULE]">Grafikengine</span> aus dem <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Spieleber eich, Spielbereich, Spieleberesche, Siedebereich, Spielbereiche, Spieloberteich, Spielbereichs, Spieledelreich, Spieleisbereich, Spielendbereich, Spielessbereich, Spieloberdeich, Spielseereich, Spielspätreich, Spielgeberreich, Spielhebelreich] (12349) [lt:de:GERMAN_SPELLER_RULE]">Spielebereich</span>.</div><div class="clear"></div>
<div class="linenb">159</div><div class="codeline">Die Unreal Engine \cite{unreal} ist wie Unity eine <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Grafikengen] (12326) [lt:de:GERMAN_SPELLER_RULE]">Grafikengine</span> aus dem <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Spieleber eich, Spielbereich, Spieleberesche, Siedebereich, Spielbereiche, Spieloberteich, Spielbereichs, Spieledelreich, Spieleisbereich, Spielendbereich, Spielessbereich, Spieloberdeich, Spielseereich, Spielspätreich, Spielgeberreich, Spielhebelreich] (12347) [lt:de:GERMAN_SPELLER_RULE]">Spielebereich</span>.</div><div class="clear"></div>
<div class="linenb">160</div><div class="codeline">Auch hier ist die Menschensimulation aufgrund oben genannter Gründe gut möglich.</div><div class="clear"></div>
<div class="linenb">161</div><div class="codeline">Jedoch existiert für Unreal Engine keine offizielle Lösung zur Anbindung an ROS2.</div><div class="clear"></div>
<div class="linenb">162</div><div class="codeline">Die Programmierung der Engine erfolgt in C++, was die Erstellung eines Plugins zur ROS-Anbindung der Unreal Engine ermöglichte, die von Nutzern gewartet wird.</div><div class="clear"></div>
<div class="linenb">163</div><div class="codeline">Die Lizenz der Unreal Engine erlaubt die kostenfreie Nutzung bis zu einem gewissen Umsatz mit der erstellten Software.</div><div class="clear"></div>
<div class="linenb">164</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">165</div><div class="codeline">Eine weitere Möglichkeit zur Simulation stellt die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Grafikengen] (12857) [lt:de:GERMAN_SPELLER_RULE]">Grafikengine</span> Godot \cite{godot} dar.</div><div class="clear"></div>
<div class="linenb">165</div><div class="codeline">Eine weitere Möglichkeit zur Simulation stellt die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Grafikengen] (12855) [lt:de:GERMAN_SPELLER_RULE]">Grafikengine</span> Godot \cite{godot} dar.</div><div class="clear"></div>
<div class="linenb">166</div><div class="codeline">Im Vergleich zu Unity und Unreal Engine ist Godot quelloffene Software unter der MIT-Lizenz.</div><div class="clear"></div>
<div class="linenb">167</div><div class="codeline">Auch hier stellt die Simulation von menschlichen Aktoren eine Standardaufgabe dar, jedoch befinden sich Teile des dafür verwendeten Systems derzeit in Überarbeitung.</div><div class="clear"></div>
<div class="linenb">168</div><div class="codeline"><span class="highlight" title="Zwei aufeinanderfolgende Sätze beginnen mit dem gleichen Adverb. Evtl. können Sie den Satz umformulieren, zum Beispiel, indem Sie ein Synonym nutzen. (13144) [lt:de:GERMAN_WORD_REPEAT_BEGINNING_RULE]">Auch</span> für diese Engine existiert eine ROS2-Anbindung, jedoch ist diese nicht offiziell.</div><div class="clear"></div>
<div class="linenb">168</div><div class="codeline"><span class="highlight" title="Zwei aufeinanderfolgende Sätze beginnen mit dem gleichen Adverb. Evtl. können Sie den Satz umformulieren, zum Beispiel, indem Sie ein Synonym nutzen. (13142) [lt:de:GERMAN_WORD_REPEAT_BEGINNING_RULE]">Auch</span> für diese Engine existiert eine ROS2-Anbindung, jedoch ist diese nicht offiziell.</div><div class="clear"></div>
<div class="linenb">169</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">170</div><div class="codeline">Alle vorgestellten Softwares besitzen ein integriertes Physiksystem, dass die Simulation von starren Körpern und Gelenken erlaubt.</div><div class="clear"></div>
<div class="linenb">171</div><div class="codeline">Diese Funktionen erlauben den Aufbau eines Roboterarms, der durch eine ROS-Brücke gesteuert wird.</div><div class="clear"></div>
@ -1297,15 +1297,15 @@ h1.textidote {
<div class="linenb">175</div><div class="codeline">Sie bieten zwar diese Funktionalität, jedoch werden sie nur durch Nutzer gewartet und sind demzufolge nicht offiziell unterstützt.</div><div class="clear"></div>
<div class="linenb">176</div><div class="codeline">Für einen späteren Einsatz ist eine offene Lizenz von Vorteil, da diese einen Einsatz unter nahezu allen Umständen erlaubt.</div><div class="clear"></div>
<div class="linenb">177</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">178</div><div class="codeline">Die Wahl der hier zu verwendenden Simulationsumgebung fiel deshalb auf Gazebo <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Munition, Kognition] (14027) [lt:de:GERMAN_SPELLER_RULE]">Ignition</span>, welche gleichzeitig bereits im ROS-Ökosystem etabliert ist.</div><div class="clear"></div>
<div class="linenb">178</div><div class="codeline">Die Wahl der hier zu verwendenden Simulationsumgebung fiel deshalb auf Gazebo <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Munition, Kognition] (14025) [lt:de:GERMAN_SPELLER_RULE]">Ignition</span>, welche gleichzeitig bereits im ROS-Ökosystem etabliert ist.</div><div class="clear"></div>
<div class="linenb">179</div><div class="codeline">Dabei erlauben die offizielle ROS-Anbindung und die offene Lizenz eine zuverlässige Verwendung in unterschiedlichsten Szenarien.</div><div class="clear"></div>
<div class="linenb">180</div><div class="codeline"><span class="keyword1">\subsection</span>{Welt- und Modellbeschreibung}</div><div class="clear"></div>
<div class="linenb">181</div><div class="codeline">Gazebo nutzt das<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Ast-Dateiformat, Ost-Dateiformat] (14272) [lt:de:GERMAN_SPELLER_RULE]">.s</span>d</span>f-Dateiformat</span>, um die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Simulationsumgebung, Simulationsumgehung, Simulationsumbettung, Simulationsumlegung, Simulationsumbauung, Simulationsumpolung] (14297) [lt:de:GERMAN_SPELLER_RULE]">Simulationsumbebung</span> zu beschreiben \cite{sdf-format}.</div><div class="clear"></div>
<div class="linenb">181</div><div class="codeline">Gazebo nutzt das<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Ast-Dateiformat, Ost-Dateiformat] (14270) [lt:de:GERMAN_SPELLER_RULE]">.s</span>d</span>f-Dateiformat</span>, um die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Simulationsumgebung, Simulationsumgehung, Simulationsumbettung, Simulationsumlegung, Simulationsumbauung, Simulationsumpolung] (14295) [lt:de:GERMAN_SPELLER_RULE]">Simulationsumbebung</span> zu beschreiben \cite{sdf-format}.</div><div class="clear"></div>
<div class="linenb">182</div><div class="codeline">Dieses Format basiert auf XML und wird zur Definition gesamter Welten, aber auch einzelner Objekte innerhalb dieser Welten benutzt.</div><div class="clear"></div>
<div class="linenb">183</div><div class="codeline">Eine Welt ist in Gazebo eine Umgebung aus mehreren Objekten, welche simuliert werden sollen.</div><div class="clear"></div>
<div class="linenb">184</div><div class="codeline">Die Welt beschreibt außerdem die simulierte Physikumgebung und deren Konstanten, wie zum Beispiel die Gravitation.</div><div class="clear"></div>
<div class="linenb">185</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">186</div><div class="codeline">Um verschiedene Versionen des Formats zu unterstützen, enthält das einzige <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [zapf-Element, zupf-Element, Hof-Element, Huf-Element, Ruf-Element, ruf-Element, steh-Element, stoß-Element, straf-Element, süß-Element] (14753) [lt:de:GERMAN_SPELLER_RULE]">sdf-Element</span> die gewünschte Versionsnummer.</div><div class="clear"></div>
<div class="linenb">186</div><div class="codeline">Um verschiedene Versionen des Formats zu unterstützen, enthält das einzige <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [zapf-Element, zupf-Element, Hof-Element, Huf-Element, Ruf-Element, ruf-Element, steh-Element, stoß-Element, straf-Element, süß-Element] (14751) [lt:de:GERMAN_SPELLER_RULE]">sdf-Element</span> die gewünschte Versionsnummer.</div><div class="clear"></div>
<div class="linenb">187</div><div class="codeline">Eine solche Datei kann, wie bereits oben beschrieben, unterschiedliche Daten enthalten.</div><div class="clear"></div>
<div class="linenb">188</div><div class="codeline">Im Falle eines Objekts ist dies eine einzige Instanz von entweder einem Modell, Actor oder Licht.</div><div class="clear"></div>
<div class="linenb">189</div><div class="codeline">Andernfalls können in der Datei eine oder mehrere Welten definiert werden.</div><div class="clear"></div>
@ -1314,12 +1314,12 @@ h1.textidote {
<div class="linenb">192</div><div class="codeline">Zuerst enthält ein Welt-Element die Daten über die physikalischen Konstanten der Simulationsumgebung.</div><div class="clear"></div>
<div class="linenb">193</div><div class="codeline">Zudem werden alle benötigten Teile der Nutzeroberfläche deklariert, die im ausgeführten Simulator verfügbar sein sollen.</div><div class="clear"></div>
<div class="linenb">194</div><div class="codeline">Letztendlich ist die Definition mehrerer Modelle, Aktoren und Lichter in der Welt möglich.</div><div class="clear"></div>
<div class="linenb">195</div><div class="codeline">Diese können auch aus anderen <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Uris, URLs, Iris, UCI, Eris, UFOs, Urig, URL, Bis, Urs, Kurz, Uhus, Groß, Ulms, Kurze, Udos, Kreis, Utas, Paris, APIs] (15470) [lt:de:GERMAN_SPELLER_RULE]">URIs</span> stammen, die in der Welt deklariert wurden.</div><div class="clear"></div>
<div class="linenb">195</div><div class="codeline">Diese können auch aus anderen <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Uris, URLs, Iris, UCI, Eris, UFOs, Urig, URL, Bis, Urs, Kurz, Uhus, Groß, Ulms, Kurze, Udos, Kreis, Utas, Paris, APIs] (15468) [lt:de:GERMAN_SPELLER_RULE]">URIs</span> stammen, die in der Welt deklariert wurden.</div><div class="clear"></div>
<div class="linenb">196</div><div class="codeline">Dies erlaubt zum Beispiel das Laden von vorher definierten Objekten oder Objekten aus der offiziellen Bibliothek \cite{gazebo-app}.</div><div class="clear"></div>
<div class="linenb">197</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">198</div><div class="codeline">Ein Modell enthält einen Roboter oder ein anderes physikalisches Objekt in der Simulation.</div><div class="clear"></div>
<div class="linenb">199</div><div class="codeline">Die Deklaration eines weiteren Untermodells ist möglich, um komplexere Strukturen abbilden zu können.</div><div class="clear"></div>
<div class="linenb">200</div><div class="codeline">Über ein <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [einlüde-Element, entlüde-Element, unkluge-Element, ankaute-Element] (15840) [lt:de:GERMAN_SPELLER_RULE]">include-Element</span> können auch andere<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Ast-Dateien, Ost-Dateien] (15875) [lt:de:GERMAN_SPELLER_RULE]">.s</span>d</span>f-Dateien</span>, die nur ein einzelnes Modell enthalten, zu einem Modell hinzugefügt werden.</div><div class="clear"></div>
<div class="linenb">200</div><div class="codeline">Über ein <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [einlüde-Element, entlüde-Element, unkluge-Element, ankaute-Element] (15838) [lt:de:GERMAN_SPELLER_RULE]">include-Element</span> können auch andere<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Ast-Dateien, Ost-Dateien] (15873) [lt:de:GERMAN_SPELLER_RULE]">.s</span>d</span>f-Dateien</span>, die nur ein einzelnes Modell enthalten, zu einem Modell hinzugefügt werden.</div><div class="clear"></div>
<div class="linenb">201</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">202</div><div class="codeline">Jedes Modell wird über eine Translation und Rotation im Simulationsraum verankert.</div><div class="clear"></div>
<div class="linenb">203</div><div class="codeline">Dies geschieht immer relativ zum Referenzsystem des überliegenden Modells.</div><div class="clear"></div>
@ -1333,21 +1333,21 @@ h1.textidote {
<div class="linenb">211</div><div class="codeline">Die erste Art ist direktionales Licht, dass parallel zur gewünschten Achse auftrifft.</div><div class="clear"></div>
<div class="linenb">212</div><div class="codeline">Solche Lichter werden vor allem zur grundlegenden Raumausleuchtung genutzt.</div><div class="clear"></div>
<div class="linenb">213</div><div class="codeline">Weiterhin sind Punktlichtquellen verfügbar, deren Licht von einer Position im Raum ausgeht.</div><div class="clear"></div>
<div class="linenb">214</div><div class="codeline">Neben den <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Punktlichtquellen, Junglichtquellen, Punktlichtquelle, Rücklichtquellen, Parklichtquellen] (16922) [lt:de:GERMAN_SPELLER_RULE]">Punklichtquellen</span> existieren auch noch Spots, die nur einen gewissen Winkel ausleuchten.</div><div class="clear"></div>
<div class="linenb">214</div><div class="codeline">Neben den Punktlichtquellen existieren auch noch Spots, die nur einen gewissen Winkel ausleuchten.</div><div class="clear"></div>
<div class="linenb">215</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">216</div><div class="codeline">Die Actor-Komponente wird für animierte Modelle in der Simulation eingesetzt.</div><div class="clear"></div>
<div class="linenb">217</div><div class="codeline">Sie besteht aus einem Namen für das Modell, <span class="highlight" title="Möglicherweise fehlende grammatische Übereinstimmung des Kasus (Fall: Wer/Was, Wessen, Wem, Wen/Was - Beispiel: 'das Fahrrads' statt 'des Fahrrads') und Genus (männlich, weiblich, sächlich - Beispiel: 'der Fahrrad' statt 'das Fahrrad') und Numerus (Einzahl, Mehrzahl - Beispiel: 'das Fahrräder' statt 'die Fahrräder'). (17133) [lt:de:DE_AGREEMENT]">einer Skin</span>, welche das Aussehen des Modells definiert und mehreren Animationen.</div><div class="clear"></div>
<div class="linenb">218</div><div class="codeline">Diese können durch in einem Skript definierte <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Trajektorie, Trajektorien] (17259) [lt:de:GERMAN_SPELLER_RULE]">Trajectories</span> ausgeführt werden, was eine einfache, aber statische, Simulation des Menschen erlaubt.</div><div class="clear"></div>
<div class="linenb">217</div><div class="codeline">Sie besteht aus einem Namen für das Modell, <span class="highlight" title="Möglicherweise fehlende grammatische Übereinstimmung des Kasus (Fall: Wer/Was, Wessen, Wem, Wen/Was - Beispiel: 'das Fahrrads' statt 'des Fahrrads') und Genus (männlich, weiblich, sächlich - Beispiel: 'der Fahrrad' statt 'das Fahrrad') und Numerus (Einzahl, Mehrzahl - Beispiel: 'das Fahrräder' statt 'die Fahrräder'). (17132) [lt:de:DE_AGREEMENT]">einer Skin</span>, welche das Aussehen des Modells definiert und mehreren Animationen.</div><div class="clear"></div>
<div class="linenb">218</div><div class="codeline">Diese können durch in einem Skript definierte <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Trajektorie, Trajektorien] (17258) [lt:de:GERMAN_SPELLER_RULE]">Trajectories</span> ausgeführt werden, was eine einfache, aber statische, Simulation des Menschen erlaubt.</div><div class="clear"></div>
<div class="linenb">219</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">220</div><div class="codeline">Eine solche Befehlsfolge kann nicht von außerhalb der Simulation zur Laufzeit angepasst werden.</div><div class="clear"></div>
<div class="linenb">221</div><div class="codeline">Diese Funktionalität wurde im Rahmen der Arbeit hinzugefügt.</div><div class="clear"></div>
<div class="linenb">222</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">223</div><div class="codeline"><span class="keyword1">\subsection</span>{Robotersimulation}</div><div class="clear"></div>
<div class="linenb">224</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [für] (17536) [lt:de:DE_CASE]">Für</span> die Robotersimulation wird ein Modell des Roboters benötigt, in dem dieser für die Simulationsumgebung beschrieben wird.</div><div class="clear"></div>
<div class="linenb">225</div><div class="codeline">Gazebo und ROS nutzen hierfür<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Gurt-Dateien, Wurf-Dateien] (17691) [lt:de:GERMAN_SPELLER_RULE]">.u</span>r</span>df-Dateien</span> \cite{urdf-format}, die auf XML basieren.</div><div class="clear"></div>
<div class="linenb">224</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [für] (17535) [lt:de:DE_CASE]">Für</span> die Robotersimulation wird ein Modell des Roboters benötigt, in dem dieser für die Simulationsumgebung beschrieben wird.</div><div class="clear"></div>
<div class="linenb">225</div><div class="codeline">Gazebo und ROS nutzen hierfür<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Gurt-Dateien, Wurf-Dateien] (17690) [lt:de:GERMAN_SPELLER_RULE]">.u</span>r</span>df-Dateien</span> \cite{urdf-format}, die auf XML basieren.</div><div class="clear"></div>
<div class="linenb">226</div><div class="codeline">In diesen werden die einzelnen Glieder des Roboterarms und die verbindenden Gelenke beschrieben.</div><div class="clear"></div>
<div class="linenb">227</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">228</div><div class="codeline">Jedes Glied des Modells besitzt eine Masse, einen Masseschwerpunkt und eine <span class="highlight" title="Möglicher Tippfehler gefunden. (17906) [lt:de:GERMAN_SPELLER_RULE]">Trägheitsmatrix</span> für die Physiksimulation in Gazebo.</div><div class="clear"></div>
<div class="linenb">228</div><div class="codeline">Jedes Glied des Modells besitzt eine Masse, einen Masseschwerpunkt und eine <span class="highlight" title="Möglicher Tippfehler gefunden. (17905) [lt:de:GERMAN_SPELLER_RULE]">Trägheitsmatrix</span> für die Physiksimulation in Gazebo.</div><div class="clear"></div>
<div class="linenb">229</div><div class="codeline">Außerdem werden Modelle für die visuelle Repräsentation des Roboters in Gazebo und die Kollisionserkennung in der Physiksimulation hinterlegt.</div><div class="clear"></div>
<div class="linenb">230</div><div class="codeline">Für beide existieren einfache Modelle wie Zylinder, Boxen und Kugeln.</div><div class="clear"></div>
<div class="linenb">231</div><div class="codeline">Da diese Formen nicht jeden Anwendungsfall abdecken und in der visuellen Repräsentation nicht ausreichen, können auch eigene Modelle hinterlegt werden.</div><div class="clear"></div>
@ -1358,8 +1358,8 @@ h1.textidote {
<div class="linenb">236</div><div class="codeline">Jedes Gelenk besitzt eine Position und Rotation im Raum.</div><div class="clear"></div>
<div class="linenb">237</div><div class="codeline">Diese werden für die Berechnung der Effekte genutzt, die vom spezifischen Gelenktyp abhängen.</div><div class="clear"></div>
<div class="linenb">238</div><div class="codeline">Aspekte wie Reibung und Dämpfung können auch hier für die Nutzung in der Physiksimulation beschrieben werden.</div><div class="clear"></div>
<div class="linenb">239</div><div class="codeline">Folgende Typen von Gelenken können in <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Art-Dateien, Erd-Dateien, Orts-Dateien, Prüf-Dateien, Wurf-Dateien, rot-Dateien, ruf-Dateien] (18942) [lt:de:GERMAN_SPELLER_RULE]">urdf-Dateien</span> genutzt werden:</div><div class="clear"></div>
<div class="linenb">240</div><div class="codeline"><span class="keyword2">\begin{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Deskription, deskriptiv, deskriptive, deskriptiven, Inskription] (18971) [lt:de:GERMAN_SPELLER_RULE]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">239</div><div class="codeline">Folgende Typen von Gelenken können in <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Art-Dateien, Erd-Dateien, Orts-Dateien, Prüf-Dateien, Wurf-Dateien, rot-Dateien, ruf-Dateien] (18941) [lt:de:GERMAN_SPELLER_RULE]">urdf-Dateien</span> genutzt werden:</div><div class="clear"></div>
<div class="linenb">240</div><div class="codeline"><span class="keyword2">\begin{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Deskription, deskriptiv, deskriptive, deskriptiven, Inskription] (18970) [lt:de:GERMAN_SPELLER_RULE]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">241</div><div class="codeline"> <span class="keyword1">\item</span>[freie Gelenke]</div><div class="clear"></div>
<div class="linenb">242</div><div class="codeline"> ermöglichen vollständige Bewegung in allen 6 Freiheitsgraden (Rotation und Translation). Sie stellen den normalen Zustand der Glieder zueinander dar.</div><div class="clear"></div>
<div class="linenb">243</div><div class="codeline"> <span class="keyword1">\item</span>[planare Gelenke]</div><div class="clear"></div>
@ -1367,12 +1367,12 @@ h1.textidote {
<div class="linenb">245</div><div class="codeline"> <span class="keyword1">\item</span>[feste Gelenke]</div><div class="clear"></div>
<div class="linenb">246</div><div class="codeline"> sperren alle 6 Freiheitsgrade und werden häufig zur Fixierung von Objekten in einer Szene genutzt.</div><div class="clear"></div>
<div class="linenb">247</div><div class="codeline"> <span class="keyword1">\item</span>[kontinuierliche Gelenke]</div><div class="clear"></div>
<div class="linenb">248</div><div class="codeline"> erlauben die beliebige Rotation um die Achse des Gelenks. Sie sind nur selten in rotierenden Gelenken mit Schleifkontakten oder anderen frei <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [codierbaren, rot-erbauen, kodierbaren, notierbaren, radierbaren, datierbaren, addierbaren, codierbare, codierbarem, codierbarer, codierbares, dosierbaren, kodierbare, kodierbarem, kodierbarer, kodierbares, kopierbaren, montierbaren, notierbare, notierbarem] (19602) [lt:de:GERMAN_SPELLER_RULE]">rotierbaren</span> Übertragungsmechanismen zu finden.</div><div class="clear"></div>
<div class="linenb">248</div><div class="codeline"> erlauben die beliebige Rotation um die Achse des Gelenks. Sie sind nur selten in rotierenden Gelenken mit Schleifkontakten oder anderen frei <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [codierbaren, rot-erbauen, kodierbaren, notierbaren, radierbaren, datierbaren, addierbaren, codierbare, codierbarem, codierbarer, codierbares, dosierbaren, kodierbare, kodierbarem, kodierbarer, kodierbares, kopierbaren, montierbaren, notierbare, notierbarem] (19601) [lt:de:GERMAN_SPELLER_RULE]">rotierbaren</span> Übertragungsmechanismen zu finden.</div><div class="clear"></div>
<div class="linenb">249</div><div class="codeline"> <span class="keyword1">\item</span>[drehbare Gelenke]</div><div class="clear"></div>
<div class="linenb">250</div><div class="codeline"> verhalten sich wie kontinuierliche Gelenke, haben jedoch minimale und maximale Auslenkungen. Sie sind die häufigste Art von Gelenken in Roboterarmen.</div><div class="clear"></div>
<div class="linenb">251</div><div class="codeline"> <span class="keyword1">\item</span>[prismatische Gelenke]</div><div class="clear"></div>
<div class="linenb">252</div><div class="codeline"> ermöglichen die lineare Bewegung entlang der Achse des Gelenks. Sie werden zur Umsetzung von <span class="highlight" title="Möglicher Tippfehler gefunden. (19940) [lt:de:GERMAN_SPELLER_RULE]">Linearaktuatoren</span> in der Simulation verwendet.</div><div class="clear"></div>
<div class="linenb">253</div><div class="codeline"><span class="keyword2">\end{<span class="highlight" title="Dieser Satz fängt nicht mit einem großgeschriebenen Wort an.. Suggestions: [Description] (19986) [lt:de:UPPERCASE_SENTENCE_START]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">252</div><div class="codeline"> ermöglichen die lineare Bewegung entlang der Achse des Gelenks. Sie werden zur Umsetzung von <span class="highlight" title="Möglicher Tippfehler gefunden. (19939) [lt:de:GERMAN_SPELLER_RULE]">Linearaktuatoren</span> in der Simulation verwendet.</div><div class="clear"></div>
<div class="linenb">253</div><div class="codeline"><span class="keyword2">\end{<span class="highlight" title="Dieser Satz fängt nicht mit einem großgeschriebenen Wort an.. Suggestions: [Description] (19985) [lt:de:UPPERCASE_SENTENCE_START]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">254</div><div class="codeline"><span class="keyword1">\subsection</span>{Menschensimulation}</div><div class="clear"></div>
<div class="linenb">255</div><div class="codeline">Gazebo besitzt bereits ein simples Animationssystem für bewegliche Aktoren, dass auch für Menschen nutzbar ist.</div><div class="clear"></div>
<div class="linenb">256</div><div class="codeline">Für diesen existiert bereits ein Modell mit mehreren Animationen, die allein abgespielt, oder an Bewegungen gekoppelt werden können.</div><div class="clear"></div>
@ -1380,14 +1380,14 @@ h1.textidote {
<div class="linenb">258</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">259</div><div class="codeline">Dies setzt jedoch voraus, dass der gesamte Bewegungsablauf zum Simulationsstart bekannt ist.</div><div class="clear"></div>
<div class="linenb">260</div><div class="codeline">Der Grund dafür ist auf die Definition der Pfade zurückzuführen, die Aktionen wie Bewegungen und Animationen auslösen.</div><div class="clear"></div>
<div class="linenb">261</div><div class="codeline">Diese können nur als dem Actor untergeordnetes Element in der<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Ast-Datei, Ost-Datei] (20649) [lt:de:GERMAN_SPELLER_RULE]">.s</span>d</span>f-Datei</span> definiert werden, was Veränderungen zur Laufzeit ausschließt.</div><div class="clear"></div>
<div class="linenb">261</div><div class="codeline">Diese können nur als dem Actor untergeordnetes Element in der<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Ast-Datei, Ost-Datei] (20648) [lt:de:GERMAN_SPELLER_RULE]">.s</span>d</span>f-Datei</span> definiert werden, was Veränderungen zur Laufzeit ausschließt.</div><div class="clear"></div>
<div class="linenb">262</div><div class="codeline">Durch diesen Umstand ist der damit realisierbare Simulationsumfang nicht ausreichend, um die gewünschten Szenarien abzubilden.</div><div class="clear"></div>
<div class="linenb">263</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">264</div><div class="codeline">Um diese Einschränkung zu beheben, ist die Entwicklung eines eigenen Systems zum Bewegen und Animieren des Menschen unausweichlich.</div><div class="clear"></div>
<div class="linenb">265</div><div class="codeline">Dieses System muss, wie im Konzept beschrieben, Steuerbefehle von außen empfangen, umsetzen und Feedback liefern können.</div><div class="clear"></div>
<div class="linenb">266</div><div class="codeline">Dafür soll ein ROS Action-Server verwendet werden, der die Befehle entgegennimmt, unter konstantem Feedback ausführt und nach erfolgreicher Ausführung den Empfang des nächsten Befehls zulässt.</div><div class="clear"></div>
<div class="linenb">267</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">268</div><div class="codeline">Ein solches System soll als Gazebo-Plugin <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Beinbindebar] (21339) [lt:de:GERMAN_SPELLER_RULE]">einbindbar</span> sein, um Modifikationen an der Simulationsumgebung selbst auszuschließen, die konstant weiter entwickelt wird.</div><div class="clear"></div>
<div class="linenb">268</div><div class="codeline">Ein solches System soll als Gazebo-Plugin <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Beinbindebar] (21338) [lt:de:GERMAN_SPELLER_RULE]">einbindbar</span> sein, um Modifikationen an der Simulationsumgebung selbst auszuschließen, die konstant weiter entwickelt wird.</div><div class="clear"></div>
<div class="linenb">269</div><div class="codeline">Dies vereinfacht die Wartung, da bei Updates der Simulationsumgebung nicht die Menschensimulation an den neuen Code angepasst werden muss.</div><div class="clear"></div>
<div class="linenb">270</div><div class="codeline"><span class="keyword1">\section</span>{Roboterumgebung}</div><div class="clear"></div>
<div class="linenb">271</div><div class="codeline">MoveIt2 \cite{moveit-docs} ist das meist genutzte ROS2 Paket für die Bewegungsplanung von Robotern.</div><div class="clear"></div>
@ -1398,29 +1398,29 @@ h1.textidote {
<div class="linenb">276</div><div class="codeline">MoveIt besteht aus mehreren Komponenten, die in ihrer Gesamtheit den Bereich der Bewegungsplanung abdecken.</div><div class="clear"></div>
<div class="linenb">277</div><div class="codeline">Der Nutzer kann mit MoveIt auf verschiedenen Wegen Steuerbefehle für den Roboter absenden, die durch die Software umgesetzt werden.</div><div class="clear"></div>
<div class="linenb">278</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">279</div><div class="codeline">Die erste Inbetriebnahme ist über das mitgelieferte <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis-Plugin, Reiß-Plugin, Reiz-Plugin, Avis-Plugin, RVGs-Plugin] (22368) [lt:de:GERMAN_SPELLER_RULE]">RViz-Plugin</span> und die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Demo-Launch-Files, dem-Launch-Files, Memo-Launch-Files, der-Launch-Files, den-Launch-Files, des-Launch-Files, de-Launch-Files, teil-Launch-Files, denn-Launch-Files, Leo-Launch-Files, dato-Launch-Files, desto-Launch-Files, dein-Launch-Files, käme-Launch-Files, time-Launch-Files, wem-Launch-Files, Dämon-Launch-Files, Hemd-Launch-Files, Lemgo-Launch-Files] (22388) [lt:de:GERMAN_SPELLER_RULE]">demo-Launch-Files</span> möglich.</div><div class="clear"></div>
<div class="linenb">280</div><div class="codeline">Diese wurden mit dem mitgelieferten <span class="highlight" title="Möglicher Tippfehler gefunden. (22451) [lt:de:GERMAN_SPELLER_RULE]">Setupassistenten</span> für den Roboter generiert.</div><div class="clear"></div>
<div class="linenb">281</div><div class="codeline">Durch die Ausführung dieser Demo startet <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis, Reiß, Reiz, Avis, RVGs, Evis, Roys, Weiß, Ivys, Reise, Rein, Rhein, Rio, Reich, DVDs, Reist, Eric, Via, Ross, Heiß] (22536) [lt:de:GERMAN_SPELLER_RULE]">RViz</span>, eine Test- und <span class="highlight" title="Möglicher Tippfehler gefunden. (22557) [lt:de:GERMAN_SPELLER_RULE]">Visualisierungsumgebung</span> für ROS.</div><div class="clear"></div>
<div class="linenb">282</div><div class="codeline">In der Demo können Roboterbewegungen unter Zuhilfenahme von Markierungen in <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis, Reiß, Reiz, Avis, RVGs, Evis, Roys, Weiß, Ivys, Reise, Rein, Rhein, Rio, Reich, DVDs, Reist, Eric, Via, Ross, Heiß] (22666) [lt:de:GERMAN_SPELLER_RULE]">RViz</span> geplant und ausgeführt werden.</div><div class="clear"></div>
<div class="linenb">279</div><div class="codeline">Die erste Inbetriebnahme ist über das mitgelieferte <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis-Plugin, Reiß-Plugin, Reiz-Plugin, Avis-Plugin, RVGs-Plugin] (22367) [lt:de:GERMAN_SPELLER_RULE]">RViz-Plugin</span> und die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Demo-Launch-Files, dem-Launch-Files, Memo-Launch-Files, der-Launch-Files, den-Launch-Files, des-Launch-Files, de-Launch-Files, teil-Launch-Files, denn-Launch-Files, Leo-Launch-Files, dato-Launch-Files, desto-Launch-Files, dein-Launch-Files, käme-Launch-Files, time-Launch-Files, wem-Launch-Files, Dämon-Launch-Files, Hemd-Launch-Files, Lemgo-Launch-Files] (22387) [lt:de:GERMAN_SPELLER_RULE]">demo-Launch-Files</span> möglich.</div><div class="clear"></div>
<div class="linenb">280</div><div class="codeline">Diese wurden mit dem mitgelieferten <span class="highlight" title="Möglicher Tippfehler gefunden. (22450) [lt:de:GERMAN_SPELLER_RULE]">Setupassistenten</span> für den Roboter generiert.</div><div class="clear"></div>
<div class="linenb">281</div><div class="codeline">Durch die Ausführung dieser Demo startet <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis, Reiß, Reiz, Avis, RVGs, Evis, Roys, Weiß, Ivys, Reise, Rein, Rhein, Rio, Reich, DVDs, Reist, Eric, Via, Ross, Heiß] (22535) [lt:de:GERMAN_SPELLER_RULE]">RViz</span>, eine Test- und <span class="highlight" title="Möglicher Tippfehler gefunden. (22556) [lt:de:GERMAN_SPELLER_RULE]">Visualisierungsumgebung</span> für ROS.</div><div class="clear"></div>
<div class="linenb">282</div><div class="codeline">In der Demo können Roboterbewegungen unter Zuhilfenahme von Markierungen in <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis, Reiß, Reiz, Avis, RVGs, Evis, Roys, Weiß, Ivys, Reise, Rein, Rhein, Rio, Reich, DVDs, Reist, Eric, Via, Ross, Heiß] (22665) [lt:de:GERMAN_SPELLER_RULE]">RViz</span> geplant und ausgeführt werden.</div><div class="clear"></div>
<div class="linenb">283</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">284</div><div class="codeline">Da sich eine Bewegungsplanung in einer Nutzeroberfläche nur beschränkt zur Automatisierung durch Software eignet, müssen die der Demo zugrundeliegenden Schnittstellen genutzt werden.</div><div class="clear"></div>
<div class="linenb">285</div><div class="codeline">Für die Sprache Python existierte für die Vorgängerversion von MoveIt das <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [soweit, Hoheit, gefeit, Rohheit, mögest, Doofheit, Moovit, Rohfett, covert, modelt, modert, mogelt, morbid, mosert, mögend, möget, Kohfeldt] (22960) [lt:de:GERMAN_SPELLER_RULE]">moveit</span>_<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [kommender, kommenden, Kommandeur, kommende, kommandiert, kompakter, kommendes, kommandiere, kommendem, kommoder, kämmender, zoomender] (22967) [lt:de:GERMAN_SPELLER_RULE]">commander</span> Paket, welches den Zugriff auf MoveIt in Python erlaubt, aber für MoveIt2 noch nicht portiert wurde \cite{moveitpython}.</div><div class="clear"></div>
<div class="linenb">285</div><div class="codeline">Für die Sprache Python existierte für die Vorgängerversion von MoveIt das <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [soweit, Hoheit, gefeit, Rohheit, mögest, Doofheit, Moovit, Rohfett, covert, modelt, modert, mogelt, morbid, mosert, mögend, möget, Kohfeldt] (22959) [lt:de:GERMAN_SPELLER_RULE]">moveit</span>_<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [kommender, kommenden, Kommandeur, kommende, kommandiert, kompakter, kommendes, kommandiere, kommendem, kommoder, kämmender, zoomender] (22966) [lt:de:GERMAN_SPELLER_RULE]">commander</span> Paket, welches den Zugriff auf MoveIt in Python erlaubt, aber für MoveIt2 noch nicht portiert wurde \cite{moveitpython}.</div><div class="clear"></div>
<div class="linenb">286</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">287</div><div class="codeline">Die direkte Nutzung der C++-API ist aktuell die einzige offizielle Möglichkeit, mit MoveIt2 direkt zu interagieren.</div><div class="clear"></div>
<div class="linenb">288</div><div class="codeline">Dabei können sowohl die Planung und die Ausführung von Bewegungen ausgelöst aber auch <span class="highlight" title="Möglicher Tippfehler gefunden. (23285) [lt:de:GERMAN_SPELLER_RULE]">Exklusionszonen</span> eingerichtet werden.</div><div class="clear"></div>
<div class="linenb">289</div><div class="codeline">Außerdem können Objekte virtuell mit dem Roboter verbunden werden, wodurch sich diese in <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis, Reiß, Reiz, Avis, RVGs, Evis, Roys, Weiß, Ivys, Reise, Rein, Rhein, Rio, Reich, DVDs, Reist, Eric, Via, Ross, Heiß] (23411) [lt:de:GERMAN_SPELLER_RULE]">RViz</span> mit dem Roboter bewegen.</div><div class="clear"></div>
<div class="linenb">290</div><div class="codeline">Natürlich können die Befehle auch direkt an die entsprechenden <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Tobias, Comics, Topik, Tobis, Möbius, Tobys, Robins, Topisch, Dubios, Tonika, Aspiks, Tipis, Böbigs, Tokios, Tabaks, Utopias, Topas, Biopics, Topfes, Copys] (23504) [lt:de:GERMAN_SPELLER_RULE]">Topics</span> gesendet werden, um einzelne Bereiche des Systems zu testen.</div><div class="clear"></div>
<div class="linenb">288</div><div class="codeline">Dabei können sowohl die Planung und die Ausführung von Bewegungen ausgelöst aber auch <span class="highlight" title="Möglicher Tippfehler gefunden. (23284) [lt:de:GERMAN_SPELLER_RULE]">Exklusionszonen</span> eingerichtet werden.</div><div class="clear"></div>
<div class="linenb">289</div><div class="codeline">Außerdem können Objekte virtuell mit dem Roboter verbunden werden, wodurch sich diese in <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Reis, Reiß, Reiz, Avis, RVGs, Evis, Roys, Weiß, Ivys, Reise, Rein, Rhein, Rio, Reich, DVDs, Reist, Eric, Via, Ross, Heiß] (23410) [lt:de:GERMAN_SPELLER_RULE]">RViz</span> mit dem Roboter bewegen.</div><div class="clear"></div>
<div class="linenb">290</div><div class="codeline">Natürlich können die Befehle auch direkt an die entsprechenden <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Tobias, Comics, Topik, Tobis, Möbius, Tobys, Robins, Topisch, Dubios, Tonika, Aspiks, Tipis, Böbigs, Tokios, Tabaks, Utopias, Topas, Biopics, Topfes, Copys] (23503) [lt:de:GERMAN_SPELLER_RULE]">Topics</span> gesendet werden, um einzelne Bereiche des Systems zu testen.</div><div class="clear"></div>
<div class="linenb">291</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">292</div><div class="codeline">Um die durch den <span class="highlight" title="Möglicher Tippfehler gefunden. (23590) [lt:de:GERMAN_SPELLER_RULE]">Setupassistenten</span> generierten Informationen an MoveIt zu übergeben, wird intern ein <span class="highlight" title="Möglicher Tippfehler gefunden. (23673) [lt:de:GERMAN_SPELLER_RULE]">RobotStatePublisher</span> verwendet.</div><div class="clear"></div>
<div class="linenb">292</div><div class="codeline">Um die durch den <span class="highlight" title="Möglicher Tippfehler gefunden. (23589) [lt:de:GERMAN_SPELLER_RULE]">Setupassistenten</span> generierten Informationen an MoveIt zu übergeben, wird intern ein <span class="highlight" title="Möglicher Tippfehler gefunden. (23672) [lt:de:GERMAN_SPELLER_RULE]">RobotStatePublisher</span> verwendet.</div><div class="clear"></div>
<div class="linenb">293</div><div class="codeline">Dieser lädt alle Daten des Robotermodells und übergibt sie an andere Programme, die Roboterparameter zur Laufzeit anfordern, unter diesen auch MoveIt selbst.</div><div class="clear"></div>
<div class="linenb">294</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">295</div><div class="codeline">Durch die vorher erwähnte C++-API erhält die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Move Group] (23908) [lt:de:GERMAN_SPELLER_RULE]">MoveGroup</span> die Informationen über die gewünschte Bewegung.</div><div class="clear"></div>
<div class="linenb">295</div><div class="codeline">Durch die vorher erwähnte C++-API erhält die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Move Group] (23907) [lt:de:GERMAN_SPELLER_RULE]">MoveGroup</span> die Informationen über die gewünschte Bewegung.</div><div class="clear"></div>
<div class="linenb">296</div><div class="codeline">Dabei können auch bestimmte Einschränkungen des Arbeitsraums, spezielle Trajektorien oder Limitierungen der Gelenke in der Planung berücksichtigt werden.</div><div class="clear"></div>
<div class="linenb">297</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">298</div><div class="codeline">Diese Daten können durch eine <span class="highlight" title="Möglicher Tippfehler gefunden. (24151) [lt:de:GERMAN_SPELLER_RULE]">OccupancyMap</span> ergänzt werden, welche die Bereiche beschreibt, die sich um den Roboter befinden.</div><div class="clear"></div>
<div class="linenb">298</div><div class="codeline">Diese Daten können durch eine <span class="highlight" title="Möglicher Tippfehler gefunden. (24150) [lt:de:GERMAN_SPELLER_RULE]">OccupancyMap</span> ergänzt werden, welche die Bereiche beschreibt, die sich um den Roboter befinden.</div><div class="clear"></div>
<div class="linenb">299</div><div class="codeline">Eine solche Erweiterung erlaubt die automatische Nutzung von Kollisionsvermeidung mit Objekten im Planungsbereich.</div><div class="clear"></div>
<div class="linenb">300</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">301</div><div class="codeline">Die Planung der Bewegung wird durch einen der in MoveIt implementierten <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Golfer, Söller, Sollen, Sommer, Solcher, Kölner, Voller, Selber, Dörfer, Solle, Völker, Server, Volker, Folter, Helfer, Holger, Möller, Pulver, Rover, Söldner] (24434) [lt:de:GERMAN_SPELLER_RULE]">Solver</span> realisiert, der durch die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Move Group] (24467) [lt:de:GERMAN_SPELLER_RULE]">MoveGroup</span> aufgerufen wird.</div><div class="clear"></div>
<div class="linenb">301</div><div class="codeline">Die Planung der Bewegung wird durch einen der in MoveIt implementierten <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Golfer, Söller, Sollen, Sommer, Solcher, Kölner, Voller, Selber, Dörfer, Solle, Völker, Server, Volker, Folter, Helfer, Holger, Möller, Pulver, Rover, Söldner] (24433) [lt:de:GERMAN_SPELLER_RULE]">Solver</span> realisiert, der durch die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Move Group] (24466) [lt:de:GERMAN_SPELLER_RULE]">MoveGroup</span> aufgerufen wird.</div><div class="clear"></div>
<div class="linenb">302</div><div class="codeline">Um die generierte Bewegung umzusetzen, werden die gewünschten Gelenkpositionen als Abfolge an die \code{ros_control} Controller des Roboters weitergegeben.</div><div class="clear"></div>
<div class="linenb">303</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">304</div><div class="codeline">Diese Abstraktion erlaubt die Nutzung von sowohl simulierten, aber auch echten Robotern.</div><div class="clear"></div>
@ -1433,11 +1433,11 @@ h1.textidote {
<div class="linenb">311</div><div class="codeline">Der Ablauf der Bewegungsplanungspipeline von MoveIt ist im Anhang unter Abbildung \ref{moveitpipeline} visualisiert.</div><div class="clear"></div>
<div class="linenb">312</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">313</div><div class="codeline"><span class="keyword1">\section</span>{Programmiersprache}</div><div class="clear"></div>
<div class="linenb">314</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [als] (25238) [lt:de:DE_CASE]">Als</span> Programmiersprache kommen in ROS standardmäßig Python \cite{python} und C++ \cite{cpp} zum Einsatz.</div><div class="clear"></div>
<div class="linenb">314</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [als] (25237) [lt:de:DE_CASE]">Als</span> Programmiersprache kommen in ROS standardmäßig Python \cite{python} und C++ \cite{cpp} zum Einsatz.</div><div class="clear"></div>
<div class="linenb">315</div><div class="codeline">Beide Sprachen sind in der Softwareentwicklung beliebt, unterscheiden sich jedoch stark im Funktionsumfang und im Entwicklungsprozess.</div><div class="clear"></div>
<div class="linenb">316</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">317</div><div class="codeline">Python ist eine interpretierte Skriptsprache, die zu den hohen Programmiersprachen zählt.</div><div class="clear"></div>
<div class="linenb">318</div><div class="codeline">Sie wird in ROS zum Beispiel in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (25583) [lt:de:GERMAN_SPELLER_RULE]">.l</span>a</span>unch.py}-Dateien</span> eingesetzt, die den Start von Diensten in der Umgebung verwalten.</div><div class="clear"></div>
<div class="linenb">318</div><div class="codeline">Sie wird in ROS zum Beispiel in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (25582) [lt:de:GERMAN_SPELLER_RULE]">.l</span>a</span>unch.py}-Dateien</span> eingesetzt, die den Start von Diensten in der Umgebung verwalten.</div><div class="clear"></div>
<div class="linenb">319</div><div class="codeline">Die Sprache kann aber auch für die Programmierung von Nodes innerhalb des ROS-Systems verwendet werden.</div><div class="clear"></div>
<div class="linenb">320</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">321</div><div class="codeline">C++ hingegen ist eine kompilierte, statisch typisierte, maschinennahe Programmiersprache.</div><div class="clear"></div>
@ -1446,7 +1446,7 @@ h1.textidote {
<div class="linenb">324</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">325</div><div class="codeline">Die Nutzung eines Kompilierers beschleunigt C++ deutlich im Vergleich zu Python, ist jedoch weniger geeignet für häufige Modifikation.</div><div class="clear"></div>
<div class="linenb">326</div><div class="codeline">Dies ist vor allem in häufig geänderten Programmen ein Nachteil, die nach einer Änderung erneut kompiliert werden müssen.</div><div class="clear"></div>
<div class="linenb">327</div><div class="codeline">Aus diesem Grund wird Python vor allem in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden. (26367) [lt:de:GERMAN_SPELLER_RULE]">.l</span>a</span>unch.py-Dateien</span> verwendet, welche die Interaktion der anderen Programme in der Umgebung verwalten.</div><div class="clear"></div>
<div class="linenb">327</div><div class="codeline">Aus diesem Grund wird Python vor allem in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden. (26366) [lt:de:GERMAN_SPELLER_RULE]">.l</span>a</span>unch.py-Dateien</span> verwendet, welche die Interaktion der anderen Programme in der Umgebung verwalten.</div><div class="clear"></div>
<div class="linenb">328</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">329</div><div class="codeline">Um die gewünschten Funktionen für die Simulation umzusetzen ist die Verwendung der Programmiersprache C++ nahezu unumgänglich.</div><div class="clear"></div>
<div class="linenb">330</div><div class="codeline">Zum Beispiel sind Gazebo-Plugins in C++ erstellt, was die Nutzung anderer Sprachen stark einschränkt.</div><div class="clear"></div>
@ -1458,74 +1458,74 @@ h1.textidote {
<div class="linenb">336</div><div class="codeline">In den Launch-Skripten wird jedoch Python verwendet werden, da hier die Vorteile einer Skriptsprache überwiegen.</div><div class="clear"></div>
<div class="linenb">337</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">338</div><div class="codeline"><span class="keyword1">\section</span>{Behavior Trees}</div><div class="clear"></div>
<div class="linenb">339</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [zur] (27161) [lt:de:DE_CASE]">Zur</span> Verwaltung der Abläufe sollen Behavior Trees genutzt werden, die durch die Bibliothek<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (27251) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} bereitgestellt werden.</div><div class="clear"></div>
<div class="linenb">339</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [zur] (27160) [lt:de:DE_CASE]">Zur</span> Verwaltung der Abläufe sollen Behavior Trees genutzt werden, die durch die Bibliothek<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (27250) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} bereitgestellt werden.</div><div class="clear"></div>
<div class="linenb">340</div><div class="codeline">Diese Bibliothek wurde in C++ geschrieben, und ist somit in ROS und dem geplanten Konzept integrierbar.</div><div class="clear"></div>
<div class="linenb">341</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">342</div><div class="codeline">Es existieren viele Beispiele und eine gute Dokumentation über die erweiterten Funktionen der Bibliothek, die im Folgenden vorgestellt werden.</div><div class="clear"></div>
<div class="linenb">343</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">344</div><div class="codeline"><span class="keyword2">\begin{<span class="highlight" title="Dieser Satz fängt nicht mit einem großgeschriebenen Wort an.. Suggestions: [Description] (27540) [lt:de:UPPERCASE_SENTENCE_START]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">344</div><div class="codeline"><span class="keyword2">\begin{<span class="highlight" title="Dieser Satz fängt nicht mit einem großgeschriebenen Wort an.. Suggestions: [Description] (27539) [lt:de:UPPERCASE_SENTENCE_START]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">345</div><div class="codeline"> <span class="keyword1">\item</span>[Asynchrone Nodes]</div><div class="clear"></div>
<div class="linenb">346</div><div class="codeline"> sind in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (27583) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} leichter umsetzbar, da diese in Form verschiedener Zustände der Nodes beim Konzept der Bibliothek mit bedacht wurden.</div><div class="clear"></div>
<div class="linenb">346</div><div class="codeline"> sind in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (27582) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} leichter umsetzbar, da diese in Form verschiedener Zustände der Nodes beim Konzept der Bibliothek mit bedacht wurden.</div><div class="clear"></div>
<div class="linenb">347</div><div class="codeline"> Dies resultiert in Nodes, die ohne spezielle Logik langanhaltende Aktionen ausführen können, ohne die Ausführung des Behavior Trees zu behindern.</div><div class="clear"></div>
<div class="linenb">348</div><div class="codeline"> <span class="keyword1">\item</span>[Reaktives Verhalten] ist ein neues Konzept, um die Handhabung von asynchronen Nodes zu vereinfachen.</div><div class="clear"></div>
<div class="linenb">349</div><div class="codeline"> Diese Strukturelemente erlauben die parallele Ausführung von mehreren Zweigen, die die aktuell ausgeführte Aktion beeinflussen können.</div><div class="clear"></div>
<div class="linenb">350</div><div class="codeline"> Darunter fällt die Modifizierung von Parametern der Aktionen, aber auch der vollständige Abbruch einer Aktion durch äußere Einflüsse.</div><div class="clear"></div>
<div class="linenb">351</div><div class="codeline"> <span class="keyword1">\item</span>[Das<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Exil-Format, Achsel-Format] (28250) [lt:de:GERMAN_SPELLER_RULE]">.x</span>m</span>l-Format</span> der Behavior Trees] ermöglicht einen Austausch des Verhaltens, ohne die unterliegenden Programme verändern zu müssen.</div><div class="clear"></div>
<div class="linenb">352</div><div class="codeline"> Dies ist vor allem in kompilierten Sprachen wie C++ sinnvoll, da Änderungen im Verhaltensablauf keiner Neukompilierung bedürfen, was die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Integrationszeit, Operationszeit] (28519) [lt:de:GERMAN_SPELLER_RULE]">Iterationszeit</span> für Änderungen verbessert.</div><div class="clear"></div>
<div class="linenb">351</div><div class="codeline"> <span class="keyword1">\item</span>[Das<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Exil-Format, Achsel-Format] (28249) [lt:de:GERMAN_SPELLER_RULE]">.x</span>m</span>l-Format</span> der Behavior Trees] ermöglicht einen Austausch des Verhaltens, ohne die unterliegenden Programme verändern zu müssen.</div><div class="clear"></div>
<div class="linenb">352</div><div class="codeline"> Dies ist vor allem in kompilierten Sprachen wie C++ sinnvoll, da Änderungen im Verhaltensablauf keiner Neukompilierung bedürfen, was die <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Integrationszeit, Operationszeit] (28518) [lt:de:GERMAN_SPELLER_RULE]">Iterationszeit</span> für Änderungen verbessert.</div><div class="clear"></div>
<div class="linenb">353</div><div class="codeline"> <span class="keyword1">\item</span>[Plugins] können zum Start geladen werden, um weitere Nodes dem ausgeführten Programm hinzufügen zu können.</div><div class="clear"></div>
<div class="linenb">354</div><div class="codeline"> Dies vereinfacht die Erweiterung um neue Funktionen und das mehrfache Nutzen von Code.</div><div class="clear"></div>
<div class="linenb">355</div><div class="codeline"> <span class="keyword1">\item</span>[Das <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Backbord] (28767) [lt:de:GERMAN_SPELLER_RULE]">Blackboard</span>] ist eine Interaktionsebene, die den Datenfluss zwischen den Nodes erlaubt.</div><div class="clear"></div>
<div class="linenb">355</div><div class="codeline"> <span class="keyword1">\item</span>[Das Blackboard] ist eine Interaktionsebene, die den Datenfluss zwischen den Nodes erlaubt.</div><div class="clear"></div>
<div class="linenb">356</div><div class="codeline"> In diesem System kann unter Verwendung einer Zeichenkette als Identifikator ein Wert in Form einer Referenz hinterlegt werden.</div><div class="clear"></div>
<div class="linenb">357</div><div class="codeline"> Sogenannte Ports erlauben Nodes, Daten aus dem <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Backbord] (29032) [lt:de:GERMAN_SPELLER_RULE]">Blackboard</span> zu lesen und auf dieses zu schreiben.</div><div class="clear"></div>
<div class="linenb">357</div><div class="codeline"> Sogenannte Ports erlauben Nodes, Daten aus dem Blackboard zu lesen und auf dieses zu schreiben.</div><div class="clear"></div>
<div class="linenb">358</div><div class="codeline"> <span class="keyword1">\item</span>[Integriertes Logging] erlaubt es, Zustandsänderungen im Behavior Tree zu visualisieren, aufzunehmen und wieder abzuspielen.</div><div class="clear"></div>
<div class="linenb">359</div><div class="codeline"> Dies erleichtert das häufig schwierige Debuggen von Zustandsmaschinen erheblich, da das Verhalten genau untersucht werden kann.</div><div class="clear"></div>
<div class="linenb">360</div><div class="codeline"><span class="keyword2">\end{<span class="highlight" title="Dieser Satz fängt nicht mit einem großgeschriebenen Wort an.. Suggestions: [Description] (29338) [lt:de:UPPERCASE_SENTENCE_START]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">360</div><div class="codeline"><span class="keyword2">\end{<span class="highlight" title="Dieser Satz fängt nicht mit einem großgeschriebenen Wort an.. Suggestions: [Description] (29337) [lt:de:UPPERCASE_SENTENCE_START]"></span>description}</span></div><div class="clear"></div>
<div class="linenb">361</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">362</div><div class="codeline">Behavior Trees werden bei Verwendung von<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (29392) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} in Form von<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Exil-Dateien, Achsel-Dateien] (29421) [lt:de:GERMAN_SPELLER_RULE]">.x</span>m</span>l-Dateien</span> gespeichert.</div><div class="clear"></div>
<div class="linenb">362</div><div class="codeline">Behavior Trees werden bei Verwendung von<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (29391) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} in Form von<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"><span class="highlight-sh" title="There should not be a space before the period at the end of a sentence. [sh:d:003]"> <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Exil-Dateien, Achsel-Dateien] (29420) [lt:de:GERMAN_SPELLER_RULE]">.x</span>m</span>l-Dateien</span> gespeichert.</div><div class="clear"></div>
<div class="linenb">363</div><div class="codeline">Diese Dateien enthalten die Anordnung der Nodes selbst, aber auch weitere Konfigurationsmöglichkeiten in Form von Ein- und Ausgabeports.</div><div class="clear"></div>
<div class="linenb">364</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">365</div><div class="codeline">Ports können verwendet werden, um Nodes generischer zu gestalten.</div><div class="clear"></div>
<div class="linenb">366</div><div class="codeline">Durch veränderbare Parameter im später erstellten Tree können Nodes ohne Programmänderung verändert werden.</div><div class="clear"></div>
<div class="linenb">367</div><div class="codeline">Falls die Nodes mit Bedacht erstellt wurden, kann so auf viele spezialisierte Nodes verzichtet werden.</div><div class="clear"></div>
<div class="linenb">368</div><div class="codeline">Um dies zu ermöglichen, kann deren Funktion durch mehrere andere Nodes in einem <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bürde, Subtile, Separee, Subteen, Soupiere, Subtype, Superbe, Séparée, Süperbe, Supreme, Zuparke, Zustrebe, Zutrete] (29942) [lt:de:GERMAN_SPELLER_RULE]">Subtree</span> mit Parametern abgebildet werden.</div><div class="clear"></div>
<div class="linenb">369</div><div class="codeline">Diese in den Ports übertragenen Daten können sowohl aus einem String ausgelesen, aber auch aus dem sogenannten <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Backbord] (30095) [lt:de:GERMAN_SPELLER_RULE]">Blackboard</span> entnommen werden.</div><div class="clear"></div>
<div class="linenb">368</div><div class="codeline">Um dies zu ermöglichen, kann deren Funktion durch mehrere andere Nodes in einem Subtree mit Parametern abgebildet werden.</div><div class="clear"></div>
<div class="linenb">369</div><div class="codeline">Diese in den Ports übertragenen Daten können sowohl aus einem String ausgelesen, aber auch aus dem sogenannten Blackboard entnommen werden.</div><div class="clear"></div>
<div class="linenb">370</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">371</div><div class="codeline">Um die Übersetzung aus einem String zu ermöglichen, muss eine entsprechende Funktion implementiert werden, die einen String in den gewünschten Zieltyp übersetzt.</div><div class="clear"></div>
<div class="linenb">372</div><div class="codeline">Viele primitive Datentypen, wie Ganzzahlen und Gleitkommazahlen, werden von Behavior<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> Tree.<span class="highlight" title="Fügen Sie zwischen Sätzen ein Leerzeichen ein. Suggestions: [ Cpp] (30377) [lt:de:DE_SENTENCE_WHITESPACE]">Cp</span>p</span> bereits durch native Funktionen unterstützt.</div><div class="clear"></div>
<div class="linenb">372</div><div class="codeline">Viele primitive Datentypen, wie Ganzzahlen und Gleitkommazahlen, werden von Behavior<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> Tree.<span class="highlight" title="Fügen Sie zwischen Sätzen ein Leerzeichen ein. Suggestions: [ Cpp] (30376) [lt:de:DE_SENTENCE_WHITESPACE]">Cp</span>p</span> bereits durch native Funktionen unterstützt.</div><div class="clear"></div>
<div class="linenb">373</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">374</div><div class="codeline">Das <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Backbord] (30431) [lt:de:GERMAN_SPELLER_RULE]">Blackboard</span> ist ein System, dass die Nutzung von Variablen als Parameter für Ports erlaubt.</div><div class="clear"></div>
<div class="linenb">374</div><div class="codeline">Das Blackboard ist ein System, dass die Nutzung von Variablen als Parameter für Ports erlaubt.</div><div class="clear"></div>
<div class="linenb">375</div><div class="codeline">Diese werden im Hintergrund als eine Referenz auf den eigentlichen Wert gespeichert.</div><div class="clear"></div>
<div class="linenb">376</div><div class="codeline">Eine solche Funktion erlaubt das weitere Zerlegen von Vorgängen innerhalb des Behavior Trees.</div><div class="clear"></div>
<div class="linenb">377</div><div class="codeline">Solche kleineren Nodes sind durch ihren limitierten Umfang universeller einsetzbar, da sie nur kleinere Teilprobleme betrachten, die zu komplexeren Strukturen zusammengesetzt werden können.</div><div class="clear"></div>
<div class="linenb">378</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">379</div><div class="codeline">Um die dadurch wachsenden Strukturen besser überblicken zu können, lassen sich Gruppen von Nodes als sogenannte <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Separees, Subtiles, Subteen, Superbes, Séparées, Süperbes] (31004) [lt:de:GERMAN_SPELLER_RULE]">Subtrees</span> abspeichern.</div><div class="clear"></div>
<div class="linenb">379</div><div class="codeline">Um die dadurch wachsenden Strukturen besser überblicken zu können, lassen sich Gruppen von Nodes als sogenannte Subtrees abspeichern.</div><div class="clear"></div>
<div class="linenb">380</div><div class="codeline">Diese bilden in ihrer Gesamtheit eine neue Node, die im Behavior Tree eingesetzt werden kann.</div><div class="clear"></div>
<div class="linenb">381</div><div class="codeline">Um den Einsatz von Variablen innerhalb eines <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Separees, Subtiles, Subteen, Superbes, Séparées, Süperbes] (31165) [lt:de:GERMAN_SPELLER_RULE]">Subtrees</span> zu ermöglichen, besitzt jeder <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bürde, Subtile, Separee, Subteen, Soupiere, Subtype, Superbe, Séparée, Süperbe, Supreme, Zuparke, Zustrebe, Zutrete] (31204) [lt:de:GERMAN_SPELLER_RULE]">Subtree</span> ein separates <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Backbord] (31226) [lt:de:GERMAN_SPELLER_RULE]">Blackboard</span>.</div><div class="clear"></div>
<div class="linenb">381</div><div class="codeline">Um den Einsatz von Variablen innerhalb eines Subtrees zu ermöglichen, besitzt jeder Subtree ein separates Blackboard.</div><div class="clear"></div>
<div class="linenb">382</div><div class="codeline">Dadurch kann auch ein Eingriff durch äußere Einflüsse verhindert werden.</div><div class="clear"></div>
<div class="linenb">383</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">384</div><div class="codeline">Natürlich sollte es auch möglich sein, Variablen an solche <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Separees, Subtiles, Subteen, Superbes, Séparées, Süperbes] (31371) [lt:de:GERMAN_SPELLER_RULE]">Subtrees</span> zu übergeben.</div><div class="clear"></div>
<div class="linenb">385</div><div class="codeline">Diese können, wie auch bei normalen Nodes, als Parameter an den <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bürde, Subtile, Separee, Subteen, Soupiere, Subtype, Superbe, Séparée, Süperbe, Supreme, Zuparke, Zustrebe, Zutrete] (31458) [lt:de:GERMAN_SPELLER_RULE]">Subtree</span> übergeben werden.</div><div class="clear"></div>
<div class="linenb">386</div><div class="codeline">Die Bibliothek<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (31499) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} verbindet dann diese Werte und erlaubt die Datenübergabe zum und vom <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bürde, Subteen, Subtile, Separee, Soupiere, Subtype, Séparée, Superbe, Supreme, Süperbe, Zuparke, Zustrebe, Zutrete] (31585) [lt:de:GERMAN_SPELLER_RULE]">Subtree</span>.</div><div class="clear"></div>
<div class="linenb">384</div><div class="codeline">Natürlich sollte es auch möglich sein, Variablen an solche Subtrees zu übergeben.</div><div class="clear"></div>
<div class="linenb">385</div><div class="codeline">Diese können, wie auch bei normalen Nodes, als Parameter an den Subtree übergeben werden.</div><div class="clear"></div>
<div class="linenb">386</div><div class="codeline">Die Bibliothek<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (31498) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} verbindet dann diese Werte und erlaubt die Datenübergabe zum und vom Subtree.</div><div class="clear"></div>
<div class="linenb">387</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">388</div><div class="codeline"><span class="keyword1">\subsection</span>{Asynchrone Nodes}</div><div class="clear"></div>
<div class="linenb">389</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [da] (31612) [lt:de:DE_CASE]">Da</span> nicht jeder Prozess sofort vollständig durchgeführt werden kann, muss die Möglichkeit geschaffen werden, lang anhaltende Prozesse abzubilden.</div><div class="clear"></div>
<div class="linenb">390</div><div class="codeline">Dies geschieht in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (31775) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} durch asynchrone Nodes.</div><div class="clear"></div>
<div class="linenb">389</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [da] (31611) [lt:de:DE_CASE]">Da</span> nicht jeder Prozess sofort vollständig durchgeführt werden kann, muss die Möglichkeit geschaffen werden, lang anhaltende Prozesse abzubilden.</div><div class="clear"></div>
<div class="linenb">390</div><div class="codeline">Dies geschieht in<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (31774) [lt:de:GERMAN_SPELLER_RULE]">BehaviorTree</span>.CP</span>P} durch asynchrone Nodes.</div><div class="clear"></div>
<div class="linenb">391</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">392</div><div class="codeline">Eine asynchrone Node besitzt neben den Zuständen SUCCESS und FAILURE einer normalen Node auch die beiden neuen Zustände <span class="highlight" title="Möglicher Tippfehler gefunden. (31937) [lt:de:GERMAN_SPELLER_RULE]">RUNNING</span> und IDLE.</div><div class="clear"></div>
<div class="linenb">392</div><div class="codeline">Eine asynchrone Node besitzt neben den Zuständen SUCCESS und FAILURE einer normalen Node auch die beiden neuen Zustände <span class="highlight" title="Möglicher Tippfehler gefunden. (31936) [lt:de:GERMAN_SPELLER_RULE]">RUNNING</span> und IDLE.</div><div class="clear"></div>
<div class="linenb">393</div><div class="codeline">Außerdem werden mehrere Funktionen definiert, die den Lebenszyklus der Node definieren.</div><div class="clear"></div>
<div class="linenb">394</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">395</div><div class="codeline">Wird eine Node durch den Aufruf der \code{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Stadt-Funktion, Start-Funktion] (32080) [lt:de:GERMAN_SPELLER_RULE]">onStart}-Funktion</span> gestartet, geht diese in einen der Zustände <span class="highlight" title="Möglicher Tippfehler gefunden. (32141) [lt:de:GERMAN_SPELLER_RULE]">RUNNING</span>, SUCCESS oder FAILURE über.</div><div class="clear"></div>
<div class="linenb">395</div><div class="codeline">Wird eine Node durch den Aufruf der \code{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Stadt-Funktion, Start-Funktion] (32079) [lt:de:GERMAN_SPELLER_RULE]">onStart}-Funktion</span> gestartet, geht diese in einen der Zustände <span class="highlight" title="Möglicher Tippfehler gefunden. (32140) [lt:de:GERMAN_SPELLER_RULE]">RUNNING</span>, SUCCESS oder FAILURE über.</div><div class="clear"></div>
<div class="linenb">396</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">397</div><div class="codeline">Der Zustand <span class="highlight" title="Möglicher Tippfehler gefunden. (32190) [lt:de:GERMAN_SPELLER_RULE]">RUNNING</span> steht dabei für eine Node, die sich noch in der Ausführung befindet.</div><div class="clear"></div>
<div class="linenb">398</div><div class="codeline">Solange dieser Zustand anhält, wird die Node nicht noch ein weiteres Mal gestartet, sondern nur der Zustand in der neuen \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (32388) [lt:de:GERMAN_SPELLER_RULE]">onRunning}-Funktion</span> abgefragt.</div><div class="clear"></div>
<div class="linenb">397</div><div class="codeline">Der Zustand <span class="highlight" title="Möglicher Tippfehler gefunden. (32189) [lt:de:GERMAN_SPELLER_RULE]">RUNNING</span> steht dabei für eine Node, die sich noch in der Ausführung befindet.</div><div class="clear"></div>
<div class="linenb">398</div><div class="codeline">Solange dieser Zustand anhält, wird die Node nicht noch ein weiteres Mal gestartet, sondern nur der Zustand in der neuen \code{<span class="highlight" title="Möglicher Tippfehler gefunden. (32387) [lt:de:GERMAN_SPELLER_RULE]">onRunning}-Funktion</span> abgefragt.</div><div class="clear"></div>
<div class="linenb">399</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">400</div><div class="codeline">Der IDLE-Zustand ist ein besonderer Zustand, der nur durch eine vollständige Ausführung erreichbar ist.</div><div class="clear"></div>
<div class="linenb">401</div><div class="codeline">Er wird von der Node angenommen, nachdem deren Ausführung durch SUCCESS oder FAILURE beendet wurde.</div><div class="clear"></div>
<div class="linenb">402</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">403</div><div class="codeline">Im Falle eines Abbruchs, der durch andere Nodes im Baum ausgelöst werden könnte, muss die Ausführung der Node vorzeitig beendet werden können.</div><div class="clear"></div>
<div class="linenb">404</div><div class="codeline">Dies geschieht mit der neuen \code{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [anhaltet-Funktion, anmaltet-Funktion, obwaltet-Funktion] (32796) [lt:de:GERMAN_SPELLER_RULE]">onHalted}-Funktion</span>, welche ausgeführt wird, wenn die Ausführung der Node abgebrochen werden soll.</div><div class="clear"></div>
<div class="linenb">404</div><div class="codeline">Dies geschieht mit der neuen \code{<span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [anhaltet-Funktion, anmaltet-Funktion, obwaltet-Funktion] (32795) [lt:de:GERMAN_SPELLER_RULE]">onHalted}-Funktion</span>, welche ausgeführt wird, wenn die Ausführung der Node abgebrochen werden soll.</div><div class="clear"></div>
<div class="linenb">405</div><div class="codeline"><span class="keyword1">\subsection</span>{Dateiformat}</div><div class="clear"></div>
<div class="linenb">406</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [das] (32905) [lt:de:DE_CASE]">Das</span> in Behavior<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> Tree.<span class="highlight" title="Fügen Sie zwischen Sätzen ein Leerzeichen ein. Suggestions: [ Cpp] (32926) [lt:de:DE_SENTENCE_WHITESPACE]">Cp</span>p</span> verwendete Dateiformat, um Behavior Trees zu erstellen, basiert auf XML.</div><div class="clear"></div>
<div class="linenb">406</div><div class="codeline"><span class="highlight" title="Außer am Satzanfang werden nur Nomen und Eigennamen großgeschrieben.. Suggestions: [das] (32904) [lt:de:DE_CASE]">Das</span> in Behavior<span class="highlight-sh" title="There should be a space after a period. If you are writing a URL or a filename, use the \url{} or \verb markup. [sh:d:002]"> Tree.<span class="highlight" title="Fügen Sie zwischen Sätzen ein Leerzeichen ein. Suggestions: [ Cpp] (32925) [lt:de:DE_SENTENCE_WHITESPACE]">Cp</span>p</span> verwendete Dateiformat, um Behavior Trees zu erstellen, basiert auf XML.</div><div class="clear"></div>
<div class="linenb">407</div><div class="codeline">Jedes Dokument beginnt dabei mit einem Root-Element, dass alle Behavior Trees und eine Referenz auf die ID des Hauptbaumes enthält.</div><div class="clear"></div>
<div class="linenb">408</div><div class="codeline">Diese wird benötigt, da auch Unterbäume im selben Dokument deklariert und genutzt werden können, die aber sonst nicht vom Hauptbaum unterscheidbar sind.</div><div class="clear"></div>
<div class="linenb">409</div><div class="codeline">&nbsp;</div><div class="clear"></div>
@ -1568,13 +1568,13 @@ h1.textidote {
<div class="linenb">446</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">447</div><div class="codeline">Bei einer virtuellen Maschine (VM) werden alle Komponenten der Maschine simuliert, was die Nutzung anderer Betriebssysteme ermöglicht.</div><div class="clear"></div>
<div class="linenb">448</div><div class="codeline">Dies beinhaltet auch die Abstraktion von Speichermedien und anderen Geräten.</div><div class="clear"></div>
<div class="linenb">449</div><div class="codeline">Eine virtualisierte Umgebung erzeugt kleine <span class="highlight" title="Möglicher Tippfehler gefunden. (34319) [lt:de:GERMAN_SPELLER_RULE]">Performanceverluste</span> durch die Abstraktion.</div><div class="clear"></div>
<div class="linenb">449</div><div class="codeline">Eine virtualisierte Umgebung erzeugt kleine <span class="highlight" title="Möglicher Tippfehler gefunden. (34318) [lt:de:GERMAN_SPELLER_RULE]">Performanceverluste</span> durch die Abstraktion.</div><div class="clear"></div>
<div class="linenb">450</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">451</div><div class="codeline">Eine Containerumgebung nutzt den Kernel des Hostsystems mit, was die Virtualisierung auf die Ebenen über dem Betriebssystem beschränkt.</div><div class="clear"></div>
<div class="linenb">452</div><div class="codeline">Die auszuführende Umgebung muss also mit dem Systemkernel lauffähig sein, um in einem Container ausgeführt werden zu können.</div><div class="clear"></div>
<div class="linenb">453</div><div class="codeline">Die <span class="highlight" title="Möglicher Tippfehler gefunden. (34628) [lt:de:GERMAN_SPELLER_RULE]">Performanceverluste</span> dieser Umgebung sind kleiner als die einer virtuellen Maschine, da grundlegende Teile des Systems nicht mehrfach ausgeführt werden müssen.</div><div class="clear"></div>
<div class="linenb">453</div><div class="codeline">Die <span class="highlight" title="Möglicher Tippfehler gefunden. (34627) [lt:de:GERMAN_SPELLER_RULE]">Performanceverluste</span> dieser Umgebung sind kleiner als die einer virtuellen Maschine, da grundlegende Teile des Systems nicht mehrfach ausgeführt werden müssen.</div><div class="clear"></div>
<div class="linenb">454</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">455</div><div class="codeline">Da bereits eine Linux-Maschine zur Entwicklung vorhanden ist, wäre die Virtualisierung eines weiteren Linux-Kernels nur mit weiterem <span class="highlight" title="Möglicher Tippfehler gefunden. (34921) [lt:de:GERMAN_SPELLER_RULE]">Performanceverlust</span> verbunden.</div><div class="clear"></div>
<div class="linenb">455</div><div class="codeline">Da bereits eine Linux-Maschine zur Entwicklung vorhanden ist, wäre die Virtualisierung eines weiteren Linux-Kernels nur mit weiterem <span class="highlight" title="Möglicher Tippfehler gefunden. (34920) [lt:de:GERMAN_SPELLER_RULE]">Performanceverlust</span> verbunden.</div><div class="clear"></div>
<div class="linenb">456</div><div class="codeline">Außerdem soll in der Virtualisierungsumgebung Grafikbeschleunigung genutzt werden, wozu in einer VM eine Grafikkarte an das Zielsystem durchgereicht wird, die dann von der VM exklusiv genutzt wird.</div><div class="clear"></div>
<div class="linenb">457</div><div class="codeline">In einer Containerumgebung kann die Grafikeinheit des Hostsystems mit genutzt werden, indem das durch das Hostsystem bereits abstrahierte Gerät in den Container hereingereicht werden.</div><div class="clear"></div>
<div class="linenb">458</div><div class="codeline">&nbsp;</div><div class="clear"></div>
@ -1584,20 +1584,20 @@ h1.textidote {
<div class="linenb">462</div><div class="codeline">Ein Container wird in Docker über sogenannte Build-Files definiert.</div><div class="clear"></div>
<div class="linenb">463</div><div class="codeline">Das Build-File enthält exakte Instruktionen, wie der Container aus anderen Containern, Dateien oder einer Kombination beider erstellt werden kann.</div><div class="clear"></div>
<div class="linenb">464</div><div class="codeline">Der so erstellte Container wird anhand dieser Definition durch den Host erstellt.</div><div class="clear"></div>
<div class="linenb">465</div><div class="codeline">Um diesen Prozess weiter zu beschleunigen, ist auch der Einsatz eines <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bildervers] (35948) [lt:de:GERMAN_SPELLER_RULE]">Buildservers</span> möglich, der benötigte Container als Download bereitstellt.</div><div class="clear"></div>
<div class="linenb">465</div><div class="codeline">Um diesen Prozess weiter zu beschleunigen, ist auch der Einsatz eines <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bildervers] (35947) [lt:de:GERMAN_SPELLER_RULE]">Buildservers</span> möglich, der benötigte Container als Download bereitstellt.</div><div class="clear"></div>
<div class="linenb">466</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">467</div><div class="codeline">Jeder Container enthält ein eigenes Dateisystem, das aus dem im <span class="highlight" title="Uneinheitliche Verwendung von Bindestrichen. Der Text enthält sowohl 'Buildfile' als auch 'Build-File'.. Suggestions: [Build-File] (36086) [lt:de:DE_COMPOUND_COHERENCY]">Buildfile</span> definierten Dateien und einem Overlay besteht.</div><div class="clear"></div>
<div class="linenb">467</div><div class="codeline">Jeder Container enthält ein eigenes Dateisystem, das aus dem im <span class="highlight" title="Uneinheitliche Verwendung von Bindestrichen. Der Text enthält sowohl 'Buildfile' als auch 'Build-File'.. Suggestions: [Build-File] (36085) [lt:de:DE_COMPOUND_COHERENCY]">Buildfile</span> definierten Dateien und einem Overlay besteht.</div><div class="clear"></div>
<div class="linenb">468</div><div class="codeline">In diesem Overlay werden temporär Änderungen gespeichert, die am Container während dessen Laufzeit vorgenommen werden.</div><div class="clear"></div>
<div class="linenb">469</div><div class="codeline">Sofern nicht definiert, werden diese Änderungen beim Neustart des Containers wieder entfernt.</div><div class="clear"></div>
<div class="linenb">470</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">471</div><div class="codeline">Um dies zu vermeiden, kann entweder ein <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Volumen, Folgte, Volute, Volle, Blume, Kolumne, Vollem, Volke, Vollmer, Volumens, Forme, Votums, Flute, Holme, Velum, Velums, Volte, Zölome, Filme] (36397) [lt:de:GERMAN_SPELLER_RULE]">Volume</span>, eine Art virtuelles Laufwerk in einem Systemverzeichnis des Hostsystems, oder ein ``bind <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Mount, rund, Bund, Fund, Hund, Mund, out, bunt, kund, wund, munde, Bunt, Lund, Rund, Sound, Sund, Wund, mounte, muht] (36494) [lt:de:GERMAN_SPELLER_RULE]">mount</span>'' eingerichtet werden.</div><div class="clear"></div>
<div class="linenb">472</div><div class="codeline">Ein ``bind <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Mount, rund, Bund, Fund, Hund, Mund, out, bunt, kund, wund, munde, Bunt, Lund, Rund, Sound, Sund, Wund, mounte, muht] (36534) [lt:de:GERMAN_SPELLER_RULE]">mount</span>'' ist eine direkte Verbindung zu einem Ort des Host-Dateisystems, dass in den Container hereingereicht wird.</div><div class="clear"></div>
<div class="linenb">471</div><div class="codeline">Um dies zu vermeiden, kann entweder ein <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Volumen, Folgte, Volute, Volle, Blume, Kolumne, Vollem, Volke, Vollmer, Volumens, Forme, Votums, Flute, Holme, Velum, Velums, Volte, Zölome, Filme] (36396) [lt:de:GERMAN_SPELLER_RULE]">Volume</span>, eine Art virtuelles Laufwerk in einem Systemverzeichnis des Hostsystems, oder ein ``bind <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Mount, rund, Bund, Fund, Hund, Mund, out, bunt, kund, wund, munde, Bunt, Lund, Rund, Sound, Sund, Wund, mounte, muht] (36493) [lt:de:GERMAN_SPELLER_RULE]">mount</span>'' eingerichtet werden.</div><div class="clear"></div>
<div class="linenb">472</div><div class="codeline">Ein ``bind <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Mount, rund, Bund, Fund, Hund, Mund, out, bunt, kund, wund, munde, Bunt, Lund, Rund, Sound, Sund, Wund, mounte, muht] (36533) [lt:de:GERMAN_SPELLER_RULE]">mount</span>'' ist eine direkte Verbindung zu einem Ort des Host-Dateisystems, dass in den Container hereingereicht wird.</div><div class="clear"></div>
<div class="linenb">473</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">474</div><div class="codeline"><span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Docker-Pompöse, Docker-Combos, Docker-Pompösen, Docker-Combo, Docker-Kompost] (36650) [lt:de:GERMAN_SPELLER_RULE]">Docker-Compose</span> stellt eine Erweiterung von Docker dar.</div><div class="clear"></div>
<div class="linenb">474</div><div class="codeline"><span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Docker-Pompöse, Docker-Combos, Docker-Pompösen, Docker-Combo, Docker-Kompost] (36649) [lt:de:GERMAN_SPELLER_RULE]">Docker-Compose</span> stellt eine Erweiterung von Docker dar.</div><div class="clear"></div>
<div class="linenb">475</div><div class="codeline">Diese Erweiterung verwaltet die Inbetriebnahme der Container über ein spezielles Dateiformat.</div><div class="clear"></div>
<div class="linenb">476</div><div class="codeline">Eine solche Funktion erlaubt das wiederholte Einrichten von Containern mit gleichen Parametern.</div><div class="clear"></div>
<div class="linenb">477</div><div class="codeline">In dieser Datei werden weitere Optionen angegeben, die in die Umgebung des laufenden Containers eingreifen.</div><div class="clear"></div>
<div class="linenb">478</div><div class="codeline">Dazu gehört zum Beispiel das automatisierte Übergeben von Umgebungsvariablen, Einrichten von Netzwerkumgebungen und Erstellen von <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Volumen, Volumens, Holmes, Volkes, Volles, Vollmer, Vollmers, Votums, Velums, Volute, Voluten, Values] (37133) [lt:de:GERMAN_SPELLER_RULE]">Volumes</span> und ``bind <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bunds, munde, Funds, Hunds, Lunds, Munds, Sounds, Sunds, mounte, muss, rund, Kunst, Bund, Bundes, Funde, Mount, runde, Fund, Hund] (37152) [lt:de:GERMAN_SPELLER_RULE]">mounts</span>''.</div><div class="clear"></div>
<div class="linenb">478</div><div class="codeline">Dazu gehört zum Beispiel das automatisierte Übergeben von Umgebungsvariablen, Einrichten von Netzwerkumgebungen und Erstellen von <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Volumen, Volumens, Holmes, Volkes, Volles, Vollmer, Vollmers, Votums, Velums, Volute, Voluten, Values] (37132) [lt:de:GERMAN_SPELLER_RULE]">Volumes</span> und ``bind <span class="highlight" title="Möglicher Tippfehler gefunden.. Suggestions: [Bunds, munde, Funds, Hunds, Lunds, Munds, Sounds, Sunds, mounte, muss, rund, Kunst, Bund, Bundes, Funde, Mount, runde, Fund, Hund] (37151) [lt:de:GERMAN_SPELLER_RULE]">mounts</span>''.</div><div class="clear"></div>
<div class="linenb">479</div><div class="codeline">&nbsp;</div><div class="clear"></div>
<div class="linenb">480</div><div class="codeline">Diese Automatisierung erleichtert die initiale Einrichtung eines Containers auf einem neuen System, da alle benötigten Aspekte leicht angepasst werden können.</div><div class="clear"></div>
</div>

View File

@ -59,3 +59,6 @@ iisy
IDLE
MOVEMENT
state}
Subtree
Blackboard
Subtrees

View File

@ -132,10 +132,10 @@ Dies vereinfacht die spätere Wartung des Projekts.
\subsection{Auswahl}
Als Simulationsumgebung eignen sich verschiedenen Programme, die sich hinsichtlich ihres Funktionsumfangs stark unterscheiden.
Hierfür kommen beispielsweise dedizierte Werkzeuge zur Robotersimulation, aber auch universell einsetzbare Gameengines in Frage.
Hierfür kommen beispielsweise dedizierte Werkzeuge zur Robotersimulation, aber auch universell einsetzbare Gameengines infrage.
Ein Vergleich dieser Werkzeuge ist hierbei sinnvoll, da sich der gebotene Funktionsumfang der Softwares stark unterscheidet.
Auch andere Aspekte, wie Lizenzen oder die schwer bewertbare Nutzerfreundlichkeit, sind hierbei zu betrachten.
Eine Auswahl der als Simulationsumgebung in Frage kommenden Programme wird hier vorgestellt.
Eine Auswahl der als Simulationsumgebung infrage kommenden Programme wird hier vorgestellt.
CoppeliaSim \cite{coppelia}, früher auch V-REP genannt, ist eine Robotersimulationsumgebung mit integriertem Editor und ROS-Unterstützung.
Es unterstützt viele Sprachen (C/C++, Python, Java, Lua, Matlab oder Octave) zur Entwicklung von Erweiterungen des Simulators.
@ -147,7 +147,7 @@ Gazebo Ignition \cite{gazebo} ist wie CoppeliaSim eine Robotersimulationsumgebun
Gazebo setzt wie CoppeliaSim auf Erweiterungen, um zusätzliche Funktionen einbinden zu können.
So existiert zum Beispiel auch eine ROS-Brücke, die die Anbindung an ROS ermöglicht.
Auch hier unterstützt der Simulator nur Animationen für menschliche Aktoren.
Das Projekt ist Open Source, unter der Apache Lizenz (Version 2.0), was die Verwendung in jeglichen Szenarien erleichtert.
Das Projekt ist Open Source, unter der Apache-Lizenz (Version 2.0), was die Verwendung in jeglichen Szenarien erleichtert.
Unity \cite{unity} hingegen ist primär eine Grafikengine für die Nutzung in Computerspielen.
Es existieren mehrere Systeme zur Anbindung der Engine an ROS, vor allem das offizielle ``Robotics Simulation''-Paket und ZeroSim.
@ -211,7 +211,7 @@ Lichter besitzen einen Lichttyp, der die Ausbreitung des Lichtes im Raum bestimm
Die erste Art ist direktionales Licht, dass parallel zur gewünschten Achse auftrifft.
Solche Lichter werden vor allem zur grundlegenden Raumausleuchtung genutzt.
Weiterhin sind Punktlichtquellen verfügbar, deren Licht von einer Position im Raum ausgeht.
Neben den Punklichtquellen existieren auch noch Spots, die nur einen gewissen Winkel ausleuchten.
Neben den Punktlichtquellen existieren auch noch Spots, die nur einen gewissen Winkel ausleuchten.
Die Actor-Komponente wird für animierte Modelle in der Simulation eingesetzt.
Sie besteht aus einem Namen für das Modell, einer Skin, welche das Aussehen des Modells definiert und mehreren Animationen.