Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi - 2019

Jetzt gehe ich einmal davon aus, dass ausreichend viele Trainingsdaten aufgezeichnet wurden und diese dem eigenen Anspruch entsprechen um das neuronale Netz zu trainieren. Die Trainingsumgebung richtet ihr idealerweise auf einem Rechner mit Ubuntu und einer leistungsstarken GPU ein. Ich verwende mein in die Jahre gekommenes Lenovo Notebook mit i5 Prozessor und ohne einer starken Grafikkarte also ohne GPU Unterstützung.

Einrichten der virtuellen Umgebung

Als erstes richtet ihr euch eine virtuelle Umgebung mit Conda ein die den Namen “openbot” erhalten soll. Dazu führt ihr den folgenden Befehl aus der einmal die Umgebung “openbot” einrichtet mit allen notwendigen zusätzlichen Modulen.

Hinweis: Ich empfehle unter dem Home Ordner einen Ordner mit dem Namen “openbot” anzulegen und in diesen über die Konsole zu wechseln.

Installation ohne GPU Unterstützung:

Befehl: conda create -n openbot python=3.7 tensorflow=2.0.0 notebook=6.1.1 matplotlib=3.3.1 pillow=7.2.0

Installation mit GPU Unterstützung:

Befehl: conda create -n openbot python=3.7 tensorflow-gpu=2.0.0 notebook=6.1.1 matplotlib=3.3.1 pillow=7.2.0

Hinweis: Sollte es sofort zu einem Fehler kommen, dass der Aufruf conda nicht bekannt ist oder ähnlich dann kann es sein das Conda als Programm noch nicht auf eurem Rechner installiert ist. Wie genau Conda installiert werden kann ist unter dem folgenden Link nachzulesen (How to install conda). Ob Conda und in welcher Version installiert ist könnt ihr mit dem folgenden Befehl herausfinden.

Befehl: conda --version

Die virtuelle openbot Conda Umgebung könnt ihr immer wieder über die Konsole mit dem folgenden Befehl starten.

Befehl: conda activate openbot

OpenBot Repository clonen

Anschließend muss noch das OpenBot Repository als Clone auf eurem Rechner abgelegt werden.

Um das Repository herunter zu laden bzw. zu clonen führt den folgenden Befehl aus.

Befehl: git clone https://github.com/intel-isl/OpenBot.git

Hinweis: Sollte es zu einem Fehler kommen der besagt das Git nicht verfügbar ist dann installiert ihr Git mit dem folgenden Befehl unter Ubuntu.

Befehl: sudo apt-get install git

Jetzt sollte der download via Git klappen und das als Clone herunter geladene OpenBot Repository auf eurem Rechner liegen.

Jupyter Notebook ausführen

Jetzt wird über die Konsole die virtuelle Conda Umgebung mit dem Namen “openbot” gestartet falls noch nicht passiert (Befehl: conda activate openbot). Anschließend wird Jupyter ausgeführt um das Jupyter Notebook “policy_learning.ipynb” im Browser ausführen zu können. Das Jupyter Notebook “policy_learning.ipynb” enthält die gesamte Logik für das Trainings des neuronalen Netzes für euren OpenBot. Der Befehl um Jupyter zu starten lautet wie folgt und ihr führt diesen Befehl in der activen Conda “openbot” Umgebung  im Ordner openbot aus.

Befehl: jupyter notebook

Hier ein Screenshot wie der Befehl in der Konsole ausgeführt werden sollte im Ordner openbot in dem ich zuvor das Repository geklont habe.

Jupyter notebook active conda environment

Jupyter notebook active conda environment

Jetzt öffnet sich ein Browserfenster auf eurem Rechner und dort seht ihr die Ordnerstruktur im Ordner OpenBot der beim Clonen des entsprechenden Repositorien angelegt wurde.

OpenBot - Active Jupyter Notebook

OpenBot – Active Jupyter Notebook

Navigiere jetzt im Browser bzw. der Jupyter Umgebung in den Ordner “/OpenBot/policy” und klicke das “policy_learning.ipynb” Notebook an damit dieses ausgeführt wird.

OpenBot active policy learning.ipynb notebook

OpenBot active policy learning.ipynb notebook

Das war es soweit und jetzt könnte es losgehen mit dem Training des neuronalen Netzes wenn denn die Trainingsdaten schon auf unserem Rechner liegen. Im folgenden Absatz beschreibe ich kurz wo die Trainingsdaten genau liegen müssen.

