Bilder nach dem Flug
Originale → Arbeitskopie → Inventar → Sichtung oder KI → fachliche Prüfung → Bericht. Vorteil: wenig Abhängigkeit vom Hersteller.
D.R.O.L.DRONE RECON OPERATION LABAutomatische Übersetzung durch Google; technische Angaben anhand der Originalquellen prüfen.
Automatic translation by Google; technical content is not professionally verified.
Start / Werkstatt / Vorhandene Drohne
PRAXIS · SOFTWARE · ENTWICKLUNG
Von der Speicherkarte zur lokalen Auswertung – und von dort zur Frage, ob eine Android-App, Telemetrie oder eigene Flugsoftware für Ihr konkretes Modell zugänglich ist.
Für die Auswertung bereits gespeicherter Bilder brauchen Sie zunächst weder ein SDK noch eine neue Drohne: Kopieren Sie Aufnahmen von der Speicherkarte in einen lokalen Arbeitsordner, lassen Sie die Originale unverändert und arbeiten Sie mit Kopien. Prüfen Sie Auflösung, Blickwinkel, Datum und ob GPS-Daten vorhanden sind. Ein Bild mit Koordinate ist nicht automatisch lagegenau oder vermessungstauglich.
Aus einer Bildserie können je nach Qualität und Überlappung mit OpenDroneMap Orthofotos und 3D-Produkte entstehen. Für thermische Messungen werden geeignete radiometrische Daten, korrekte Aufnahmebedingungen und fachliche Bewertung benötigt; ein normales JPG ist kein Thermometer.
Originale → Arbeitskopie → Inventar → Sichtung oder KI → fachliche Prüfung → Bericht. Vorteil: wenig Abhängigkeit vom Hersteller.
Erfordert einen tatsächlich zugänglichen Videoweg. Ob Fernsteuerung, App oder SDK einen Stream bereitstellen, ist für die konkrete Kombination zu prüfen.
Praktisch getestet: Python 3.12.14 mit Pillow 13.0.0, synthetische JPEG- und PNG-Dateien sowie eine beschädigte Datei. Keine Drohnenhardware getestet.
Ergebnis: Eine CSV-Liste mit Dateiname, Pixelgröße, vorhandener Aufnahmezeit und einem Hinweis, ob ein GPS-EXIF-Eintrag vorhanden ist. Die Anwendung liest keine Koordinaten aus und sendet keine Daten ins Internet. Aufnahmedaten können fehlen oder von der Kamerauhr abhängen.
Python 3.11 oder neuer, Terminal und Internet für die einmalige Installation. Erstellen Sie einen neuen Arbeitsordner und darin den Unterordner aufnahmen; legen Sie Bildkopien hinein. Öffnen Sie das Terminal im Arbeitsordner.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install pillow==13.0.0Unter Windows im selben Arbeitsordner stattdessen py -m venv .venv und anschließend .venv\Scripts\activate in der Eingabeaufforderung verwenden; danach python -m pip install pillow==13.0.0. Pillow-Version und Systemvoraussetzungen: offizielle Installation.
Den folgenden Code als bildinventar.py im Arbeitsordner speichern und mit python bildinventar.py starten.
from pathlib import Path
from PIL import Image, ExifTags
import csv
ordner = Path('aufnahmen')
if not ordner.is_dir():
raise SystemExit('Ordner aufnahmen fehlt')
with Path('bildinventar.csv').open('w', encoding='utf-8-sig', newline='') as datei:
spalten = ['datei', 'breite_px', 'hoehe_px', 'aufnahmezeit', 'gps_vorhanden', 'status']
writer = csv.DictWriter(datei, fieldnames=spalten)
writer.writeheader()
for pfad in sorted(ordner.iterdir()):
if not pfad.is_file() or pfad.suffix.lower() not in ('.jpg', '.jpeg', '.tif', '.tiff', '.png'):
continue
# Tabellenprogramme koennen Dateinamen als Formeln interpretieren.
name = pfad.name
if name.lstrip(' \t\r\n').startswith(('=', '+', '-', '@')):
name = "'" + name
try:
with Image.open(pfad) as bild:
exif = bild.getexif()
details = exif.get_ifd(ExifTags.IFD.Exif) if exif else {}
writer.writerow(dict(datei=name, breite_px=bild.width, hoehe_px=bild.height,
aufnahmezeit=details.get(36867, '') or exif.get(306, ''),
gps_vorhanden='ja' if exif.get(34853) else 'nein', status='OK'))
except (OSError, ValueError, TypeError, SyntaxError) as fehler:
writer.writerow(dict(datei=name, breite_px='', hoehe_px='', aufnahmezeit='', gps_vorhanden='', status='nicht lesbar'))
print('Fertig: bildinventar.csv')
Kontrolle: bildinventar.csv liegt danach im Arbeitsordner und kann in einer Tabellenkalkulation geöffnet werden. Das Programm überschreibt eine bereits vorhandene Datei dieses Namens. Beschädigte Dateien werden als „nicht lesbar“ aufgeführt. Dateinamen, die wie Tabellenformeln beginnen, werden für den CSV-Export entschärft. Die Originalbilder bleiben unverändert.
Typische Fehler: „Ordner aufnahmen fehlt“: Namen und Arbeitsverzeichnis prüfen. „No module named PIL“: virtuelle Umgebung aktivieren und Pillow darin installieren. Leere Aufnahmezeit oder „GPS nein“ bedeutet, dass kein entsprechender EXIF-Wert erkannt wurde; andere Hersteller-Metadaten werden nicht vollständig ausgewertet.
Quelle: Pillow: EXIF auslesen. Datenschutz: Bildstandort und Aufnahmezeit können sensible Informationen enthalten; vor Weitergabe prüfen.
DJI führt Mini 3 und Mini 3 Pro auf der offiziellen Liste der vom Mobile SDK unterstützten Produkte. Das ist ein wichtiger Ansatzpunkt für Android-Entwicklung, aber noch kein Beweis, dass jede Funktion mit jeder Fernsteuerung oder Firmware verfügbar ist. Das DJI-SDK macht eine DJI-Drohne nicht automatisch zu einer MAVLink-Drohne.
Wichtig: Das Android-Gerät, die SDK-Version, die Verbindung und die Fernsteuerung müssen zur dokumentierten Kombination passen.
Ideal für den Einstieg mit bestehenden Bildern. OpenCV kann Bilder verarbeiten, ein Modell kann Hinweise markieren; Menschen prüfen die Ergebnisse.
OpenCV-EinstiegWenn Hersteller und Konfiguration es zulassen: App mit dokumentierter API entwickeln. Zugriff auf Daten und Flugsteuerung sind getrennte Prüfungen.
SoftwarewissenEin ArduPilot- oder PX4-Controller übernimmt die Stabilisierung. Ein Raspberry Pi oder Jetson bearbeitet Kameradaten; MAVLink verbindet geeignete Komponenten.
ArduPilot CompanionEin Community-Projekt kann einen Ansatz für eine bestimmte Hardware liefern. Protokollfamilie, Firmware und Videoformat bleiben konkret zu prüfen; ein fremdes Repository ist kein eigener Test.
ForschungsprojekteArduPilot SITL und PX4 SITL führen die Flugsoftware auf einem Entwicklungsrechner aus. So lassen sich Konfiguration und Telemetrie untersuchen, bevor Hardware hinzukommt. Simulationsergebnisse ersetzen keine Tests mit realen Sensoren, Funkverbindungen und Sicherheitsfunktionen.
Für ArduPilot führt die SITL-Anleitung nach Einrichtung der Build-Umgebung unter anderem folgenden Start auf:
sim_vehicle.py -v copter --console --map -wAchtung: -w setzt die simulierten Parameter auf Standardwerte zurück. Dieser dokumentierte Start wurde für D.R.O.L. hier nicht selbst ausgeführt; Version und Umgebung müssen vor Nutzung geprüft werden.
PX4 dokumentiert für eine eingerichtete Umgebung den Start make px4_sitl gz_x500. Hinweise zur Einrichtung und unterstützten Ubuntu-Versionen stehen in der PX4-1.16-Anleitung; den Simulationsleitfaden passend zur eigenen Version wählen. MAVSDK-Schnittstellen ändern sich: Ältere Python-Beispiele und die ab Version 4 dokumentierte Python-API nicht ungeprüft mischen. MAVSDK Python QuickStart.