
Heute kombinieren wir ein autonomes Drohnensteuerungsprogramm mit einem Ballerkennungsprogramm, um eine autonome Drohne bereits zu platzen.
In früheren Artikeln haben wir den Start einer autonomen virtuellen und realen Drohne sowie die Entwicklung eines ROS-Knotens untersucht, der die Koordinaten eines Balls im Raum definiert und überträgt . Jetzt werden wir das Drohnensteuerungsprogramm neu gestalten, damit es automatisch versucht, den Ball zu platzen.
Programm zum Ball fliegen
Das zum Ball fliegende Programm basiert auf dem gleichen Geschwindigkeitsregelungszyklus wie im manuellen Regelungsprogramm .
Der Unterschied besteht darin, dass anstelle der Steuertasten von der Tastatur der Geschwindigkeitsvektor der Drohne durch Informationen über die Position des Balls gesteuert wird, die aus dem Thema /baloon_detector/twist
.
setvel_forward
Geschwindigkeiten und setvel_forward
Vektor setvel
so eingestellt, dass die Drohne direkt in den Ball flog.
Wenn die Drohne den Ball länger als 0,2 Sekunden nicht sieht, glauben wir, dass wir ihn platzen lassen und die Drohne in den Landemodus versetzen.
Der vollständige Text des Programms ist unten angegeben: (crash_baloon.py) Debugging-Empfehlungen
Zum Debuggen empfehlen wir, einen offenen Raum zu wählen, den Ball an der Basis zu befestigen und sicherzustellen, dass sich keine roten Objekte in der Nähe befinden, damit das Führungsprogramm keine Fehlalarme enthält.
Die Funktionsweise des Führungsprogramms vor dem Flug sollte mit einem Browser unter 192.168.11.1:8080 überprüft werden:

Wenn alles richtig konfiguriert ist, muss das Programm den Ball sicher unterscheiden und darf keine Fehlalarme verursachen.

Zu Beginn des Führungsprogramms sollte die Drohne den Ball nach dem Start sehen. Andernfalls denkt die Drohne, dass der Ball bereits geplatzt ist, und wechselt in den Landemodus.
In Zukunft können Sie das Programm ändern - zum Beispiel mit dem AUTO.MISSION-Modus zum Ball fliegen. Wechseln Sie nach Erreichen des gewünschten GPS-Punkts in den visuellen Suchmodus.
Die Auswahl der Koeffizienten für Geschwindigkeiten im Hauptzyklus des Programms erfolgt experimentell für eine bestimmte Drohne.
Bei Wettbewerben sahen die Versuche, den Ball zu platzen, folgendermaßen aus:
Ich wäre dankbar für Kommentare und Fragen von denen, die versuchen, unser Experiment zu wiederholen.
Quellcodes für die Programme werden auf Github hochgeladen .