(WS17-01) Autonomes Modellfahrzeug

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche
Name Kürzel Bereich
Daniel Ring DR ORB-SLAM, System
Dennis Nielen DN Künstliche Intelligenz
Ingo Braun IB ORB-SLAM, System
Jan Larwig JL Bildverarbeitung, System, Projektleitung
Nico Böhm NB Künstliche Intelligenz
Ricardo Costa RC Künstliche Intelligenz
Thorsten Schmitt TS Bildverarbeitung
Tobias Hofmann TH System
Tobias Neuber TN Bildverarbeitung, Künstliche Intelligenz
Yannick Kilian YK ORB-SLAM, System

Für die nachfolgende Gruppe: Getting Startet Guide

Dieses Projekt ist die Weiterentwicklung eines autonomen Modellfahrzeug für die Teilnahme am Carolo-Cup. Da einige Ansätze und der Grundaufbau des Projekts vom vorherrigen Semester übernommen wurden, sind entsprechend auch mehrere Textpassagen und Auszüge aus den Wiki Seiten des Semesters WS16/17 in die folgenden Texte eingeflossen oder wurden gar vollständig übernommen.


Einleitung

Dieses Wiki dient zur Dokumentation des Fortschrittes im Wahlprojekt "Autonomes Modellfahrzeug" und wird fortlaufend aktualisiert. Die Beiträge und Leistungen in diesem Projekt bauen auf dem letzten Semester WS16/17 auf. Das Ziel des Wahlprojekts besteht darin, die Systemreife soweit vorran zu treiben, dass eine Teilnahme am Carolo-Cup[1] möglich wird.

Projektbeschreibung

Autonomie setzt sich aus den Worten autos (selbst) und nomos (Regel oder Gesetz) zusammen.[2] Demnach können autonome Autos als Fahrzeuge verstanden werden, die in der Lage sind autonom und zielorientiert durch eine Umgebung zu navigieren.[3] Mit anderen Worten sind autonome Systeme selbststeuernde Systeme, die ihre Regeln und Gesetze selbst eingrenzen. Ein besonders interessanter Anwendungsfall für autonome Systeme ist die Umsetzung in ein Automobil. Über die Idee autonomer Fahrzeuge, welche Insassen ohne deren Einsatz und unter eigener Steuerung befördern, wurde und wird zur Zeit in der Politik und Wirtschaft stark diskutiert. Trotz der noch nicht ganz klaren Gesetzeslage[4] befassen sich alle Automobilhersteller, sowie große IT-Unternehmen schon länger intensiv mit der Umsetzung von autonomen Fahrzeugen. Auch an der Hochschule RheinMain setzt sich der Fachbereich “Angewandte Informatik” mit diesem Anwendungsfall intensiv auseinander. Die 10 Studenten des Wahlprojekts “Autonomes Modellfahrzeug” bauen innerhalb eines Semesters die Logik für ein autonomes Fahrzeug im Maßstab 1/10.

Problemstellung

Die unterschiedlichen Probleme aus der Bildverarbeitung, Künstlichen Intelligenz / Machinellen Lernen, Kartografie und Navigation so wie der System und Regelungstechnik werden auf der jeweiligen Wikiseite erläutert.

Allgemeines

Toolchain

Hier werden die genutzten Tools für die Projektorganisation aufgelistet und erläutert.

Slack

Für die Kommunikation zwischen den Teammitgliedern wurde ein Slackserver angelegt

https://carolo-hsrm2017.slack.com

Jibble

Zum festhalten der geleisteten Arbeitszeit wurde Jibble verwendet. Dieser Dienst kann als "Bot" in Slack integriert werden, wodurch eine sehr komfortable Nutzung möglich ist.

https://www.jibble.io/time-tracking-for-slack

Gitlab

Als Versionsverwaltung wurde Git verwendet und als Remote Server das von der Hochschule zur Verfügung gestellte Gitlab.

https://zenon.cs.hs-rm.de/CaroloCup/

Aufbau des Systems

Version 0.1 Auto ubersicht.jpeg


Version 0.2 WS16-10 UML - Gesamt.png


Version 0.3 (WS17-01) Autonomes Modellfahrzeug - Projekt-Struktur.png


Komponenten

B.O.B.B.I.E. - Basic Operation Behaviour By Image Evaluation

P.H.I.L. - Path Holding Improvement Layer

E.M.A. - Environment Mapping Agent

Arbeiten mit dem Auto

In diesem Abschnitt der Dokumentation wird das Arbeiten mit dem Modellfahrzeug und des darauf installiertem System näher erläutert. Des Weiteren wird das Setup der Entwicklungsumgebung für die programmierten Komponenten erklärt.

Weitere Informationen zum Aufbau des System, welches Großteils vom vorherrigen Projektteam entwickelt wurde, finden sich auf der folgenden System Seite.

Starten des Autos

WICHTIG: Um das Auto im Akkubetrieb zu starten, muss der Wippschalter an der linken Seite betätigt werden, damit wird die Stromzufuhr aktiviert, um das Betriebssystem hochzufahren, muss der blaue Powerknopf auf der rechten Seite des Beagleboards gedrückt werden. Zusätzlich gibt es einen kleineren Schalter an der linken Seite mit dem die Stromzufuhr zu den Motoren des Autos aktiviert wird. Dies wird durch ein akustisches Signal bestätigt.

