AEP Gruppe B2 - SoSe18: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(41 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 5: Zeile 5:


Dazu musste zunächst ein Fahrzeug mit Hilfe von Lego- Mindstorm Komponenten konstruiert werden.
Dazu musste zunächst ein Fahrzeug mit Hilfe von Lego- Mindstorm Komponenten konstruiert werden.
Dabei wurde darauf geachtet die Konstruktion möglichst real Getreu zu bauen.  
Dabei wurde darauf geachtet die Konstruktion möglichst realgetreu zu bauen.  
Deshalb verfügt  Fahrzeug  über eine lenkbare Vorderachse, die durch Zahnräder verbunden wurde. Zudem verfügt die Antriebsachse, die die Hinterachse ist über ein Differrenzielgetriebe. Zudem besitzt der PKW über einem Ultraschallsensor, sowie einem Gierratensensor.
Deshalb verfügt  das Fahrzeug  über eine lenkbare Vorderachse, die durch Zahnräder verbunden wurde. Zudem verfügt die Antriebsachse, die die Hinterachse ist über ein Differrenzielgetriebe. Zudem besitzt der PKW über einem Ultraschallsensor, sowie einem Gierratensensor.
Durch das Differential ist der Wendekreis sehr  kleineren und sich die Räder mit unterschiedlichen Geschwindigkeiten drehen können.
Durch das Differential ist der Wendekreis sehr  klein und die Räder können sich mit unterschiedlichen Geschwindigkeiten drehen.




Zeile 19: Zeile 19:




== Vorstellung der Gruppe und Kompetenzbereich ==
'''[http://193.175.248.52/wiki/index.php/Benutzer:Lukas_Kriete Lukas Kriete]:'''
#Programmierung mithilfe von Matlab
#Konstruktion des Roboters
#Erstellung eines Wiki- Artikel


'''[http://193.175.248.52/wiki/index.php/Benutzer:Moritz_Oberg Moritz Oberg]:''' 
#Programmierung mithilfe von Matlab
#Konstruktion des Roboters
#Erstellung des Image- Films
#Erstellung des Videos
'''[http://193.175.248.52/wiki/index.php/Benutzer:Jendrik_Terharen Jendrik Terharen:]:''' 
#Programmierung mithilfe von Matlab
#Konstruktion des Roboters
#Nachbau des Roboters in Lego Digital Designer
#Erstellung eines Wiki- Artikel
 






== Vorstellung der Gruppe und Kompetenzbereich ==


[http://193.175.248.52/wiki/index.php/Benutzer:Lukas_Kriete Lukas Kriete]: Programmierung, Konstruktion, Wiki- Artikel


[http://193.175.248.52/wiki/index.php/Benutzer:Moritz_Oberg Moritz Oberg]:  Programmierung, Konstruktion, Lego Digital Designer


[http://193.175.248.52/wiki/index.php/Benutzer:Jendrik_Terharen Jendrik Terharen:]    Programmierung, Konstruktion


== Hardware ==








== Hardware ==
[[Datei:Ansicht-rechts-beschriftet.PNG|400px|thumb|right|Ansicht von rechts des Roboters]]
[[Datei:Ansicht-links-Beschriftet.PNG|400px|thumb|right|Ansicht von links des Roboters]]


Die erste Aufgabe bestand darin ein Fahrzeug zu konstruieren. Dabei orientierten wir uns an den oben angegebenen Eigenschaften, welche wichtig für die Funktion sind.
Das Fahrzeug besteht aus:


'''Lego NXT Brick'''


Der NXT- Brick ist das "Gehirn" von dem Fahrzeug. Bei ihm werden alle Sensoren und Motoren angeschlossen.


'''Aktuatoren'''


Das Fahrzeug ist mit zwei Motoren ausgestattet. Dererste Motot ist für die Fahrt nach vorne und hinten verantwortlich. Der zweite Motot dient zur Lenkung.


'''Sensoren'''


• Der '''Gyrosensor''' ist ein Beschleunigungs- oder Lagesensor zu Ermittlung der aktuellen Lage des Fahrzeugs <br/>
• Der '''Ultraschallsensor''' erfasst den Abstand zu einem Objekt. Dadurch kann eine passenden Parklücke für das Fahrzeug gefunden werden


==Fahrzeugparameter==
==Abmessung des Roboters==
{| class="wikitable"
{| class="wikitable"
|-
|-
! style="width:50%"| Parameter      !!  style="width:40%"|Wert
! style="width:50%"| Parameter      !!  style="width:40%"|Wert
|-
|-
| Länge                            ||style="text-align:right"| 325 mm
| Fahrzeuglänge                  ||style="text-align:right"| 235 mm
|-
|-
| Breite                            ||style="text-align:right"| 155 mm
| Fahrzeugbreite                          ||style="text-align:right"| 170 mm
|-
|-
| Spurweite (vorn)                 ||style="text-align:right"| 155 mm
| Spurweite (vorn)                   ||style="text-align:right"| 130 mm
|-  
|-  
| Spurweite (hinten)                ||style="text-align:right"| 155 mm  
| Spurweite (hinten)                ||style="text-align:right"| 125 mm  
|-
|-
| Achsabstand                       ||style="text-align:right"| 240 mm
| Achsabstand                       ||style="text-align:right"| 180 mm
|-
|-
| Max. Lenkeinschlag                ||style="text-align:right"| 40 °
| Max. Radeinschlagswinkel Linkseinschlag in Deg                      ||style="text-align:right"| 180 mm
|-
|-
| Max. Geschwindigkeit              ||style="text-align:right"| 0,40 m/s                   
| Max. Radeinschlagswinkel Rechtseinschlag in Deg                    ||style="text-align:right"| 180 mm
|}
|}


== Software ==
== Software ==


Als Software, um den Parkalgorithmus zu programmieren, wurde die Toolbox der RWTH Aachen in MATLAB genutzt. Dieses Programm ermöglicht es, Algorithmen zu entwickeln, die sowohl mit spezifischen Befehlen für den Lego-Rechner, als auch mit bekannten Kontrollstrukturen wie „for“- oder „while“-Schleifen aus Programmiersprachen wie C++ arbeiten. Im Vergleich zu den klassischen NXT Programmen, ist hier eine theoretisch unbegrenzte Programmgröße möglich. Des Weiteren bietet Matlab (Toolbox der RWTH Aachen) bereits implementierte komplexe numerische Funktionen und Algorithmen an, wie z.B. eine Routine für das Kalibrieren und Initialisieren des Gyroskops. Die erforderlichen Toolboxen und Bibliotheken lassen sich ganz einfach in der Programmierumgebung integrieren und nutzen. Hilfreich sind dabei auch die gut dokumentierten Befehlsbeschreibungen, die sich per Rechtsklick öffnen lassen, sowie die detailliert erläuterten Erklärungen und Beispiele, die sich auf der Internetseite der Firma [http://de.mathworks.com/ Mathworks] oder der [http://www.mindstorms.rwth-aachen.de/ RWTH Aachen] finden lassen.
In diesem Semester wurde MATLAB von der Firma [http://de.mathworks.com/ Mathworks] zum Programmieren des NXT genutzt. Hierzu musste allerdings zuerst die Toolbox der RWTH Aachen in MATLAB integriert werden. Diese Toolbox bietet die Möglichkeit Programme zu erstellen und diese Befehle an den NXT zu senden. Da die Programme nun nicht mehr auf dem NXT gespeichert werden, sondern vom Computer per Bluetooth oder Kabel übertragen werden, können hier größere Programme erstellt werden, als bei den klassischen NXT Programmen. In der Toolbox sind viele Funktionen und Algorithmen bereits implementiert, welche das Programmieren erleichtern. Einführungen und Beispielprogramme findet man auf der Internetseite der [http://www.mindstorms.rwth-aachen.de/ RWTH Aachen].
In den letzten beiden Terminen wurde die Programmier-Software geändert. Anstatt dem dateiorientierten, modularen Aufbau des Codes in MATLAB wurde nun das Simulationswerkzeug [https://de.wikipedia.org/wiki/Simulink Simulink] verwendet. Simulink ist eine Toolbox aus der Umgebung Matlab, die ein Editierfenster als Oberfläche bietet. Dort können sogenannte Funktionsblöcke per Drag and Drop eingefügt werden und logisch untereinander verbunden werden. Der Vorteil liegt darin, dass Simulink speziell konzipiert und daher gut geeignet ist für die Simulation dynamischer Systeme. Das Aussehen der programmierten Gesamtsysteme ähnelt den, aus der Systemtechnik bekannten, Blockschaltbildern, die zur Veranschaulichung von technischen Zusammenhängen verwendet werden. Da eine ergebnisreiche Realisierung mit Simulink aus Gründen der geringen Zeitfenster nicht mehr möglich war, entschieden wir unser Programm weiterhin mit Matlab zu gestalten. So konnten wir einige Verbesserungen umsetzen und den Algorithmus so zuverlässiger arbeiten lassen.
Nach dem das Programm bei MATLAB fertig geschrieben und funktionsfähig war, sollte die gleiche Aufgabenstellung mit [https://de.wikipedia.org/wiki/Simulink Simulink] gelöst werden. Simulink ist eine in MATLAB integrierte Toolbox, bei der man keinen Quellcode erstellt, sondern eine Struktur aus Logik-Blöcken erstellt. Die Blöcke können per Drag and Drop in das Programmierfenster gezogen und miteinander verknüpft werden. Der Vorteil von Simulink ist, dass man einen besseren Überblick über die Programme hat und auch mehrere Bausteine zu einer Funktion zusammen führen und als einzelnen Block darstellen lassen kann. Die Verbindung der einzelnen Bausteine veranschaulicht zudem die technischen Zusammenhänge und macht es für Außenstehende verständlicher.
Aufgrund der fehlenden Zeit haben wir uns entschieden das Programm mit MATLAB zu Ende zu programmieren, da eine ausreichende Einarbeitung in Simulink in zwei Praktikumsterminen nicht möglich war.
 
== Einparkkonzept als Programm-Ablauf-Plan ==
 
[[Datei:Lückefinden.PNG|200px|thumb|left|Die Lücke finden]]
[[Datei:Geradeausfahrt.PNG|200px|thumb|left|Gerade ausfahren]]
[[Datei:Autonomes Einparken Teil1.PNG|200px|thumb|left|autonomes Einparken Abschnitt 1]]
[[Datei:Autonomes Einparken Teil2.PNG|200px|thumb|left|autonomes Einparken Abschnitt 2]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
== Link zum Video ==
 
Um unseren Booby in Action zu sehen und um uns kurz vorzustellen klicke auf [https://www.youtube.com/watch?v=qkzVvh2yVpc/ Einparken]
und unseren Imagefilm finden Sie [https://www.youtube.com/watch?v=ngaRVmgBVlQ/ hier]
 
== Was haben wir gelernt? ==
 
 
#Grafische Programmierung mithilfe von NXT 2.1
#Praktische Anwendung der Programmierkenntnisse mithilfe von Matlab
#Programmumsetzung in simulink
#Umgang mit SVN
#Sensoren und ihre Funktionsweise
#Teamarbeit und Aufgabenverteilung
#Nachvollziehabre Dokumentation im Quellcode
#Erstellung eines Filmes
 
 
 
== Link zu unserem svn-Ordner==
 
Hier befindet sich unser [https://svn.hshl.de/svn/Informatikpraktikum_2/trunk/Gruppen/SoSe2018/MTR_Inf2P_B2// svn-Ordner]
 
== Literaturverzeichnis ==
<references />
 
----
→ zurück zum Hauptartikel: [[Autonomes_Fahren_SoSe18|Informatikpraktikum 2 SoSe18]]

Aktuelle Version vom 8. August 2018, 14:28 Uhr

→ zurück zum Hauptartikel: Informatikpraktikum 2 SoSe18


Vorderansicht des Roboters

Die Aufgabe im Infopraktikum 2 bestand darin ein Fahrzeug zu Konstruieren und zu programmieren, bis der Roboter automatisch in eine parklücke einparken kann.

Dazu musste zunächst ein Fahrzeug mit Hilfe von Lego- Mindstorm Komponenten konstruiert werden. Dabei wurde darauf geachtet die Konstruktion möglichst realgetreu zu bauen. Deshalb verfügt das Fahrzeug über eine lenkbare Vorderachse, die durch Zahnräder verbunden wurde. Zudem verfügt die Antriebsachse, die die Hinterachse ist über ein Differrenzielgetriebe. Zudem besitzt der PKW über einem Ultraschallsensor, sowie einem Gierratensensor. Durch das Differential ist der Wendekreis sehr klein und die Räder können sich mit unterschiedlichen Geschwindigkeiten drehen.






Vorstellung der Gruppe und Kompetenzbereich

Lukas Kriete:
  1. Programmierung mithilfe von Matlab
  2. Konstruktion des Roboters
  3. Erstellung eines Wiki- Artikel
Moritz Oberg:  
  1. Programmierung mithilfe von Matlab
  2. Konstruktion des Roboters
  3. Erstellung des Image- Films
  4. Erstellung des Videos


Jendrik Terharen::   
  1. Programmierung mithilfe von Matlab
  2. Konstruktion des Roboters
  3. Nachbau des Roboters in Lego Digital Designer
  4. Erstellung eines Wiki- Artikel










Hardware

Ansicht von rechts des Roboters
Ansicht von links des Roboters

Die erste Aufgabe bestand darin ein Fahrzeug zu konstruieren. Dabei orientierten wir uns an den oben angegebenen Eigenschaften, welche wichtig für die Funktion sind. Das Fahrzeug besteht aus:

Lego NXT Brick

Der NXT- Brick ist das "Gehirn" von dem Fahrzeug. Bei ihm werden alle Sensoren und Motoren angeschlossen.

Aktuatoren

Das Fahrzeug ist mit zwei Motoren ausgestattet. Dererste Motot ist für die Fahrt nach vorne und hinten verantwortlich. Der zweite Motot dient zur Lenkung.

Sensoren

• Der Gyrosensor ist ein Beschleunigungs- oder Lagesensor zu Ermittlung der aktuellen Lage des Fahrzeugs
• Der Ultraschallsensor erfasst den Abstand zu einem Objekt. Dadurch kann eine passenden Parklücke für das Fahrzeug gefunden werden

Abmessung des Roboters

Parameter Wert
Fahrzeuglänge 235 mm
Fahrzeugbreite 170 mm
Spurweite (vorn) 130 mm
Spurweite (hinten) 125 mm
Achsabstand 180 mm
Max. Radeinschlagswinkel Linkseinschlag in Deg 180 mm
Max. Radeinschlagswinkel Rechtseinschlag in Deg 180 mm

Software

In diesem Semester wurde MATLAB von der Firma Mathworks zum Programmieren des NXT genutzt. Hierzu musste allerdings zuerst die Toolbox der RWTH Aachen in MATLAB integriert werden. Diese Toolbox bietet die Möglichkeit Programme zu erstellen und diese Befehle an den NXT zu senden. Da die Programme nun nicht mehr auf dem NXT gespeichert werden, sondern vom Computer per Bluetooth oder Kabel übertragen werden, können hier größere Programme erstellt werden, als bei den klassischen NXT Programmen. In der Toolbox sind viele Funktionen und Algorithmen bereits implementiert, welche das Programmieren erleichtern. Einführungen und Beispielprogramme findet man auf der Internetseite der RWTH Aachen. Nach dem das Programm bei MATLAB fertig geschrieben und funktionsfähig war, sollte die gleiche Aufgabenstellung mit Simulink gelöst werden. Simulink ist eine in MATLAB integrierte Toolbox, bei der man keinen Quellcode erstellt, sondern eine Struktur aus Logik-Blöcken erstellt. Die Blöcke können per Drag and Drop in das Programmierfenster gezogen und miteinander verknüpft werden. Der Vorteil von Simulink ist, dass man einen besseren Überblick über die Programme hat und auch mehrere Bausteine zu einer Funktion zusammen führen und als einzelnen Block darstellen lassen kann. Die Verbindung der einzelnen Bausteine veranschaulicht zudem die technischen Zusammenhänge und macht es für Außenstehende verständlicher. Aufgrund der fehlenden Zeit haben wir uns entschieden das Programm mit MATLAB zu Ende zu programmieren, da eine ausreichende Einarbeitung in Simulink in zwei Praktikumsterminen nicht möglich war.

Einparkkonzept als Programm-Ablauf-Plan

Die Lücke finden
Gerade ausfahren
autonomes Einparken Abschnitt 1
autonomes Einparken Abschnitt 2


























































































Link zum Video

Um unseren Booby in Action zu sehen und um uns kurz vorzustellen klicke auf Einparken und unseren Imagefilm finden Sie hier

Was haben wir gelernt?

  1. Grafische Programmierung mithilfe von NXT 2.1
  2. Praktische Anwendung der Programmierkenntnisse mithilfe von Matlab
  3. Programmumsetzung in simulink
  4. Umgang mit SVN
  5. Sensoren und ihre Funktionsweise
  6. Teamarbeit und Aufgabenverteilung
  7. Nachvollziehabre Dokumentation im Quellcode
  8. Erstellung eines Filmes


Link zu unserem svn-Ordner

Hier befindet sich unser svn-Ordner

Literaturverzeichnis



→ zurück zum Hauptartikel: Informatikpraktikum 2 SoSe18