Ich wollte schon immer mal eines meiner Roboter Auto Modelle von einer künstlichen Intelligenz steuern lassen. Um diese Idee umsetzen zu können hatte ich mir verschiedene Projekte angeschaut. Es gibt schon einige Projekte von Hochschulen wie dem MIT die aber häufig einen sehr wissenschaftlichen Stand haben. So bin ich bei meiner Suche auf das donkeycar Projekt gestoßen. Dieses setzt auf Standard Hardware wie einem einfachen 1:16 RC Auto und einem Raspberry Pi Computer. So ist für mich die Entscheidung gefallen mit dem Donkey Car Projekt loszulegen.

Hinweis: Da ich bei der aktuellen Überarbeitung meiner Beiträge hier schon seit über 1 Jahr Donkey Cars baue sind es jetzt schon drei Modelle geworden.

Mein erstes Modell war ein ganz einfaches Fahrwerk aus China. Das zweite Modell war ein 1:10 Tamiya Unimog mit einem CC-01 Fahrwerk. Das Dritte Auto war das original Donkey Car RC Auto das ich aus Hong Kong importiert habe. Dabei macht es keinen Unterschied ob es das offizielle Donkey RC Modellauto aus Hong Kong ist oder ein ReadyToRun RC Modell. Die Autos lassen sich alle gleich einfach umbauen solange es Standard RC Modellbau Komponenten sind. Nachfolgend kommen drei Bilder meiner bis jetzt aufgebauten Donkey Cars.

Das folgende Bild zeigt das Donkey Car (1:16) auf Basis des Fahrwerkes das für das original Donkey Car verwendet wurde.

Donkey Car

Donkey Car

Mein zweites Donkey Car (1:18) ist auf Basis eines einfachen Chassis und Pappe aufgebaut.

Autonom fahrendes Raspberry Pi KI Roboter Auto - Model

Autonom fahrendes Raspberry Pi KI Roboter Auto – Model

Das Dritte Donkey Car ist der Unimog von Tamiya auf Basis des CC-01 Chassis (1:10).

Donkey Car Tamiya CC-01

Donkey Car Tamiya CC-01

Hintergrund des Donkey Car Projekt

Das Donkey Car Projekt setzt einen Raspberry Pi ein auf dem das fertig trainierte neuronale Netz aktiv die Bildauswertung vornimmt und so das Auto z. B. zwischen zwei weißen Linien steuert. Das neuronale Netz das eingesetzt wird setzt auf TensorFlow von Google auf. Die Daten die sogenannten Trainingsdaten werden selber durch manuelles Steuern des Donkey Cars erfasst und auf Basis dieser Daten das Neuronale Netz bzw. der Pilot trainiert. Dieses Vorgehen nennt man auch Behavioral Cloning da das Neuronale Netz / der Pilot das Fahrverhalten von einem Menschen lernt.

TensorFlow ist eine plattformunabhängige Open-Source-Programmbibliothek für künstliche Intelligenz bzw. maschinelles Lernen im Umfeld von Sprache und Bildverarbeitungsaufgaben (Quelle: TensorFlow WIKI).

Wie werden die Trainingsdaten erzeugen

Die Trainingsdaten werden durch manuelle Steuerung und fahren mit dem Donkey Car erzeugt. Der Raspberry Pi 3 Model B+ zusammen mit der Raspberry Pi Kamera zeichnet die Trainingsdaten auf. Die Kamera nimmt das Bild direkt vor dem Auto auf und so sind die weißen Begrenzungslinien oder auch die Klebestreifen der Fahrbahn gut zu sehen. Neben dem Bild wird auch immer zu jedem Bild der aktuelle Wert für den Lenkeinschlag und der aktuelle Wert für die Geschwindigkeit in einer JSON-Datei gespeichert. Wichtig bei der Aufzeichnung der Trainingsdaten ist, dass das Auto nicht mit der Tastatur gesteuert wird sondern mit einem Gamepad wie einem PS4 Controller. Eine Steuerung über die Tastatur oder der Web-Oberfläche führt zu ruckeligen Lenkbewegungen und hackeligen Beschleunigungswerten. Die über Tastatur oder das Webinterface generierten Trainingsdaten sind für das Training des neuronalen Netzes nicht ideal. Damit die Trainingsdaten für das Training des Piloten verwendet werden können sollte das Donkey Car daher unbedingt mit einem Gamepad gesteuert werden.

