Buchempfehlung:
Roboter-Autos mit dem Raspberry Pi

Roboter Autos mit dem Raspberry Pi

Nach dem ich jetzt mehrere Donkey Cars aufgebaut habe und mit diesen Modellautos Trainingsdaten sammele, hatte ich immer wieder das Problem, dass die Software-Installationen der einzelnen Autos unterschiedlich waren. Eine einzige SD Karte für alle Donkey Cars, mit der installierten Donkey Car Software, konnte ich nicht einfach zwischen den Autos hin und her tauschen. Damit das möglich ist habe ich ein paar kleinere Veränderungen an der Software vorgenommen, die nachfolgend erklärt werden.

Donkey Car - OLED Display

Donkey Car – OLED Display

Im ersten Schritt wird die Software bzw. das fertige Image von der Donkey Car Webseite herunter geladen und auf die SD-Karte geschrieben. Hier unterscheidet sich das Vorgehen von der offiziellen Donkey Car Seite nicht. Die Image Datei gibt es hier zum Download. Für diese Anleitung habe ich die Version “donkey_2.5.0_pi3.zip” als Basis-Image verwendet.

Download: Image-Datei

Nach dem die SD Karte im Donkey Car steckt, das W-LAN funktioniert und die SSH Verbindung zum Raspberry Pi besteht beginnt erst einmal der individueller Teil der Software Installation bis dann wieder das Donkey Car Framework ansich auf dem Raspberry Pi installiert wird.

Individuelle Software Installation

Für die Installation der nachfolgenden Softwarepakte verlässt Du jetzt die virtuelle Umgebung Deines Raspberry Pi im Donkey Car in der Du Dich zu nächst befindest wenn Du Dich via SSH am Donkey Car anmeldest. Dazu wird der folgende Befehl eingegeben.

Befehl: deactivate

Jetzt führst Du den folgenden Befehl aus um die Informationen über die neuesten Softwarepakete des Raspbian Repository zu erhalten

Befehl: sudo apt-get update

Der nächste Befehl ist optional da wir eigentlich das Donkey Car Image als solches nicht aktualisieren möchten. Der Gedanke dabei ist das keine negativen Seiteneffekte entstehen.

Befehl optional: sudo apt-get upgrade

Für alle die mit der Konsole und den Befehlen nicht so vertraut sind bietet sich immer der Midnight Commander an. Diesen installierst Du mit dem folgenden Befehl:

Befehl: sudo apt-get install mc -y

Der Midnight Commander wird mit dem folgenden Befehl und Root-Rechten gestartet.

Befehl: sudo mc

Beenden kannst Du den Midnight Commander mit der Taste F10.

Für die Dateifreigabe in einem Windows Netzwerk installiert der folgende Befehl das SAMBA Paket.

Befehl: sudo apt-get install samba samba-common-bin -y

Damit der SAMBA Server auch den richtigen Ordner im Netzwerk freigibt muss die /etc/samba/smb.conf Datei noch angepasst werden.

Diese öffnest Du z. B. mit dem Midnight Commander und F4 (wähle als Editor z . B. Nano aus) oder mit dem folgenden Befehl.

Befehl: sudo nano /etc/samba/smb.conf

Genau an das Ende der Datei kopierst Du die folgenden Zeilen für die Dateifreigabe.

[DonkeyCar]
path = /home/pi
writeable = yes
public = yes
guest ok = yes
guest only = yes
guest account = nobody
browsable = yes

Damit das Donkey Car wenn es in einem Netzwerk mit Internetzugang hängt auch die aktuelle Uhrzeit und Datum erhält wird der NTP Dienst zusätzlich installiert. Dazu führe den folgenden Befehl aus.

Befehl: sudo apt-get install ntp -y

Um die Zeitzone zu setzen in der Du Dich aufhältst führe anschließend den folgenden Befehl aus.

Befehl: sudo dpkg-reconfigure tzdata

Jetzt kann der ntp-Dienst mit dem folgenden Befehl neu gestartet werden.

