ROS启动navigation.launch位姿偏移路径失效,move_base节点连接错误如何修复
问题修复方案
1. 解决位姿指定后向左偏转90度问题
- 首先确认激光雷达坐标系与底盘坐标系的变换关系:执行命令
rosrun tf tf_echo base_link laser_scan,查看输出的yaw角度值。如果存在±90度的固定偏移,直接修改URDF文件中激光雷达对应joint的rpy参数,调整yaw轴的角度偏移即可修正匹配偏差。 - 检查
amcl.launch配置:确认odom_frame_id、base_frame_id参数值与全局/局部代价地图配置一致(当前你配置的是odom和base_link),不要额外添加yaw方向的初始偏移参数。
2. 解决导航偏移不沿路径行驶问题
你当前的配置存在两处核心参数错误,直接导致路径跟踪失效:
- 差分轮机器人属于非完整约束机器人,不具备y方向平移能力:修改
dwa_local_planner_params.yaml中如下参数:
max_vel_y: 0.0 min_vel_y: 0.0
- 禁用全向机器人配置:修改
base_local_planner_params.yaml中如下参数:
holonomic_robot: false
- 补充验证:执行
rostopic echo /vehiclediffdrive/odom确认里程计数据正常,直线行驶时yaw角度无异常跳变、累计漂移在合理范围内。
3. roswtf /move_base->/move_base报错说明
该报错属于roswtf的误判,是move_base内部话题自引用导致的检测异常,只要rosnode info /move_base输出中可以看到正常订阅了激光、里程计、地图话题,且能发布速度指令、全局/局部路径话题,该报错完全不需要处理。
内容的提问来源于stack exchange,提问作者elypheldia
相关产品推荐
相关产品推荐