Wo wird der Pilot trainiert?

Für das Training des neuronalen Netzes werden die Bilder und die zugehörigen Lenkbewegungen benötigt. Das neuronale Netzt wird nicht direkt auf dem Raspberry Pi Computer trainiert. Dazu ist die Leistung des Pi’s einfach zu schwach. Stattdessen wird das neuronale Netz auf einem PC idealer Weise mit NVIDIA Grafikkarte oder in der Cloud z. B. bei AMAZON trainiert. Ich habe das neuronale Netz für die Steuerung des Roboter Autos auf meinem Laptop mit Intel Core i5 5200U CPU trainieren. Das Training des Piloten dauert mit 12GB Ram, Ubuntu 14.04 und ca. 23.000 Trainingsdatensätze ca. 4 Stunden brach aber vorzeigtig nach ca. 12% der Durchläufe ab da keine Verbesserung des Neuronalen Netzes mehr erzielt wurde. Das gleiche Training mit den gleichen Trainingsdatensätzen benötigt ca. 3 Minuten auf einem nVIDIA Spezialrechner für Maschinenlernen der mit ca. 3PetaFlops gerade einmal drei Minuten benötigt hat.

Donkey Car Ablauf

Nach dem in den vorherigen Kapiteln erklärt wurde wie die Trainingsdaten erzeugt werden, wo das Training erfolgt und mit welcher Technologie möchte ich hier noch einmal das Vorgehen mit einer kleinen Grafik verdeutlichen.

  1. Die Trainingsdaten werden mit dem Donkey Car erzeugt.
  2. Die Trainingsdaten werden auf einen Computer übertragen auf dem das Neuronale Netz bzw. der Pilot trainiert wird.
  3. Das Neuronale Netz ist mit Tensorflow und KERAS aufgebaut und kann individuell optimiert werden.

Der nachfolgende Kreislauf kann immer und immer wieder wiederholt werden um z. B. die Trainingsdaten zu optimieren wenn das Neuronale Netz Fehler macht bzw. das Neuronale Netz kann auch optimiert werden.

Donkey Car - Neuronales Netz Ablauf

Donkey Car – Neuronales Netz Ablauf

Welche Hardware brauche ich?

Idealerweise kommt ein RtR RC Modellauto zum Einsatz Für den Umbau hin zu einem Donkey Car wird noch etwas an Hardware benötigt wie einen Raspberry Pi und eine Raspberry Pi Kamera. Für die Ansteuerung des Fahrtenreglers und Lenkservo des RC Autos wird ein ganz einfacher Servo Kontroller verwendet. Dieser wird direkt am Raspberry Pi angeschlossen und kann mit Python z. B. programmiert werden. Aus meiner Erfahrung mit diversen Raspberry Pi Robotern ist noch ein leistungsstarker Akku sehr wichtig. Hier sollte man nicht sparen andernfalls fährt das Auto vielleicht nur ein paar Minuten und das ganze Projekt macht am Ende keinen Spaß.

Zusammenfassung

Mich hatte das donkeycar Projekt überzeugt, da es mit wenig Geld auf die Beine gestellt werden kann. Die Software ist soweit schon vorgedacht und der erfolgreiche Einstieg in einen mit KI gesteuerten Roboter wird sehr sicher klappen. Wie einfach das Ganze dann in der Praxis ist und wie gut alles funktioniert werde ich hier auf meinem Blog in einer Artikelserie dokumentieren. Die Idee ist von allen Abschnitten des Projektes einen Erfahrungsbericht zu schreiben um den Leser ein Gefühl für die Komplexität zu geben.


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 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
(Visited 6.430 times, 2 visits today)