Um das Auto im Netzbetrieb zu starten, muss der Akku abgeschlossen sein und der Wippschalter an der linken Seite darf nicht betätigt werden!

Installation der Entwicklungsumgebung

Für die Kompilierung für das Zielsystem des Modellfahrzeugs wird das Software Development Kit benötigt. Es muss entsprechend für den eigenen Rechner die 64bit oder 32bit Variante gedownloadet und installiert werden. Für weitere Informationen zur Installation und wie die Systemkomponenten auf dem lokalen System für das Auto kompiliert werden können, bitte den Getting Startet Guide lesen.

Verbinden per WLAN

Ist das Auto gestartet, so kann man sich innerhalb des CaroNet WLANs mit dem Auto über ssh verbinden. Mithilfe eines Skripts wird die IP Adresse des Autos über den folgenden Link zur Verfügung gestellt. [IP]

Mit folgendem Befehl kann sich dann verbunden werden.

$ ssh root@[ip] 

Verbinden per USB

Um sich mit dem Auto über USB zu verbinden, wird ein entsprechendes Kabel benötigt. Zusätzlich muss die Software minicom auf dem eigenen Rechner installiert werden.

Das serielle Ende muss wie auf dem folgenden Bild gezeigt an das Auto angeschlossen werden.

Carolo serielle usb.jpg

Mit folgendem Befehl kann die Konsole gestartet werden:

$ sudo minicom -D /dev/ttyUSB0

Wird das Auto gestartet, kann der Bootvorgang beobachtet werden. Anschließend ist der Zugang als root User auf dem Auto möglich.

Organisatorisches

Zuständigkeiten

Bildverarbeitung

Weitere Informationen auf der eigenen Wiki-Seite: Bildverarbeitung

Name Kürzel Zuständigkeit
Jan Larwig JL ROI, Sobel-Filter, Bildvorverarbeitung, Bitmap
Thorsten Schmitt TS ROI, Sobel-Filter, Bildverzehrung, Linien Erkennung
Tobias Neuber TN ROI, Bildverzehrung

Künstliche Intelligenz

Weitere Informationen auf der eigenen Wiki-Seite: KI

Name Kürzel Zuständigkeit
Dennis Nielen DN Caffe, Keras, TinyDNN
Nico Böhm NB TinyDNN, Caffe, Trainingsdaten Aufbereitung, Tensorflow
Ricardo Costa RC PHIL, Keras, Tensorflow
Tobias Neuber TN PHIL

ORB-SLAM

Weitere Informationen auf der eigenen Wiki-Seite: ORB-SLAM

Name Kürzel Zuständigkeit
Daniel Ring DR Evaluierung, Implementierung, Optimierung
Ingo Braun IB Evaluierung, Implementierung, Optimierung
Yannick Kilian YK Evaluierung, Implementierung, Optimierung

System

Weitere Informationen auf der eigenen Wiki-Seite: System

Name Kürzel Zuständigkeit
Tobias Hofmann TH Simulation
Daniel Ring DR Auto Exposure, Kamerakalibrierung
Ingo Braun IB Auto Exposure, Kamerakalibrierung
Jan Larwig JL Caffe, Telemetrie
Yannick Kilian YK Auto Exposure, Kamerakalibrierung

Projektverwaltung und Management

Bedingt durch die komplexen und zu Beginn größten Teils unbekannten Aufgabenbereiche, wurde sich für eine lose Projektleitung und Gestaltung entschieden. Es wurde bewusst kein SCRUM oder Kanban angewandt, da es uns sehr schwer fiel genaue Ziele und vor Allem zeitlichen Aufwand für die Einarbeitung in Bibliotheken und das Testen von Ansätzen und Frameworks abzuschätzen. Wie auf der Wikiseite der KI und Bildverarbeitung genauer erläutert wird, hat es sehr viel Zeit in Anspruch genommen, zu evaluieren welche Konzepte geeignet sind und welches Neuronales Netz Framework Seitens der KI auf dem Auto zu laufen zu bekommen war.

Zeitliche Arbeitsverteilung

Folgend werden Grafiken über die Arbeitsverteilung aufgelistet.

Arbeitsstundenverlauf

Name Kürzel Arbeitsstunden
Daniel Ring DR 133.19
Dennis Nielen DN 278.04
Ingo Braun IB 172.91
Jan Larwig JL 334.43
Nico Böhm NB 209.90
Ricardo Costa RC 237.92
Thorsten Schmitt TS 217.37
Tobias Hofmann TH 182.61
Tobias Neuber TN 222.13
Yannick Killian YK 160.35
Gesamte Arbeitsleistung über den Projektzeitraum

Gesamtarbeitsstunden

Wochenarbeitsstunden Verlauf des gesamten Teams

Verteilung im Projekt anhand der Arbeitsbereiche

Verteilung im Projekt anhand der Arbeitsbereiche

Einzelnachweise

  1. https://wiki.ifr.ing.tu-bs.de/carolocup/news
  2. Vgl. wissen.de (o.J.): Herkunftswörterbuch. autonom. Online verfügbar unter http://www.wissen.de/wortherkunft/autonom, zuletzt geprüft am 19.10.2017.
  3. Vgl. Berns, von Puttkamer (2009), S.1
  4. https://www.bundesregierung.de/Content/DE/Artikel/2017/01/2017-01-25-automatisiertes-fahren.html, zuletzt geprüft am 19.10.2017.