AEP Gruppe C2: Unterschied zwischen den Versionen
Zeile 8: | Zeile 8: | ||
== Projektgruppe C2 == | == Projektgruppe C2 == | ||
*[[Benutzer:Christo_Tsibadze| Christo Tsibadze]] | *[[Benutzer:Christo_Tsibadze| Christo Tsibadze]] | ||
**HSHL-Wiki-Eintrag | |||
**Programmieren | |||
**Präsentation | |||
**Videoschnitt | |||
** | |||
*Martin Vo | *Martin Vo | ||
**Programmieren | |||
**Präsentation | |||
**LEGO Digital Designer - 3D-Modell | |||
**LEGO Digital Designer - Bauanleitung | |||
*Benedikt Röper | *Benedikt Röper | ||
**Programmieren | |||
**Präsentation | |||
<br /> | <br /> | ||
== Praktikumsziele == | == Praktikumsziele == | ||
*Die praktische Vertiefung von Informatikkenntnissen speziell in: | *Die praktische Vertiefung von Informatikkenntnissen speziell in: |
Version vom 19. Juni 2014, 18:46 Uhr
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
- Martin Vo
- Programmieren
- Präsentation
- LEGO Digital Designer - 3D-Modell
- LEGO Digital Designer - Bauanleitung
- Benedikt Röper
- Programmieren
- Präsentation
Praktikumsziele
- Die praktische Vertiefung von Informatikkenntnissen speziell in:
- Vertiefung von Kenntnissen 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
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
- Verbindungskabeln
- 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
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.
Zweites 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 fertige 3D-Einzelteile sehr hilfreich und zeitsparend.
Nach kurze 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 mit der Software nicht 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 rechte Seite wird während der Fahrt mit dem Ultraschallsensor die Abstände gemessen, sobald ein ausreichender Abstand 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 eins gefunden wurde.
Bevor das Einparkvorgang beginnt, fährt das Fahrzeug ganz kurz nach vorn, und beginnt erst dann den 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. 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...
Downloads
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.
Bauanleitung zum nachbauen des Fahrzeugs (als PDF)
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
Weblinks
Feedback zum Artikel
--Ulrich Schneider (Diskussion) 08:31, 19. Jun. 2014 (CEST)
- Wirkt noch unvollständig.
--Christo Tsibadze (Diskussion) 19:17, 19. Jun. 2014 (CEST)
- Und wie ist es jetzt?
→ zurück zum Hauptartikel: Autonomes Fahren SoSe14