AEP Gruppe B1 - SoSe18: Unterschied zwischen den Versionen
(66 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Autoren:''' [[Benutzer:Patrick Schumann|Patrick Schumann]] und [[Benutzer:Julin-Frederik Horstkoetter|Julin Horstkötter]] | '''Autoren:''' [[Benutzer:Patrick Schumann|Patrick Schumann]] und [[Benutzer:Julin-Frederik Horstkoetter|Julin Horstkötter]] | ||
Im Informatikpraktikum des zweiten Semesters im Studiengang Mechatronik ist ein selbstfahrender Roboter konstruiert worden. Dessen Software ist darauf ausgelegt, autonom einzuparken.<br/><br/> | |||
[[Datei: | [[Datei:IMG 20180705 102644-min.jpeg|200px|thumb|right|Fahrzeug der Gruppe B1]] | ||
== Zielsetzung == | == Zielsetzung == | ||
Die Zielsetzung besteht in der Entwicklung und Programmierung eines autonom einparkenden Roboters. Dieser startet zunächst mit einer Geradeausfahrt, die mit einem Gierratensensor und einem PI-Regler geregelt ist. Parallel dazu misst der Roboter den Abstand zur rechten Wand mithilfe eines Ultraschallsensors. Aufgrund der dabei messbaren Abstandsdifferenz kann die Parklücke identifiziert werden. Durch den zusätzlichen Einsatz von Odometrie kann die Länge der Parklücke bestimmt werden. Nur wenn die Parklücke ausreichend groß ist, wird der eigentliche Parkvorgang eingeleitet. Dabei werden die Motoren für den eigentlichen Antrieb und für die Lenkung vollständig autonom angesteuert.<br/> | |||
Programmiert wird in Matlab bzw. Simulink. | Programmiert wird in Matlab bzw. Simulink. | ||
== Teammitglieder und ihre Aufgaben == | == Teammitglieder und ihre Aufgaben == | ||
Zeile 26: | Zeile 25: | ||
== Konstruktionsplan im Lego Designer == | == Konstruktionsplan im Lego Designer == | ||
[[Datei: | [[Datei:Konstruktionsplan 1.png|links|mini|Schrägansicht vorne rechts]] | ||
[[Datei: | [[Datei:Konstruktionsplan 2.png|links|mini|Schrägansicht hinten rechts]] | ||
[[Datei:Konstruktionsplan 3.png|links|mini|Schrägansicht vorne]] | |||
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> | <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> | ||
<i>Bemerkung:</i> | <i>Bemerkung:</i> Um den Konstruktionsplan übersichtlich zu halten, wurde dort auf den Einsatz von Kabeln verzichtet. | ||
== Fahrzeugkennwerte == | == Fahrzeugkennwerte == | ||
Zeile 43: | Zeile 43: | ||
|- | |- | ||
| Fahrzeugbreite | | Fahrzeugbreite | ||
| | | 161 mm | ||
|- | |- | ||
| Fahrzeughöhe | | Fahrzeughöhe | ||
| | | 147 mm | ||
|- | |- | ||
| Spurweite vorne | | Spurweite vorne | ||
| | | 143 mm | ||
|- | |- | ||
| Spurweite hinten | | Spurweite hinten | ||
| | | 127 mm | ||
|- | |- | ||
| Achsabstand | | Achsabstand | ||
| | | 207 mm | ||
|- | |- | ||
| Wendekreis | | Wendekreis | ||
| ca. | | ca. 640 mm | ||
|- | |- | ||
|} | |} | ||
<i>Bemerkung:</i> Der Roboter ist kompakt gebaut verfügt über ein Differentialgetriebe. Aus diesen Gründen meistert er selbst enge Kurven mühelos. Dadurch kann | <i>Bemerkung:</i> Der Roboter ist kompakt gebaut und verfügt über ein Differentialgetriebe. Aus diesen Gründen meistert er selbst enge Kurven mühelos. Dadurch kann er auch in engen Parklücken (Fahrzeuglänge x 1,5) einparken. | ||
== Sensorik und deren Anwendungsgebiete == | == Sensorik und deren Anwendungsgebiete == | ||
Zeile 71: | Zeile 71: | ||
== Softwarekonzept als Programm-Ablauf-Plan (PAP) == | == Softwarekonzept als Programm-Ablauf-Plan (PAP) == | ||
[[Datei: | [[Datei:Autonomes Einparken (3).jpg|links|mini|Programmablaufplan (PAP)]] | ||
PAP als PDF-Dokument: [[Datei: | PAP als PDF-Dokument: [[Datei:PAP AEP.pdf|links|mini|Programmablaufplan (PAP)]]<br/><br/> | ||
Die Software des Roboters teilt sich, wie im PAP ersichtlich, in folgende Unterprogramme auf: | Die Software des Roboters teilt sich, wie im PAP ersichtlich, in folgende Unterprogramme auf: | ||
:• Parklückensuche | |||
<br/><br/><br/><br/><br/><br/><br/> | :• Rechtseinschlag | ||
:• Linkseinschlag | |||
:• Korrektur | |||
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> | |||
== Bildmaterial == | == Bildmaterial == | ||
=== Fotos === | === Fotos === | ||
[[Datei: | [[Datei:IMG 20180705 102634-min.jpg|links|mini|Schrägansicht vorne rechts]] | ||
[[Datei: | [[Datei:IMG 20180705 102726-min.jpg|links|mini|Vorderansicht]] | ||
[[Datei: | [[Datei:IMG 20180705 102742-min.jpg|links|mini|Seitenansicht links]] | ||
[[Datei: | [[Datei:IMG 20180705 102758-min.jpg|links|mini|Seitenansicht rechts]] | ||
[[Datei: | [[Datei:IMG 20180705 102707-min.jpg|links|mini|Draufsicht]] | ||
[[Datei:IMG 20180706 133810-min.jpg|links|mini|Echtzeitmessung von Sensordaten]] | |||
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> | <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> | ||
=== Video === | === Video === | ||
<gallery widths=" | <gallery widths="250" heights="330"> | ||
IMG 20180705 102644-min.jpeg | verweis=https://youtu.be/kBhuzyE2tyA | |||
</gallery> | </gallery> | ||
Video zum Roboter | Video zum autonom einparkenden Roboter | ||
<br/><br/> | <br/><br/> | ||
Zeile 104: | Zeile 108: | ||
''Projektkurs:'' Informatikpraktikum II (Gruppe B1)<br/> | ''Projektkurs:'' Informatikpraktikum II (Gruppe B1)<br/> | ||
''Betreuer:'' Prof. Dr. Ing.-Schneider<br/> | ''Betreuer:'' Prof. Dr. Ing.-Schneider<br/> | ||
'' | ''Musik:'' 8-Bit March von Twin Musicom ist unter der Lizenz "Creative Commons Attribution" (https://creativecommons.org/licenses/by/4.0/) lizenziert. | ||
Künstler: http://www.twinmusicom.org/<br/> | |||
''Praktikumsziel:'' Konstruktion und Programmierung eines LEGO-Mindstorm-Roboters, der autonom einparken kann. Die Geradeausfahrt wird mit dem Gierratensensor und einem PI-Regler geregelt. Der Abstand zur Wand bzw. die Tiefe der Parklücke wird über den Ultraschallsensor gemessen. Bei einer ausreichend großen Parklücke wird der Parkvorgang gestartet. Programmiert wurde mit Matlab und Simulink. | ''Praktikumsziel:'' Konstruktion und Programmierung eines LEGO-Mindstorm-Roboters, der autonom einparken kann. Die Geradeausfahrt wird mit dem Gierratensensor und einem PI-Regler geregelt. Der Abstand zur Wand bzw. die Tiefe der Parklücke wird über den Ultraschallsensor gemessen. Bei einer ausreichend großen Parklücke wird der Parkvorgang gestartet. Programmiert wurde mit Matlab und Simulink. | ||
Zeile 112: | Zeile 117: | ||
== Verwendete Softwaretools == | == Verwendete Softwaretools == | ||
* LEGO Digital Designer [http://ldd.lego.com/de-de] (zur Erstellung des Bauplans des Roboters) | * LEGO Digital Designer [http://ldd.lego.com/de-de] (zur Erstellung des Bauplans des Roboters) | ||
* | * PapDesigner [http://friedrich-folkmann.de/papdesigner/Hauptseite.html] (zur Erstellung des Programmablaufplans) | ||
* | * Matlab [https://de.mathworks.com/products/matlab.html] (zur Programmierung in C-Code) | ||
* | * Simulink [https://de.mathworks.com/products/simulink.html] (zur modellbasierten Programmierung) | ||
* TortoiseSVN [https://tortoisesvn.net/index.de.html] (Datensicherung und -austausch zwischen den Teammitgliedern) | * TortoiseSVN [https://tortoisesvn.net/index.de.html] (Datensicherung und -austausch zwischen den Teammitgliedern) | ||
Zeile 124: | Zeile 128: | ||
== Ausblick == | == Ausblick == | ||
* | * In einigen Fällen steht der Roboter nach Abschluss des Parkvorgangs nicht genau mittig in der Parklücke. Möglicherweise müssen dazu Parameter in den letzten Fahrbefehlen optimiert werden. | ||
== Literaturverzeichnis == | == Literaturverzeichnis == | ||
<references /> | <references /> | ||
---- | |||
→ zurück zum Hauptartikel: [[Autonomes_Fahren_SoSe18|Informatikpraktikum 2 SoSe18]] | |||
→ zurück zum Hauptartikel: [[ |
Aktuelle Version vom 8. August 2018, 14:27 Uhr
Autoren: Patrick Schumann und Julin Horstkötter
Im Informatikpraktikum des zweiten Semesters im Studiengang Mechatronik ist ein selbstfahrender Roboter konstruiert worden. Dessen Software ist darauf ausgelegt, autonom einzuparken.
Zielsetzung
Die Zielsetzung besteht in der Entwicklung und Programmierung eines autonom einparkenden Roboters. Dieser startet zunächst mit einer Geradeausfahrt, die mit einem Gierratensensor und einem PI-Regler geregelt ist. Parallel dazu misst der Roboter den Abstand zur rechten Wand mithilfe eines Ultraschallsensors. Aufgrund der dabei messbaren Abstandsdifferenz kann die Parklücke identifiziert werden. Durch den zusätzlichen Einsatz von Odometrie kann die Länge der Parklücke bestimmt werden. Nur wenn die Parklücke ausreichend groß ist, wird der eigentliche Parkvorgang eingeleitet. Dabei werden die Motoren für den eigentlichen Antrieb und für die Lenkung vollständig autonom angesteuert.
Programmiert wird in Matlab bzw. Simulink.
Teammitglieder und ihre Aufgaben
- • Konstruktion des Fahrzeuges
- • Programmentwicklung mit Matlab und Simulink
- • Entwicklung und Visualisierung des Konzeptplans mit PapDesigner
- • Visualisierung des Fahrzeuges mit LegoDesigner
- • Konstruktion des Fahrzeuges
- • Programmentwicklung mit Matlab und Simulink
- • Verfassen des Wiki-Beitrages
- • Videoaufnahme und Bearbeitung
Konstruktionsplan im Lego Designer
Bemerkung: Um den Konstruktionsplan übersichtlich zu halten, wurde dort auf den Einsatz von Kabeln verzichtet.
Fahrzeugkennwerte
Abmessungen des Fahrzeugs
Parameter | Maße in mm |
---|---|
Fahrzeuglänge | 270 mm |
Fahrzeugbreite | 161 mm |
Fahrzeughöhe | 147 mm |
Spurweite vorne | 143 mm |
Spurweite hinten | 127 mm |
Achsabstand | 207 mm |
Wendekreis | ca. 640 mm |
Bemerkung: Der Roboter ist kompakt gebaut und verfügt über ein Differentialgetriebe. Aus diesen Gründen meistert er selbst enge Kurven mühelos. Dadurch kann er auch in engen Parklücken (Fahrzeuglänge x 1,5) einparken.
Sensorik und deren Anwendungsgebiete
- Gierratensensor: Messung der Rotationsgeschwindigkeit um die Hochachse
- Ultraschallsensor: Messung des Abstandes zur Wand bzw. Messung der Tiefe der Parklücke
- Odometrie: Messung des zurückgelegten Winkels der Motoren, woraus der Lenkwinkel und die Fahrdistanz berechnet werden können
Softwarekonzept als Programm-Ablauf-Plan (PAP)
PAP als PDF-Dokument: Datei:PAP AEP.pdf
Die Software des Roboters teilt sich, wie im PAP ersichtlich, in folgende Unterprogramme auf:
- • Parklückensuche
- • Rechtseinschlag
- • Linkseinschlag
- • Korrektur
Bildmaterial
Fotos
Video
Video zum autonom einparkenden Roboter
Video-Beschreibung:
Herausgeber: Patrick Schumann und Julin Horstkötter
Hochschule: Hochschule Hamm-Lippstadt
Studiengang: Mechatronik 2. Semester
Projektkurs: Informatikpraktikum II (Gruppe B1)
Betreuer: Prof. Dr. Ing.-Schneider
Musik: 8-Bit March von Twin Musicom ist unter der Lizenz "Creative Commons Attribution" (https://creativecommons.org/licenses/by/4.0/) lizenziert.
Künstler: http://www.twinmusicom.org/
Praktikumsziel: Konstruktion und Programmierung eines LEGO-Mindstorm-Roboters, der autonom einparken kann. Die Geradeausfahrt wird mit dem Gierratensensor und einem PI-Regler geregelt. Der Abstand zur Wand bzw. die Tiefe der Parklücke wird über den Ultraschallsensor gemessen. Bei einer ausreichend großen Parklücke wird der Parkvorgang gestartet. Programmiert wurde mit Matlab und Simulink.
Zusammenfassung
Zum Ende des Sommersemesters ist es geschafft. Der Roboter parkt autonom ein. Somit ist das Ziel zur Zufriedenstellung der Teammitglieder erreicht. (Weitere Verbesserungen siehe "Ausblick")
Der Erfolg lag in einer gelungenen Absprache des kompletten Teams. Die Mitglieder haben sich bei Problemen gegenseitig geholfen, Aufgaben abgesprochen und gemeinsam an Lösungen gearbeitet und nach Optimierungsmöglichkeiten gesucht.
So ist ein Roboter entstanden, der ohne menschliches Eingreifen, alleine durch Sensoren, einen Mikrokontroller und eine intelligente Software eine Parklücke finden, vermessen und bei ausreichender Größe selbstständig einparken kann.
Verwendete Softwaretools
- LEGO Digital Designer [1] (zur Erstellung des Bauplans des Roboters)
- PapDesigner [2] (zur Erstellung des Programmablaufplans)
- Matlab [3] (zur Programmierung in C-Code)
- Simulink [4] (zur modellbasierten Programmierung)
- TortoiseSVN [5] (Datensicherung und -austausch zwischen den Teammitgliedern)
Unterlagen in TortoiseSVN
Die Unterlagen der Teammitglieder sind für autorisierte Personen unter folgender URL erreichbar [6].
Ausblick
- In einigen Fällen steht der Roboter nach Abschluss des Parkvorgangs nicht genau mittig in der Parklücke. Möglicherweise müssen dazu Parameter in den letzten Fahrbefehlen optimiert werden.
Literaturverzeichnis
→ zurück zum Hauptartikel: Informatikpraktikum 2 SoSe18