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 演讲资料。
典型应用场景
- 需要在仓库通道中导航、避开人员并自动充电的自主仓库机器人。
- 在医院或办公室中需在房间间移动并响应动态障碍物的服务机器人。
- 探索新型定位、规划或恢复策略的研究平台。
快速入门
- 阅读文档 – 中心站点
https://docs.nav2.org/提供 Concepts 概述和 Getting Started 入门指南。 - 安装 – 按照您 ROS 2 发行版的 Build & Install 指南操作,或从
navigation2容器注册表拉取预构建的 Docker 镜像。 - 运行演示 –
nav2_bringup包提供启动文件,可在 Gazebo 等模拟器中启动一个模拟机器人,并配备即用型导航堆栈。 - 自定义 – 使用 Configuration Guide 调整参数,或通过 Plugin Tutorials 添加您自己的规划器或控制器。
社区与支持
- 加入 Nav2 Slack(README 中链接)获取实时帮助。
- Open Navigation(
info@opennav.org)提供专业服务。 - 项目采用 Apache‑2.0 许可证(ROS 包的通用许可证)开源。
以上所有信息均直接取自仓库的 README 及链接文档。
相关
- 项目
- 项目
- 项目
- 项目
- 项目