零目标值和负目标值的问题

时间:2015-06-06 21:06:11

标签: zero turtle-graphics ros

我正在关注带有导航堆栈的http://wiki.ros.org/navigation/Tutorials/SendingSimpleGoals示例。如果我将目标位置设置为正值,则乌龟会按预期移动,但如果将其设置为零或负值,则乌龟在同一位置旋转,并返回消息:

 “[ERROR] [1433622909.572352221]: Aborting because a valid plan could not be found. 
Even after executing all recovery behaviors.”

导航是否只接受位置MoveBaseGoal组件的正值?

2 个答案:

答案 0 :(得分:1)

原因可能是您的地图只有正坐标。所以机器人显然无法找到路线,因为目标不在地图上。

也许可以使用rviz查看你的地图。

答案 1 :(得分:0)

Turtlesim将始终在该位置返回正值,因为它的(0,0)位于左下角,向上和向右移动会增加坐标值。 要允许导航堆栈处理负面位置的Turtlesim(并且相对容易做测试)我建议修改文件turtleOdometry.cpp

它为odometry和其他一些东西生成tf。我们要做的是更改回调函数:poseCallback(..):msg-> msg-x> x by msg-> x - OFFSET_X和msg->和整个孔文件中的-OFFSET_Y。使用OFSSET的正面值,我把5放到偏移处,而rviz中的乌龟几乎出现在世界框架1.1中 随着您将能够测试导航堆栈。

然后设置global_costmap的大小和来源很重要! 您需要修改File:move_base.launch

<rosparam file = "$ (find <blah>) / global_costmap_params.yaml" command = "load" />

<Param name = "global_costmap / width" value = "20.0" />
<Param name = "global_costmap / height" value = "20.0" />
<Param name = "global_costmap / origin_x" value = "- 10.0" />
<Param name = "global_costmap / origin_y" value = "- 10.0" />

该顺序为10,10,0,0的默认值。 有关详细信息,请阅读http://wiki.ros.org/costmap_2d 的问候,

相关问题