Das Neuronale Netz kann nicht auf dem Raspberry Pi trainiert werden. Der Raspberry Pi ist von seiner Hardware für das Training des Neuronalen Netzes einfach zu schwach. Daher sollte ein extra Rechner für das Training des Piloten verwendet werden der deutlich Leistungstärker als der Raspberry Pi ist. Ich empfehle hier eine Ubuntu Installation als Betriebssystem und die Installation des Donkey Car Frameworks auf diesen Rechner. Wichtig ist das der Rechner über viel Arbeitsspeicher verfügt von ca. 12 GB bis 16 GB und das er eine Leistungsstarke CPU bzw. GPU eingebaut hat.
In meinem Fall habe ich die CPU für das Training des Piloten genutzt. Es ist eine i5 CPU mobile mit 2,2 GHZ und dieser stehen 12 GB Ram zur Seite. Einen Piloten zu trainieren hat dann zwischen 8 Stunden bis 12 Stunden gedauert mit ca. 23.000 Datenpaaren.
Software Installation Trainingsrechner
Ich setze für den folgenden Abschnitt voraus, dass eine aktuelle Ubuntu Versoin installiert ist und der Rechner mit dem Internet verbunden ist. Weiter wird keine GPU für das Training verwendet. Wie auch auf dem Raspberry Pi wird alles in einen virtuellen Bereich installiert. Dazu bitte die folgenden Befehle ausführen (Quelle: http://docs.donkeycar.com/guide/install_software/#install-donkeycar-on-linux)
Installation der notwendigen Software auf dem Ubuntu Rechner.
Befehl: sudo apt-get install virtualenv build-essential python3-dev gfortran libhdf5-dev
Einrichten der virtuellen Umgebung mit dem Namen „env“.
Befehl: virtualenv env -p python3
Aktivieren der virtuellen Umgebung „env“.
Befehl: source env/bin/activate
Installation der Tensorflow Version 1.8.0
Befehl: pip install tensorflow==1.8.0
Jetzt ist alles soweit auf dem Ubuntu Rechner installiert und das Donkey Car Framework kann installiert werden. Dazu bitte die nachfolgenden Befehle ausführen die Ihnen bekannt vorkommen sollten von der Installation auf dem Raspberry Pi.
Herunterladen und installieren des Donkey Car Frameworks. Wichtig ist hier genau die Version zu installieren die auch auf dem Donkey Car installiert ist.
Befehl: pip install donkeycar==2.5.1
Erzeugen der Instanz des Donkey Car Frameworks.
Befehl: donkey createcar ~/mycar
Ab jetzt ist Ihr Rechner in der Lage das Neuronale Netz zu trainieren. Dazu müssen Sie die vielen Bilder und JSON Dateien die im Ordner „/home/pi/mycar/data/“ von ihrem Raspberry Pi auf den Ubuntu Rechner kopieren. Sie sollten die Bilder und JSON Dateien auch wieder in das Installationsverzeichnis des Donkey Car Frameworks kopieren. Es wird wohl auch wie unter dem Raspberry Pi der gleiche Ordner sein „/home/<user-name>/mycar/data/“.
Hinweis:
Wichtig ist, dass Sie sich in der virtuellen Umgebung Ihrer Donkey Car Installation befinden. Wenn nicht dann müssen Sie die virtuelle Umgebun mit dem Befehl „source env/bin/activate“ noch starten bevor Sie das Training des neuronalen Netzes starten können.
Mit dem folgenden Befehl starten Sie die Berechnung des Piloten bzw. Neuronalen Netzes auf Ihrem Ubuntu Rechner.
Befehl: python ~/mycar/manage.py train –tub <tub Ordner Namen getrennt durch ein Komma> –model ./models/mypilot
Der Name des Piloten bzw. trainierten Neuronalen Netzes ist „mypilot„. Dieser sollte nach erfolgreicher Berechnung im Ordner „/home/<user-name>/mycar/models/“ liegen.
Die Datei „mypilot“ kopieren Sie jetzt auf den Raspberry Pi in den Ordner „/home/pi/mycar/models/“ und ab jetzt ist Ihr Donkey Car in der Lage autonom zu fahren. Dazu müssen Sie jetzt den folgenden Befehl aufrufen damit das Donkey Car Framework den mypilot lädt und das Donkey Car autonom steuert.
Befehl: python manage.py drive –model ~/mycar/models/mypilot
Wichtig:
Wenn Du einen PS4 Kontroller verwendest dann musst Du jetzt diesen in der config.py wieder deaktivieren. Anschließend lädst Du die Web-Oberfläche deines Donkey Cars und stellst auf den Autopiloten Modus in der Web-Oberfläche um. Links gibt es ein Drop-Down Menü mit der Überschrift „Model & Pilot“. Dort muss der Eintrag „Local Pilot“ ausgewählt werden. Jetzt sollte das Donkey Car losfahren und von dem trainierten Piloten gesteuert werden (siehe zweites Youtube Video im nachfolgenden Abschnitt). Um die Web-Oberfläche zu starten öffne die folgende URL.
URL: <IP-Adresse des Donkey Cars>:8887
Ergebnisse – Testläufe
Nach dem ich anhand von vier Tub Ordnern verschiedene Modelle trainiert habe, habe ich die Piloten auf das Donkeycar übertragen und wieder im Keller einen Kurs aufgebaut. Ich war schon sehr gespannt wie gut das Roboter Auto auf Basis eines Raspberry Pi Computers autonom den Kurs abfährt. Ich habe zwei Modelle getestet die ich berechnet habe.
Das erste Modell basiert auf Trainingsdaten bei denen ich nur mit mittlerer Geschwindigkeit gefahren bin. Das Ergebnis ist im folgenden Video zu sehen. Das zweite Modell wurde mit Daten trainiert bei denen ich mit maximaler Geschwindigkeit den Kurs abgefahren habe. Das Ergebnis sieht so aus, dass das Auto mit diesem Modell deutlich schneller den Kurs abfährt. Zu sehen ist dies im folgenden zwei Videos.
Das zweite Modell wurde mit Daten traniert bei denen ich mit maximaler Geschwindigkeit den Kurs abgefahren habe. Das Ergebnis sieht so aus, dass das Auto mit diesem Modell deutlich schneller den Kurs abfährt. Zu sehen ist dies im folgenden Video.
Zusammenfassung
Das Training des Models mit Tensorflow und KERAS funktionierte nach der Software installation sehr gut. Auf meinen Laptop mit i5 Prozessor habe ich für die Berechnung mehrere Modelle einen Tag gebraucht. Als Ergebnis habe ich Modelle erhalten die tatsächlich mein Donkey Car um den Kurs haben fahren lassen.
Artikel Übersicht Donkeycar Roboter Auto:
Autonom fahrendes Raspberry Pi KI Roboter-Auto – EinleitungAutonom fahrendes Raspberry Pi KI Roboter-Auto – Chassis
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Elektronik
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Software Installation
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Kalibrierung
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Trainings Vorbereitungen
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Trainingsdaten aufzeichnen
Autonom fahrendes Raspberry Pi KI Roboter-Auto – das Neuronale Netz trainieren
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Donkeycar training in einem Docker Container (optional)
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Donkey Car UNIMOG Upgrade
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Manuelle Short Keys
Autonom fahrendes Raspberry Pi KI Roboter-Auto – IMU Sensor 9-DOF absolute Orientation
Autonom fahrendes Nvidia Jetson Nano AI Roboter-Auto – Vorbereitung
Autonom fahrendes Nvidia Jetson Nano AI Roboter-Auto – Software Installation
Autonom fahrendes Nvidia Jetson Nano AI Roboter-Auto – Konfiguration des Donkey Car Frameworks
Hallo,
ich habe im Rahmen eines Schulprojekts, zusammen mit meinem Freund, ein „Donkey Car“ auf der Grundlage eines Raspberry Pi gebaut. Wir haben nicht auf einen Bausatz von Donkey Car zurückgegriffen, sondern die Elektronik anhand der Donkey Car und Ihrer Seite zusammengestellt und gebaut. Wir haben beide nur eingeschränkte Kenntnisse im Rahmen der Programmierung, haben es aber geschafft, nach vielen Experimenten, das Auto zum laufen zu bekommen.
Aktuell kommen wir aber nicht weiter. Wir können das Fahrzeug über die Weboberfläche fahren, scheitern aber an dem Training des neuronalen Netzes. Wir arbeiten mit einem Windows – Computer und können die Daten des Pi nicht übertragen, trainieren und zurückgeben. Hier fehlen uns wahrscheinlich die entsprechenden Befehle und Kenntnisse.
Ich habe auch einmal im Netz gelesen, dass ein Training auch auf dem Pi möglich wäre. Allerdings verschweigt das Netz die Vorgehensweise.
Wir haben als Ziel lediglich, dass unser Auto ein- zwei Runden autonom fährt.
Können Sie uns weiterhelfen?
Hallo Johann,
welches Betriebssystem verwendest Du denn wenn Du auf den Raspberry Pi via WLAN / LAN zugreifen möchtest?
Das Tranieren geht nur auf einem Leistungsstarken PC / GPU und es muss auf diesem System die exakt gleiche Installation des Donkey Car Frameworks installiert sein.
Mich würde interessieren an welcher Stelle meine Anleitung nicht klar ist in der Erklärung.
Viele Grüße,
Maker
Hallo Herr Stapels,
vielen Dank für Ihre Antwort. Ich wollte mit meiner Anfrage nicht zum Ausdruck bringen, dass ihre Webseite nicht verständlich wäre. Vielmehr liegt es daran, dass ich und mein Freund Wissensdefizite haben. Sie dürfen nicht vergessen, dass wir dieses Projekt für die Schule begonnen haben. Wir besitzen im Bereich der Python Sprache nicht die umfangreichsten Kenntnisse.
Wir nutzen für den Zugriff auf den Pi das Programm Putty. Auf dem PC haben wir Anaconda installiert und dort die Installation entsprechend der Donkeycar Seite (Install donkeycar on Windows) vorgenommen. Weitere Installationen erfolgten auf dem PC nicht. Wir nutzen WLAN (FRITZ!Box). Ich halte meinen PC für leistungsstark (i5 7500 CPU, 16GB Ram, GTX 1050Ti Graphikkarte).
Wie bereits berichtet, konnten wir unser Auto über den Web-Browser steuern. Wir haben mehr als zehn Runden gefahren und aufgenommen. Dabei haben wir die Steuerung mit der Tastatur vorgenommen. Sicherlich wäre die Steuerung über einen Joy Stick flüssiger gewesen, aber unser Steuerung über die Tastatur war erstaunlicherweise so gut, das es für unser Projekt ausreicht.
Unser Problem ist, dass wir die Aufzeichnungen nicht auf dem Auto wieder finden. Wie gehen davon aus, dass uns hier die erforderlichen Kenntnisse fehlen.
Auch der Transfer der Daten von dem Auto auf dem PC über Anaconda gelingt nicht. Die angeführten Befehle ( rsync) werden nicht ausgeführt. Wir haben das Gefühl dass die angeführten Befehle über Anaconda nicht funktionieren.
Da wir die Installation über Anaconda genauso durchgeführt haben, wie es bei Donkey Car beschrieben wurde, gehen wir davon aus, dass damit die exakt gleiche Installation des Donkey Car Frameworks installiert wurde oder ist diese Annahme nicht zutreffend.
Für Ihre weitere Unterstützung unseres Projektes wären wir sehr dankbar.
Schöne Grüße
Johann