第3章 ROS通信方式_第1页
第3章 ROS通信方式_第2页
第3章 ROS通信方式_第3页
第3章 ROS通信方式_第4页
第3章 ROS通信方式_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器人操作系统(ROS)及仿真应用机器人操作系统(ROS)及仿真应用第1章LinuxUbuntu入门基础第2章ROS安装与系统架构第3章ROS通信方式第4章ROS实用工具第5章ROS机器人建模与运动仿真第6章ROS机器人建图与导航仿真应用第7章ROS机器人平面视觉检测仿真应用第8章ROS机器人三维视觉仿真实例第9章基于ROS的服务机器人应用实例第3章3.3Actionlib动作库

第3章ROS通信方式3.2Service服务3.1Topic主题3.4ParameterServer参数服务器3.5本章小结

通信方式类别Topic主题Service服务Actionlib动作库ParameterService参数服务器通信机制Publisher/SubscriberServer/clientAction-server/Action-client指令查询消息文件格式*.msg*.srv*.action*.yaml传输特点单向消息发送/接收双向消息请求/响应双向消息目标/结果/反馈节点中使用的参数可以从外部进行修改同步/异步异步同步异步异步使用场景实时性、周期性的消息,比如收发传感器数据,收发控制指令临时而非周期性的消息,需要时才发送请求和处理,比如机器人的运动学正反解Service服务的升级版,用于长时间的、有反馈进度的、可中途终止的任务,比如视觉处理配置文件中预设参数数值,比如视觉传感器的安装高度、角度第3章3.3Actionlib动作库

第3章ROS通信方式3.2Service服务3.1Topic主题3.4ParameterServer参数服务器3.5本章小结Topic主题是ROS最通用的通信方式,对于实时性、周期性的消息,使用topic来传输是最佳的选择。在ROS中,两个节点之间要进行通信,就需要建立一个Topic主题,两个节点之间是通过publish-subscribe机制进行通信的。对于同一个Topic,可以有多个发布消息的节点,同时也可以有多个订阅消息的节点。

工作时,Topic-Publisher节点和Topic-Subscriber节点都要到节点管理器进行注册,Topic-Publisher只管通过Topic主题发送消息,不管有没有其它节点接收它。而Topic-Subscriber在节点管理器的指挥下会订阅该Topic,只要检测到Topic主题有消息发布出来,就接收该Topic主题的消息。Topic主题是一种节点对节点的单向异步通信方式。3.1Topic主题1、发布器Publisher编程实例:小乌龟速度控制3.1Topic主题

详细操作步骤见教材P37-P44页

详细操作步骤见教材P44-P50页2、订阅器Subscriber编程实例:小乌龟速度接收第3章3.3Actionlib动作库

第3章ROS通信方式3.2Service服务3.1Topic主题3.4ParameterServer参数服务器3.5本章小结

与Topic主题不同,Service服务通信是双向的,它不仅可以发送消息,同时还会有反馈。一个服务Service被分成服务端Server和客户端Client,分别对应着节点A和节点B,两个都要到主节点管理器进行注册,在主节点管理器的管理下,节点B(客户端)向节点A(服务端)发送请求,节点A(服务端)响应该请求,实现节点之间的双向通信。当服务的请求和响应完成时,两个连接的节点将被断开,是一种一次性的同步通信方式。

在请求机器人执行特定操作时,或者根据特定条件需要产生响应事件时,通常使用Service服务。需要注意的是,服务端Server的响应要尽可能的快,因为客户端Client在没有得到反馈之前是处于停止状态的,直到它收到反馈信息才开始重新运作。所以如果一个service服务需要较长的时间去处理大量的数据才能得出结果,这时应该选择Actionlib动作库这种通信方式。3.2Service服务1、自定义srv消息文件编程实例

详细操作步骤见教材P51-P55页

详细操作步骤见教材P55-P60页2、服务端Server编程实例3.2Service服务

详细操作步骤见教材P60-P65页3、客户端Client编程实例第3章3.3Actionlib动作库

第3章ROS通信方式3.2Service服务3.1Topic主题3.4ParameterServer参数服务器3.5本章小结3.3Actionlib动作库Actionlib是ROS中一个很重要的库,类似Service通信机制,Actionlib也是一种请求响应机制的通信方式。在service通信机制中,当客户端Client发送一个请求后,只有当它接收到服务端Server的响应信息才能执行其他操作,而Actionlib通信就不受这种限制,它采用action-server服务端与action-client客户端通信机制,action-client客户端对action-server服务端发出一个请求后,还可以执行其他操作,比较适合需要长时间的通信过程,同时,action-server服务端用来不断向action-client客户端反馈任务的进度,并且还支持在任务中途中止运行。

1、自定义action消息文件编程实例

详细操作步骤见教材P66-P71页

详细操作步骤见教材P71-P74页2、客户端client编程实例

详细操作步骤见教材P74-P79页3、服务端Server编程实例3.3Actionlib动作库第3章3.3Actionlib动作库

第3章ROS通信方式3.2Service服务3.1Topic主题3.4ParameterServer参数服务器3.5本章小结3.4ParameterServer参数服务器

机器人工作时,经常需要用到参数传递功能,我们可以事先将一些不需要经常变动的常量(如机器人的轮廓、传感器参数、算法的参数等)保存到参数服务器,在需要用到参数的时候再从参数服务器中获取。

参数信息一般写入到yaml文件中,通过命令行指令或launch文件可以实现对yawl文件的调用,从而进一步实现对文件中参数的读取。1、创建yaml文件实例

详细操作步骤见教材P79-P81页

详细操作步骤见教材P81-P84页2、加载yaml文件实例

详细操作步骤见教材P84-P89页3、在节点中进行参数读取实例3.4ParameterServer参数服务器第3章3.3Actionlib动作库

第3章ROS通信方式3.2Service服务3.1Topic主题3.4ParameterServer参数服务器3.5本章小结3.5本章小结

本章首先对ROS的四种通讯方式从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论