在ROS 2中优化视频流

实用指南,可从Wi-Fi中获得更多信息,如果您曾经使用Wi-Fi使用移动机器人,则可能遇到了这种情况:您已经设置了带有相机的机器人,也许是两个。您在现场(甚至在实验室对面)试图查看实时饲料,同时还可以运行导航,收集[…] ROS 2中优化视频流的帖子首先出现在ClearPath Robotics上。

来源:Clearpath Robotics博客

从Wi-Fi

如果您曾经在Wi-Fi上使用移动机器人工作,则可能会遇到这种情况:您已经设置了一个带有相机的机器人,也许是两个。您在现场(甚至在实验室对面)试图查看现场供稿,同时还可以运行导航,收集数据或进行宣传。但是,事情开始崩溃了。潜伏期蔓延。消息丢失。视频stusters。整个系统感觉就像是线程。

大多数时候,问题归结为一个简单的事情:网络带宽。

大多数时候,问题归结为一件简单的事情: 网络 带宽。

通过无线连接流式传输原始视频很容易使您的网络饱和,尤其是当您处理高分辨率摄像头,多个流或共享Wi-Fi时。在ROS中,默认的摄像头设置通常可以做到这一点 - 以全帧速率发布完整的,未压制的图像消息。

好消息?您只需进行一些更改就可以做得更好,我们有两个指南向您展示了如何。

为什么ROS中的原始视频是问题

让我们从基础知识开始。 ROS摄像机驱动程序通常默认发布原始未压缩图像数据,这意味着它为每个帧发送了完整的像素值。以1280×720的分辨率,每个像素(RGB)的30帧每秒30帧,每秒已经超过660 Mbps的带宽,这远远超过了绝大多数Wi-Fi网络甚至可以梦dream以求的支持。现在,投入一些数据包丢失或干扰,结果是可以预见的:Laggy的流,超载主题或最坏的情况是全面断开连接。

这就是压缩的地方。通过在发送图像数据之前压缩图像数据,您可以大大减少带宽使用情况,通常不会在视觉质量或延迟方面牺牲太多牺牲。

ROS 2中的相机压缩选项

相机数据压缩 指南讨论 image_transport

调整压缩参数

Wi-Fi上的视频

最终想法