KI-DrohneFrankfurt UAS
Start › Projekt

AprilTag-Erkennung und Abwurf

Das erreichte Zwischenergebnis: Marker erkennen und daraufhin die Nutzlast fallen lassen.

Historische Demonstration, August 2026. Die beschriebenen Abwürfe sind keine aktuelle Funktionsfreigabe. Kamera, Servo und Mechanik werden separat geprüft. Für den gepflegten Betrieb gelten Servo-Dokumentation und die neuesten Hardwareaufzeichnungen.

Die damalige Demonstration zeigte Kamera → Erkennung → Aktuator. Die nach unten gerichtete IMX500-Kamera erkennt tag36h11-Marker, und sobald ein Tag stabil erkannt ist, öffnet der Servo den Haltebügel und lässt die Nutzlast fallen. Verifiziert ist das am Boden und handgeführt — nicht im autonomen Flug; siehe Flugversuche und Absturz.

Warum AprilTags statt Personenerkennung

Ursprünglich sollte ein neuronales Netz Personen erkennen und die Drohne ihnen folgen. Für einen gezielten Abwurf ist ein geometrischer Marker die bessere Wahl: Ein AprilTag hat eine eindeutige ID, seine vier Ecken lassen sich subpixelgenau bestimmen, und aus ihnen folgt bei bekannter Kamerakalibrierung die vollständige Lage des Tags relativ zur Kamera. Eine neuronale Bounding Box liefert dagegen nur ein Rechteck ohne belastbare Geometrie.

Deshalb wird der KI-Beschleuniger der IMX500 für die Tag-Erkennung nicht benutzt: Bei einem Fiducial zählen genaue Ecken, nicht eine gelernte Klassifikation.

Zwei Detektor-Backends

Durchsatz auf dem Pi Zero 2 W

Gemessen am 18.08.2026, ohne Tag im Bild — es sind reine Durchsatzwerte, keine Erkennungsraten:

BackendAuflösungAufnahme + ErkennungNur Detektor
AprilTag 3 nativ640 × 48029,7 fps36,5 fps
AprilTag 3 nativ1280 × 96013,2 fps15,1 fps
OpenCV ArUco640 × 48029,1 fps76,2 fps
OpenCV ArUco1280 × 96014,9 fps20,4 fps

Bei 640 × 480 begrenzt die Bildaufnahme, nicht der Detektor. Für den Abwurf reicht das deutlich: Der Marker steht still, und die Freigabe verlangt ohnehin mehrere aufeinanderfolgende Bilder.

Wie der Abwurf ausgelöst wird

Kommandos

Der gepflegte Aufzeichnungsbefehl ist drone-inspect. Auf dem Pi zeigt uv run drone-inspect --help die aktuellen Aufnahmeoptionen. Die Standardinspektion bleibt disarmiert und sendet keine Servo-Kommandos.

drone-tag-servo-record ist ein separates Werkzeug mit ausdrücklichen Bestätigungen und begrenzten Pulsen. Es implementiert weder Flugnavigation noch automatisches Armieren. Die alten Missionsbranches bleiben im Quellarchiv erhalten.

Eine metrische Tag-Pose benötigt gemessene Taggröße und eine passende Kamerakalibrierung. Eine gewählte Beispielgröße ersetzt keine Messung.

Der gepflegte Weg: Aufzeichnung mit einmaliger Freigabe

Seit Mitte September gibt es dafür ein eigenes Skript auf dem Pi. Es zeichnet den vollständigen Sensor- und Kameradatensatz auf und öffnet dabei die Nutzlast-Halterung, wenn Tag ID 3 erkannt wird:

uv run --locked --group raspi python scripts/tag_mount_capture.py

Grenzen, die bewusst so bleiben

Diese Seite fasst den Stand der Erkennung zusammen.