プロジェクト · 2026年3月 — 2026年6月

LiDARベースSLAMによる自律ナビゲーション

Manchester Robotics, Tecnológico de Monterrey

Puzzlebot向けに、LiDARによる障害物検出、ArUcoによる自己位置推定、EKF融合、反応型プランニングを組み合わせたROS 2モジュール式ナビゲーションスタックを開発。

共同作業者

ハイライト

  • 視覚自己位置推定、EKFによる姿勢融合、経路生成、運動制御、壁面追従、障害物回避のための独立したROS 2モジュールを構築。
  • 車輪オドメトリとArUcoマーカーの観測を組み合わせ、蓄積した位置ずれを補正して自己位置推定の不確実性を低減。
  • LiDARによる障害物検出と壁面追従を用いるBug0およびBug2の行動を実装し、目標への経路を回復。
  • GazeboとRVizで8本の記録軌跡を使った目標間ナビゲーションを検証し、残差距離を1〜10 cmに収めた。
  • 目標受理しきい値を0.095 mに設定し、マーカー配置、目標座標、TFフレーム、再現可能な試験手順を文書化。

メディア

Final Presentation Video.
Technical Report (ES) first page previewPDF
Technical Report (ES)

詳細

このプロジェクトでは、ROS 2、Gazebo、RViz、LiDAR、カメラベースのArUcoマーカー、車輪オドメトリ、拡張カルマンフィルター(EKF)を用いて、MCR2 Puzzlebot向けの自律ナビゲーションスタックを開発しました。検証済みの実験はシミュレーション上のナビゲーションに重点を置き、ロボットが迷路内の定義済み目標へ到達しながら、自己位置を推定し、障害物を検出し、壁との遭遇後に経路を回復する構成でした。

実装は独立したROS 2ノードで構成しました。自己位置推定ノードがオドメトリを提供し、ArUco/EKFモジュールがオドメトリによる移動量と既知のマーカー位置を融合して、補正済みのグローバル推定値を公開します。コントローラはこの推定値とLiDARスキャンを利用し、障害物がない場合は目標へ直接移動し、障害物を検出すると壁面追従へ切り替えます。Bug0は経路が開けた時点で目標へ戻り、Bug2は始点と目標を結ぶ基準線(m-line)を使って障害物境界を離れるタイミングを判断します。

ArUcoマーカーを検出すると、RVizの信頼度楕円が小さくなり、推定位置と姿勢が補正されました。8回の目標間走行を記録し、残差距離は0.01 m〜0.10 mでした。目標受理には0.095 mのしきい値を使用しました。この結果は、制御された環境における視覚的な基準、センサーフュージョン、反応型ナビゲーションの組み合わせの有効性を示す一方、制御器のキャリブレーション、マーカーの視認性、センサー雑音、ノード同期の影響も明らかにしました。

リポジトリにはシミュレーション、起動ファイル、YAMLパラメータ、RViz設定、単体テストに加え、実機向けの別ブリングアップパッケージも含まれています。実機向けパッケージにはRPLIDARとmicro-ROSの統合、SLAM ToolboxおよびNav2用の起動ラッパーが含まれており、今後の実機展開に向けた基盤となっています。実機での検証、より堅牢なプランニング、キャリブレーションの改善、より体系的な計測は今後の課題です。

スキル

  • C/C++
  • Python
  • ROS 2
  • SLAM
  • Gazebo
  • センサー統合
  • ロボット制御
  • Linux