Nach dem ich alles soweit vorbereitet hatte, dass Nahtband mit dem Bleiband vernäht war habe ich den Trainingskurs im Keller aufgebaut. Die weiße Fahrbahnmarkierung aus Nahtband (20mm Version) war von den beiden selber gebauten Rollen schnell abgewickelt und der Kurs auf dem Kellerboden ausgelegt. Die Steuerung des Donkey Cars mit dem PS4 Controller funktionierte auf Anhieb. Damit stand der Aufzeichnung der Trainingsdaten für das Training des Neuronalen Netzes nichts mehr im Weg. Ich bin viele Runden gefahren und habe ca. 66.000 Datensätze ohne große Fahrfehler aufgezeichnet. Mit diesen habe ich anschließend verschiedene Model berechnen mit denen das Donkeycar in der Lage ist selbständig durch den Kurs zu fahren.
Auf dem folgenden Bild ist der Kurs und die Technik zu sehen die ich im Keller aufgebaut habe.
Hinweis: Was ist wichtig bei der Aurzeichnung der Trainingsdaten
- Der Kurs sollte in beide Richtungen abgefahren werden damit das Neuronale Netz lernt in beide Richtungen gleichermaßen zu lenken.
- Es sollte auch das Anfahren und verzögern aufgezeichnet werden. Nur so lernt das Neuronale Netz zu beschleuningen und zu bremsen.
- Die Geschwindigkeit sollte variiert werden. Andernfalls lernt das Neuronale Netz nicht die Geschwindigkeit zu steuern.
- Die Trainingsdaten sollten bei unterschiedlichen Lichtverhältnissen aufgezeichnet werden wenn der Raum über Tageslicht verfügt.
- Auch das Fahren vom Rand der Strecke wieder in die Mitte sollte aufgezeichnet werden.
Wie auf dem Bild gut zu sehen ist, habe ich alles an Infrastruktur mit in den Keller mitgebracht. Dazu habe ich in der grauen Box auch einen alten Router aufgebaut um mein eigenes W-LAN schnell online zu bekommen. Weiter habe ich noch Akkus für die Stromversorgung des Donkey Car dabei, die Kamera für ein paar Bilder und natürlich mein Laptop.
In der grauen Box ist auch die Mechanik verschraubt mit der ich nach meinen Trainingsläufen das weiße Band mit einem Motor angetrieben wieder aufwickeln kann. So spare ich mir viel Zeit und muss nicht von Hand das Band auf die Rolle aufwickeln, denn das vernähte Blei-Band wiegt ordentlich.
Trainingsdaten für das Neuronale Netz aufzeichnen
Den Trainingsmodus startet man wie nachfolgende kurz erklärt.
Als ersts in den Ordner mycar wechseln.
Befehl: cd ~/mycar
Anschließend bitte das Donkey Car Framework mit dem folgenden Befehl starten:
Befehl: python manage.py drive
Die Daten finden sich im Ordner /home/pi/mycar/data
Qualitätssicherung der aufgezeichneten Trainingsdaten
Nach dem ich mehrere Runden gefahren war, war ich ja sehr gespannt wie die aufgenommenen Daten also die Bilder und dazugehörigen Lenkbewegungen sowie Beschleunigungswerte aussehen. Die Bilder werden in einzelnen “tub” Ordnern mit je einem dazugehörigen JSON File abgelegt. In dem JSON File finden sich dann die Werte aus der Steuerung des Autos also Geschwindigkeit und Lenkeinschlag. Das bedeutet das ein Bild zusammen mit einer JSON Datei ein Paar bildet.
Ich habe aus den einzelnen Bildern auch mal zwei kleine Videos erstellt. So bekommt man eine Vorstellung wie die aufgenommenen Bilder aussehen bzw. was die Kamera am Donkeycar genau von der Strecke sieht. Diese Videos sind auch ideal für die Qualitätssicherung der Trainingsdaten. Denn viele 10.000 Bilder kann man manuell Bild für Bild nicht durchsehen.
Hier ist das zweite Video zu sehen. Die Auflösung entspricht exakt der wie die Bilder abgelegt wurden. Also 120×160 Pixel.
Gut zu erkennen ist, dass die normale Raspberry Pi Kamera meistens nur eine Fahrbahnmarkierung sieht. Daher ist meine Kaufempfehlung jetzt eine Wide-Angle Kamera. Denn mit dieser sieht die Kamera die meiste Zeit beide Fahrbahnmarkierungen.
Hinweis:
Für das Training ist wichtig, dass die Kamera Resolution in der config.py zu der in der keras.py passt. Andernfalls kann man das Model nicht trainieren und es kommt ein Fehler das die Dimensionen der Testdaten nicht passen. Das kann man aber selber ganz einfach korrigieren in dem man die Auflösungen in beiden Daten gleich konfiguriert.
Ich habe leider eine Auflösung von 120×160 Pixel gewählt das war nicht ganz ideal. Besser wäre eine Auflösung von 160×120 Pixel gewesen um ein breiteres Bild und weniger Horizont aufzunehmen. Ich werde die Testdaten noch einmal mit dieser Auflösung aufnehmen und meine Modelle neu trainieren.
Zusammenfassung
Nach dem ich die ersten technischen Probleme gelößt hatte konnte ich auch mit dem aufzeichnen der Trainingsdaten beginnen. Die Testdaten aufzunehmen war ziemlich leicht. Die Qualitätssicherung gelang mit erst gut mit dem Video das ich erstellt hatte. Denn die vielen Bilder einzeln anzuschauen ist nicht möglich.
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 Ingmar
sieht ja echt spannend aus das Ganze. Was hast denn da an Zeit investiert ?
Btw. Dein Template hier ist ganz schwierig zu lesen in den Kommentarfeldern., da Graue Buchstaben auf Grauen Hintergrund.
Grüße Joachim
Hi Joachim,
also das mit der Zeit ist wirklich schwer zu beantworten.
Im Prinzip ist die Anleitung super und hätte ich mir ein Ready to Run RC Auto einfach gekauft wäre alles viel schneller gegangen.
Ich denke das Du mit Deinem Kentnissen 1 Wochenende brauchst wenn Du das RC Auto fertig kaufst und einen Track hast.
Ich habe für den Track schon ca. 6 Std investiert. Das Nähen des Bleibandes auf das Nahtband hat ewig gedauert. Dabei sind viele viele Nadeln der Nähmaschine kauputt gegangen. Aber da können wir uns ja hier in München mal zusammen tun vielleicht auch als Meetup wenn Dir meine Lösung als Track reicht…