在节点间传输原图的带宽占用很大,为了提升传输速度,可以设置图片在传输过程中采取压缩格式。
参考:https://github.com/ros-perception/image_transport_tutorials
1. 安装压缩传输的插件:compressed_image_transport
#安装指定插件
$ sudo apt-get install ros-eloquent-compressed-image-transport
#或者安装图像传输相关的所有插件
$ sudo apt-get install ros-eloquent-image-transport-plugins
2. 查看节点信息
安装前:
#Terminal 1,运行图像发布节点
$ ros2 run image_trans image_publisher
#Terminal 2,查看当前节点信息
$ ros2 topic list
可以看到只有传输原图的/camera/image主题
安装好插件后,再运行发布节点并查看节点信息如下:
增加了压缩图像传输主题。
3. 压缩图像的传输
#Terminal 1,启动图像发布节点
$ ros2 run image_trans image_publisher
#Terminal 2,启动图像接收节点,通过参数设置指定压缩传输
$ ros2 run image_trans image_subscriber --ros-args --remap _image_transport:=compressed
image_subscriber就可以订阅主题/camera/image/compressed,该主题带有/camera/image上发布的相同图像的jpg压缩版本。
4. 带宽比较
#不指定参数,传输原图时,Terminal3查看/camera/image主题的带宽占用
$ ros2 topic bw /camera/image
#指定参数,Terminal3查看/camera/image/compressed主题的带宽占用
$ ros2 topic bw /camera/image/compressed
可以看出压缩传输比原图传输快很多。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!