Projekt 34: BrickPi Videoverarbeitung: Unterschied zwischen den Versionen
Zeile 53: | Zeile 53: | ||
Hinweis: In Bearbeitung | Hinweis: In Bearbeitung | ||
== Roboter == | == Roboter == | ||
[[Datei:TankbotBrickPi.jpg]] | [[Datei:TankbotBrickPi.jpg|200px|left]] | ||
Der Roboter wie er in Abblildung 4 zu sehen ist wurde mit Hilfe der Anleitung vom "Tankbot"(so heißt das Modell) nachgebaut. Allerdings wurde anstatt der Ketten Reifen verwendet, dies hat den Vorteil, dass das Kamerablid nicht verwackelt. Des Weiteren wurde an der Stelle wo der Gyrosensor vorgesehen ist, befindet sich die Webcam. Dies waren die einzigen änderungen die am "Tankbot", der Link zur Bauanleitung befindet sich weiter unten | Der Roboter wie er in Abblildung 4 zu sehen ist wurde mit Hilfe der Anleitung vom "Tankbot"(so heißt das Modell) nachgebaut. Allerdings wurde anstatt der Ketten Reifen verwendet, dies hat den Vorteil, dass das Kamerablid nicht verwackelt. Des Weiteren wurde an der Stelle wo der Gyrosensor vorgesehen ist, befindet sich die Webcam. Dies waren die einzigen änderungen die am "Tankbot", der Link zur Bauanleitung befindet sich weiter unten |
Version vom 5. Februar 2016, 13:12 Uhr
Autoren: Sven Söbbeke, Kevin Penner
Betreuer: Prof. Schneider
Aufgabe
Nutzen Sie Matlab/Simulink, einen Raspberry Pi, das Shield BrickPi und eine Webcam, um ein Objekt zu erkennen.
Erwartungen an die Projektlösung
- Lesen Sie eine Webcam mit dem BrickPi und Matlab‐Simulink aus.
- Verarbeiten Sie das Videobild mit Matlab/Simulink (z. B. rote Ball erkennen)
- Bauen Sie einen NXT oder EV3 Roboter.
- Steuern Sie über Matlab/Simulink und BrickPi Ihren Roboter an, so dass er auf das Videobild reagiert und eine Aktion ausführt.
- Modellbasierte Programmierung der Hardware via Target Installer
- Wiss. Dokumentation der Lösung und Funktionsnachweis
- Live Vorführung während der Abschlusspräsentation
Nachtrag: Sollte sich die Integration in Simulink als zu kompliziert herausstellen, ist eine Realisierung mit der Programmiersprache C empfehlenswert.
Schwierigkeitsgrad
Anspruchsvoll (***)
Planung
Projektplanung
Zu Beginn des Projektes wurde zunächst ein Projektplan erstellt, dieser wurde in sechs Phasen aufgeteilt, diese Auteilung findet sich auch in Abbildung 1 wieder:
- Bau des Roboters
- Erstellung des Algorithmus für die Bildverarbeitung in Matlab
- Ansprechen der Motoren
- Erstellung des Algorithmus für die Bildverarbeitung in Simulink
- Erstellung der Projektpräsentation
- Erstellung der Projektdokumentation
Verwendete Bauteile
- 1x Raspberry Pi
- 1x Brick Pi
- 1x Webcam
- 2x EV3 Motoren
- 1x LEGO Mindstorms EV3 Education + Ergänzungsset
Software
Die Anforderungen an die Bildverarbeitung war es, ein Zebrastreifenmuster auf einer Fahrbahn zu erkennen. Ist dies der Fall, wird ein high am Ausgang der Funktion angelegt, welches z.B. einen langsamen Bremsvorgang auslösen könnte. So wurde zunächst ein Programmablaufplan geschrieben (siehe Abbildung 3), welcher folgende Schritte enthält:
Hinweis: In Bearbeitung
Roboter
Der Roboter wie er in Abblildung 4 zu sehen ist wurde mit Hilfe der Anleitung vom "Tankbot"(so heißt das Modell) nachgebaut. Allerdings wurde anstatt der Ketten Reifen verwendet, dies hat den Vorteil, dass das Kamerablid nicht verwackelt. Des Weiteren wurde an der Stelle wo der Gyrosensor vorgesehen ist, befindet sich die Webcam. Dies waren die einzigen änderungen die am "Tankbot", der Link zur Bauanleitung befindet sich weiter unten
Fazit und Ausblick
Erfüllte Aufgaben des Projektes
- Auslesen einer Webcam mit dem BrickPi und Matlab/Simulink
- Verarbeiten eines Videobildes mit Matlab/Simulink und Erkennung eines Zebrastreifens
- Bau eines NXT oder EV3 Roboters
- Modellbasierte Programmierung der Hardware via Target Installer (Simulink Support Package für Raspberry Pi Hardware)
- Wissenschaftliche Dokumentation der Lösung und Funktionsnachweis
- Live Vorführung während der Abschlusspräsentation
Lernerfolge
→ zurück zum Hauptartikel: Fachpraktikum Elektrotechnik (WS 15/16)