Befehl: sudo /etc/init.d/ntp restart

Um zu überprüfen ob der NTP Dienst auch eine Verbindung zu Peers hat die ihn mit der aktuellen Zeit versorgen führe den nachfolgenden Befehl aus.

Befehl: ntpq -c peers

Jetzt ändern wir noch den Namen des Conkey Cars im Netzwerk und führen den Befehl aus um den gesamten Platz der SD-Karte nutzen zu können. Dazu muss das Konfigurationsmenü von Raspbian aufgerufen werden.

Befehl: sudo raspi-config

Hier einmal den Host namen ändern und den Eintrag Expand file System aufrufen.

Optional OLED Display

Ich habe mir noch günstige OLED Displays gekauft und an meine Autos angebaut, um zu sehen ob das Donkey Car eine IP Adresse in einem mir fremden Netzwerk zugewiesen bekommen hat und welche IP Adresse das Auto dann auch wirklich hat. Hier hatte ich in der Vergangenheit bei anderen großen Veranstaltungen mit ca. 25 Modellroboter Autos so die Tücken von Enterprise Netzwerken und den Admins dazu kennen gelernt. Wie eingangs geschrieben verwende ich an meinem Donkey Car’s immer OLED Display um die IP Adresse sofort sehen zu können. Dafür werden ein paar weitere Softwarepakete installiert. Bitte immer darauf achten, dass Ihr euch nicht in der virtuellen Umgebung des Donkey Cars befindet.

Zuerst werden I2C Tools installiert.

Befehl: sudo apt-get install i2c-tools -y

Jetzt sollte es möglich sein die I2C Adressen der einzelnen I2C Geräte sich anzeigen zu lassen. Dazu den folgenden Befehl ausführen.

Befehl: sudo i2cdetect -y 1

Nach dem das OLED Display mit seiner Adresse angezeigt wurde können die weiteren Pakete installiert werden.

Befehl: sudo apt-get install build-essential python-dev python-pip -y

Befehl: sudo pip install RPi.GPIO

Befehl: sudo apt-get install git -y

Als nächstes wird die Adafruit Bibliothek für das SSD1306 OLED Display auf den Raspberry Pi geklont und installiert.

Befehl: git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

Befehl: cd Adafruit_Python_SSD1306

Befehl: sudo python setup.py install

Befehl: pip install image

Nach dem die Software erfolgreich installiert wurde führst Du das mitgelieferte Beispiel aus, dass die IP Adresse und weitere Informationen des Raspberry Pi auf dem OLED Display anzeigt.

Befehl: python ~/Adafruit_Python_SSD1306/examples/stats.py

Ich habe das Programm stats.py noch in die crontab eingebunden damit es automatisch nach jedem Neustart des Raspberry Pi ausgeführt wird. So sehe ich sofort die wichtigen Informationen wie die IP Adresse meines Donkey Cars.

Dazu die crontab mit dem folgenden Befehl öffnen.

Befehl: sudo nano /etc/crontab

Dann fügst Du nach der Zeile “# m h dom mon dow user  command” die folgende Zeile ein die das stats.py Programm im Hintergrund startet und über jeden Startvorgang eine Logging Informationen in die Datei “/home/pi/oled.log” schreibt:

@reboot pi python /home/pi/Adafruit_Python_SSD1306/examples/stats.py >> /home/pi/oled.log 2>&1 &

Soweit wäre jetzt alles installiert und der Raspberry Pi kann neu gestartet werden. Nach dem Neustart und einem anschließenden anmelden via SSH siehst Du dass Du Dich wieder in der virtuellen Umgebung des Donkey Cars befindest. Auch ist ab jetzt die Dateifreigabe /home/pi des SAMBA Servers im Netzwerk erreichbar. Die IP Adresse sollte jetzt auch auf dem OLED Display erscheinen wenn Du dieses verbaut hast.

Hinweis: Display Rotation

