ros-navigation/navigation2

ROS 2 Navigation Framework and System

Nav2 – ROS 2 导航堆栈

是什么

  • Nav2(Navigation 2 的简称)是机器人操作系统 2(Robot Operating System 2, ROS 2)的官方生产就绪导航系统。它提供软件构建模块,使移动机器人能够安全地从点 A 移动到点 B,同时避免障碍物、处理定位并规划路径。

核心功能

组件 功能
nav2_amcl 自适应蒙特卡洛定位 – 使用激光或深度数据在已知地图上估计机器人的位姿。
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 提供启动文件和配置工具,通过单个命令启动整个堆栈。

为何重要

  • 模块化且可扩展 – 每个组件都是独立的 ROS 2 包,拥有清晰的 API,开发者可轻松替换自定义规划器、控制器或传感器。
  • 跨发行版支持 – 为多个 ROS 2 发行版(Humble、Jazzy、Lyrical)提供预构建二进制文件,CI 标记显示各版本的构建状态。
  • 社区与产业支持 – 由 Open Navigation 项目维护,并获得 Nvidia、AMD、Polymath Robotics 等公司赞助。
  • 丰富的文档 – README 中链接了教程、配置指南、API 文档以及 ROSCon 演讲资料。

典型应用场景

  • 需要在仓库通道中导航、避开人员并自动充电的自主仓库机器人。
  • 在医院或办公室中需在房间间移动并响应动态障碍物的服务机器人。
  • 探索新型定位、规划或恢复策略的研究平台。

快速入门

  1. 阅读文档 – 中心站点 https://docs.nav2.org/ 提供 Concepts 概述和 Getting Started 入门指南。
  2. 安装 – 按照您 ROS 2 发行版的 Build & Install 指南操作,或从 navigation2 容器注册表拉取预构建的 Docker 镜像。
  3. 运行演示 – nav2_bringup 包提供启动文件,可在 Gazebo 等模拟器中启动一个模拟机器人,并配备即用型导航堆栈。
  4. 自定义 – 使用 Configuration Guide 调整参数,或通过 Plugin Tutorials 添加您自己的规划器或控制器。

社区与支持

  • 加入 Nav2 Slack(README 中链接)获取实时帮助。
  • Open Navigation(info@opennav.org)提供专业服务。
  • 项目采用 Apache‑2.0 许可证(ROS 包的通用许可证)开源。

以上所有信息均直接取自仓库的 README 及链接文档。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目