机器人操作系统ROS原理及应用 课件 21 服务_第1页
机器人操作系统ROS原理及应用 课件 21 服务_第2页
机器人操作系统ROS原理及应用 课件 21 服务_第3页
机器人操作系统ROS原理及应用 课件 21 服务_第4页
机器人操作系统ROS原理及应用 课件 21 服务_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

服务(service)Service通信

topic是ROS中的一种单向的异步通信方式。有些时候单向的通信满足不了通信要求这种情况下,就需要有另外一种请求-响应式的通信模型——service(服务)

service方式在通信模型上与topic不同。Service通信是双向的,它不仅可以发送消息,同时还会有反馈。所以service包括两部分,一部分是请求方(Clinet)[客户],另一部分是应答方/服务提供方(Server)。通信时,客户(Client)发送一个request(请求),要等待server处理,然后反馈回一个reply/response(回复/应答),这样通过“请求-应答”的机制完成整个服务通信

Service工作原理

service是同步通信方式,所谓同步就是节点A(请求方)发布请求后会在原地等待响应,直到节点B(服务方)处理完了请求并且完成了响应,节点A才会继续执行。节点A在等待响应的过程中是处于阻塞状态。这样的通信模型没有频繁的消息传递,没有冲突与高系统资源的占用,只有接受请求才执行服务,简单高效

Service工作原理

Service与topic异同远程过程调用(RemoteProcedureCall,RPC),可以简单通俗的理解为在一个进程里调用另一个进程的函数Service工作原理

1、使用命令rosservice2、编写client/server程序server

rosservice命令作用rosservicelist列出所有服务rosserviceinfo[服务名]查看一个服务的数据类型rosservicecall[服务名]

[参数]命令行调用服务rosservice相关命令作用rossrvshow[服务数据类型]查看服务的数据类型构成rosnodeinfo[节点名]查看特点节点提供的服务、话题等信息Service的使用方式

查看乌龟节点服务、话题信息

rosnodeinfo/turtlesim

发布了3个topic订阅1个topic提供的服务了解海龟的节点信息

rosservicelist列出所有服务(包含仿真海龟提供的服务)

清除仿真乌龟轨迹杀乌龟复位/重置乌龟生成一个新乌龟设置轨迹的颜色、宽度移动乌龟到指定坐标和朝向通过设置线速度和角度移动乌龟了解海龟节点提供的Service rosserviceinfo[服务名]提供服务的节点服务的数据类型调用该服务需要的参数查看服务信息(数据类型与参数)

rossrvshow[类型名]查看服务的数据类型定义

调用服务(无参数)1、清除轨迹rosservicecall

/clear

调用服务示例1 调用服务(无参数)2、重置复位rosservicecall

/reset

调用服务示例2

调用服务(有参数)3、生成新乌龟rosservicecall

/spawn550turtle2

先输命令rosservicecall/spawn然后按TAB自动补全参数格式然后移动光标输入参数值

移动光标,输入服务调用命令的各个参数值调用服务生成新乌龟,坐标为(5,5),朝向0,乌龟名称为“turtle2”

注意:冒号后有空格方法一:直接输入命令方法二:使用TAB键补全调用服务示例3

调用服务(有参数)4、杀乌龟rosservicecall

/killturtle1

先输命令rosservicecall/kill然后按TAB自动补全参数格式

移动光标,输入要杀掉的乌龟命令的名称turtle1冒号后有空格方法一:直接输入命令方法二:使用TAB键补全调用服务示例4

调用服务(有参数)5、设置轨迹的颜色、宽度rosservicecall/turtle1/set_pen{255,0,0,5,0}先输命令rosservicecall/kill然后按TAB自动补全参数格式

移动光标,输入要设置的颜色和宽度冒号后有空格方法二:使用TAB键补全调用服务设置轨迹线颜色为红色、宽度为5方法一:直接输入命令,参数用花括号包含,逗号分隔调用服务示例5

调用服务(有参数)6、移动乌龟到指定坐标和朝向

rosservicecall/turtle1/teleport_absolute{10,10,1.57}移动光标,输入要设置的坐标和朝向冒号后有空格方法二:使用TAB键补全调用服务移动乌龟到(10,10),朝向为90°方法一:直接输入命令,参数用花括号包含,逗号分隔调用服务示例6

调用服务(有参数)7、设置线速度、角度移动乌龟rosservicecall/turtle1/teleport_relative{5,1.57}移动光标,输入要设置的线速度和角度冒号后有空格技巧:使用TAB键补全方法一:直接输入命令,参数用花括号包含,逗号分隔调用服务示例7

使用rostopic、rosservice命令绘制以下图形

调用服务示例8:绘制笑脸

使用rostopic命令绘制以下图形分析:整个图形由不连续的几段图形构成,需要控制乌龟分别绘制。绘制完成其中一段后,杀掉乌龟,然后在下一段需要绘制图形的坐标点生成一只新的乌龟绘制相应的图形,直至全部图形绘制完成。A(5,5)O(5,7)B(4,8)C(6

温馨提示

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

评论

0/150

提交评论