点击(此处)折叠或打开
- Q: dwa planner failed to produce path
- A: https://github.com/ros-planning/navigation/issues/147
- latch_xy_goal_tolerance是为了防止机器人在到达目标位置后移动。如果我们关闭它,机器人可能会离开目标,然后在原地旋转阶段重新开始局部规划。所以我们有时可以看到机器人跳舞(已知旋转)。要检查这一点,您可以将latch_xy_goal_tolerance设置为false,应该会看到机器人以同样的方式跳舞。
- 问题出在global planning上。如果我们有一个新的目标,我们不希望机器人被锁定latch,所以当有一个新的 global planning时,move_base将重置锁定latch。然而,在我们达到目标的位置和方向之前,全球规划从来就不是封闭的。在最后一个旋转阶段,没有达到定位,所以复位latch。
- 修复此错误的一个简单方法是在重新设置函数DWAPlannerROS::setPlan中的锁定之前检查全局计划的目标。如果latch_xy_goal_tolerance是我们想要的,并且全局计划的目标没有更改(因此我们需要记录一个旧目标),则不要重置锁定。