外部GPSをZEDカメラに接続して、GPSタグ付きの動画を提供するにはどうすればよいですか?
Last updated: August 13, 2026
ZEDカメラにはGPS受信機が内蔵されていません。ただし、ZED SDKはGlobal Localizationモジュールを通じて、外部GNSS受信機からのデータとカメラデータの融合をネイティブにサポートしています。この機能はZED SDK v4.0以降で利用できます。これが推奨されるソリューションであり、手動同期やカスタムカルマンフィルタリングは不要になりました。
Global Localizationモジュール
ZED SDKのGlobal Localizationモジュールは、ビジュアルオドメトリとGNSS測位を組み合わせることで、グローバル座標系におけるカメラのリアルタイム追跡と位置特定を可能にします。位置特定は、ステレオビジョン、IMU、GNSSという3つのソースからのデータを融合することで実現されます。このモジュールはGNSSが利用できない環境でも動作します。衛星データが利用できない、または信頼できない場合は、ビジュアル・イ inertialオドメトリが引き継ぎ、GNSSがビジュアルオドメトリによって時間の経過とともに蓄積されるドリフトを補正します。
ワークフローは簡単です:
- ZEDカメラで位置追跡を有効にし、
startPublishing()を使用してFusionモジュールへのデータの公開を開始します。 sl::Fusionオブジェクトを初期化し、カメラをサブスクライブして、enable_GNSS_fusion = trueでFusion位置追跡を有効にします。- GNSS受信機のデータ(緯度、経度、高度、共分散、タイムスタンプ)を
fusion.ingestGNSSData()を使用してFusionモジュールに入力します。 fusion.getGeoPose()で融合されたグローバル位置を取得するか、fusion.getPosition()でローカルの融合ポーズを取得します。
すべてのZEDフレームにはエポックタイムスタンプが付与されているため、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/