首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时时间点云处理和延迟

实时时间点云处理和延迟
EN

Stack Overflow用户
提问于 2020-05-28 09:39:56
回答 1查看 2.1K关注 0票数 2

我们的项目是将Lidar系统集成到虚拟现实(统一)中,I可以通过ROS桥实现这种集成。下一步是在将点云数据发送到统一系统之前对其进行处理。

  • 激光雷达传感器velodyne VLP-16
  • Ubuntu 18.4
  • IDE: Pycharm (python)
  • 点云处理:带有ROS的python点云库
  • ros-统一体系的桥梁

问题没有处理,从传感器到统一可视化只有1秒的延迟。但是在ROS中处理点云数据会导致很大的延迟(大约5秒)。

  • 我正在使用velodyne驱动器将原始数据转换为pointcloud2格式。在处理代码中,我订阅此pointcloud2消息并将其转换为PointXYZRGB格式以应用pcl库。
  • 我首先测试了这个序列的数据类型转换,没有应用PCL。

原始数据->发布pointcloud2消息->subscribe点云2 -> pointXYZRGB -> (处理) -> pointcloud2消息->发布它。

  • 如果没有处理,我就有超过5秒的延迟。

我知道,最好是从传感器接收原始数据,而不将其转换为pointcloud2消息。但在蟒蛇中做这件事对我来说是很有挑战性的。我在c++中找到了一个简单的例子。https://medium.com/@yohei.kajiwara/vlp16-c-quick-example-35b9ceea2059

但我不知道什么是最可靠的方法。请给我一个关于这个问题的建议。

诚挚的问候

圣秀拜恩

EN

回答 1

Stack Overflow用户

发布于 2020-05-28 18:11:36

如果你关心的是速度,那就有几件事。

Velodyne司机具有接收数据包的能力&使用nodelet将其合并成具有零拷贝访问权限的点云。ROS节点集类似于节点,但由于复制较少,对大数据的效率更高。司机点云.您可以通过启动文件VLP16_points.launch来调用它,该文件演示了如何组合这样的节点集。代码是相当可读的,所以您可以了解它们如何设置代码以供参考。如果您没有尝试过此方法,然后进入Unity,则这是您的最低基线。那么瓶颈就在统一方面。

最快的可能是使用同一个nodelet管理器(在最后一个启动文件中)使用C++编写nodelet。最好是如果你不需要自己写任何东西的话。pcl_ros包有几个转换节点集;如果将这些节点组合在一起可以满足您的需要,那么这将是最有效和最轻松的方法。否则,您仍然可以在您的<pcl_ros/pointcloud.h>节点集中使用c++头,并且pcl::PointCloud<T>将被ros解释为订阅服务器和发布服务器上的sensor_msgs/PointCloud2消息。如果您需要更多的转换,pcl_conversion包有一些方便的转换。

(这有点切线。如果超出这一瓶颈的是websocket-y接口Ros#用于与rosbridge_server通信,rosbridge_server支持UDP协议,如果在同一台机器上,该协议应该非常快,但是Ros#目前不支持该协议,也不将其放在路线图上,因为它们的大部分用例并不是运行在同一台计算机上)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62061544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档