Er fährt - aufbauend auf der Objekterkennung und Klassifizierung mit Hilfe des Jetson Nano aus unserem ersten AI’m the Future Blogbeitrag haben wir uns mit der Thematik des autonomen Fahrens auseinandergesetzt. Hierzu nutzen wir das Open-Source Jetbot Kit.
Durch die einfache Handhabung, den „relativ“ leichten Aufbau und die vielen interaktiven Tutorials erleichtert das Nvidia Jetbot Kit den Einstieg in den Bereich des automatisierten Fahrens. Erste Beispiele, beziehungsweise eigene Anwendungen, können so problemlos getestet und ausprobiert werden. Unser Kit enthielt alle notwendigen Materialien und Elektronikkomponenten. Diese wurden entsprechend verbaut und gelötet. Die Karosserie besteht aus eigens gefertigten 3D-Druck Teilen.
Unser Use-Case beschränkt sich hierbei auf Kollisionsvermeidung, Objektverfolgung und das Abfahren von vordefinierten Wegen. Die genutzten AI-Frameworks sind TensorFlow und PyTorch.
Der Ablauf ist in drei Teile untergliedert:
-
Daten sammeln:
In einer entsprechenden Umgebung werden mit der verbauten Kamera Fotos von „freien“ und „geblockten“ Bereichen gemacht. Mit ca. 100 Fotos pro Bereich erhält man im weiteren Verlauf bereits gute Ergebnisse.
-
Training der KI:
Die Klassen werden mithilfe der Fotos über das Frameworks PyTorch und Alexnet trainiert. Alexnet ist ein neuronales Netzwerk, welches über 1000 Klassen unterscheiden kann. In unserem Beispiel nutzen wir zwei bis vier Klassen. Das Training der KI realisieren wir auf einem der beiden Jetbots und dem dazugehörigen Jetson Nano. Auf Grund der Auslastung nutzen wir einen zusätzlichen Lüfter, um den Jetson Nano auf voller Leistung betreiben zu können. Für etwa 100 Trainingsdurchläufe benötigten wir circa 45 Minuten.
-
Live-Demo:
Nach dem Training und mit den entsprechenden Skripten kann man jetzt den Jetbot selbstständig durch eine Schikane fahren lassen. Sollten Ungenauigkeiten in der Steuerung des Jetbots auftreten, so kann man die Datengenauigkeit mit Hilfe der Wiederholung von Schritt 1 und 2 deutlich erhöhen.
Unsere zwei Jetbots sind nun in der Lage auf unterschiedliche Umgebungen trainiert zu werden und diese anschließend autonom abzufahren. So können wir sie zum Beispiel in einem Hütchenparkour selbstständig manövrieren lassen. Auch eine Änderung des Parkours ist kein Problem, da die Jetbots die Hindernisse nun automatisch erkennen und verarbeiten.