Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi

Nach dem ich alles soweit vorbereitet hatte, dass Nahtband mit dem Blei-Band vernäht war habe ich den Trainingskurs im Keller aufgebaut. Die weiße Fahrbahnmarkierung aus Nahtband war von den beiden selber gebauten Rollen schnell abgewickelt und der Kurs auf dem Kellerboden ausgelegt. Die Steuerung des Donkey Car mit dem PS4 Controller funktionierte auf Anhieb. Damit stand der Aufzeichnung der Trainingsdaten für das Maschinenlehren 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

Wie auf dem Bild gut zu sehen ist, habe ich alles an Infrastruktur mitgebracht. Dazu habe ich in der grauen Box auch einen alten Router aufgebaut um mein eigenes W-LAN schnell aufbauen zu können ohne hier wieder Probleme zu bekommen. Weiter habe ich noch Akkus für die Stromversorgung des Donkeycar 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 erfassen

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. So hat man alles für das Training des Models zusammen in einem Ordner.

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.

Hier ist das zweite Video zu sehen. Die Auflösung entspricht exakt der wie die Bilder abgelegt wurden. Also 120×160 Pixel.

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.

Ergebnisse – Testläufe

Nach dem ich anhand von vier Tub’s verschiedene Modelle trainiert habe, habe ich diese 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 Video.


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

Nach dem ich die ersten technischen Probleme gelößt hatte konnte ich auch mit dem Training meines Roboter Autos beginnen. Die Testdaten aufzunehmen war ziemlich leicht. Das Training des Models mit Tensorflow und KERAS funktionierte ohne das ich etwas machen musste. Auf meinen Laptop mit i5 Prozessor habe ich für die Berechnung mehrere Modelle einen halben Tag gebraucht. Als Ergebnis habe ich Modelle erhalten die tatsächlich mein Donkeycar um den Kurs haben fahren lassen.


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
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Kalibrierung
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Trainings Vorbereitungen
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Trainingskurs
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Donkeycar training in einem Docker Container
(Visited 577 times, 1 visits today)