ros-navigation/navigation2
硬件与物联网为移动机器人提供建图、定位、路径规划与自主移动能力的 ROS 2 导航框架。
Nav2 是 ROS 2 的导航框架与系统,由一组 C++ 软件包组成,让移动机器人能够加载地图、定位自身、规划路线,并在避障的同时沿路线行进。它面向使用 ROS 2 的机器人开发者,而不是想直接拿到成品机器人应用的用户。主要入口是项目文档。
它改变了工作流中的什么
你不再从零编写导航逻辑,而是用打包好的节点拼装出一套运行中的导航栈。README 列出的软件包覆盖定位(nav2_amcl)、建图与地图服务(nav2_map_server)、规划(nav2_navfn_planner、nav2_smac_planner、nav2_theta_star_planner)、路径跟踪(nav2_mppi_controller、nav2_regulated_pure_pursuit、nav2_graceful_controller)、碰撞监控、自动停靠、路线规划以及简易指挥接口。这些以插件形式提供,替换组件靠配置而非重写核心。
典型流程是:加载地图并在其上定位,通过导航接口下发目标点,由规划器生成路径,再由控制器持续发布速度指令直到抵达目标。nav2_behavior_tree 与 nav2_bt_navigator 中的行为树负责编排这一循环中的恢复行为和多步动作。
两个机制值得注意。第一是插件化架构:规划器、控制器、平滑器和行为都是可选的组件,这也是仓库提供插件教程和插件目录的原因。第二是 nav2_simple_commander,它提供从脚本驱动导航栈的更高层方式,适合把导航集成进更大的机器人应用。
前提条件与使用路径
框架面向 ROS 2 发行版。构建表覆盖 Humble(Ubuntu Jammy)、Jazzy(Ubuntu Noble)和 Lyrical(Ubuntu Resolute),并提供源码与 Debian 二进制两种构建,因此所需的 Ubuntu 版本取决于你选择的 ROS 2 发行版。部分较新的包在该表中只出现在最新发行版下。README 还链接了首次安装指南、构建说明以及用于预构建环境的 Docker 容器。
这是一个给程序员使用的库与框架:它需要 ROS 2 工作空间、你自己的机器人描述与传感器输入,以及配置文件。要预期配置和迁移工作;项目提供了配置指南和用于版本切换的迁移指南。
许可证与支持
GitHub 仓库没有可识别的许可证标识,复用前请查看各软件包自带的许可证文件。README 将专业支持咨询指向 Open Navigation,并未提供支持保证。
本文由 AI 根据项目 README 生成,更新于 2026年10月29日,以项目官方文档为准。