ros中的nodelet

在ros的节点通信过程中,以topic,service和param进行,但这些总要有一些传出延迟和拥赛。而nodelet设计出来就是为了加快节点间的通信速度,做到zero copy。通常用于在一个处理过程中多个算法间数据无需拷贝即可实现传递。roscpp已经有做优化使得在同一个节点中发布和订阅做到zero copy 的指针传递。nodelete允许动态加载类到一个相同的node中,但由于命令空间不同使得nodelete运行起来向一个单独的节点。

简单来说,就是nodelet把几个node一起管理起来(这几个node中都加载了nodelete类),使得在同一个manager中的节点间的topic传递数据更快。

应用:高吞吐量的数据流可以由许多nodelet加载到同一个进程来避免拷贝和流量传输

设计目标:

1.使用已存在的roscpp接口

2.使得nodelets之间数据的zero copy

3.动态加载来打破编译时依赖

4.定位透明除了优化改进

5.在node中和在nodelet中将有最小的变化

技术:

1.默认一个基类 nodelet::Nodelet 将用来动态加载。所有的nodelets都将继承这个基类,并且可以使用pluginlib动态加载

2.基类将自动提供命令空间,重映射和参数,就像是第一个类节点

3.将会有一个nodelet manager进程,加载了有1个或多个nodeletes。通过一个boost 共享指针,nodelets间的任何通信都可以做到zero copy

使用:待补充





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值