ROS RVIZ:如何可视化没有固定帧变换的点云

ROS RVIZ: How to visualize a point cloud that doesn't have a fixed frame transform

我一直在关注 ROS 官方文档,了解如何 publish a point cloud 并且我能够成功 运行 代码。现在我正在尝试使用 ROS RVIZ 可视化点云,但出现错误。

Transform [sender=unknown_publisher] For frame [single_frame]: Fixed Frame [map] does not exist

如何克服这个错误?它说框架不存在。 RVIZ 中是否有绕过错误的解决方法或配置设置?或者我如何更新我的 C++ 代码来更新框架对象?你能给我一些示例代码吗?

rviz 缺少从给定的 Fixed Frame(即 map)到点云数据帧(即 base_link)的转换。 如果您正在通过测量数据、运动学和动力学的方式使用 ROS,我强烈推荐 tf-tutorials

但是,有两个选项可以解决您的问题:

1. 您可以创建一个发布者,它告诉 rviz 如何通过在命令行中键入以下命令将 base_link 帧转换为 map 帧:

rosrun tf static_transform_publisher 0 0 0 0 0 0 map base_link 50

此命令,explanation here,以 50 Hz 发布两个帧重合的信息。

2.另一种选择是告诉rviz它的固定帧应该是base_link。因此,只需按照下图所示将 map 更改为 base_link

向知识库添加更多内容。按照@Tik0 的解释执行 static_transform_publisher 后,转换错误消失了。但是,我仍然无法在可视化器中看到点云。然后再进行几次试验后,我注意到默认情况下点的大小已设置为 0.01。因此,这些点太小而无法可视化。在 rviz 点云设置中增加点大小后,我能够将其可视化。