DiddyBorg mit QGroundControl – Joystick fernsteuern

In diesem Blog beschreibe ich, wie ich die Joystick- / Gamepad-Fernsteuerung meines RPI-gesteuerten DiddyBorg zu QGroundControl und MAVLink als Kommunikationsprotokoll weiter entwickelt habe. 

Damit habe ich die Basis geschaffen, um zukünftig in einer Standardumgebung weitere Sensoren zu verarbeiten und Missionen für den DiddyBorg zu planen und durchzuführen.

Softwareinstallation auf dem Raspberry Pi (RPi)

Auf dem RPi installieren Sie zunächst pymavlink, die Python-Version der MAVLink-Libraries. Am einfachsten geht dies mit PIP:

pip install pymavlink

Danach müssen Sie das Modul mavutil.py ersetzen, weil ansonsten aufgrund eines pymavlink-Issues keine Verbindung zwischen dem RPi und QGroundControl zustande kommt. Hierzu suchen Sie den Installationsort der pymavlink-Library mit:

pip list -v  

 

Dann ersetzen Sie das mavutil.py – Modul mit der Version im github-Repository zu diesem Blog. Die neue Version ist rückwärtskompatibel.

Schließlich erstellen Sie ein Verzeichnis, z.B. diddy2QGC in das Sie die Python-Module diddy2QGroundControl.py und ThunderBorg3.py kopieren. In diesem Verzeichnis starten Sie dann später das Python-Skript mit:

 python diddy2QGroundControl.py

 

Softwareinstallation auf dem Desktop

Installieren Sie QGroundControl auf Ihrem Desktop.

Starten der Anwendungen

Stellen Sie sicher, dass sich der RPi und Ihr Desktop im gleichen Netzwerk befinden und starten Sie QGroundControl (QGC) und das Python-Skript (die Reihenfolge ist ohne Bedeutung). 

Der DiddyBorg meldet sich bei der QGC an und Sie finden dann in den Vehicle-Einstellungen die Möglichkeit, Ihren Joystick einzulernen. Bitte beachten Sie dabei, dass diddy2QGroundControl.py im Mode 2 den Roll-Kanal für die Rechts/Links-Steuerung und den invertierten Wert des Pitch-Kanals für die Motorsteuerung verwendet.