manankharwar/fusioncore

ROS 2 localization for outdoor robots: IMU, wheel encoders and GPS fused in a 23-state UKF at 100 Hz. When the estimate goes wrong it reports which sensor and why, instead of drifting silently. Apache 2.0.

何を解決するか

FusionCore は、屋外ロボット向けに安定した高周波(100 Hz)ローカライゼーションを提供するためのセンサ融合ライブラリです。『静かなるドリフト』の問題を解決するために、ユーザーが推定が失敗している原因とその理由を正確に把握できる詳細な診断情報を提供します。単に原因不明のドリフトを起こすのではなく、どのセンサが問題を引き起こしているかを明示します。

動作方法

23状態の拡張カルマンフィルタ(UKF)を使用して、IMU、ホイールエンコーダ、GPS(GNSS)、およびビジュアルSLAMのデータを融合します。主な技術的特徴は以下の通りです:

  • 後方推定(Retrodiction): 遅延したGPSの修正が到着した際に、IMUのリングバッファが更新を再実行し、正確なタイムスタンプでの状態を再構築します。
  • 適応的ノイズ: ジャイロおよび加速度センサのバイアスを継続的に推定し、ノイズの多いまたは滑るホイールに対応するため、適応的ノイズ共分散の更新を実行します。
  • ECEF融合: GPSデータを地球中心地球固定(ECEF)座標系で直接融合することで、UTMゾーン境界の問題を回避します。
  • 診断機能: データの棄却理由(例:CHI2_FAILED, IMPLAUSIBLE_JUMP)を含むリアルタイムの健全性ステータスを公開します。

対象ユーザー

農業ロボットや自律走行バンなど、屋外自律車両を開発するロボット工学エンジニアや開発者で、信頼性の高いローカライゼーションスタックが必要であり、ROS 2(JazzyおよびHumble)または純粋なC++環境で簡単に設定できるものを求めている方。

主な特徴

  • 高性能: Raspberry Pi 4 でサイクルあたり1ms未満で実行可能。
  • ROS 2 非依存: コアフィルタはROS依存のない純粋なC++17ライブラリ。
  • 耐障害性: 静止時のドリフトを防ぐゼロ速度更新(ZUPT)と、外れ値を除外するカイ二乗ゲートを含む。
  • デプロイに最適: 適応推定器を使用して、手動のパラメータ調整を最小限に抑える設計になっています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト