ros-navigation/navigation2
ROS 2 Navigation Framework and System
Nav2 – ROS 2 ナビゲーションスタック
何であるか
- Nav2(Navigation 2 の略)は、ロボットオペレーティングシステム 2(ROS 2)の公式でプロダクション対応のナビゲーションシステムです。移動型ロボットが障害物を避けながら点Aから点Bへ安全に移動できるようにするソフトウェアの基本構成要素を提供します。ローカライゼーションや経路計画も含みます。
コア機能
| コンポーネント | 機能 |
|---|---|
| nav2_amcl | Adaptive Monte‑Carlo ローカライゼーション – レーザーまたは深度データを使用して、既知のマップ上のロボットの姿勢を推定します。 |
| nav2_controller | 計画された軌道を実行し、ロボットの運動学的制約を尊重する速度命令を生成します。 |
nav2_planner(nav2_behavior_tree を通じて) |
A* や Dijkstra などのアルゴリズムを使用して、2Dコストマップ上でグローバル経路計画を実行します。 |
| nav2_costmap_2d | センサー情報、静的マップ、動的障害物を統合した2D占有グリッドを維持します。 |
| nav2_bt_navigator | Behavior Tree を通じてナビゲーションアクションを調整し、全体のフロー(計画 → 実行 → 回復)を簡単に拡張可能にします。 |
| nav2_collision_monitor | ロボットの周囲をリアルタイムで監視し、緊急停止や回復動作をトリガーできます。 |
| nav2_docking / nav2_docking_bt | 充電ステーションや他のターゲットへの自律的なドッキングを専門にした動作です。 |
| nav2_constrained_smoother | 動作制約(例:曲率制限)を尊重するように経路を最適化します。 |
| nav2_bringup | 1つのコマンドでスタック全体を起動するための起動ファイルと設定ユーティリティです。 |
なぜ重要なのか
- モジュール式かつ拡張可能 – 各部品は独立したROS 2パッケージで、明確なAPIを備えているため、カスタムプランナー、コントローラ、センサーを簡単に交換できます。
- 複数ディストリビューション対応 – Humble、Jazzy、Lyrical などの複数のROS 2リリースに対応する事前ビルド済みバイナリが提供されており、CIバッジで各リリースのビルドステータスを確認できます。
- コミュニティおよび業界の支援 – Open Navigationプロジェクトによって維持されており、Nvidia、AMD、Polymath Roboticsなどの企業からスポンサードされています。
- 豊富なドキュメント – READMEからリンクされるチュートリアル、設定ガイド、APIドキュメント、ROSConの講演資料がすべて利用可能です。
一般的な利用事例
- 倉庫内の通路を走行し、人を避け、充電のためにドッキングする自律型倉庫ロボット。
- 病院やオフィスで部屋間を移動し、動的障害物に反応するサービスロボット。
- 新しいローカライゼーション、計画、回復戦略を研究するためのプラットフォーム。
導入方法
- ドキュメントを読む – 中心となるサイト
https://docs.nav2.org/には Concepts の概要と Getting Started ガイドが用意されています。 - インストール – お使いのROS 2ディストリビューション用の Build & Install 手順に従うか、
navigation2コンテナレジストリから事前ビルド済みDockerイメージを取得します。 - デモを実行 –
nav2_bringupパッケージには、Gazeboなどのシミュレータで動作するロボットを起動するための起動ファイルが含まれており、すぐに使えるナビゲーションスタックが提供されます。 - カスタマイズ – Configuration Guide を使ってパラメータを調整するか、Plugin Tutorials を参考に独自のプランナーまたはコントローラを追加します。
コミュニティとサポート
- READMEにリンクされているNav2 Slackに参加してリアルタイムのサポートを受けてください。
- Open Navigation(
info@opennav.org)からプロフェッショナルサービスを提供しています。 - プロジェクトはApache‑2.0ライセンス(ROSパッケージの標準)のオープンソースです。
上記のすべての情報は、リポジトリのREADMEおよびリンクされたドキュメントから直接取得しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト