问题描述
我测试了我的ros2节点是否从重新确定的ROS2节点上完全订阅了/ camera / depth / image_rect_raw主题。我将真实的摄像机安装到TX2板上,并配置为15 fps。 但是,我希望/ camera / depth / image_rect_raw的订阅速率应类似于15 Hz,但如下所示有所不同。为什么发布和订阅图像主题之间存在速率差异?可以将订阅率与发布率相匹配吗?
$ ros2主题hz / camera / depth / image_rect_raw
平均比率:10.798
min: 0.040s max: 0.144s std dev: 0.03146s window: 13
平均速率:8.610
min: 0.040s max: 0.357s std dev: 0.06849s window: 22
平均率:8.085
min: 0.040s max: 0.357s std dev: 0.07445s window: 30
平均率:9.498
min: 0.015s max: 0.357s std dev: 0.06742s window: 45
平均比率:9.552
min: 0.015s max: 0.415s std dev: 0.07555s window: 55
平均率:9.265
min: 0.015s max: 0.415s std dev: 0.07543s window: 63
平均率:8.510
min: 0.015s max: 0.415s std dev: 0.08619s window: 68
平均速率:7.940
min: 0.015s max: 0.480s std dev: 0.09757s window: 73
平均率:7.539
min: 0.015s max: 0.480s std dev: 0.10456s window: 77
平均速度:7.750
min: 0.015s max: 0.480s std dev: 0.09972s window: 87
解决方法
差异可能是由于将图像放入网络的传输延迟所致。此延迟的严重程度取决于您的订户是在Jetson上运行还是在同一物理网络上的单独设备上运行。无论如何,我建议更改默认的QoS策略以获得更好的视频流性能,例如设置property alias color:
。也就是说,最大的改进(如果您正在通过网络流式传输)可能来自使用RELIABILITY=BEST_EFFORT
来压缩图像,然后再对其进行发布。尽管这些基于CPU(theora等),它们可能会有所帮助。
要考虑的另一件事是使用Jetson内置的压缩硬件加速器,尽管这将需要做更多的工作,直到image_transport_plugins
的维护者或另一个进取的开发人员开始工作。