RoboSoccer Gruppe A1 - WS 17/18: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=='''RobbyTobby'''== =='''Robby Tobby1'''== =='''Robby Tobby2'''==“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=='''RobbyTobby'''==
Im Modul Informatik 2 des Studiengangs Mechatronik ist ein Informatikpraktikum vorgesehen. Im Praktikum wurden Gruppen von bis zu 3 Personen eingeteilt, die sich gemeinsam mit dem Thema autonomes Fahren beschäftigen sollten. Der Gruppe B wurde die Aufgabe gestellt ein Fahrzeug mit Bauteilen von Lego Mindstorms zu konstruieren. Für dieses Fahrzeug sollte dann ein Algorithmus entwickelt werden, mithilfe dessen das Fahrzeug autonom einparken kann.


=='''Robby Tobby1'''==
[[Datei:Fahrzeug_Sose17_B1.png|200px|thumb|right|Fahrzeug]]


=='''Robby Tobby2'''==
==Team und Aufgabenverteilung==
[http://193.175.248.52/wiki/index.php/Benutzer:Luca_Riering Luca Riering]: Programmierung, Dokumentation <br />
[http://193.175.248.52/wiki/index.php/Benutzer:Dominic_Maehling Dominic Mähling]: Programmierung, Konstruktion des Fahrzeugs<br />
[http://193.175.248.52/wiki/index.php/Benutzer:Carolin_Mohs Carolin Mohs]: Programmierung, Konstruktion, Lego Digital Designer
 
==Hardware==
 
[[Datei:Differential_SoSe17_B1.png|200px|thumb|right|Differential]]
 
Als erstes musste ein Fahrzeug mit den Bauteilen von Lego Mindstorms konstruiert werden. Die Konstruktion sollte möglichst an realen PKWs orientiert werden. Vorgaben hierfür waren ein Achsabstand, der doppelt so groß wie die Spurweite sein sollte und ein maximaler Radeinschlag von 40°. Das Fahrzeug hat einen Hinterachsantrieb und eine lenkbare Vorderachse. Die Lenkung wurde über eine direkte Übersetzung mit einem Motor an der Lenkachse realisiert. Diese Variante wurde gewählt, um ein möglichst geringes Lenkspiel zu ermöglichen. An der Hinterachse wurde ein Differential verbaut. Dadurch können die Hinterräder in verschiedenen Geschwindigkeiten drehen, um dadurch wird einen geringeren Wendekreis zu ermöglichen. Dies vereinfacht das einparken in eine kleine Parklücke. Zudem sollten ein Ultraschallsensor und ein Gyrosensor verbaut werden. Der Ultraschallsensor wurde an der rechten Seite verbaut, um an dieser Seite den Abstand zur Wand zur messen und mögliche Parklücken zu finden. Der Gyrosensor wurde an der linken Seite mittig oben verbaut. Der Sensor misst die Querabweichung bei der Geradeaus fahrt und wird für das geregelte Geradeausfahren verwendet.
 
==Fahrzeugparameter==
 
{| class="wikitable"
|-
! style="width:60%"| Parameter      !!  style="width:30%"|Wert
|-
| Länge in mm                      ||style="text-align:center"| 320
|-
| Breite in mm                      ||style="text-align:center"| 160
|-
| Spurweite vorne in mm            ||style="text-align:center"| 125
|-
| Spurweite hinten in mm            ||style="text-align:center"| 125
|-
| Achsabstand in mm                ||style="text-align:center"| 240
|}
 
=Software=
 
Die ersten Praktikumstermine wurde mit Matlab und der zusätzichen Mindstorms NXT Toolbox der RWTH Aachen programmiert. Matlab ist Skript basierte Programmiersprache, die vorrangig genutzt wird um Probleme nummerisch zu lösen. Hier wurde schrittweise ein Programm zum geregelten Fahren und autonomen Einparken mit Computeranbindung entwickelt.
 
In den letzten Praktikumsterminen wurde Simulink genutzt um den evaluierten Programmablaufplan auch ohne Computeranbindung nutzen zu können. Simulink ist eine Umgebung in Matlab, wo anhand von verschiedenen Schaltblöcken, welche logisch miteinander verbunden werden, Programme erstellt werden können.
 
=Einparkkonzept=
 
[[Datei:PAP_InfoB1_SoSe17.png|200px|thumb|right|Programmablaufplan]]
 
 
'''Geradeausfahren und Lücke suchen'''<br />
Der Ultraschallsensor und der Gyrosensor werden vor Beginn der Fahrt kalibriert. Die Kalibrierungswerte wurden experimentell ermittelt und in die Kalibrierungswerte im Simulink-Baustein der Sensoren eingetragen. Beim Start der Fahrt steht das Fahrzeug parallel auf der Fahrbahn. Um eine ungewollte Querabweichung zu vermeiden wird anhand der Werte des Gyrosensors eine Regelung gewährleistet um bei einer Abweichung entsprechend gegenlenken zu können. Während der geregelten Geradeausfahrt misst der Ultraschallsensor den Abstand zu Hindernissen an der rechten Seite. Wenn der Abstand ausreichend ist wird zusätzlich die Länge der Lücke mithilfe des Motordrehgebers gemessen. Ist die Lücke zu klein fährt das Fahrzeug weiter geradeaus und wiederholt die Vorgänge bis eine passende Lücke gefunden wird. Wird eine passende Lücke gefunden muss das Fahrzeug noch ein Stück weiter geradeausfahren, da der Ultraschallsensor nicht ganz hinten am Fahrzeugverbaut ist, und anschließend werden die Motoren gestoppt und der Einparkvorgang beginnt.
 
 
'''Einparken'''<br />
Bei Beginn des Einparkvorgangs werden die Räder um 40° nach rechts eingeschlagen und das Fahrzeug fährt rückwärts, bis das Fahrzeug in einem Winkel von 40° steht. Sobald das Fahrzeug in dem Winkel von 40° steht werden die Räder um 40° nach links eingeschlagen und das Fahrzeug fährt weiterhin rückwärts, bis das Fahrzeug geradesteht. Wenn das Fahrzeug geradesteht, fährt es ein Stück geradeaus um sich mittig in der Parklücke zu positionieren. Danach werden alle Motoren gestoppt und das Fahrzeug hat den Einparkvorgang beenedet.
 
 
=Links=
 
[https://www.youtube.com/watch?v=MS_OXE92Ns8 YouTube-Video]<br />
[https://svn.hshl.de/svn/Informatikpraktikum_2/trunk/Gruppen/SoSe2017/MTR_Inf2P_B1/SoSe17B1%20Abgabe SVN-Ordner]<br />
[http://www.mindstorms.rwth-aachen.de/ RWTH - Mindstorms NXT Toolbox]

Version vom 23. Januar 2018, 18:00 Uhr

Im Modul Informatik 2 des Studiengangs Mechatronik ist ein Informatikpraktikum vorgesehen. Im Praktikum wurden Gruppen von bis zu 3 Personen eingeteilt, die sich gemeinsam mit dem Thema autonomes Fahren beschäftigen sollten. Der Gruppe B wurde die Aufgabe gestellt ein Fahrzeug mit Bauteilen von Lego Mindstorms zu konstruieren. Für dieses Fahrzeug sollte dann ein Algorithmus entwickelt werden, mithilfe dessen das Fahrzeug autonom einparken kann.

Fahrzeug

Team und Aufgabenverteilung

Luca Riering: Programmierung, Dokumentation
Dominic Mähling: Programmierung, Konstruktion des Fahrzeugs
Carolin Mohs: Programmierung, Konstruktion, Lego Digital Designer

Hardware

Differential

Als erstes musste ein Fahrzeug mit den Bauteilen von Lego Mindstorms konstruiert werden. Die Konstruktion sollte möglichst an realen PKWs orientiert werden. Vorgaben hierfür waren ein Achsabstand, der doppelt so groß wie die Spurweite sein sollte und ein maximaler Radeinschlag von 40°. Das Fahrzeug hat einen Hinterachsantrieb und eine lenkbare Vorderachse. Die Lenkung wurde über eine direkte Übersetzung mit einem Motor an der Lenkachse realisiert. Diese Variante wurde gewählt, um ein möglichst geringes Lenkspiel zu ermöglichen. An der Hinterachse wurde ein Differential verbaut. Dadurch können die Hinterräder in verschiedenen Geschwindigkeiten drehen, um dadurch wird einen geringeren Wendekreis zu ermöglichen. Dies vereinfacht das einparken in eine kleine Parklücke. Zudem sollten ein Ultraschallsensor und ein Gyrosensor verbaut werden. Der Ultraschallsensor wurde an der rechten Seite verbaut, um an dieser Seite den Abstand zur Wand zur messen und mögliche Parklücken zu finden. Der Gyrosensor wurde an der linken Seite mittig oben verbaut. Der Sensor misst die Querabweichung bei der Geradeaus fahrt und wird für das geregelte Geradeausfahren verwendet.

Fahrzeugparameter

Parameter Wert
Länge in mm 320
Breite in mm 160
Spurweite vorne in mm 125
Spurweite hinten in mm 125
Achsabstand in mm 240

Software

Die ersten Praktikumstermine wurde mit Matlab und der zusätzichen Mindstorms NXT Toolbox der RWTH Aachen programmiert. Matlab ist Skript basierte Programmiersprache, die vorrangig genutzt wird um Probleme nummerisch zu lösen. Hier wurde schrittweise ein Programm zum geregelten Fahren und autonomen Einparken mit Computeranbindung entwickelt.

In den letzten Praktikumsterminen wurde Simulink genutzt um den evaluierten Programmablaufplan auch ohne Computeranbindung nutzen zu können. Simulink ist eine Umgebung in Matlab, wo anhand von verschiedenen Schaltblöcken, welche logisch miteinander verbunden werden, Programme erstellt werden können.

Einparkkonzept

Programmablaufplan


Geradeausfahren und Lücke suchen
Der Ultraschallsensor und der Gyrosensor werden vor Beginn der Fahrt kalibriert. Die Kalibrierungswerte wurden experimentell ermittelt und in die Kalibrierungswerte im Simulink-Baustein der Sensoren eingetragen. Beim Start der Fahrt steht das Fahrzeug parallel auf der Fahrbahn. Um eine ungewollte Querabweichung zu vermeiden wird anhand der Werte des Gyrosensors eine Regelung gewährleistet um bei einer Abweichung entsprechend gegenlenken zu können. Während der geregelten Geradeausfahrt misst der Ultraschallsensor den Abstand zu Hindernissen an der rechten Seite. Wenn der Abstand ausreichend ist wird zusätzlich die Länge der Lücke mithilfe des Motordrehgebers gemessen. Ist die Lücke zu klein fährt das Fahrzeug weiter geradeaus und wiederholt die Vorgänge bis eine passende Lücke gefunden wird. Wird eine passende Lücke gefunden muss das Fahrzeug noch ein Stück weiter geradeausfahren, da der Ultraschallsensor nicht ganz hinten am Fahrzeugverbaut ist, und anschließend werden die Motoren gestoppt und der Einparkvorgang beginnt.


Einparken
Bei Beginn des Einparkvorgangs werden die Räder um 40° nach rechts eingeschlagen und das Fahrzeug fährt rückwärts, bis das Fahrzeug in einem Winkel von 40° steht. Sobald das Fahrzeug in dem Winkel von 40° steht werden die Räder um 40° nach links eingeschlagen und das Fahrzeug fährt weiterhin rückwärts, bis das Fahrzeug geradesteht. Wenn das Fahrzeug geradesteht, fährt es ein Stück geradeaus um sich mittig in der Parklücke zu positionieren. Danach werden alle Motoren gestoppt und das Fahrzeug hat den Einparkvorgang beenedet.


Links

YouTube-Video
SVN-Ordner
RWTH - Mindstorms NXT Toolbox