manankharwar/fusioncore

ROS 2 sensor fusion SDK: UKF, 3D native, proper GNSS, zero manual tuning. Apache 2.0.

解決する課題

FusionCoreは、IMUのキャリブレーションドリフト、タイムスタンプのジッタ、GPS信号の遅延、車輪のスリップといった一般的なハードウェアの問題に対処し、実世界のロボットに堅牢なセンサーフュージョンを提供します。適応的で高頻度(100 Hz)な状態推定システムを提供することで、手動で行う時間のかかるパラメータ調整や、robot_localization + navsat_transform のような複雑なスタックの必要性を排除します。

仕組み

23状態のUnscented Kalman Filter (UKF) を使用して、IMU、車輪エンコーダ、GPSからのデータを融合します。主な技術的特徴は以下の通りです:

  • 適応的ノイズ推定: イノベーション系列に基づいてノイズ共分散を継続的に更新し、変化するセンサー品質に対応します。
  • IMUリングバッファ: バッファリングされた更新を再生し、遅延したGPSの修正値が届いた際にフィルターの状態を正確に再構成します。
  • ECEF融合: UTMゾーンの境界問題を回避するため、GPSデータを地球中心地球固定(ECEF)座標系で直接融合します。
  • 非ホロノミック拘束 (NHC): 車輪付きロボットのドリフトを防ぐため、横方向および垂直方向の速度をゼロにします。
  • ハードウェア最適化: Eigenを使用してARM (NEON) および x86 (AVX) 命令を自動検出するため、Raspberry Pi や Jetson デバイスで低レイテンシを実現します。

対象ユーザー

屋外または混合環境で動作し、広範な手動調整なしに安定した高頻度ローカライゼーションを必要とする、自律走行搬送ロボット (AMR) を開発するロボットエンジニアおよび開発者。

ハイライト

  • 手動調整不要: 基本的なIMUデータシートの値のみを使用して、センサーノイズにリアルタイムで適応します。
  • 実世界のノイズに対する堅牢性: キャリブレーション不良、GPSの遅延、車輪のスリップに自動的に対応します。
  • 高いパフォーマンス: Raspberry Pi 4 上で 1ms 未満で動作します。
  • そのまま置き換え可能: ROS 2 用の robot_localization スタックの直接的な代替として設計されています。
  • 統合サポート: RTK GPS に対応し、Nav2 や rtabmap_ros などのツールと統合可能です。

関連

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