将ros节点改为同时支持独立节点、nodelet节点格式的详细步骤

在不改变原来代码结构的情况下将原节点封装成同时支持独立节点运行(包含main函数)、nodelet插件形式(不包含main函数)。

目录

1、参考:

2、Nodelet简介

3、修改nodelet节点

3.1. 新建一个nodelet.cpp文件,用于实现nodelet插件程序。

3.2、更改主算法类,使其构造函数支持节点句柄参数传递。

3.3. 更改 main ()函数,

3.4. 在package.xml中对nodelet添加 和 依赖项。

3.5. 编写插件描述符

3.6. 请在包清单package.xml的 部分中添加 项,导出插件包到ROS系统

3.7. 对 CMakeLists.txt 进行必要的更改

3.8、编写launch文件


1、参考:

1、http://wiki.ros.org/nodelet

2、https://blog.csdn.net/xingdou520/article/details/85721779

2、Nodelet简介

Nodelets are designed to provide a way to run multiple algorithms on a single machine, in a single process, without incurring copy costs when passing messages intraprocess. roscpp has optimizations to do zero copy pointer passing between publish and subscribe calls within the same node. To do this nodelets allow dynamic loading of classes into the same node, however they provide simple separate namespaces such that the nodelet acts like a seperate node, despite being in the same process. This has been extended further in that it is dynamically loadable at runtime using pluginlib.

  • 1、nodelet包被设计为在同一个机器,同一个进程中可以零拷贝的运行多个算法。
  • 2nodelet允许动态加载不同的算法类到同一个节点中,并且每一个类都有独立的命名空间。
  • 3、ROS nodelet插件和ROS中普通插件编写流程一样,因为它们都是借助plubinlib来实现插件动态加载,都必须follow pluginlib使用规则.

3、修改nodelet节点

 

3.1. 新建一个nodelet.cpp文件,用于实现nodelet插件程序。

  • 新建example 添加nodelet的继承。
  • 添加virtual void onInit ()函数,并在其中实现自己主算法类的实例化(并通过构造函数的参数见私有句柄和共有句柄传给算法类)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值