Navigation2 (简称NAV2) 是ROS2中用于实现移动机器人自主导航的核心功能包套件。它继承并极大地扩展了ROS1 Navigation Stack的功能,采用了更加模块化、可组合的设计理念。其根本目标是让机器人能够在复杂的环境中,安全、高效地从一个点移动到另一个点。
为了更好地理解,您可以将NAV2想象成一个智能的“机器人司机”,它需要:
- 一张地图 (Map):了解周围环境的静态布局。
- 一个定位系统 (Localization):知道自己当前在地图的哪个位置。
- 一个路径规划器 (Path Planner):规划出一条从起点到终点的全局路径。
- 一个实时避障器 (Local Planner/Controller):在沿着规划路径行进时,能够实时躲避突然出现的障碍物。
- 行为树 (Behavior Tree):作为“大脑”,协调以上所有功能,并处理导航过程中的各种状态和异常情况。

1. 模块组成
以下是Navigation2的核心模块清单,以表格形式呈现,这与最新的NAV2官方架构图是完全对应的。
| 模块名称 (Package/Node Name) | 主要功能 | 主要输入 (Input) | 主要输出 (Output) |
|---|---|---|---|
nav2_bringup |
启动与配置 | nav2_params.yaml (配置文件) |
启动所有NAV2节点 |
nav2_map_server |
地图服务器 | map.yaml (地图元数据), map.pgm (地图图像) |
/map (Topic, 静态地图) |
nav2_amcl |
定位模块 (AMCL) | /scan (Topic, 激光雷达数据), /map (Topic, 地图), /tf (TF, 里程计坐标变换) | <

最低0.47元/天 解锁文章
6063

被折叠的 条评论
为什么被折叠?