Je nach dem wie Du das Display verbaut hast steht dieses z. B. über Kopf. Damit die Anzeige dennoch gut abgelesen werden kann ist es möglich die Anzeige im Display zu drehen. Dazu fügst Du vor der Zeiele “disp.display()” die folgende Zeile noch ein:

disp.image(image.rotate(180))

Im nächsten Abschnitt geht die Installation der Donkey Car Software weiter.

Donkey Car Framework installieren

Ich habe aktuell (Mitte Dezember 2018) mit der neuesten Donkey Car Version schlechte Erfahrungen gemacht und habe mir daher die 2.5.1 Version installiert. Das geht mit dem folgenden Befehl in der virtuellen Umgebung des Donkey Cars.

Befehl: pip install donkeycar==2.5.1

Wenn aber die neueste Donkey Car Version installiert werden soll dann diesen Befehl ausführen.

Befehl (optional): pip install donkeycar[pi]

Die Installation dauert einen Augenblick. Nach der erfolgreichen Installation wird mit dem folgenden Befehl eine Instanz des Donkey Cars erzeugt.

Befehl: donkey createcar ~/mycar

Hinweis: Donkeycar Basis-Image Version

Diese nachfolgenden Pakete haben bei mir noch gefehlt da je nach Image das als Startpunkt von der donkeycar.com Seite herunter geladen wird es Variationen in den vorinstallierten Softwarepaketen gibt. Falls diese doch vorhanden sein sollten müssen sie nicht installiert werden und der Installationsprozess überspringt die Installation mit einem Hinweis.

Jetzt noch die folgenden Pakte in der virtuellen Umgebung installieren.

Befehl:  sudo apt-get install python3-picamera

Befehl:  pip install adafruit-pca9685

Ab jetzt habt Ihr die Software des Donkey Cars komplett neu aufgesetzt und könnt loslegen. Ergänzend möchte ich noch an dieser Stelle auf die Anpassungen in der config.py Datei eingehen die im Ornder “/home/pi/mycar” liegt und mit den Parametern für die Lenkung und Beschleunigung die Hardwareseite eures Donkey Cars abbildet.

Donkey Car config.py

Damit die SD-Karte zwischen den Autos hin und her getauscht werden kann müssen immer die Werte für die Lenkung und Beschleunigung für das jeweilige Auto automatisch konfiguriert werden. Ein Möglichkeit diese Schwierigkeit zu lösen wäre mit einer einfachen if-Abfrage z. B. der MAC-Adresse der Netzwerkkarte möglich um zu unterschieden in welchem Auto die SD-Karte gerade steckt. Genau so eine Abfrage habe ich in die config.py Datei der Donkey Car Installaiton implementiert. Weiter habe ich den Namen der einzelnen Tub-Ordnern in denen Aufzeichnungen der abgefahrenen Strecken gespeichert werden individuell benannt mit Datum und Uhrzeit. Das ist wiederum sehr komfortabel, wenn man Meetups, Schulungen oder Trainings mit mehreren Donkey Cars veranstaltet. Weiter habe ich mir noch etwas mehr Komfort gewünscht wie einen NTP Daemon und SAMBA-Server für die Dateifreigabe über das Netzwerk.

Die config.py Datei wurde an den Stellen angepasst, an denen ein Kommentar mit Datum zu finden ist. Weiter wird ein PS4 Joystick / Gamepad für die Steuerung des Donkey Cars verwendet. Die Konfigurationsdatei gibt es nachfolgend als ZIP Datei zum Download.

Download: Donkey Car config.py

Zusammenfassung

Ich hoffe mit dieser kleinen Anleitung allen zu helfen die selber ein Donkey Car aufsetzen möchten. Die Anleitung geht selber etwas weiter als nur das Donkey Car zum Laufen zu bekommen. Aber mit dem OLED Display und der Dateifreigabe sind dem Donkey Car Funktionen hinzugefügt die das Arbeiten einfacher machen.


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
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Donkey Car UNIMOG Upgrade
Autonom fahrendes Raspberry Pi KI Roboter-Auto – Software Installation Pro
(Visited 240 times, 2 visits today)