|
|
(40 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
|
| |
|
| '''Autor:''' Jonas Gerken<br/>
| |
|
| |
| [[Datei:Rundkurs_Null.jpg|mini|400px|Abb. 1: Darstellung des Rundkurses 0]]
| |
|
| |
| Das Ziel dieses Abschnittes besteht darin, einen Ovalen Rundkurs in dem Simulink 3D World Editor zu modellieren.
| |
|
| |
| Dazu wird erklärt, was der Simulink 3D Editor ist und wie der Rundkurs in dem Editor modelliert wurde.
| |
|
| |
|
| |
| == Simulink 3D World Editor ==
| |
|
| |
|
| |
|
| |
| Der Simulink 3D-Editor ist ein wichtiges Tool, das es Entwicklern ermöglicht, 3D virtuelle Umgebungen zu erstellen und zu bearbeiten. Er ist Teil der Simulink 3D Animation-Erweiterung von MathWorks und spielt eine entscheidende Rolle bei der Visualisierung von Simulink-Modellen in einer 3D-Umgebung.
| |
|
| |
| Die Software unterstützt verschiedene 3D-Modellierungsformate, darunter das VRML-Format (Virtual Reality Modeling Language) und das STL-Format (Stereolithography). Durch diese Unterstützung können 3D-Modelle aus anderen Anwendungen in den Simulink 3D-Editor importiert oder von dort exportiert werden. Dies ermöglicht eine nahtlose Integration von Modellen und Szenen aus verschiedenen Quellen und fördert die Wiederverwendbarkeit von vorhandenen Modellen.
| |
|
| |
| Link: [https://de.mathworks.com/help/sl3d/the-3d-world-editor.html Simulink 3D World Editor]
| |
|
| |
| == Plattform erstellen ==
| |
|
| |
|
| |
|
| |
| [[Datei:Plattform.jpg|mini|500px|Abb. 2: Plattform]]
| |
|
| |
|
| |
| Der erste Schritt, um den Rundkurs zu erstellen, ist es eine 3D-Plattform zu modellieren, die als Grundlage für die Fahrzeugstrecke dienen soll.
| |
|
| |
|
| |
|
| |
| Für die Plattform wird zunächst der Boden modelliert. Dazu wird eine Box-Node verwendet, die es ermöglicht, eine einfache geometrische Box in der 3D-Szene zu erzeugen. Die Vorgehensweise zur Erstellung einer Box-Node kann in der verlinkten Ressource unter dem Abschnitt "Add Node" nachgelesen werden.
| |
|
| |
| Link: [https://de.mathworks.com/help/sl3d/example-of-building-a-virtual-world-and-connecting-it-to-a-simulink-model.html#bszuo7j: Box-Node erstellen]
| |
|
| |
|
| |
| Nachdem die Box-Node erstellt wurde, kann sie auf die gewünschte Größe angepasst werden, wie in (Abb. 2) gezeigt.
| |
|
| |
| Anschließend wird die Farbe der Plattform auf Schwarz geändert. Dazu unter dem Reiter Material unter den 3 Color-Bereichen deffuseColor, emissiveColor und specularColor Schwarz auswählen und auf Apply klicken.(Abb. 3)
| |
|
| |
| [[Datei:Farbe_ändern.jpg|left|mini|200px|Abb. 3: Farbe ändern]]
| |
|
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
|
| |
| Damit die Plattform Sichtbar bleibt, muss die Hintergrundfarbe geändert werden, was durch eine Background-Node ermöglicht wird. (Abb. 4)
| |
| # Rechtsklick auf Root
| |
| # Add Node
| |
| # Bindable
| |
| # Background
| |
|
| |
| [[Datei:Hintergrund.jpg|left|mini|300px|Abb. 3: Hintergrund hinzufügen]]
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| Unter dem hinzugefügten Hintergrund kann nun die Farbe "SkyColor" geändert werden.
| |
|
| |
| <br/>
| |
|
| |
| [[Datei:Group_Node_erstellen.jpg|mini|500px|Abb. 4: Wand erstellen]]
| |
|
| |
| Um die 3D-Welt besser zu strukturieren, können Group-Nodes genutzt werden. So können alle Elemente eines bestimmten Bereichs unter einer Group-Node zusammengefasst werden.
| |
| Eine Group-Node kann wie folgt erstellt werden (Abb. 3):
| |
|
| |
| # Rechtsklick auf die ROOT-Node
| |
| # Add Node
| |
| # Group
| |
| # Linksklick auf Group
| |
|
| |
| Die Plattform kann nun in die Group-Node verschoben werden.
| |
|
| |
| # Rechtsklick auf die Plattform
| |
| # Cut
| |
| # Rechtsklick auf die children Node der Group
| |
| # Paste
| |
|
| |
| [[Datei:Wall_erstellen.jpg|mini|500px|Abb. 4: Wand erstellen]]
| |
|
| |
| == Wände erstellen ==
| |
|
| |
| Nach der Fertigstellung der Plattform werden Wände an jeder Seite der Plattform innerhalb der dazugehörigen Group-Node erstellt.
| |
|
| |
| Diese Wände dienen der Abgrenzung der Plattform und werden in Form von Box-Nodes erstellt, deren Abmessungen entsprechend der <br/> Plattformseiten angepasst werden. (Abb. 4)
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
|
| |
| == Fahrbahn ==
| |
|
| |
| [[Datei:Indexed_Face_Set_Node_erstellen.jpg|mini|500px|Abb. 5: Indexed_Face_Set_Node_erstellen]]
| |
|
| |
| Zur Erstellung der Fahrbahn und der Fahrbahnabgrenzungen wurde eine sogenannte [http://www.uco.es/investiga/grupos/eatco/automatica/ihm/cursovrml/frmindfs.htm Indexted Face Set-Node] verwendet.
| |
| Mit einer solchen Node können mit Hilfe des vorgegebenen Koordinatensystems verschiedene komplexe Objekte modelliert werden. Das ermöglicht es die Kurven einfacher und präziser zu modellieren.
| |
| Als Vorlage wurde das Beispiel "vr_octavia" genutzt, welches über die Matlab-Console mit dem gleichnamigen Befehl aufgerufen werden kann.
| |
|
| |
| Dazu wird in Abb. 5 erklärt wie eine solche Node erstellt werden kann.
| |
| Die Indexted Face Set-Node wird zudem in einer Group Node erstellt, um alle Teile, die zur Fahrbahn dazugehören, zusammenzufassen.
| |
|
| |
| <br/>
| |
| <br/>
| |
|
| |
| # Shape-Node in children der Group-Node erstellen (siehe Box-Node erstellen)
| |
| # unter Shape-Node rechtsklick auf Geometry
| |
| # Add Node
| |
| # geometry
| |
| # linksklick auf Indexed Face Set
| |
| # Indexed Face Set -> rechtsklick coord -> Geometry -> linksklick Coordinate
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
| <br/>
| |
|
| |
| [[Datei:Fahrbahn.jpg|mini|500px|Abb. 6: Fahrbahn erstellen]]
| |
|
| |
| Unter dem Punkt coordIndex wird beschrieben wie die Koordinatenpunkte verbunden werden sollen.
| |
| Und unter dem Punkt coordinate werden die Koordinaten eingefügt, welche zusammen die Fahrbahn ergeben sollen.
| |
|
| |
|
| |
| Bei der Erstellung der Fahrbahn werden die Koordinaten aus der bestehenden 2D Simulation verwendet. Um die 3D-Simulation an die reale Welt anzupassen, müssen die einzelnen Koordinaten Punkte mit 100 multipliziert werden.
| |
| Wenn alle Koordinaten richtig in das Indexted Face Set übertragen wurden, sieht die Fahrbahn im 3D World Editor wie folgt aus. (Abb. 6)
| |
|
| |
| [[Datei:Fertige_Fahrbahn.jpg|mini|500px|Abb. 7: Fertige Fahrbahn]]
| |
|
| |
| Die einzelnen Linienbegrenzungen wurden jeweils mit eine Indexed Face Set-Node in der Group-Node der Fahrbahn erstellt.
| |
| Für die Mittellinie wurden aus den Fahrbahn Koordinaten die Mitte berechnet. Damit die Linie breiter wird, wurden die Eckpunkte 0.004 Punkte von der Mitte aus nach oben und unten verschoben.
| |
|
| |
| Bei den Randlinien wurde einfach von den Rand Koordinaten aus die äußere Koordinate um 0.05 Punkte nach außen verschoben.
| |
|
| |
| Die fertige Fahrbahn sieht dann wie in Abb. 7 gezeigt aus.
| |
|
| |
|
| |
|
| |
| <br/>
| |
| ----
| |
| → zurück zum Hauptartikel: [[Entwicklung einer 3D-Simulationsumgebung für autonome Fahrzeuge mit MATLAB/Simulink | BA: Entwicklung einer Simulationsumgebung]]
| |