Trainingsdaten vorbereiten

Jetzt ist alles soweit vorbereitet und die Trainingsdaten die noch auf dem Smartphone liegen müssen auf den Trainingsrechner übertragen werden. Dazu am besten das Smartphone am Rechner via Kabel anschließen und die entsprechenden *.ZIP Dateien herunterladen und erst einmal z. B. auf dem Desktop ablegen. Die *.ZIP Dateien findet ihr auf eurem Smartphone direkt auf dem internen Speicher in einem Ordner mit dem Namen “OpenBot”.

Jetzt entpackt ihr einfach zwei der ZIP Dateien. Denn das Training sollte zuerst einmal nur mit ein paar wenigen Dateien gestartet werden ob denn auch technisch alles funktioniert. Mit diesen werden wir weiter arbeiten und diese entsprechend im Ordner “policy” ablegen, so dass das Jupyter Notebook “policy_learning.ipynb” die Daten auch einlesen kann.

OpenBot training data folder

OpenBot training data folder

Jetzt legt ihr den ersten der beiden entpackten Ordner in der folgenden Ordnerstruktur ab “~/openbot/OpenBot/policy/dataset/test_data/my_data_living_room/<der entpackte Ordner>”.

Die Ordnerstruktur muss entsprechend wie oben beschrieben angelegt werden. Der Name “my_data_living_room” kann frei gewählt werden und sollte die Daten beschreiben in welchem Kontext diese aufgenommen wurden. In diesen Ordner legt ihr dann die entpackte Zip Datei ab.

Also es werden zwei Ordner benötigt und die Struktur sieht wie folgt aus:

  • ~/openbot/OpenBot/policy/dataset/train_data/my_data_living_room/<der entpackte Ordner>
  • ~/openbot/OpenBot/policy/dataset/test_data/my_data_living_room/<der entpackte Ordner>

Das nachfolgende Bild zeigt noch einmal die Struktur wie diese angelegt werden muss.

OpenBot folder structure

OpenBot folder structure

Jetzt sind alle Vorbereitungen soweit getroffen und der erste Probelauf des Trainings eines neuronalen Netzes kann starten.

 

Zusammenfassung

Mit diesem Artikel solltet ihr jetzt in der Lage sein die OpenBot Umgebung auf eurem PC zu installieren und ein eigenes neuronales Netzwerk zu trainieren. Wenn das alles technisch klappt dann kommt der spannende und zeitintensive Teil Trainingsdaten zu erzeugen. Mit diesen könnt ihr dann komplett eigene Verhaltensweisen eurem OpenBot beibringen wie z. B. abbiegen in andere Räume oder dem navigieren in einem Gang mit Seitengängen bzw. Kreuzungen. Das macht dieses Projekt wirklich spannend ein neuronales Netz zu trainieren das diese Fähigkeiten erlernt.


Artikel Übersicht OpenBot Roboter Auto:

OpenBot – Dein Smartphone wird zu einem autonomen Roboter Auto – Einleitung
OpenBot – Dein Smartphone steuert ein Roboter Auto – benötigte Bauteile Teil 1-2
OpenBot – Dein Smartphone steuert ein Roboter Auto – benötigte Bauteile Teil 2-2
OpenBot – Dein Smartphone steuert ein Roboter Auto – Chassis bauen
OpenBot – Dein Smartphone steuert ein Roboter Auto – Verkabelung
OpenBot – Dein Smartphone steuert ein Roboter Auto – Arduino Firmware aufspielen
OpenBot – Dein Smartphone steuert ein Roboter Auto – Android App und erster Probelauf
OpenBot – Dein Smartphone steuert ein Roboter Auto – Trainingsdaten aufzeichnen
OpenBot – Dein Smartphone steuert ein Roboter Auto – Trainingsumgebung einrichten
OpenBot – Dein Smartphone steuert ein Roboter Auto – das neuronale Netz trainieren
OpenBot – Dein Smartphone steuert ein Roboter Auto – Android Studio und Smartphone einrichten
OpenBot – Dein Smartphone steuert ein Roboter Auto – die eigene OpenBot Android App erstellen

Geplante Artikel in dieser Serie:

OpenBot – Dein Smartphone steuert ein Roboter Auto – OpenBot End-2-End Durchlauf
(Visited 20 times, 1 visits today)