Wie verbindet man ein externes GPS mit den ZED-Kameras, um das Video mit GPS-Tags zu versehen?

Last updated: August 13, 2026

Die ZED-Kameras verfügen über keinen integrierten GPS-Empfänger. Das ZED SDK unterstützt jedoch nativ die Fusion von Kameradaten mit einem externen GNSS-Empfänger über das Modul für globale Lokalisierung, das seit ZED SDK v4.0 verfügbar ist. Dies ist die empfohlene Lösung; eine manuelle Synchronisierung und benutzerdefinierte Kalman-Filterung sind nicht mehr erforderlich.

Modul für globale Lokalisierung

Das Modul für globale Lokalisierung des ZED SDK ermöglicht die Verfolgung und Lokalisierung der Kamera in Echtzeit in einem globalen Koordinatensystem, indem visuelle Odometrie mit GNSS-Positionsbestimmung kombiniert wird. Die Lokalisierung wird durch die Fusion von Daten aus drei Quellen erreicht: Stereosicht, IMU und GNSS. Das Modul funktioniert auch in Umgebungen ohne GNSS-Empfang; wenn Satellitendaten nicht verfügbar oder unzuverlässig sind, übernimmt die visuell-inertiale Odometrie, und GNSS korrigiert die Drift, die sich bei der visuellen Odometrie im Laufe der Zeit ansammelt.

Der Arbeitsablauf ist unkompliziert:

  1. Aktivieren Sie die Positionsverfolgung auf der ZED-Kamera und beginnen Sie mit der Veröffentlichung der Daten im Fusion-Modul mit startPublishing().
  2. Initialisieren Sie ein sl::Fusion-Objekt, abonnieren Sie die Kamera und aktivieren Sie die Positionsverfolgung der Fusion mit enable_GNSS_fusion = true.
  3. Übergeben Sie die Daten Ihres GNSS-Empfängers (Breitengrad, Längengrad, Höhe, Kovarianz, Zeitstempel) mit fusion.ingestGNSSData() an das Fusion-Modul.
  4. Rufen Sie die fusionierte globale Position mit fusion.getGeoPose() oder die fusionierte lokale Pose mit fusion.getPosition() ab.

Da jeder ZED-Frame mit seinem Epoch-Zeitstempel versehen ist, führt das SDK eine präzise zeitstempelbasierte Synchronisierung zwischen der Kamera und den GNSS-Daten durch, sodass Sie jeden Videoframe mit seiner entsprechenden Geoposition versehen können.

Vollständige Dokumentation einschließlich C++- und Python-Codeanleitungen:

Codebeispiele

Vollständige Beispiele zur globalen Lokalisierung sind auf GitHub verfügbar: ein Live-Beispiel, das die ZED-Kamera mit einem externen GNSS-Sensor fusioniert und die Geoposition auf einer realen Karte darstellt, ein Aufzeichnungsbeispiel, das synchronisierte Daten in einer SVO-Datei und einer JSON-Datei speichert, sowie ein Wiedergabebeispiel, das die aufgezeichneten Daten offline wiedergibt:
https://github.com/stereolabs/zed-sdk/tree/master/global%20localization GitHub

ROS und ROS 2

Wenn Sie ROS 2 verwenden, unterstützt der zed-ros2-wrapper nativ die GNSS-Fusion; Sie müssen lediglich ein NavSatFix-Thema von Ihrem GNSS-Empfänger bereitstellen:
https://www.stereolabs.com/docs/ros2/geo-tracking/