当前位置: 首页 > news >正文

电子商务毕设做网站上海企业建设网站报价

电子商务毕设做网站,上海企业建设网站报价,搭建网站多少费用,怎么注册公司域名邮箱目录 一、前言二、概念三、作用四、使用演示4.1案例简介4.2nodelet 基本使用语法4.3内置案例调用 五、nodelet实现5.1需求5.2流程5.3准备5.4创建插件类并注册插件5.5构建插件库5.6使插件可用于ROS工具链5.6.1配置xml5.6.2导出插件 5.7执行 一、前言 ROS通信是基于Node(节点)的… 目录 一、前言二、概念三、作用四、使用演示4.1案例简介4.2nodelet 基本使用语法4.3内置案例调用 五、nodelet实现5.1需求5.2流程5.3准备5.4创建插件类并注册插件5.5构建插件库5.6使插件可用于ROS工具链5.6.1配置xml5.6.2导出插件 5.7执行 一、前言 ROS通信是基于Node(节点)的Node使用方便、易于扩展可以满足ROS中大多数应用场景但是也存在一些局限性由于一个Node启动之后独占一根进程不同Node之间数据交互其实是不同进程之间的数据交互当传输类似于图片、点云的大容量数据时会出现延时与阻塞的情况比如 现在需要编写一个相机驱动在该驱动中有两个节点实现:其中节点A负责发布原始图像数据节点B订阅原始图像数据并在图像上标注人脸。如果节点A与节点B仍按照之前实现两个节点分别对应不同的进程在两个进程之间传递容量可观图像数据可能就会出现延时的情况那么该如何优化呢 ROS中给出的解决方案是:Nodelet通过Nodelet可以将多个节点集成进一个进程。 二、概念 nodelet软件包旨在提供在同一进程中运行多个算法(节点)的方式不同算法之间通过传递指向数据的指针来代替了数据本身的传输(类似于编程传值与传址的区别)从而实现零成本的数据拷贝。 nodelet功能包的核心实现也是插件是对插件的进一步封装: 不同算法被封装进插件类可以像单独的节点一样运行 在该功能包中提供插件类实现的基类:Nodelet 并且提供了加载插件类的类加载器:NodeletLoader。 三、作用 应用于大容量数据传输的场景提高节点间的数据交互效率避免延时与阻塞。 四、使用演示 在ROS中内置了nodelet案例先以该案例演示nodelet的基本使用语法。 4.1案例简介 以“ros- [ROS_DISTRO] -desktop-full”命令安装ROS时nodelet默认被安装如未安装请调用如下命令自行安装: sudo apt install ros-ROS_DISTRO-nodelet-tutorial-math在该案例中定义了一个Nodelet插件类:Plus这个节点可以订阅一个数字并将订阅到的数字与参数服务器中的 value 参数相加后再发布。 需求:再同一线程中启动两个Plus节点A与B向A发布一个数字然后经A处理后再发布并作为B的输入最后打印B的输出。 4.2nodelet 基本使用语法 nodelet load pkg/Type manager - Launch a nodelet of type pkg/Type on manager manager nodelet standalone pkg/Type - Launch a nodelet of type pkg/Type in a standalone node nodelet unload name manager - Unload a nodelet a nodelet by name from manager nodelet manager - Launch a nodelet manager node4.3内置案例调用 1.启动roscore 2.启动manager rosrun nodelet nodelet manager __name:mymanager注__name: 用于设置管理器名称。 3.添加nodelet节点 添加第一个节点: rosrun nodelet nodelet load nodelet_tutorial_math/Plus mymanager __name:n1 _value:100添加第二个节点: rosrun nodelet nodelet load nodelet_tutorial_math/Plus mymanager __name:n2 _value:-50 /n2/in:/n1/out解释 rosrun nodelet nodelet load nodelet_tutorial_math/Plus mymanager __name:n1 _value:100rosnode list 查看nodelet 的节点名称是: /n1 rostopic list 查看订阅的话题是: /n1/in发布的话题是: /n1/out rosparam list查看参数名称是: /n1/value。 rosrun nodelet nodelet standalone nodelet_tutorial_math/Plus mymanager __name:n2 _value:-50 /n2/in:/n1/out第二个nodelet 与第一个同理 第二个nodelet 订阅的话题由 /n2/in 重映射为 /n1/out。优化也可以将上述实现集成进launch文件: launch!-- 设置nodelet管理器 --node pkgnodelet typenodelet namemymanager argsmanager outputscreen /!-- 启动节点1名称为 n1, 参数 /n1/value 为100 --node pkgnodelet typenodelet namen1 argsload nodelet_tutorial_math/Plus mymanager outputscreen param namevalue value100 //node!-- 启动节点2名称为 n2, 参数 /n2/value 为-50 --node pkgnodelet typenodelet namen2 argsload nodelet_tutorial_math/Plus mymanager outputscreen param namevalue value-50 /remap from/n2/in to/n1/out //node/launch4.执行 向节点n1发布消息: rostopic pub -r 10 /n1/in std_msgs/Float64 data: 50.0打印节点n2发布的消息: rostopic echo /n2/out最终输出结果应该是:100。 五、nodelet实现 nodelet本质也是插件实现流程与插件实现流程类似并且更为简单不需要自定义接口也不需要使用类加载器加载插件类。 5.1需求 参考 nodelet 案例编写 nodelet 插件类可以订阅输入数据设置参数发布订阅数据与参数相加的结果。 5.2流程 1.准备 2.创建插件类并注册插件; 3.构建插件库; 4.使插件可用于ROS工具链 5.执行。 5.3准备 新建功能包导入依赖: roscpp、nodelet 5.4创建插件类并注册插件 #include nodelet/nodelet.h #include pluginlib/class_list_macros.h #include ros/ros.h #include std_msgs/Float64.hnamespace nodelet_demo_ns { class MyPlus: public nodelet::Nodelet {public:MyPlus(){value 0.0;}void onInit(){//获取 NodeHandleros::NodeHandle nh getPrivateNodeHandle();//从参数服务器获取参数nh.getParam(value,value);//创建发布与订阅对象pub nh.advertisestd_msgs::Float64(out,100);sub nh.subscribestd_msgs::Float64(in,100,MyPlus::doCb,this);}//回调函数void doCb(const std_msgs::Float64::ConstPtr p){double num p-data;//数据处理double result num value;std_msgs::Float64 r;r.data result;//发布pub.publish(r);}private:ros::Publisher pub;ros::Subscriber sub;double value;}; } PLUGINLIB_EXPORT_CLASS(nodelet_demo_ns::MyPlus,nodelet::Nodelet) 5.5构建插件库 CMakeLists.txt配置如下 ... add_library(mynodeletlibsrc/myplus.cpp ) ... target_link_libraries(mynodeletlib${catkin_LIBRARIES} ) 编译后会在 工作空间/devel/lib/先生成文件: libmynodeletlib.so。 5.6使插件可用于ROS工具链 5.6.1配置xml 新建 xml 文件名称自定义(比如:my_plus.xml)内容如下 library pathlib/libmynodeletlibclass namedemo04_nodelet/MyPlus typenodelet_demo_ns::MyPlus base_class_typenodelet::Nodelet descriptionhello/description/class /library 5.6.2导出插件 export!-- Other tools can request additional information be placed here --nodelet plugin${prefix}/my_plus.xml / /export5.7执行 可以通过launch文件执行nodelet示例内容如下: launchnode pkgnodelet typenodelet namemy argsmanager outputscreen /node pkgnodelet typenodelet namep1 argsload demo04_nodelet/MyPlus my outputscreenparam namevalue value100 /remap from/p1/out tocon //nodenode pkgnodelet typenodelet namep2 argsload demo04_nodelet/MyPlus my outputscreenparam namevalue value-50 /remap from/p2/in tocon //node/launch运行launch文件可以参考上一节方式向 p1发布数据并订阅p2输出的数据。 参考视屏赵虚左ros入门
http://www.zqtcl.cn/news/481968/

