Nach dem jetzt alle Bibliotheken und Frameworks soweit auf dem Jetson Nano installiert sind geht es an die Konfiguration des Donkey Cars. Die Konfiguration ist wichtig, da hier z. B. der Lenkeinschlag, die Fahrtenrelger-Konfiguration oder auch die Verwendung eines Gamepads festgelegt werden. Die Konfiguration erfolgt in der myconfig.py Datei und hier sollte man sich nicht erschrecken wenn man diese das erste mal öffnet. Sie ist mit der Version 3.x des Frameworks richtig lang geworden aber mit Ruhe und Nachdenken ist es kein Problem die Konfiguration in der myconfig.py richtig vorzunehmen.
Konfiguration des Donkey Cars
Jetzt geht es los mit der Konfiguration des Donkey Cars . Wichtig ist hierbei die Lenkung und den Fahrtenregler so zu konfigurieren, dass Ihr das Donkey Car ohne Probleme steuern könnt. Also der Geradeauslauf sollte passen sowie der Lenkeinschlag nach links und rechts gleich sein. Die Konfiguration des Fahrtenregler richti sein, so dass das Donkey Car stoppen, beschleunigen und rückwärts fahren kann.
Eine Beschreibung der Grundlagen der Konfiguration die immer noch Gültigkeit hat habe ich hier in einem Beitrag beschrieben: Autonom fahrendes Raspberry Pi KI Roboter-Auto – Kalibrierung
Übertrag bitte die ermittelten Werte für die Lenkung und für die Geschwindigkeitssteuerung des Fahrtenreglers in die myconfig.py Datei in im Ordner ~/mycar.
Nachfolgend meine myconfig.py Datei als ZIP-Datei gepackt die ich für meinen Jetson Nano verwende. Ich habe noch eine Steuerung eingebaut die anhand der MAC-Adresse unterscheiden kann auf welchem Donkey Car die myconfig.py Datei aktuell geladen wurde. So kann ich verschiedene Donkey Cars mit Jetson Nano als SBC unterscheiden.
<Konfig-Datei hochladen>
Nach erfolgreicher Konfiguration ist es jetzt an der Zeit das Donkey Car Framework zu starten und sich mit dem Donkey Car vertraut zu machen. Denn ab jetzt seit Ihr soweit Trainingsdaten aufzuzeichnen.
Mit dem folgenden Befehl startet Ihr das Donkey Car Framework mit dem Ziel Trainingsdaten aufzuzeichnen.
ACHTUNG: Mir bekanntes Fehlerbild
Es kann passieren, dass das Donkey Car Framework beim Laden abstürzt. Die Fehlermeldung ging bei mir immer in die Richtung von OpenCV und dem NVIDIA G-Streamer.
Hier die Error-Meldung die ich angezeigt bekommen habe:
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /home/nvidia/build_opencv/opencv/modules/imgproc/src/color.cpp, line 11016
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/donkey/donkeycar/donkeycar/parts/camera.py", line 172, in update
self.init_camera()
File "/home/donkey/donkeycar/donkeycar/parts/camera.py", line 167, in init_camera
self.poll_camera()
File "/home/donkey/donkeycar/donkeycar/parts/camera.py", line 179, in poll_camera
self.frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
cv2.error: /home/nvidia/build_opencv/opencv/modules/imgproc/src/color.cpp:11016: error: (-215) scn == 3 || scn == 4 in function cvtColor
Ich habe dann einiges ausprobiert und festgestellt, dass die initial eingestellte Auflösung für den GStreamer zu hoch war. Ich habe die Auflösung deutlich reduziert und danach hatte ich keine Probleme mehr. Die Stelle findet Ihr in der Datei „camera.oy“ und hier in der Klasse“class CSICamera(BaseCamera):“.
Diese Klasse habe ich wie folgt in der Auflösung in der folgenden Zeile angepasst.
Original Zeile:
def __init__(self, image_w=160, image_h=120, image_d=3, capture_width=3280, capture_height=2464, framerate=60, gstreamer_flip=0):
Von mir angepasste Zeile:
def __init__(self, image_w=160, image_h=120, image_d=3, capture_width=160, capture_height=120, framerate=60, gstreamer_flip=0):
Nach dieser Anpassung hat bei mir das Donkey Car Framework ohne Probleme funktioniert und ich konnte Trainingsdaten aufzeichnen, das neuronale Netz trainieren und anschließen das Doneky Car autonom fahren lassen.
Die Befehle für das Aufzeichnen der Trainingsdaten und das Trainieren des neuronalen Netzes findet ihr hier beschrieben.
- Autonom fahrendes Raspberry Pi KI Roboter-Auto – Trainingsdaten aufzeichnen
- Autonom fahrendes Raspberry Pi KI Roboter-Auto – das Neuronale Netz trainieren
Hinweis Stromversorgung
Ich verwende im mobilen Betrieb eine starke PowerBank um den Jetson Nano mit Energie zu versorgen. So wird der RC-Akku nur für den Antriebsmotor verwendet und es kommt zu keinen Abstürzen des Jetson Nano wenn der Antriebsmotor zu viel Leistung aufnimmt. Auch fährt das Donkey Car so deutlich länger. Bei der Power Bank empfehle ich eine sehr starke Power Bank zu kaufen die ca. 5A Ausgansstrom liefert bei 5V Spannung. So kann man auch mal Leistungsspitzen des Jetson Nano abfangen und erhält ein sehr stabiles Fahrzeug aus Betriebssicht.
Ich empfehle folgende Powerbank die ich selber im Einsatz habe. Der nachfolgende Link führt wieder zum Amazon Web-Shop.
Hinweis JetBot:
Für alle die einen leichteren Einstieg in die Welt des Jetson Nano bevorzugen möchte ich gerne den JetBot empfehlen. Dieser kleine Roboter wurde von Nvidia komplett entwickelt und bietet von der Hardware bis zur Software eine Lösung aus einer Hand. Wer nicht selber das Gehäuse anhand der von Nvidia veröffentlichen 3D Dateien drucken möchte kann auch ein komplettes Kit von Waveshare erwerben. Das Waveshare NVIDIA JetBot AI Kit Smart Robot Based bietet alles was benötigt wird. Ich bin auf dieses Roboter-Kit aufmerksam geworden da NVIDIA dieses in ihrem Blog empfohlen hat. Ich selber habe mit dem Jetson Nano ein autonom fahrendes AI Roboter-Auto gebaut habe und bin überzeugt das dieses Kit sehr viel freude bereiten kann wenn man im AI Bereich erste Erfahrungen auf Basis des NVIDIA JetBot sammeln möchte.
Wer aber gerne selber ein Donkey Car auf Basis eines RC-Modells aufbauen möchte und dabei die Rechenpower des Jetson Nano anstelle des Raspberry Pi einsetzen will folge der nachfolgenden Installationsanleitung.
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
Recent Comments