有没有办法可以强迫机器人进行本地化?

时间:2015-11-21 00:14:32

标签: ros

我希望机器人在启动程序时已经本地化。有没有办法解决这个问题,这样我就不必手动移动机器人并进行本地化了?

我有两个机器人,为了探索第二个机器人,我必须先将它本地化,这需要花费很多时间。当我将其本地化时,另一个机器人会探索整个地图。

由于

1 个答案:

答案 0 :(得分:2)

documentation of amcl,本地化节点侦听主题img { height: inherit; width: inherit; } 的初始姿势,消息类型为geometry_msgs/PoseWithCovarianceStamped。这指定了amcl最初开始运行的本地化估计。如您所见,除了姿势估计的平均值之外,您还可以提供完整的协方差矩阵,告知姿势估计的不确定性。

这个初始姿势设置为内部有一些默认值,但要解决您的问题,您要做的是在上述主题上发布消息,告诉amcl从您指定的初始姿势开始。

您可以使用rostopic pubinitialpose通过命令行执行此操作:请参阅例如documentationthis Q&A了解详情。

我记得甚至可以将初始姿势估计值直接指定为startup parameters for amcl,参见rviz和其他类似参数。例如,如果您可以在启动节点之前在启动文件中修复这些参数,那么这是合适的。