如何解决各帧之间的查找转换超时?

时间:2016-08-16 19:42:56

标签: ubuntu-14.04 kinect ros openni

我正在使用hector_mapping来创建我房间的地图。我使用openni节点从kinect传感器获取深度/ image_raw,然后使用" depthimage_to_laserscan"将其更改为激光扫描数据。并用#34;扫描"创建hector_mapping的主题。当我在一台机器上运行所有这些时它工作正常并创建一个地图但是当我运行" openni_launch"和" depthimage_to_laserscan"关于odroid和" hector_mapping"在我的机器上,我收到错误以下错误:" lookupTransform base_link to camera_depth_frame"时间到。无法将激光扫描转换为基础框架"。这个错误意味着什么,以及当一切都在同一台机器上运行时它是如何发生的。

我的odroid和机器通过无线网络进行通信。我的机器在Ubuntu Trusty上运行ROS indigo。

1 个答案:

答案 0 :(得分:0)

roscore

假设您的roscore正在您的计算机上运行,​​您必须在odroid上设置ENV ROS_MASTER_URI变量以在odroid上启动任何内容之前导出ROS_MASTER_URI = http://yourmachine:11311。这将告诉odroid上的rosnodes连接到你机器上的roscore。

检查帧速率和延迟

tf包中有tool来查看TF树。这将显示链接之间的延迟:

$ rosrun tf view_frames

这将收集TFs 5秒钟,并生成一个名为frames.pdf的文件,其中包含所有细节。

机器时间同步

如果您发现TF链接之间有很大的延迟,您可以尝试同步您的计算机。为此,您可以将计算机上的时钟与运行roscore的时钟同步:

$ sudo ntpdate <your-roscore-machine>

有时需要多次同步尝试才能降低机器之间的时差。