AEP Gruppe C2: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(198 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
AEP steht für autonomes Einparken und ist einer von zwei Aufgaben des Informatikpraktikums im Studiengang Mechatronik Sommersemester 2014 an der [http://de.wikipedia.org/wiki/Hochschule_Hamm-Lippstadt].
[[Kategorie:Querregelung]]
[[Datei:Robo_C2.jpg|400px|rechts| Robo_C2]]
== Vorwort ==
AEP - autonomes Einparken, war ein Projekt des zweiten Informatikpraktikums im Studiengang Mechatronik (Sommersemester 2014)
an der [http://de.wikipedia.org/wiki/Hochschule_Hamm-Lippstadt Hochschule Hamm-Lippstadt(wiki)].
Für die  wertvolle Unterstützung und Leitung des Projekts bedanken wir uns an den [[Benutzer:Ulrich_Schneider| Prof. Ulrich Schneider]].
<br />
 
== Projektgruppe C2 ==
*[[Benutzer:Christo_Tsibadze| Christo Tsibadze]]
**HSHL-Wiki-Eintrag
**Programmieren
**Präsentation
**Videoschnitt
**Roboterbau
**LEGO Digital Designer - Bauanleitung
*Martin Vo
**Programmieren
**Präsentation
**LEGO Digital Designer - 3D-Modell
**LEGO Digital Designer - Bauanleitung
*Benedikt Röper
**Programmieren
**Präsentation
**Roboterbau
**Konzeptionierung
<br />
 
== Praktikumsziele ==
*Die praktische Vertiefung der Informatikkenntnisse speziell in:
**[http://de.wikipedia.org/wiki/Not_eXactly_C NXC (wiki)]
**[http://de.wikipedia.org/wiki/Matlab Matlab(wiki)]
**[http://de.wikipedia.org/wiki/Simulink Simulink(wiki)]
**[http://de.wikipedia.org/wiki/Stateflow Stateflow(wiki)]
*Vertiefung der Kenntnisse in prinzipiellen Aufbau von Mechtronischen Systemmen,
*so wie das Erwerben der Grundkenntnisse in Mess-, Regelungs- und Digitaltechnik
**[http://de.wikipedia.org/wiki/Lego_Mindstorms_NXT Lego Mindstorms NXT(wiki)]
*last but not least:
**Das Lösen von komplexen mechatronischen Aufgaben im Team!
<br />
 
== Projekt-Vorgaben ==
[[Datei:NXT-Brick.jpg||400px|mini|rechts| NXT Brick]]
[[Datei:Ultraschall_NXT.jpg||400px|mini|rechts| Ultraschall NXT]]
<br /><br />
'''Der Aufbau des Roboters:'''
*Der Fahrzeugaufbau sollte sich an der Realität orientieren, somit über eine angetriebene sowie eine lenkende Achse verfügen.
*Die Konstruktion sollte mit Hilfe des LEGO Mindstorms NXT mit folgendem Inhalt realisiert werden:
**einem programmierbaren NXT-Stein (NXT-Brick)
**Sensoren:
***Ultraschallsensor, für die Abstandsmessung zwischen sich und einem Objekt mit dem Messbereich 6 cm bis 255 cm, cm-genau.
***Gierratensensor, für die Messung der Winkeländerung pro Zeit
***Rotationssensor (eingebaut im Servomotor) mit 1° Genauigkeit
**Aktuatoren:
***drei Sensormotoren
**Verbindungskabel
**diverse LEGO-Bauteile
*Maximaler Radeinschlagswinkel sollte 40° betragen.
*Achsabstand (Toleranz ±10%) sollte doppelt so groß sein wie die Spurweite (Toleranz ±5%).
*Differenzialgetriebe auf Hinterachse
<br /><br />
'''Software Anforderungen:'''
<br />
*Bei der Softwareumsetzung mit Matlab, sollten die Befehle aus der [http://193.175.248.171/wiki/index.php/RWTH_Aachen_Toolbox_meets_NXT RWTH Toolbox] zur Hilfe genommen werden.
*Implementierung eines Reglers, mit dessen Hilfe der Roboter geradeaus fahren kann und gegebenfalls die Kursabweichungen korrigiert
*Implementierung und Steuerung von vorhandenen Sensoren und Aktoren mit Matlab für diverse Aufgaben
*Als Software-Versionsverwaltung sollten wir [http://193.175.248.171/wiki/index.php/Software_Versionsverwaltung SVN] benutzen
 
'''Prüfung'''
*Unter Verwendung von Hard- und Software sollte der Auto-Roboter autonom geradeaus fahren und Parkplatz auf der rechten Seite suchen und einschließlich parken.
 
<br /><br /><br /><br /><br /><br />
 
== Realisierung ==
<br />
Wir wurden mit folgenden Aufgaben im laufe des Semesters auf die Prüfung (autonomes Einparken) gut vorbereitet:
<br /><br />
'''1.Praktikumstermin'''
*Roboter mit LEGO Mindstorms unter Berücksichtigung von den Vorgaben konstruieren
*Implementierung des Gyrosensors
*kurze Einarbeitung in Matlab und NXC
*Ultraschallsensor seitlich anbringen
*Differenzialgetriebe für die Wendigkeit (Tipp)
'''> Meilenstein 1''' - Funktionstüchtiges Fahrzeug
*Firmware update des Bricks
*Motortreiber von [http://193.175.248.171/wiki/index.php/RWTH_Aachen_Toolbox_meets_NXT RWTH Toolbox] auf den Bricks laden
*USB-Verbindung mit Matlab aufbauen
*Messwerte der Batterie und des US-Sensors auslesen und plotten
*Mit den SVN Standartfunktionen vertraut machen
'''> Meilenstein 2''' - Verbindung mit Software und Hardware hergestellt, und mit den ersten Funktionen von Matlab und SVN vertraut gemacht
<br /><br />
'''2.Praktikumstermin'''
*Funktionen schreiben mit Gierratensensor, Werte auslesen und Winkel berechnen, Daten plotten
*Offset-Bestimmung des Gyrosensors (Calibrierung)
'''> Meilenstein 3''' - sich mit dem Gyrosensor vertraut gemacht
<br /><br />
'''3.Praktikumstermin'''
*Parallel zur Wand fahren mit Hilfe des Ultraschallsensors
*Parallel zur Wand fahren mit Hilfe des Gyrosensors --> Regler Implementierung
*Lineare Rampe implementieren für das sanfte Anfahren
'''> Meilenstein 4''' - Querregelung und Rampe
<br /><br />
'''4.Praktikumstermin'''
*Task Parken schreiben, die entstandene Messwerte als Text-Datei speichern
'''> Meilenstein 5''' - Funktion - Parken funktioniert
<br /><br />
'''5.Praktikumstermin'''
*sich mit Simulink und Stateflow vertraut machen und die vorherigen Funktionen hiermit umsetzen
'''> Meilenstein 6''' -das Komplette Programm zum Einparken fertig für die Prüfung
 
== Umsetzung - Hardware ==
[[Datei:Robo_2.jpg||400px|mini|rechts| Robo_2]]
[[Datei:Modellierung.jpg||400px|mini|rechts| Modellierung mit LEGO Designer]]
[[Datei:Bauanleitung.jpg||400px|mini|rechts| Bauanleitung erstellen]]
<br />
[[Datei:Robo_C2.jpg| Robo_C2]]
<br />
Für bessere Wendigkeit haben wir das Differenzialgetriebe auf hintere Achse verbaut.
Der erste Servomotor dient für die vorwärts- und rückwärts Bewegungen mit der Hinterachse.
Zweiter Servomotor für die Lenkung mit der Vorderachse.
Den Gierratensensor haben wir oben links angebracht in Fahrtrichtung und den Ultraschallsensor oben in Fahrtrichtung rechts damit der Roboter rechts nach Parkplatz suchen kann.
Das NXT-Stein (Brick) wurde ergonomisch verbaut, somit alle Anschlüsse und Bedienelemente frei und leicht zugänglich sind.
Außerdem wurde vorne ein Hilfs-Lenkungsrad angebracht damit man auch manuell per Hand die Lenkung gegebenfalls anfangs ausrichten kann.
<br />
Die Zusammengefassten Fahrzeugparameter können Sie in folgender Tabelle ablesen.
{| class="wikitable"
|-
! Fahrzeugparameter        !! Wert
|-
| Fahrzeuglänge  || 262 mm
|-
| Fahrzeugbreite || 165 mm
|-
| Spurweite vorn || 160 mm
|-
| Spurweite hinten  || 154 mm
|-
| Achsabstand || 190 mm
|-
| Max. Radeinschlagswinkel Links || 40° (Tol. -5°)
|-
| Max. Radeinschlagswinkel Rechts || 40° (Tol. -5°)
|}
<br />
'''3D-Modelierung mit LEGO Digital Designer'''
Bei 3D-Modellierung mit Hilfe von LEGO Digital Designer waren die bereits fertigen 3D-Einzelteile sehr hilfreich und zeitsparend.
Nach kurzer Einarbeitung funktioniert die Modellierung fast problemlos.
Einige Probleme gab es bei den Einzelteilen die nicht waagerecht oder senkrecht eingebaut wurden.
Die meisten Bauteile die verdreht eingebaut werden sollten, konnten einfach nicht mit der Software richtig platziert werden.
Diese Bauteile haben wir in der Bauanleitung extra erwähnt.
 
== Umsetzung - Software ==
<br />
Die Software-Programmierung wurde mit hilfe von den Aufgaben aus dem Praktikumsterminen Schritt für Schritt durchgeführt.
In folgendem Konzept zeigen wir Ihnen den Verlaufsplan des Auto-Roboters zum Parken.
 
Das Fahrzeug startet parallel zur Wand und fährt geradeaus stets parallel zur Wand mit Hilfe von der Querregelung mit den Daten vom Gyrosensor.
Auf die rechten Seite werden während der Fahrt mit dem Ultraschallsensor die Abstände gemessen, sobald ein ausreichender Abstand (Breite) in ausreichender Länge vorhanden ist,
wurde die Parklücke gefunden und das Fahrzeug stoppt die Suche, falls der Parkplatz nicht gefunden wurde, dann wird es weitergesucht bis einer gefunden wurde.
 
Bevor der Einparkvorgang beginnt, fährt das Fahrzeug ganz kurz nach vorn und anschließend stoppt.Hier nach beginnt der Einparkvorgang.
zu erst wird nach rechts eingeschlagen und das Fahrzeug beginnt rückwärts zu fahren bis das Fahrzeug mit dem Winkel von 40° zur Straße steht.
Das Fahrzeug fährt weiterhin rückwärts. Anschließend wird die Lenkung voll nach links eingeschlagen bis das Fahrzeug wieder parallel zur Straße steht.
Erst dann stoppt das Fahrzeug und fährt nicht mehr rückwärts.
Die Räder werden wieder gerade ausgerichtet, das Fahrzeug fährt kurz nach vorn bis es mittig in der Parklücke steht und stoppt.
Fahrzeug ist geparkt, Ton wird abgespielt und ende... 
 
[[Datei:Software_Verlauf.jpg| Software Verlaufsplan]]
<br /><br />
 
== Fazit ==
Durch Teamarbeit haben wir auch komplexe Aufgaben einige auch unter dem Zeitdruck trotzdem gut gemeistert.
Unsere Kenntnisse wurden in mechatronische Systeme, in Mess-, Regelungs- und Digitaltechnik vertieft.
Die Arbeit mit Matlab und Simulink hat uns weitere sehr nützliche Ingenieurs-Tools näher gebracht.
 
Das Informatikpraktikum hat uns einige "Aha-Effekte" beschert, und uns die Möglichkeit gegeben praktische Erfahrungen zu sammeln.
 
== Downloads ==
[[Datei:Screenshot_Video2.jpg||400px|mini|rechts|Screenshot vom Video]]
Zum herunterladen des Videos drücken Sie bitte auf "Datei:Video.zip" und anschließend auf "Video.zip".
Zum entpacken brauchen Sie einen Programm zum ZIP-Dateien entpacken und anschließend ein Programm zum abspielen von mp4-Dateien.
 
[[Medium:Video.zip| Video Herunterladen in ZIP-Format (MP4)]]
<br />
 
 
Bauanleitung zum nachbauen des Fahrzeugs (als PDF)
 
[[Medium:Bauanleitung.pdf| Bauanleitung Herunterladen in PDF-Format]]
<br /><br />
 
Hier können Sie den Roboter in 3D herunterladen. Sie wurde mit Hilfe von LEGO Digital Designer erstellt.
Damit Sie diese Datei öffnen können, benötigen Sie eine ZIP-Software [http://www.7-zip.de (7-zip Download)] und den [http://ldd.lego.com/de-de/download LEGO Digital Designer]
 
[[Medium:3D_robo_lxf.zip| ''3D-Modell in ZIP-Format'']]
<br /><br /><br />
 
== Weblinks ==
 
* [http://sourceforge.net/projects/bricxcc/files/bricxcc/ BricxCC]
* [http://www.lego.com/de-de/mindstorms/?domainredir=mindstorms.lego.com LEGO Mindstorms]
* [http://ldd.lego.com/de-de/ LEGO Digital Designer]
* [http://www.7-zip.de 7-zip]
* [http://tortoisesvn.net/index.de.html tortoisesvn.net]
 
== YouTube Video ==
{{#ev:youtube|http://youtu.be/izVa_K-Iw5o | 720 | | Autonomes Einparken - Team C2 |frame}}
 
 
 
----
→ zurück zum Hauptartikel: [[Autonomes_Fahren_SoSe14|Autonomes Fahren SoSe14]]

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

Robo_C2
Robo_C2

Vorwort

AEP - autonomes Einparken, war ein Projekt des zweiten Informatikpraktikums im Studiengang Mechatronik (Sommersemester 2014) an der Hochschule Hamm-Lippstadt(wiki). Für die wertvolle Unterstützung und Leitung des Projekts bedanken wir uns an den Prof. Ulrich Schneider.

Projektgruppe C2

  • Christo Tsibadze
    • HSHL-Wiki-Eintrag
    • Programmieren
    • Präsentation
    • Videoschnitt
    • Roboterbau
    • LEGO Digital Designer - Bauanleitung
  • Martin Vo
    • Programmieren
    • Präsentation
    • LEGO Digital Designer - 3D-Modell
    • LEGO Digital Designer - Bauanleitung
  • Benedikt Röper
    • Programmieren
    • Präsentation
    • Roboterbau
    • Konzeptionierung


Praktikumsziele

  • Die praktische Vertiefung der Informatikkenntnisse speziell in:
  • Vertiefung der Kenntnisse in prinzipiellen Aufbau von Mechtronischen Systemmen,
  • so wie das Erwerben der Grundkenntnisse in Mess-, Regelungs- und Digitaltechnik
  • last but not least:
    • Das Lösen von komplexen mechatronischen Aufgaben im Team!


Projekt-Vorgaben

NXT Brick
Ultraschall NXT



Der Aufbau des Roboters:

  • Der Fahrzeugaufbau sollte sich an der Realität orientieren, somit über eine angetriebene sowie eine lenkende Achse verfügen.
  • Die Konstruktion sollte mit Hilfe des LEGO Mindstorms NXT mit folgendem Inhalt realisiert werden:
    • einem programmierbaren NXT-Stein (NXT-Brick)
    • Sensoren:
      • Ultraschallsensor, für die Abstandsmessung zwischen sich und einem Objekt mit dem Messbereich 6 cm bis 255 cm, cm-genau.
      • Gierratensensor, für die Messung der Winkeländerung pro Zeit
      • Rotationssensor (eingebaut im Servomotor) mit 1° Genauigkeit
    • Aktuatoren:
      • drei Sensormotoren
    • Verbindungskabel
    • diverse LEGO-Bauteile
  • Maximaler Radeinschlagswinkel sollte 40° betragen.
  • Achsabstand (Toleranz ±10%) sollte doppelt so groß sein wie die Spurweite (Toleranz ±5%).
  • Differenzialgetriebe auf Hinterachse



Software Anforderungen:

  • Bei der Softwareumsetzung mit Matlab, sollten die Befehle aus der RWTH Toolbox zur Hilfe genommen werden.
  • Implementierung eines Reglers, mit dessen Hilfe der Roboter geradeaus fahren kann und gegebenfalls die Kursabweichungen korrigiert
  • Implementierung und Steuerung von vorhandenen Sensoren und Aktoren mit Matlab für diverse Aufgaben
  • Als Software-Versionsverwaltung sollten wir SVN benutzen

Prüfung

  • Unter Verwendung von Hard- und Software sollte der Auto-Roboter autonom geradeaus fahren und Parkplatz auf der rechten Seite suchen und einschließlich parken.







Realisierung


Wir wurden mit folgenden Aufgaben im laufe des Semesters auf die Prüfung (autonomes Einparken) gut vorbereitet:

1.Praktikumstermin

  • Roboter mit LEGO Mindstorms unter Berücksichtigung von den Vorgaben konstruieren
  • Implementierung des Gyrosensors
  • kurze Einarbeitung in Matlab und NXC
  • Ultraschallsensor seitlich anbringen
  • Differenzialgetriebe für die Wendigkeit (Tipp)

> Meilenstein 1 - Funktionstüchtiges Fahrzeug

  • Firmware update des Bricks
  • Motortreiber von RWTH Toolbox auf den Bricks laden
  • USB-Verbindung mit Matlab aufbauen
  • Messwerte der Batterie und des US-Sensors auslesen und plotten
  • Mit den SVN Standartfunktionen vertraut machen

> Meilenstein 2 - Verbindung mit Software und Hardware hergestellt, und mit den ersten Funktionen von Matlab und SVN vertraut gemacht

2.Praktikumstermin

  • Funktionen schreiben mit Gierratensensor, Werte auslesen und Winkel berechnen, Daten plotten
  • Offset-Bestimmung des Gyrosensors (Calibrierung)

> Meilenstein 3 - sich mit dem Gyrosensor vertraut gemacht

3.Praktikumstermin

  • Parallel zur Wand fahren mit Hilfe des Ultraschallsensors
  • Parallel zur Wand fahren mit Hilfe des Gyrosensors --> Regler Implementierung
  • Lineare Rampe implementieren für das sanfte Anfahren

> Meilenstein 4 - Querregelung und Rampe

4.Praktikumstermin

  • Task Parken schreiben, die entstandene Messwerte als Text-Datei speichern

> Meilenstein 5 - Funktion - Parken funktioniert

5.Praktikumstermin

  • sich mit Simulink und Stateflow vertraut machen und die vorherigen Funktionen hiermit umsetzen

> Meilenstein 6 -das Komplette Programm zum Einparken fertig für die Prüfung

Umsetzung - Hardware

Robo_2
Modellierung mit LEGO Designer
Bauanleitung erstellen


Robo_C2
Für bessere Wendigkeit haben wir das Differenzialgetriebe auf hintere Achse verbaut. Der erste Servomotor dient für die vorwärts- und rückwärts Bewegungen mit der Hinterachse. Zweiter Servomotor für die Lenkung mit der Vorderachse. Den Gierratensensor haben wir oben links angebracht in Fahrtrichtung und den Ultraschallsensor oben in Fahrtrichtung rechts damit der Roboter rechts nach Parkplatz suchen kann. Das NXT-Stein (Brick) wurde ergonomisch verbaut, somit alle Anschlüsse und Bedienelemente frei und leicht zugänglich sind. Außerdem wurde vorne ein Hilfs-Lenkungsrad angebracht damit man auch manuell per Hand die Lenkung gegebenfalls anfangs ausrichten kann.
Die Zusammengefassten Fahrzeugparameter können Sie in folgender Tabelle ablesen.

Fahrzeugparameter Wert
Fahrzeuglänge 262 mm
Fahrzeugbreite 165 mm
Spurweite vorn 160 mm
Spurweite hinten 154 mm
Achsabstand 190 mm
Max. Radeinschlagswinkel Links 40° (Tol. -5°)
Max. Radeinschlagswinkel Rechts 40° (Tol. -5°)


3D-Modelierung mit LEGO Digital Designer Bei 3D-Modellierung mit Hilfe von LEGO Digital Designer waren die bereits fertigen 3D-Einzelteile sehr hilfreich und zeitsparend. Nach kurzer Einarbeitung funktioniert die Modellierung fast problemlos. Einige Probleme gab es bei den Einzelteilen die nicht waagerecht oder senkrecht eingebaut wurden. Die meisten Bauteile die verdreht eingebaut werden sollten, konnten einfach nicht mit der Software richtig platziert werden. Diese Bauteile haben wir in der Bauanleitung extra erwähnt.

Umsetzung - Software


Die Software-Programmierung wurde mit hilfe von den Aufgaben aus dem Praktikumsterminen Schritt für Schritt durchgeführt. In folgendem Konzept zeigen wir Ihnen den Verlaufsplan des Auto-Roboters zum Parken.

Das Fahrzeug startet parallel zur Wand und fährt geradeaus stets parallel zur Wand mit Hilfe von der Querregelung mit den Daten vom Gyrosensor. Auf die rechten Seite werden während der Fahrt mit dem Ultraschallsensor die Abstände gemessen, sobald ein ausreichender Abstand (Breite) in ausreichender Länge vorhanden ist, wurde die Parklücke gefunden und das Fahrzeug stoppt die Suche, falls der Parkplatz nicht gefunden wurde, dann wird es weitergesucht bis einer gefunden wurde.

Bevor der Einparkvorgang beginnt, fährt das Fahrzeug ganz kurz nach vorn und anschließend stoppt.Hier nach beginnt der Einparkvorgang. zu erst wird nach rechts eingeschlagen und das Fahrzeug beginnt rückwärts zu fahren bis das Fahrzeug mit dem Winkel von 40° zur Straße steht. Das Fahrzeug fährt weiterhin rückwärts. Anschließend wird die Lenkung voll nach links eingeschlagen bis das Fahrzeug wieder parallel zur Straße steht. Erst dann stoppt das Fahrzeug und fährt nicht mehr rückwärts. Die Räder werden wieder gerade ausgerichtet, das Fahrzeug fährt kurz nach vorn bis es mittig in der Parklücke steht und stoppt. Fahrzeug ist geparkt, Ton wird abgespielt und ende...

Software Verlaufsplan

Fazit

Durch Teamarbeit haben wir auch komplexe Aufgaben einige auch unter dem Zeitdruck trotzdem gut gemeistert. Unsere Kenntnisse wurden in mechatronische Systeme, in Mess-, Regelungs- und Digitaltechnik vertieft. Die Arbeit mit Matlab und Simulink hat uns weitere sehr nützliche Ingenieurs-Tools näher gebracht.

Das Informatikpraktikum hat uns einige "Aha-Effekte" beschert, und uns die Möglichkeit gegeben praktische Erfahrungen zu sammeln.

Downloads

Screenshot vom Video

Zum herunterladen des Videos drücken Sie bitte auf "Datei:Video.zip" und anschließend auf "Video.zip". Zum entpacken brauchen Sie einen Programm zum ZIP-Dateien entpacken und anschließend ein Programm zum abspielen von mp4-Dateien.

Video Herunterladen in ZIP-Format (MP4)


Bauanleitung zum nachbauen des Fahrzeugs (als PDF)

Bauanleitung Herunterladen in PDF-Format

Hier können Sie den Roboter in 3D herunterladen. Sie wurde mit Hilfe von LEGO Digital Designer erstellt. Damit Sie diese Datei öffnen können, benötigen Sie eine ZIP-Software (7-zip Download) und den LEGO Digital Designer

3D-Modell in ZIP-Format


Weblinks

YouTube Video

Autonomes Einparken - Team C2



→ zurück zum Hauptartikel: Autonomes Fahren SoSe14