AEP Gruppe C4: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Das Informatikpraktikum II fand im SoSe 2014 unter der Leitung von [[Benutzer:Ulrich_Schneider| Prof. Schneider]] statt.  
Das Informatikpraktikum II fand im SoSe 2014 unter der Leitung von [[Benutzer:Ulrich_Schneider| Prof. Schneider]] statt.  
Die Gruppe bestand aus Niklas Lingenauber und Kevin Penner.  
Die Gruppe bestand aus [[Benutzer:Niklas_Lingenauber| Niklas Lingenauber]] und [[Benutzer:Kevin_Penner| Kevin Penner]].  
<br />
<br />
== Praktikumsziele/Projektziele ==
== Praktikumsziele/Projektziele ==
Die Anforderungen des Informatikpraktikums II waren es, eine mechanische Konstruktion eines autoähnlichen Roboters aus LEGO zu bauen und anhand eines Ultraschallsensors, Gierratensensors und einem NXT Baustein diesen autonom fahren und parken zu lassen. Das Programmieren des Roboters wurde mit MATLAB und Simulink realisiert und die Befehle und Funktion wurden dabei der [http://193.175.248.171/wiki/index.php/RWTH_Aachen_Toolbox_meets_NXT RWTH Toolbox] entnommen.
Die Anforderungen des Informatikpraktikums II waren es, eine mechanische Konstruktion eines autoähnlichen Roboters aus LEGO zu bauen und anhand eines Ultraschallsensors, Gierratensensors und einem NXT Baustein diesen autonom fahren und parken zu lassen. Das Programmieren des Roboters wurde mit MATLAB und Simulink realisiert wobei die Befehle und Funktion der [http://193.175.248.171/wiki/index.php/RWTH_Aachen_Toolbox_meets_NXT RWTH Toolbox] entnommen wurden.
<br /><br />
<br /><br />
== Meilensteine ==
== Meilensteine ==


'''1.Meilenstein:'''
'''1. Meilenstein:'''
* Konstruktion des Fahrzeuges mit folgenden Eigenschaften:
* Konstruktion des Fahrzeuges mit folgenden Eigenschaften:
*** Realitätsnah mit einer Antriebs- und Lenkachse
**Realitätsnah mit einer Antriebs- und Lenkachse
*** Max Radeinschlag 40°
** Max Radeinschlag 40°
*** Achsenabstand zur Spurweite im Verhältnis 2 zu 1
** Achsenabstand zur Spurweite im Verhältnis 2:1
*** Anbringung des Ultraschallsensors und des Gierratensensors
** Anbringung des Ultraschallsensors und des Gierratensensors
* Entwicklungsumgebung (MATLAB) einrichten
* Entwicklungsumgebung (MATLAB) einrichten
* Einarbeitung in MATLAB:
* Einarbeitung in MATLAB:
*** Batteriestand des NXT Baustein auslesen und diesen in einem Graphen über der Zeit plotten
** Batteriestand des NXT Bausteins auslesen und diesen in einem Graphen über der Zeit plotten
* Auseinandersetzen mit den Eigenschaften des Ultraschallsensors
* Auseinandersetzen mit den Eigenschaften des Ultraschallsensors
* Einarbeitung in [http://193.175.248.171/wiki/index.php/Software_Versionsverwaltung SVN]
* Einarbeitung in [http://193.175.248.171/wiki/index.php/Software_Versionsverwaltung SVN]
Zeile 30: Zeile 30:
<br />
<br />
'''4. Meilenstein:'''
'''4. Meilenstein:'''
* Das Einparken mithilfe einer Zustandsamaschine realisieren
* Das Einparken mithilfe einer Zustandsmaschine realisieren
* Speichern von Daten in eine Textdatei
* Speichern von Daten in einer Textdatei
[[Datei:Meilensteine_Gruppe_C4.png|miniatur|Meilensteine der Gruppe C4]]
[[Datei:Meilensteine_Gruppe_C4.png|miniatur|Meilensteine der Gruppe C4]]
<br />
<br />
Zeile 38: Zeile 38:
* Geradeausfahrt, Parklücke finden und das Einparken mit Simulink realisieren
* Geradeausfahrt, Parklücke finden und das Einparken mit Simulink realisieren
<br />
<br />
== Hardwarelösungen ==
== Hardwarelösungen ==
[[Datei:Legofahrzeug_Gruppe_C4.jpg|miniatur|links|Legofahrzeug der Gruppe C4]]
[[Datei:Legofahrzeug_Gruppe_C4.jpg|miniatur|links|Legofahrzeug der Gruppe C4]]
Für den Antrieb des Fahrzeuges wurde ein Differentialgetriebe gebaut und angebracht, damit bei einer Kurve die Räder zwar mit derselben Vortriebskraft, jedoch mit unterschiedlicher Geschwindigkeit, sich drehen.
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.
[[Datei:LEGO_Differentialgetriebe_Gruppe_C4.png|miniatur|Differentialgetriebe aus LEGO]]
[[Datei:LEGO_Differentialgetriebe_Gruppe_C4.png|miniatur|Differentialgetriebe aus LEGO]]
Für die Lenkung wurden Zahnräder auf einer Welle angebracht, die auf einer Zahnradschiene laufen und somit den vorderen Teil des Fahrzeuges inklusive der Vorderreifen um ± 40° verschieben können.
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.
[[Datei:LEGO_Lenkung_Gruppe_C4.png|miniatur|Lenkung aus LEGO]]
[[Datei:LEGO_Lenkung_Gruppe_C4.png|miniatur|Lenkung aus LEGO]]
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 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.  
<br /><br /><br /><br /><br />
<br /><br /><br /><br /><br />
'''Weitere Fahrzeugdaten:'''
'''Weitere Fahrzeugdaten:'''
* Fahrzeuglänge: 300mm
<br />
* Fahrzeugbreite: 170mm
{| class="wikitable"
* Spurweite vorne: 170mm
|-
* Spurweite hinten: 155mm
! Fahrzeugkennwerte        !! Wert
* Achsabstand: 255mm
|-
* Max. Radeinschlagswinkel Linkseinschlag: 40°
| Fahrzeuglänge   || 300 mm
* Max. Radeinschlagswinkel Rechtseinschlag: 40°
|-
| Fahrzeugbreite || 170 mm
|-
| Spurweite vorn || 170 mm
|-
| Spurweite hinten || 155 mm
|-
| Achsabstand || 255 mm
|-
| Max. Radeinschlagswinkel Links || 40°
|-
| Max. Radeinschlagswinkel Rechts || 40°
|}
<br />
<br />
== Softwarelösungen ==
== Softwarelösungen ==
[[Datei:Konzeptplan_Gruppe_C4_Parklücke_finden.png|miniatur|Konzeptplan für den Task: Autonome Parklückensuche]]
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.
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 ausgemessen mithilfe der Berechnung der Motorumdrehungen. 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 /><br />
[[Datei:Konzeptplan_Gruppe_C4_Parklücke_finden.png|600px|Konzeptplan für den Task: Autonome Parklückensuche]]
<br /><br />
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.
<br /><br />
[[Datei:Konzeptplan_Gruppe_C4_Zustandsmaschine.png|600px|Konzeptplan für den Task: Autonomes Einparken]]
<br />
<br />
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 vorzugsweiße 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: Autonome Einparken]]
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
== Projektgruppe ==
== Projektgruppe ==
'''Projektgruppe C4 (SoSe 2014):'''
'''Projektgruppe C4 (SoSe 2014):'''
* Niklas Lingenauber (2.Fachsemester MTR)
* [[Benutzer:Niklas_Lingenauber| Niklas Lingenauber]] (2.Fachsemester MTR)
* Kevin Penner (2.Fachsemester MTR)
* [[Benutzer:Kevin_Penner| Kevin Penner]] (2.Fachsemester MTR)
<br />
== Downloads ==
Anleitung für den Nachbau des Fahrzeuges (.html Datei): [[Medium:Anleitung_Fahrzeugbau_Gruppe_C4.zip]]
<br />
Passwort zum Entpacken: '''HSHL'''
<br />
<br />
== Weblinks ==
== Weblinks ==
RWTH Toolbox für Matlab: [http://www.mindstorms.rwth-aachen.de/trac/wiki/Download4.07]
* [http://www.mindstorms.rwth-aachen.de/trac/wiki/Download4.07 RWTH Toolbox für Matlab]
<br />
* [http://ldd.lego.com/de-de/ LEGO Digital Designer]
LEGO Digital Designer: [http://ldd.lego.com/de-de/]
 
 
== YouTube Video ==
{{#ev:youtube|http://youtu.be/2hNyMAzCgHg | 720 | | Autonomes Einparken - Team C4 |frame}}
 
 
 
 






----
----
→ zurück zum Hauptartikel: [[Informatikpraktikum MTR|Autonomes Fahren SoSe14]]
→ zurück zum Hauptartikel: [[Autonomes_Fahren_SoSe14|Autonomes Fahren SoSe14]]

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

Das Informatikpraktikum II fand im SoSe 2014 unter der Leitung von Prof. Schneider statt. Die Gruppe bestand aus Niklas Lingenauber und Kevin Penner.

Praktikumsziele/Projektziele

Die Anforderungen des Informatikpraktikums II waren es, eine mechanische Konstruktion eines autoähnlichen Roboters aus LEGO zu bauen und anhand eines Ultraschallsensors, Gierratensensors und einem NXT Baustein diesen autonom fahren und parken zu lassen. Das Programmieren des Roboters wurde mit MATLAB und Simulink realisiert wobei die Befehle und Funktion der RWTH Toolbox entnommen wurden.

Meilensteine

1. Meilenstein:

  • Konstruktion des Fahrzeuges mit folgenden Eigenschaften:
    • Realitätsnah mit einer Antriebs- und Lenkachse
    • Max Radeinschlag 40°
    • Achsenabstand zur Spurweite im Verhältnis 2:1
    • Anbringung des Ultraschallsensors und des Gierratensensors
  • Entwicklungsumgebung (MATLAB) einrichten
  • 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 SVN


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


3. Meilenstein:

  • Ultraschallmesswerte plotten
  • Parklücken mithilfe des Ultraschallsensors vermessen und erkennen
  • Geregeltes Geradeausfahren mithilfe des Gierratensensors


4. Meilenstein:

  • Das Einparken mithilfe einer Zustandsmaschine realisieren
  • Speichern von Daten in einer Textdatei
Meilensteine der Gruppe C4


5. Meilenstein:

  • Einarbeitung in Simulink
  • Geradeausfahrt, Parklücke finden und das Einparken mit Simulink realisieren


Hardwarelösungen

Legofahrzeug der Gruppe C4

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.

Differentialgetriebe aus LEGO

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.

Lenkung aus LEGO

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.




Weitere Fahrzeugdaten:

Fahrzeugkennwerte Wert
Fahrzeuglänge 300 mm
Fahrzeugbreite 170 mm
Spurweite vorn 170 mm
Spurweite hinten 155 mm
Achsabstand 255 mm
Max. Radeinschlagswinkel Links 40°
Max. Radeinschlagswinkel Rechts 40°


Softwarelösungen

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.

Konzeptplan für den Task: Autonome Parklückensuche

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.

Konzeptplan für den Task: Autonomes Einparken

Projektgruppe

Projektgruppe C4 (SoSe 2014):


Downloads

Anleitung für den Nachbau des Fahrzeuges (.html Datei): Medium:Anleitung_Fahrzeugbau_Gruppe_C4.zip
Passwort zum Entpacken: HSHL

Weblinks


YouTube Video

Autonomes Einparken - Team C4





→ zurück zum Hauptartikel: Autonomes Fahren SoSe14