导航
导航层基于 Nav2,使用地图、定位、代价地图、规划器和控制器参数完成路径规划与跟踪。
常见模式
- 在已有地图上导航。
- 开发阶段同时运行 SLAM 和导航。
- 对比 TEB 和 DWB 局部规划效果。
推荐阅读路径
如果你刚开始理解 OSRacer 导航,建议按顺序阅读:
- Ackermann 导航 — 理解 OSRacer 和差速机器人的不同。
- Nav2 导航提速优化 — 理解关键指令链路和 planner 改动。
- Nav2 调参 — 安全地调整速度、加速度、costmap 和 planner 参数。
- Nav2 故障排查 — 排查常见运行时问题。
Planner 选择
使用 TEB 作为默认 Ackermann 导航 profile:
bash
ros2 launch osracer_navigation bringup_launch.py slam:=True planner:=teb使用 DWB 作为更简单的基础对照 profile:
bash
ros2 launch osracer_navigation bringup_launch.py slam:=True planner:=dwb调参顺序
- 先确认 TF 和定位。
- 确认
odometry/filtered稳定。 - 调整机器人 footprint 和 inflation radius。
- 设置安全的速度和加速度限制。
- 根据 Ackermann 运动约束调整局部规划器。
- 在受控区域测试恢复行为。
开发建议
导航参数文件建议按场景拆分,例如实验室、教室、走廊和赛道。
每次修改导航 profile,都应该记录:
- 车型;
- 地图或测试场地;
- planner 名称;
- 改动参数;
- 实测现象;
- 回滚说明。