ROS系统学习9---节点间的内存共享(中级篇)---图像收发

本文通过对比ROS的话题传输和内存共享机制,展示了内存共享在图像数据传输中的优势。实验结果显示,内存共享机制传输1080p图像的延时仅10ms,远低于话题传输的600ms。文章探讨了ROS的nodelet内存共享并预测其可能被弃用,同时提供了实现代码供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前篇文章介绍了如何实现最简单的节点间内存共享。但因为篇幅所限,并没有深入介绍怎么将其实用化。本篇我们将用之前专门介绍的循环队列内存共享技术,将一个节点的图像数据直接共享给另外的节点。

为了比较内存共享机制和ROS自带的话题传输机制,本文用:ROS系统学习5---OpenCV的使用这篇文章提供的图像发送和接收节点做对比。结果发现用自带的话题传输机制传一张1080p的图像延时大概在600ms,而用内存共享机制传输延时只有10ms左右,性能相差了几十倍。

另外,ROS自身也提供了nodelet做内存共享,只是本人研究了几天发现特别乱就放弃了,感觉这东西迟早要被抛弃(事实上ROS2.0就不用这种机制了),如果有老哥有兴趣也可以去研究下。

下面贴出实现代码,其中最重要的“shmobject.h”在循环队列内存共享已经提供过,需要的可以直接去那边下。

发送节点:

#include <ros/ros.h>
#include <i
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值