AEP Gruppe C1: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „In diesem Wiki-Beitrag möchten wir, die Gruppe C1 des Informatikpraktikum II des SoSe14, unsere Ergebnisse des Projektes Autonomes Einparken (AEP) mit Lego Mi…“)
 
 
(119 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
In diesem Wiki-Beitrag möchten wir, die Gruppe C1 des Informatikpraktikum II des SoSe14, unsere Ergebnisse des Projektes Autonomes Einparken (AEP) mit Lego Mindstorms präsentieren.
In diesem Wiki-Beitrag möchten wir, das Projektteam C1 des Informatikpraktikum II (SoSe14) des Studiengangs [http://www.hshl.de/mechatronik/ Mechatronik] 2. Semester,<br/> unsere Ergebnisse und Erfahrungen des Projektes Autonomes Einparken (AEP) mit [http://de.wikipedia.org/wiki/Lego_Mindstorms LEGO Mindstorms] präsentieren.[[Datei:C1_Legodesigner.png|mini|rechts|Roboter im LEGO Designer]]<br/>
Das Praktikum wurde von [[Benutzer:Ulrich_Schneider| Prof. Schneider]] betreut.
Das Praktikum der [http://de.wikipedia.org/wiki/Hochschule_Hamm-Lippstadt Hochschule Hamm-Lippstadt] wurde von [[Benutzer:Ulrich_Schneider| Prof. Schneider]] betreut. Unter dem Reiter "Downloads" besteht die Möglichkeit,<br/> einen Bauplan unseres LEGO Systems im PDF-Format und ein Video, welches den Roboter in Aktion zeigt, herunter zu laden.


<br />
== Projektziele ==
== Projektziele ==
* Entwicklung und Programmierung eines mobilen, autonom einparkenden Roboters
* Entwicklung und Programmierung eines mobilen, autonom einparkenden Roboters
* Fahrzeugbau soll sich an der Realität orientieren
* Fahrzeugbau soll sich an der Realität orientieren
* Verwendung von Lego Mindstorms
* Verwendung von Lego Mindstorms
** Ultraschallsensor
** [http://education.lego.com/de-de/lego-education-product-database/mindstorms/9841-intelligent-nxt-brick NXT-Baustein]
** Gierratensensor
** [http://education.lego.com/de-de/lego-education-product-database/mindstorms/9846-ultrasonic-sensor Ultraschallsensor]
** NXT-Motoren
** [http://education.lego.com/de-de/lego-education-product-database/mindstorms-ev3/45505-gyro-sensor Gierratensensor]
*Programmierung in MATLAB und Simulink
** [http://education.lego.com/de-de/lego-education-product-database/mindstorms/9842-interactive-servo-motor NXT-Motoren]
<br /><br />
* Programmierung in [http://bricxcc.sourceforge.net/nbc/ NXC], [http://www.mathworks.de/products/matlab/ MATLAB] und [http://www.mathworks.de/products/simulink/ Simulink]
* Grundkenntnisse der Digital- und Regelungstechnik erarbeiten


== Meilensteine ==
== Projektteam ==
[[Datei:C1_Parkvorgang.PNG|mini|rechts|Roboter beim Einparken]]
* [[Benutzer:Madleine_Kahr| Madleine Kahr]]
** Roboterbau
** Programmierung
* [[Benutzer:Kai_Jakobs| Kai Jacobs]]
** Programmierung
** Roboterbau
** Videoschnitt
* [[Benutzer:Jan_Völlmecke| Jan Völlmecke]]
** Konstruktion
** Visualisierung
** Programmierung
* [[Benutzer:Adam_Fankhauser| Adam Fankhauser]]
** Programmierung
** Kon­zep­ti­o­nie­rung


'''1. Meilenstein:'''
== Projektorganisation ==
* Konstruktion des Fahrzeuges mit folgenden Eigenschaften:
'''1.''' Besprechung der [http://de.wikipedia.org/wiki/Meilenstein_(Projektmanagement) Meilensteine] <br/>
**Realitätsnah mit einer Antriebs- und Lenkachse
'''2.''' Zuweisung der Arbeitspakete/ Aufgaben an die Teammitglieder<br/>
** Max Radeinschlag 40°
'''3.''' Zeitlimit setzen<br/>
** Achsenabstand zur Spurweite im Verhältnis 2:1
'''4.''' Einzelbearbeitung der zugewiesenen Aufgabe<br/>
** Anbringung des Ultraschallsensors und des Gierratensensors
'''5.''' Zwischemeeting um Probleme und Ergebnisse vorzustellen<br/>
* Entwicklungsumgebung (MATLAB) einrichten
'''6.''' Gemeinsame Bearbeitung bis zum Endprodukt<br/>
* Einarbeitung in MATLAB:
** Batteriestand des NXT Bausteins auslesen und diesen in einem Graphen über der Zeit plotten
* Auseinandersetzen mit den Eigenschaften des Ultraschallsensors
* Einarbeitung in [http://193.175.248.171/wiki/index.php/Software_Versionsverwaltung SVN]
<br />
'''2. Meilenstein:'''
* Auseinandersetzen mit dem Gierratensensor
* Geradeausfahrt mit dem Fahrzeug und plotten der Gierrate, Gierwinkel, gefahrenen Strecke und der Geschwindigkeit über der Zeit
* Offsetkalibrierung  des Gierratensensors
<br />
'''3. Meilenstein:'''
* Ultraschallmesswerte plotten
* Parklücken mithilfe des Ultraschallsensors vermessen und erkennen
* Geregeltes Geradeausfahren mithilfe des Gierratensensors
<br />
'''4. Meilenstein:'''
* Das Einparken mithilfe einer Zustandsmaschine realisieren
* Speichern von Daten in einer Textdatei
[[Datei:Meilensteine_Gruppe_C4.png|miniatur|Meilensteine der Gruppe C4]]
<br />
'''5. Meilenstein:'''
* Einarbeitung in [http://193.175.248.171/wiki/index.php/NXT_mit_Simulink_programmieren Simulink]
* Geradeausfahrt, Parklücke finden und das Einparken mit Simulink realisieren
<br />


== Hardwarelösungen ==
== Arbeitspakete/ Meilensteine==
[[Datei:Legofahrzeug_Gruppe_C4.jpg|miniatur|links|Legofahrzeug der Gruppe C4]]
Die folgende Grafik zeigt die zeitliche Bearbeitung der einzelnen Meilensteine, welche an die Aufgabenzettel der jeweiligen Praktikumstermine angelehnt sind. <br/>Die Projektwochen beziehen sich auf die zwei Wochen vor jedem Abgabetermin. Grünhinterlegte Felder kennzeichnen die Zeiträume in dem die Aufgaben abgearbeitet wurden, <br/>wie zum Beispiel [http://www.umsetzungsberatung.de/methoden/kickoff-meeting.php Kick-off-Meeting] oder die Einarbeitung in die Programmieroberfläche.
Für den Antrieb des Fahrzeuges wurde ein Differentialgetriebe gebaut und angebracht, damit bei einer Kurve sich die Räder zwar mit derselben Vortriebskraft, jedoch mit unterschiedlicher Geschwindigkeit drehen.
<br/>
[[Datei:LEGO_Differentialgetriebe_Gruppe_C4.png|miniatur|Differentialgetriebe aus LEGO]]
[[Datei:C1_Arbeitspakete_Meilensteine.png|Arbeitspakete]]
Für die Lenkung wurden auf einer Welle Zahnräder angebracht, die auf einer Zahnradschiene laufen und somit den vorderen Teil des Fahrzeuges inklusive der Vorderreifen um ± 40° verschieben können.
<br/>
[[Datei:LEGO_Lenkung_Gruppe_C4.png|miniatur|Lenkung aus LEGO]]
== Fahrzeug==
Der Ultraschallsensor wurde an der rechten Seite des Fahrzeuges angebracht, da man bei einer Einparksituation die rechte Seite nach Parklücken untersucht. Der Gierratensensor wurde auf der linken Seite angebracht.  
Der Bau unseres Fahrzeuges wurde an ein reales [http://de.wikipedia.org/wiki/Automobil Automobil] angelehnt. Die Positionierung der Motoren wurde flach vorgenommen, um einen tiefen Schwerpunkt zu gewährleisten.
<br /><br /><br /><br /><br />
<br/>Ein Motor wurde für den Antrieb der Hinterachse mit [http://de.wikipedia.org/wiki/Differentialgetriebe Differentialgetriebe] verwendet, der andere dient zur Ansteuerung der Lenkung der Vorderachse.
'''Weitere Fahrzeugdaten:'''
<br/>Wichtig war es, den NXT-Baustein gut zugänglich und stabil zu befestigen. Dieser liegt horizontal über den beiden Motoren.
* Fahrzeuglänge: 300mm
Die Positionen der verwendeten Sensoren wurden so gewählt,<br/> um die Störungen durch Antriebseinflüsse möglichst gering zu halten.
* Fahrzeugbreite: 170mm
<br/>
* Spurweite vorne: 170mm
[[Datei:C1_Seitenansicht.jpg|Fahrzeug des Projektteams]][[Datei:C1_Differential.jpg|miniatur|rechts|Differentialgetriebe]]
* Spurweite hinten: 155mm
[[Datei:C1_Lenkungsantrieb.jpg|mini|Lenkungsantrieb]]<br/>
* Achsabstand: 255mm
<br/>
* Max. Radeinschlagswinkel Linkseinschlag: 40°
{| class="wikitable"
* Max. Radeinschlagswinkel Rechtseinschlag: 40°
|-
<br />
! Fahrzeugkennwerte        !! Wert
== Softwarelösungen ==
|-
[[Datei:Konzeptplan_Gruppe_C4_Parklücke_finden.png|miniatur|Konzeptplan für den Task: Autonome Parklückensuche]]
| Fahrzeuglänge   || 294 mm
Anfangs liest der Ultraschallsensor den Abstand aus und speichert diesen in einen Sollwert und fährt dann los. Sollte der Ultraschallsensor einen größeren Abstand messen (größer als Sollwert + Konstante) wird diese Lücke mithilfe der Berechnung der Motorumdrehungen ausgemessen. Ist die Lücke groß genug (1,5fach größer als Fahrzeug), bleibt das Fahrzeug stehen. Ist dies nicht der Fall, fährt es weiter und wiederholt diesen Vorgang.
|-
<br />
| Fahrzeugbreite || 145 mm
Danach folgt das eigentliche Einparken, was mithilfe einer Zustandsmaschine programmiert wurde. Im ersten Zustand schlägt die Lenkung maximal nach rechts ein und das Fahrzeug fährt solange rückwärts, bis der Gierratensensor einen Wert >= 40° misst. Im folgenden Zustand wird die Lenkung maximal nach links gesteuert, so dass sich das Fahrzeug beim Rückwärtsfahren wieder gerade bei 0° aufstellt. Im anschließenden Zustand wird die Lenkung wieder mittig eingestellt und das Fahrzeug fährt ein wenig nach vorne, so dass es vorzugsweise mittig in der Parklücke steht. Am Ende wird dann noch eine Fanfare abgespielt.
|-
[[Datei:Konzeptplan_Gruppe_C4_Zustandsmaschine.png|miniatur|Konzeptplan für den Task: Autonomes Einparken]]
| Spurweite vorn || 121 mm
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
|-
| Spurweite hinten || 121 mm
|-
| Achsabstand || 210 mm
|-
| Max. Radeinschlag || 45°
|}
 
== Programmablaufplan ==
Im Folgenden ist unser Programmablaufplan der softwareseitigen Projektlösung visualisiert.
Das Programm startet mit einer Offset-[http://de.wikipedia.org/wiki/Kalibrierung Kalibrierung] des Gierratensensors. <br/>
Anschließen fährt das Fahrzeug geregelt geradeaus, bis eine passende Parkmöglichkeit gefunden wurde.
Nun stoppt der Roboter und parkt in drei Zügen autonom ein (siehe Grafik: Zustandsmaschine):
* Rückwärtsfahren mit Lenkeinschlag
* Paralleles Ausrichten zur Parklücke
* Mittig in der Parklücke platzieren
Ist der Parkvorgang erfolgreich abgeschlossen spielt der NXT-Baustein eine Melodie und beendet das Programm.<br/>
[[Datei:Programmablaufplan_T1.png|Programmablaufplan Teil 1]]
[[Datei:Programmablaufplan_T2.png|mitte|Programmablaufplan Teil 2]]
 
== Erfahrungen ==
Das Informatikpraktium II hat uns die Möglichkeit gegeben, unsere theoretischen Kenntnisse aus den Informatikvorlesungen praktisch einzusetzen. <br/>
Dabei haben wir den Aufbau mechatronischer Systeme kennengelernt und unsere Erfahrungen in [http://de.wikipedia.org/wiki/Digitaltechnik Digital]- und [http://de.wikipedia.org/wiki/Regelungstechnik Regelungstechnik] spielerisch vertieft.<br/>
Des Weiteren haben wir uns mit MATLAB und Simulink auseinandergesetzt und eine Menge Erfahrung gesammelt, welche auch in zukünftigen Ingenieursberufen oft von Nöten sind . <br/>
Gefördert wurde auch die Arbeit im Team und unser Zeitmanagement hat sich verbessert.


== Projektgruppe ==
'''Projektgruppe C4 (SoSe 2014):'''
* Niklas Lingenauber (2.Fachsemester MTR)
* Kevin Penner (2.Fachsemester MTR)
<br />
== Downloads ==
Anleitung für den Nachbau des Fahrzeuges (.html Datei): [[Datei:Anleitung_Fahrzeugbau_Gruppe_C4.zip]]
<br />
Passwort zum Entpacken: '''HSHL'''
<br />
== Weblinks ==
== Weblinks ==
* [http://www.mathworks.de/products/matlab/ MathWorks MATLAB]
* [http://www.mindstorms.rwth-aachen.de/trac/wiki/Download4.07 RWTH Toolbox für Matlab]
* [http://www.mindstorms.rwth-aachen.de/trac/wiki/Download4.07 RWTH Toolbox für Matlab]
* [http://ldd.lego.com/de-de/ LEGO Digital Designer]
* [http://ldd.lego.com/de-de/ LEGO Digital Designer]
* [http://www.lego.com/de-de/mindstorms/?domainredir=mindstorms.lego.com LEGO Mindstorms]
== Downloads ==
* [[Medium:IP2_Bauplan_AEP_C1.pdf|Roboterbauplan im *.pdf-Format]]
* [[Medium:C1_Video_YouTube.zip|Video des Roboterprojektes im *.mp4-Format (ZIP)]]
== YouTube Videos ==
{{#ev:youtube|http://youtu.be/5p77eeS1bD0 | 720 | | Einleitung |frame}}
{{#ev:youtube|http://youtu.be/9dhurvmgAWA | 720 | | Autonomes Einparken - Team C1 |frame}}




== Feedback zum Artikel ==
--[[Benutzer:Ulrich Schneider|Ulrich Schneider]] ([[Benutzer Diskussion:Ulrich Schneider|Diskussion]]) 08:31, 19. Jun. 2014 (CEST)
* Vorbildlich!
* Ich habe die Links umformatiert.
* Sie könnten sich noch USER Seiten anlegen und auf diese verlinken.





Aktuelle Version vom 27. Februar 2024, 10:15 Uhr

In diesem Wiki-Beitrag möchten wir, das Projektteam C1 des Informatikpraktikum II (SoSe14) des Studiengangs Mechatronik 2. Semester,
unsere Ergebnisse und Erfahrungen des Projektes Autonomes Einparken (AEP) mit LEGO Mindstorms präsentieren.

Roboter im LEGO Designer


Das Praktikum der Hochschule Hamm-Lippstadt wurde von Prof. Schneider betreut. Unter dem Reiter "Downloads" besteht die Möglichkeit,
einen Bauplan unseres LEGO Systems im PDF-Format und ein Video, welches den Roboter in Aktion zeigt, herunter zu laden.

Projektziele

Projektteam

Roboter beim Einparken

Projektorganisation

1. Besprechung der Meilensteine
2. Zuweisung der Arbeitspakete/ Aufgaben an die Teammitglieder
3. Zeitlimit setzen
4. Einzelbearbeitung der zugewiesenen Aufgabe
5. Zwischemeeting um Probleme und Ergebnisse vorzustellen
6. Gemeinsame Bearbeitung bis zum Endprodukt

Arbeitspakete/ Meilensteine

Die folgende Grafik zeigt die zeitliche Bearbeitung der einzelnen Meilensteine, welche an die Aufgabenzettel der jeweiligen Praktikumstermine angelehnt sind.
Die Projektwochen beziehen sich auf die zwei Wochen vor jedem Abgabetermin. Grünhinterlegte Felder kennzeichnen die Zeiträume in dem die Aufgaben abgearbeitet wurden,
wie zum Beispiel Kick-off-Meeting oder die Einarbeitung in die Programmieroberfläche.
Arbeitspakete

Fahrzeug

Der Bau unseres Fahrzeuges wurde an ein reales Automobil angelehnt. Die Positionierung der Motoren wurde flach vorgenommen, um einen tiefen Schwerpunkt zu gewährleisten.
Ein Motor wurde für den Antrieb der Hinterachse mit Differentialgetriebe verwendet, der andere dient zur Ansteuerung der Lenkung der Vorderachse.
Wichtig war es, den NXT-Baustein gut zugänglich und stabil zu befestigen. Dieser liegt horizontal über den beiden Motoren. Die Positionen der verwendeten Sensoren wurden so gewählt,
um die Störungen durch Antriebseinflüsse möglichst gering zu halten.

Fahrzeug des Projektteams

Differentialgetriebe
Lenkungsantrieb



Fahrzeugkennwerte Wert
Fahrzeuglänge 294 mm
Fahrzeugbreite 145 mm
Spurweite vorn 121 mm
Spurweite hinten 121 mm
Achsabstand 210 mm
Max. Radeinschlag 45°

Programmablaufplan

Im Folgenden ist unser Programmablaufplan der softwareseitigen Projektlösung visualisiert. Das Programm startet mit einer Offset-Kalibrierung des Gierratensensors.
Anschließen fährt das Fahrzeug geregelt geradeaus, bis eine passende Parkmöglichkeit gefunden wurde. Nun stoppt der Roboter und parkt in drei Zügen autonom ein (siehe Grafik: Zustandsmaschine):

  • Rückwärtsfahren mit Lenkeinschlag
  • Paralleles Ausrichten zur Parklücke
  • Mittig in der Parklücke platzieren

Ist der Parkvorgang erfolgreich abgeschlossen spielt der NXT-Baustein eine Melodie und beendet das Programm.
Programmablaufplan Teil 1 Programmablaufplan Teil 2

Erfahrungen

Das Informatikpraktium II hat uns die Möglichkeit gegeben, unsere theoretischen Kenntnisse aus den Informatikvorlesungen praktisch einzusetzen.
Dabei haben wir den Aufbau mechatronischer Systeme kennengelernt und unsere Erfahrungen in Digital- und Regelungstechnik spielerisch vertieft.
Des Weiteren haben wir uns mit MATLAB und Simulink auseinandergesetzt und eine Menge Erfahrung gesammelt, welche auch in zukünftigen Ingenieursberufen oft von Nöten sind .
Gefördert wurde auch die Arbeit im Team und unser Zeitmanagement hat sich verbessert.

Weblinks

Downloads

YouTube Videos

Einleitung
Autonomes Einparken - Team C1






→ zurück zum Hauptartikel: Autonomes Fahren SoSe14