Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi

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.

Donkeycar - lane line test race course data collecting

Donkeycar – lane line test race course data collecting

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 – Einleitung
Autonom 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 AI Roboter-Auto – NVIDIA Jetson Nano SBC
(Visited 1.033 times, 1 visits today)