相关文章:

  • 海口仿站定制模板建站成都网站空间创新互联
  • 网站上传源码织梦企业 网站源码
  • 台州建设网站公司php网站好吗
  • 制作网站需要哪些成本软件开发模型的理解
  • 室内设计网站排行榜前十名有哪些湖南建筑网
  • 荥阳做网站wordpress会员关注
  • 公司网站建设包含的内容wordpress淘宝客知乎
  • 用dw建立网站wordpress文章到期自动下沉
  • 网站右侧 回到顶部传媒公司排名前十
  • 如何制作网站最简单的方法python做的网站多吗
  • 公司网站系统建设策划书游戏代理是什么
  • 网站建设的基本需求有哪些方面怎样免费做网站视频讲解
  • 唐山网站建设托管北京今朝装饰设计有限公司
  • 网站标题关键词长度商务网站建设需要备案吗
  • 微信做淘宝客 网站打不开怎样清除单位域名 网站或互联网网址
  • 晋中工商局网站开发区分局美图秀秀网页版入口
  • 工信部网站实名认证怎么做常州到丹阳
  • 企业品牌网站建设我们的优势招商团队外包
  • 有实力的网站建设公司wordpress做视频站
  • html免费网站模板下载有什么网站学做标书的
  • 哪里做网站seo深圳专业做网站专业
  • 网站建设名词解析自己制作免费网页
  • 网站开发深圳公司企业自助建站的网站
  • 珠海网站建设平台中国软文网官网
  • 绵阳学校网站建设wordpress 采集站
  • 免费设计软件下载网站大全贵州seo技术培训
  • wordpress网站+搬家自做购物网站多少钱
  • 用自己网站做淘宝客深圳上市公司一览表
  • 如何用图片文字做网站建设部网站安全事故
  • 订制网站网易企业邮箱怎么修改密码