ROS多用户视频延迟

2024-04-25 20:39:47 发布

您现在位置:Python中文网/ 问答频道 /正文

当有几个节点订阅同一个视频主题时,我得到了一个延迟。在

我使用的是近似时间同步器,从不同的相机收集几张图像,然后一次发布。虽然相机之间的定时可能是个问题,但不是这里,当我只有一个节点订阅时没有延迟。在

camtop_sub = message_filters.Subscriber('cam1/usb_cam1/image_raw', Image)
camfront_sub = message_filters.Subscriber('cam2/usb_cam1/image_raw', Image)
ts_log = message_filters.ApproximateTimeSynchronizer([cam1_sub, cam2_sub], 10, 1)
ts_log.registerCallback(self.log_callback)

我的项目的结构方式,我需要能够有多个节点检索最新的图像文件。在

有什么建议可以毫不拖延地完成这项工作?现在大约500米。在

我注意到其他人建议通过中的buff\u size参数来增加队列的缓冲区大小rospy订户类,但是近似TimeSynchronizer没有此参数


Tags: imagelogmessage主题raw视频节点filters
2条回答

我认为是带宽问题。您可以尝试合并使用相同图像的节点。或者将图像处理代码作为一个库或类,并在本地处理图像,在那里捕获图像并仅发布结果,而不是图像。在

我不常用ROS,但这是我的选择。在

你能指定你用的是哪台照相机吗?可能是相机驱动程序的一些实现问题?有没有可能只有一个订阅服务器接口/缓存/管理来自设备的图像馈送,而不是让其他需要实际图像馈送的节点订阅该节点?基本上是一个酒吧/广播公司。在

我参与的一个项目是prem IoT摄像头视频分析。通常相机驱动程序和操作系统内核不能很好地处理广播。通常有一个缓存/广播组件在驱动程序之外实现,就像我的例子中的Wowza媒体流媒体。对于您的使用,您可以实现一些简单的流缓冲区,并使其成为安全的并发访问。在

相关问题 更多 >