Nav2 核心功能与关键配置
三、核心功能与关键配置
规划器与控制器插件
| 类别 | 插件 | 特点 |
|---|---|---|
| 全局规划 | NavFn | 经典 Dijkstra/A*,稳定,路径不够平滑 |
| 全局规划 | Smac 2D | 支持多种运动学模型,路径更贴合车体约束 |
| 全局规划 | Theta 类 | 允许任意角度转向,路径更短 |
| 局部控制 | DWB | 基于采样的局部规划,参数多但可调性强 |
| 局部控制 | RPP | 纯跟踪,参数少、易上手,倒车场景需要注意配置 |
| 局部控制 | MPPI | 基于采样的模型预测控制,动态环境表现好,计算量大 |
关键参数
| 参数 | 所属 | 作用与调参方向 |
|---|---|---|
controller_frequency | 控制器 | 控制回路频率,太低会导致轨迹跟踪滞后 |
robot_radius | 代价地图 | 机器人外接圆半径,设小了会撞,设大了过不了窄门 |
inflation_radius | 膨胀层 | 障碍物周围生成代价的范围 |
cost_scaling_factor | 膨胀层 | 代价随距离衰减的快慢,越大越倾向于贴着障碍走 |
xy_goal_tolerance | 目标检查 | 位置容差,太小会出现在目标点附近反复调整 |
yaw_goal_tolerance | 目标检查 | 朝向容差,对接类任务要收紧 |
required_movement_radius | 进度检查 | 判定「卡住」的位移阈值 |
movement_time_allowance | 进度检查 | 判定「卡住」的时间阈值 |
update_frequency | 局部代价地图 | 代价地图更新频率,与传感器频率匹配 |
rolling_window | 局部代价地图 | 局部地图是否跟随机器人滚动 |
行为树节点
| 节点 | 作用 |
|---|---|
| ComputePathToPose | 调用全局规划服务算路径 |
| FollowPath | 调用控制器跟踪路径 |
| RateController | 限制子节点的执行频率,控制重规划节奏 |
| RecoveryNode | 失败后执行恢复子树并重试 |
| ReactiveFallback | 依次尝试多个分支,直到有一个成功 |
| ClearEntireCostmap | 清空代价地图,处理传感器误判造成的「幽灵障碍」 |
| Spin / Wait / BackUp | 原地旋转、等待、后退,最常用的三个自救动作 |
| GoalUpdated | 判断目标是否被更新,用于打断当前恢复行为 |

