GPS 태그가 포함된 비디오를 제공하기 위해 외부 GPS를 ZED 카메라에 연결하는 방법은 무엇인가요?
Last updated: August 13, 2026
ZED 카메라에는 내장 GPS 수신기가 없습니다. 그러나 ZED SDK는 Global Localization module을 통해 카메라 데이터와 외부 GNSS 수신기를 융합하는 기능을 기본적으로 지원하며, 이 기능은 ZED SDK v4.0부터 제공됩니다. 이는 권장되는 솔루션으로, 수동 동기화와 사용자 지정 칼만 필터가 더 이상 필요하지 않습니다.
Global Localization module
ZED SDK의 Global Localization module은 시각적 주행 거리계와 GNSS 위치 정보를 결합하여 전역 좌표계에서 카메라를 실시간으로 추적하고 위치를 파악할 수 있도록 합니다. 위치 파악은 스테레오 비전, IMU, GNSS의 세 가지 소스에서 데이터를 융합하여 수행됩니다. 또한 이 모듈은 GNSS가 제공되지 않는 환경에서도 작동합니다. 위성 데이터를 사용할 수 없거나 신뢰할 수 없는 경우 시각-관성 주행 거리계가 대신 작동하며, GNSS는 시간이 지남에 따라 시각적 주행 거리계에 누적되는 드리프트를 보정합니다.
워크플로는 간단합니다.
- ZED 카메라에서 위치 추적을 활성화하고
startPublishing()을 사용하여 Fusion 모듈에 데이터 게시를 시작합니다. sl::Fusion객체를 초기화하고 카메라를 구독한 다음enable_GNSS_fusion = true로 Fusion 위치 추적을 활성화합니다.- GNSS 수신기 데이터(위도, 경도, 고도, 공분산, 타임스탬프)를
fusion.ingestGNSSData()를 사용하여 Fusion 모듈에 전달합니다. fusion.getGeoPose()를 사용하여 융합된 전역 위치를 가져오거나,fusion.getPosition()을 사용하여 로컬 융합 포즈를 가져옵니다.
모든 ZED 프레임에는 해당 epoch 타임스탬프가 지정되므로, SDK는 카메라 데이터와 GNSS 데이터 간에 타임스탬프를 기반으로 정밀한 동기화를 수행합니다. 따라서 각 비디오 프레임에 해당하는 지리적 위치를 지정할 수 있습니다.
C++ 및 Python 코드 안내를 포함한 전체 문서:
- 글로벌 로컬라이제이션 개요: https://www.stereolabs.com/docs/global-localization
- GNSS / RTK 설정: https://www.stereolabs.com/docs/global-localization/using-gnss-linux/
- 데이터 동기화: https://www.stereolabs.com/docs/global-localization/data-synchronization
- VIO / GNSS 보정: https://www.stereolabs.com/docs/global-localization/vio-gnss-calibration
- 좌표계: https://www.stereolabs.com/docs/global-localization/global-localization-coordinate-frames
- 문제 해결: https://www.stereolabs.com/docs/global-localization/troubleshooting
코드 샘플
전체 글로벌 로컬라이제이션 샘플은 GitHub에서 확인할 수 있습니다. 외부 GNSS 센서와 ZED 카메라를 융합하고 실제 지도에 지리적 위치를 표시하는 라이브 샘플, 동기화된 데이터를 SVO 파일과 JSON 파일에 저장하는 녹화 샘플, 그리고 녹화된 데이터를 오프라인으로 재생하는 재생 샘플이 제공됩니다:
https://github.com/stereolabs/zed-sdk/tree/master/global%20localization GitHub
ROS 및 ROS 2
ROS 2를 사용하는 경우 zed-ros2-wrapper는 기본적으로 GNSS 융합을 지원하므로 GNSS 수신기에서 NavSatFix 토픽만 제공하면 됩니다:
https://www.stereolabs.com/docs/ros2/geo-tracking/