3D Modellierung eines AlphaBot
Autor: Sefa Hasan Demiroez
Betreuer: Prof. Schneider
Art: Praxissemester
Projektlaufzeit: 02.11.2021 - 20.02.2022
Einleitung
Dieser Artikel beschreibt die Vorgehensweise zum Erstellen eines repräsentativen Modells für einen Alphabot mit dem Programm Solidworks (siehe Abb.1). Damit ist es die Grundlage für ein Simulationsmodell, um im Weiteren in Webots simuliert zu werden. Essenziel für das Modell sind die Vorgaben, dass es geometrisch so genau wie möglich und bewegungsfähig ist. Um dies zu erreichen, muss man sich Gedanken auf die generelle Vorgehensweise machen. Im ersten Schritt wird eine handschriftliche Skizze angefertigt, um einen Überblick zu bekommen. Daraufhin muss man klar definieren welche Bauteile beweglich seien sollen, um sie separat zu modellieren. Die separaten Bauteile werden zum Schluss wieder zu einer Baugruppe zusammengefügt und mit Webots verknüpft.
Übersicht
Notwendige Eigenschaften des Modells
Für das Modell ist es essenziel mit den genauen geometrischen Maßen zu zeichnen, da ansonsten hinterher in der Realität es zu Fehlern kommen kann, die in der Simulation nicht angezeigt werden. Ebenso wichtig für das Modell ist es beweglich zu sein. Die beiden Räder müssen eine klare Drehbewegung ausführen können und der Sensor muss um 180° drehbar sein. Außerdem ist zu beachten, dass man ein Modellierungsprogramm in Betracht zieht welches kompatibel mit dem Simulationsprogramm ist.
Realisierungsmöglichkeiten
Eine Möglichkeit den AlphaBot zu realisieren ist, die komplizierte Geometrie des AlphaBots zu vereinfachen. Durch eine Vereinfachung des Körpers erlangt man zwar nicht die höchstmögliche Genauigkeit, jedoch ist es anfängerfreundlicher die vereinfachte Geometrie zu modellieren. Eine weitere Möglichkeit den AlphaBot in Modellform zu verwirklichen, bietet das Feature "Autotrace". Mithilfe dieser Funktion bekommt man eine höhere Genauigkeit, jedoch kann man darauf in der Solidworksversion 2020 nicht zugreifen.
Klärung theoretischer Grundlagen
Wenn man das Programm öffnet wird man als erstes gefragt ob man ein Modell zu einem " Teil " oder eine ganze " Baugruppe" erstellen möchte. Ein Teil ist nur Element von vielen aus einer ganzen Baugruppe. Eine Baugruppe ist ein Zusammenschluss von mehreren Teilen.
Am Anfang des Modellierens stellt sich die Frage ob man das Modell in mehrere Teile unterteilen möchte oder ob man direkt eine in sich geschlossene Baugruppe erstellen möchte (siehe Abb.2). In vielen Fällen ist es leichter die Baugruppe in mehrere Teile zu unterteilen, da man auch in Funktionen von verschiedenen Teilen unterscheiden kann. In diesem Projekt hat es mehr Sinn ergeben die Baugruppe zu unterteilen, da das Modell sowohl unbewegliche als auch bewegliche Teile inne hat.
Nachdem man sich nun entschieden hat ein Teil oder eine Baugruppe zu erstellen öffnet sich ein neues Fenster. In der Mitte des Fensters (vergleiche Abb.3) ist der Graphikbereich, wo das Modell erstellt wird. Der Graphikbereich dient dazu das Modell abzubilden. Mithilfe des Scrollrades kann man das Modell von verschiedenen Winkeln betrachten. Wichtig ist, dass man das Scrollrad gedrückt hält und die Maus in gewünschter Richtung bewegt.
Überhalb des Graphikbereichs befinden sich die Werkzeuge für das Erstellen des Modells (siehe Abb.4). Die Werkzeuge werden in verschiedenen Anwendungen unterschieden welche man über die Registerkarten erreichen kann. Die Hauptsächlich relevanten Anwendungen sind die "Skizze" , "Features" und "Solidworks Zusatzanwendungen".
Um nun die Zeichnung zu starten, muss man eine Ebene auswählen in der die Zeichnung sich befinden soll. Typischerweise bevorzugt man die Ebene vorne, da man hinterher einen besseren Blick auf die Zeichnung hat. Die Ebene wird auf der linken Seite des Bildschirmes ausgewählt. Nachdem die Ebene ausgewählt wurde, kann man über das Werkzeug "Skizze" auf elementare Geometrieen wie zum Beispiel Linie oder Viereck zu greifen. Wichtig ist, dass man in Solidworks alle relevanten Längen bemaßt. Ohne eine präzise Bemaßung der Zeichnung lassen sich zukünftige Features nicht anwenden. Das Bemaßen findet man ebenso unter dem Werkzeug "Skizze" als "Intilligente Bemaßung". Man erkennt eine richtig bemaßte Zeichnung anhand der Beschreibung als "voll definiert". Ebenso werden die Kanten der Zeichnung schwarz gefärbt.
Mithilfe des Features "linear ausgetragener Aufsatz" lassen sich zwei dimensionale Zeichnungen in 3 dimensionale Körper überführen. Die Dicke kann man im Menü daraufhin einstellen.
Autotrace
Autotrace ist eine Funktion, um schwer umsetzbare und komplizierte Gemoetrien einfach zu modellieren. Damit man die Funktion nutzen kann, wird ein Bild benötigt. Dieses Bild dient als Vorlage, um anhand der Kanten der Fläche die Form zu realisieren. Für den Fall eines AlphaBots kann man die "Grundfläche" des AlphaBots aufschrauben und davon ein Foto machen, damit man Autotrace nutzen kann. Ein hilfreiches Tutorial für die Anwendung und Nutzung von Autotrace findet man hier [1]. Im Folgenden wurde jedoch auf diese Feature verzichtet, da man mit der aktuellen Version von Solidworks nicht darauf zugreifen kann. Anhand des Videos kann man erkennen, dass Autotrace mit Solidworks 2014 funktioniert. Aus diesem Grund wäre es ratsam die alte version von 2014 herunnterzuladen, um die bestmögliche Genauigkeit zu erreichen. Anstelle dessen wurde auf eine vereinfachte Form des Alphabots zurückgegriffen.
Lösungswege
Es stehen 3 Lösungswege zur Verfügung. Eine Möglichkeit wäre es mithilfe der Autotrace-Funktion den Alphabot zu modellieren. Die zwiete Möglichkeit ist den AlphaBot händisch zu zeichnen, welches tiefes Verständnis und viel Erfahrung mit dem Modellierungsprogramm Solidworks voraussetzt. Die letzte Möglichkeit ist es die Geometrie des Alphabots zu vereinfach, und die vereinfachte Geometrie zu modellieren.
Begründüng des Lösungsweges
Dadurch dass man auf die Funktion Autotrace nicht zugreifen konnte und es an praktischer Erfahrung mit Solidworks gefehlt hat wurde der 3. Lösungsweg als ausreichende Alternative ausgewählt.
Schritt für Schritt Erklärung zu dem fertigen Modell
Vor dem Arbeiten mit dem Programm ist es empfehlenswert eine handschriftliche Skizze der Zeichnung anzufertigen, um einen besseren Überblick zu bekommen. Für diesen Schritt ist es notwendig alle Maße des Alphabots präzise abzumessen und ordnungsgerecht einzutragen. Wichtig sind die Skizzen für die Grundfläche, die Räder und des Sensors des AlphaBots. Dementsprechend wurden auch 3 verschiedene Bauteile erstellt die man hinterher zu einer Baugruppe definieren muss. Die Folgende Anleitung beschreibt Schritt für Schritt wie man von einer einfachen Skizze zu dem späteren Modell gelangt.
1. Grundfläche skizzieren und bemaßen
2. Das Werkzeug " Linear ausgetragener Aufsatz" verwenden
3. Säulen skizzieren
4. Säulen linear austragen
Nachdem man nun die Grundfläche zusammen mit den Säulen fertig modelliert hat, muss man eine neue Skizze anfangen. Die neue Skizze beschäftigt sich mit der Ablagefläche des Sensors.
5. Ablagefläche für den Sensor erstellen
6. Ablagefläche linear austragen
7. Kontaktkörper erstellen
8. Kontaktkörper linear austragen
Nun ist der unbewegliche Teil des Alphabets fertig skizziert. Es müssen nur noch die 2 Teile miteinander verbunden werden. Dies geschieht durch das Öffnen einer neuen Skizze, dieses mal aber als "Baugruppe". Innerhalb dieser Skizze müssen die zwei Bauteile eingefügt werden. Daraufhin werden die zwei Bauteile mit der Funktion "Verknüpfung" verbunden. Wichtig ist, dass man das Feature "deckungsgleich" verwendet und dass Flächen nur mit Flächen und Kanten nur mit Kanten verknüpft werden sollten.
In Abb.18 sieht man den fertigen Body.
Als nächstes werden die beweglichen Teile des AlphaBots modelliert.
9. Reifen skizzieren
10. Reifen linear austragen
11. Sensor Grundfläche skizzieren
12. Sensor Grundfläche linear austragen
13. Sensorhalterung skizzieren
14. Sensorhalterung linear austragen
15. Sensoren skizzieren
16. Sensoren linear austragen
Im letzten Schritt werden alle drei Bauteile wieder verknüpft, analog zu der vorher erklärten Vorgehensweise. Man erhält somit den fertigen Alphabot.
Bewegungsstudie in Solidworks
Nachdem man das Modell fertig modelliert hat, kann man mithilfe der Funktion "Bewegungsstudie" überprüfen, ob sich die Teile wie gewünscht bewegen. Eine Einführung zu der Funktion "Bewegungsstudie findet man hier[2].
Das Video zu der Bewegungsstudie dieses Projekts findet man hier [3].
Modell mit Webots verknüpfen
Das Modell lässt sich einfach mit Webots verknüpfen. Um es zu verknüpfen ist es erforderlich das Modell in einer der folgenden Dateiformen abzuspeichern.
In unserem Fall haben wir die Dateiform wrl benutzt. Nachdem man das Modell in der richtigen Dateiform gespeichert hat muss man nun in Webots auf den über den Reiter "File" auf "Import 3D-Modell".
Wichtig zu beachten ist hierbei, dass man auch hier die beweglichen Teile des Alphabots einzeln einfügt, da sich später nur diese Teile sich drehen sollen und. Also haben wir im Prinzip 3 verschiedene Bauteile. Der "Body" der starr bleibt und sich in keiner Art und Weise bewegt und die Reifen die sich drehen müssen genauso wie der Sensor.
Nachdem man nun alle Bauteile mit Webots verknüpft hat fehlt es nur noch die Bauteile miteinander zu fixieren und den Motor in die Räder zu implementieren.Man fixiert die Bauteile mit der "anchor" node. Den Motor fügt man mithilfe eines "Hingejoints" hinzu. Der Hingejoint wird nur für die beweglichen Teile hinzugefügt. Wenn man alle Schritte einhält, dann ist man in der Lage mithilfe eines Controllers dafür sorgen können, dass das Modell sich wie gewünscht bewegt.
In der Abb. 30 wird ein Beispiel Code gezeigt in dem sich das AlphaBot-Modell geradlinig bewegt.
Bei dem Programmieren eines Codes ist es wichtig die beweglichen Teile im ersten Schritt zu definieren. Daraufhin wird die Geschwindigkeit nach belieben eingestellt. In Abb. 30 erkennt man, dass die Geschwindigkeit negativ ist. Dies ist durch die Ausrichtung des Koordinatensystems zu begründen.
Das Video zu der Simulierung des Alphabots findet man hier [4].
Demo
Software
Solidworks 2013-2014 [5] Webots [6]
Zusammenfassung
Zusammenfassend lässt sich sagen, dass der AlphaBot erfolgreich modelliert und in eine Webots Umgebung implementiert wurde. Dieser Schritt ist notwendig, um in den nächsten Schritten einen Code zu schreiben, der dem AlphaBot es ermöglicht autonom zu fahren. Die bei dem Ausblick angegebenen Punkte sind Eigenschaften, welche Verbesserungsbedarf haben und die in der Zukunft in Angriff genommen werden müssen.
Ausblick
Das Modell ist simulationsfähig realisiert worden, jedoch gibt es noch Verbesserungbedarf. Die geometrische Genauigkeit ist nicht auf höchst Niveau, dies sollte man in der Zukunft in Angriff nehmen. Um die Genauigkeit zu steigern sollte man entweder auf eine Version von Solidworks zurückgreifen, die Autotrace unerstützt oder nach einem alternativen Programm suchen, welche eine ähnliche Funktion unterstützt. Eine weitere Verbesserung kann man im Bereich der Stimulierung vornehmen. Man erkennt, dass das hintere Ende des Modells die Ebene berührt. Man sollte einen Körper unter dem Alphabot einfügen der dieses Schleifen verhindert. Den Körper kann man entweder direkt in Solidwork modellieren oder man fügt in Webots eine Kugel unter den Body hinzu und fixiert die Kugel unter den Body. Wichtig dabei ist, dass man den Körper mithilfe der "Boundingobject" node zu einem Körper mit Kontaktoberfläche einstellt. Letztlich ist ebenso wünschenswert, dass sich der Sensor ebenfalls bewegt. Dies lässt sich durch einen entsprechenden Webots Code realisieren.
Eigenreflexion
Im Folgenden wir beschrieben welche Kompetenzen ich durch das Praxissemester erlebt habe und welche ich gegebenenfalls weiterentwickeln konnte. Die Vorgabe für das Praxissemester war es ein Alphabet autonom fahren lassen, welcher von dem Roboter Operating-System 2 angesteuert wird. Dementsprechend war es essenziell sich mit dem Roboter Operating System auseinanderzusetzen. Dies taten wir durch die entsprechenden Tutorials zur Einarbeitung von ROS2. Durch die Tutorials habe ich elementare Kompetenzen erworben, wie zum Beispiel das Erstellen einer Node oder das Schreiben eines Publishers. Aufgrund dessen habe ich neue Programmiersprache (Python) kennengelernt, welche eine hohe Relevanz für mein späteres Berufsleben als Ingenieur hat.
Daraufhin haben wir unser erstes eigenes Modell entworfen mit dem CAD-Programm Solidworks. Mithilfe meines Vorwissens durch ein CAD Praktikum an der Hochschule Hamm-Lippstadt war ich in der Lage mein gelerntes Wissen umzusetzen und konnte somit ein geeignetes Modell für den AlphaBot erstellen. Ebenso habe ich gelernt wie man eine Bewegungsstudie durchführt und erste Erfahrungen mit der Funktion "Autotrace" gesammelt, welches hilfreiches Wissen für mein späteres Berufsleben sein kann.
Um nun das erstellte Modell nutzen zu können musste man sich mit dem Simulationsprogramm "Webots" bekannt machen. Dies haben wir ebenfalls über Tutorials erledigt. Mithilfe von Webots war es uns möglich erste Codes zum autonomen Fahren zu simulieren. Webots ist somit die Brücke zwischen CAD-Zeichnung und einem CAD-Modell. Durch Webots habe ich gelernt wie man ein Modell für eine bestimmte Umgebung mithilfe eines Controllers simulieren und nach meiner Vorstellung anpassen kann. Dies ist eine sehr wichtige Erfahrung, da man in den meisten Fällen eine CAD-Zeichnung erstellt, um später mit der Zeichnung weiterzuarbeiten.
Nachdem man sich nun das nötige Softwarewissen angeeignet hat, war es wichtig sich mit der Hardware des Alphabets zu beschäftigen. Neben dem infrarot-, Ultraschall- oder LiDAR-Sensor war die wichtigste Komponente unseres Roboters der Raspberry PI 4. Durch das Arbeiten mit der Hardware wurden mir Prozesse viel bewusster, wie zum Beispiel das Registrieren eines Signals oder die Weiterverarbeitung des Signals. Durch dieses tiefere Verständnis, habe ich Kernkompetenzen im Bereich " Autonomes Fahren " gesammelt.
Weiterführende Links
→ zurück zum Hauptartikel: Praxissemester Projektteam WS2021