ROS2 基础概念 服务

news2024/9/25 3:23:31

ROS2 基础概念 服务

  • 1. Services
  • 2. 服务类型
  • 3. 查找服务
  • 4. 服务请求


1. Services

服务基于 请求-应答 模型,而不是话题的 发布-订阅 模型
虽然话题允许节点订阅数据流并获得持续更新,但服务 仅在客户端专门调用时提供数据

在这里插入图片描述还是启动海龟及其遥控节点为例:

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

在新终端中运行ros2 service list命令将返回系统中当前活动的所有服务的列表:

在这里插入图片描述
将看到两个节点都有相同的六个服务,名称中都有参数 parameter

/xxx/describe_parameters
/xxx/get_parameter_types
/xxx/get_parameters
/xxx/list_parameters
/xxx/set_parameters
/xxx/set_parameters_atomically

ROS 2中的几乎每个节点都有这些基础设施服务,这些服务是基于这些基础设施建立的
参数的事情后续再做讨论,现在来说一下剩下的几个服务

/clear
/kill
/reset
/spawn
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative

2. 服务类型

服务类型有两部分:一部分用于请求,另一部分用于应答

来看看/spawn服务,在新终端中,输入命令:

ros2 service type /spawn
ros2 interface show turtlesim/srv/Spawn

在这里插入图片描述
---上面是产卵服务的请求,下面是产卵服务的应答
即告诉起始点坐标、姿态和名称(可选),申请一只海龟,然后应答海龟的名字

不过请求和应答也不一定都要有数据,比如/clear 服务

ros2 service type /clear
ros2 interface show std_srvs/srv/Empty

在这里插入图片描述
空类型表示服务调用在发出请求时不发送数据,而在接收响应时也不接收数据
人狠话不多,直接执行清除

同样可以加上-t选项,把服务及其类型都展列出来:

ros2 service list -t

在这里插入图片描述


3. 查找服务

如果要查找特定类型的所有服务,可以使用以下命令:

ros2 service find <服务类型>

例如,可以找到所有空类型的服务,如下所示:

ros2 service find std_srvs/srv/Empty

在这里插入图片描述


4. 服务请求

可以使用以下方法调用服务:

ros2 service call <服务名称> <服务类型> <请求数据>

例如请求将清除乌龟绘制的所有路径线条

ros2 service call /clear std_srvs/srv/Empty

在这里插入图片描述
还有 /spawn服务

ros2 service call /spawn turtlesim/srv/Spawn "{x: 6, y: 6, theta: 0.2, name: 'turtle2'}"

在这里插入图片描述
界面就出现新的海龟,而他的话题是 /turtle2 开头,所以遥控的节点发布的话题也与新海龟无关

在这里插入图片描述


谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[标准库]STM32F103R8T6 点灯以及按键扫描

刚开始学32的时候&#xff0c;选择了基于HAL库进行开发&#xff0c;原因是HAL比较容易上手&#xff0c;像点灯、输出PWM、按键输入这种操作都很快捷。但是到ADCDMA这部分的时候发现&#xff0c;HAL库有一些地方我认为不是很合理和方便。比如DMA中断这部分&#xff0c;ST官方给出…

音视频开发系列--H264编解码总结

一、概述 H264&#xff0c;通常也被称之为H264/AVC&#xff08;或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC&#xff09; 对摄像头采集的每一帧视频需要进行编码&#xff0c;由于视频中存在空间和时间的冗余&#xff0c;需要用算法来去除这些冗余。H264是专门去除这些冗余的算法…

王者荣耀崩溃解决记录

王者荣耀竟然崩溃了 上周玩王者荣耀&#xff0c;突然就进不去了&#xff0c;点击开始游戏后应用直接就崩溃退出了。 第一反应&#xff0c;肯定是反馈给游戏客服。但是果然腾讯的游戏是找不到真客服的&#xff0c;全部都是机器人处理的&#xff0c;给了我一个毫无用处的官方回…

springboot中配置文件优先级以及分类,这你都可以不会吗?不会赶紧进来学( ̄(∞) ̄)

各位小伙伴大家好呀┗( ▔, ▔ )┛&#xff0c;马上过年了&#xff0c;但是感觉没啥期待的哈哈哈哈哈&#xff0c;现在的年说实话真的挺没劲的呜呜。 言归正传&#xff0c;我们大家在使用springboot时难免会写各种各样的配置信息&#xff0c;比如port&#xff0c;jdbc啊这些&am…

2022这一年:阳了、变轨和逆风

又到年末了&#xff0c;2022这一年应该会让人记忆深刻&#xff0c;于我而言这一年的感受有明显的分界线&#xff0c;在此之前的世界温暖一些&#xff0c;提供着能量&#xff0c;让人心生探索它的纷繁多彩&#xff1b;今年世界变得寒冷了&#xff0c;展示着它的严酷与无情。阳了…

再学C语言20:循环控制语句——for循环

在while循环中&#xff0c;建立一个重复执行固定次数的循环涉及到3个动作&#xff1a; 1&#xff09;初始化一个计数器 2&#xff09;计数器与某个有限的值比较 3&#xff09;每次执行循环&#xff0c;要在循环体中让计数器的值递增 其中&#xff0c;计数器的初始化在循环之…

【pandas】教程:6-如何计算摘要统计

Pandas 计算摘要统计 本节使用的数据为 data/titanic.csv&#xff0c;链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库 加载数据 import pandas as pdtitanic pd.read_csv("data/titanic.csv") titanic.head()PassengerId Survived Pclass \…

#Z0424. 树上的旅行

题目 Description 给出一棵有N个结点的树&#xff0c;给出Q个询问&#xff0c;求结点xj过结点K到节点yj的最短距离 Format Input 第一行一个数n 接下来共有n-1行&#xff0c;三个数u,v,len表示u和v之间存在一条边长为len 再给你Q&#xff0c;K。代表有Q个询问&#xff0…

视频 | bedtools使用介绍1

点击阅读原文跳转完整教案。基因组中的趣事&#xff08;二&#xff09;- 最长的基因2.7 million&#xff0c;最短的基因只有8 nt却能编码基因组中的趣事&#xff08;一&#xff09;&#xff1a;这个基因编码98种转录本1 Linux初探&#xff0c;打开新世界的大门1.1 Linux系统简介…

10000+条数据的内容滚动功能如何实现?

遇到脑子有问题的产品经理该怎么办&#xff1f;如果有这么一个需求要你在一个可视区范围内不间断循环滚动几千上万条数据你会怎么去实现&#xff1f; 且不说提这个需求的人是不是脑子有问题&#xff0c;这个需求能不能实现&#xff1f;肯定是可以的&#xff0c;把数据请求回来渲…

2022蓝桥杯省赛C++A组初尝试

前言 耗时三个半小时&#xff0c;看看自己不懂的有多少&#xff0c;以便明确后续备赛2023方向 耗时3个半小时&#xff0c;只拿了18分&#xff0c;没学过&#xff0c;时间再多也做不出来&#xff0c;有奥数那感觉了 据说蓝桥杯省3得做对 2填空 2大题&#xff08;30分&#x…

PMP®项目管理|不同场景使用不同沟通方式

不同沟通方式的确有适用场景和不适用场景。无效沟通的重要原因之一就是错误选择沟通方式。 我们会在工作中用到很多沟通方式&#xff0c;每种沟通方式都有适用的场合&#xff0c;也有不适用的场合&#xff0c;错误选择将使沟通变得低效甚至无效。 沟通方式主要有三种&#xf…

一百种语言的LOVE

2023年快要到来啦&#xff0c;很高兴这次我们又能一起度过~ 目录 一、前言 二、详细介绍 三、效果展示 四、代码编写 index.html script.js style.css 五、获取代码 需要源码&#xff0c;可以私信我(⊙o⊙)&#xff1f;关注我&#xff1f; 一、前言 时光荏苒&#xf…

vue element-ui 手机号校验 验证码校验 获取验证码倒数60秒无样式实现

这段时间被迫搞前端搞裂开了&#xff0c;记录一下手机号验证码校验登录的极简无样式前端实现 巨丑&#xff01;希望大佬们不介意 下面是先演示效果 点击登陆后显示校验信息 输入手机号点击获取验证码 输入符合校验的内容后点击登录提示成功 无后端交互&#xff01;&#…

从档案信息管理到档案知识管理

今年6月份的时候&#xff0c;笔者发过一篇文章《DIKW模型在档案信息资源开发中的应用》&#xff0c;简要阐述了知识管理领域非常著名的DIKW模型&#xff0c;即从数据&#xff08;Data&#xff09;→信息&#xff08;Information&#xff09;→知识&#xff08;Knowledge&#x…

基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

Android 学习笔记

目录一.Android入门1.Android 概述2.Android Studio3.创建模拟器4.使用外部模拟器5.第一个app二.app开发基础1.开发语言2.app工程目录结构3.文本控件TextView(1)设置文本内容(2)设置文本大小(3)设置文本颜色(4)设置背景颜色(5)设置视图宽高(6)设置视图间距(7)设置视图对齐方式4…

fpga实操训练(硬件乘法器)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 fpga上面的资源一般分成lut、pin、dff、dsp、pll。至于rom、ram、fifo&#xff0c;一般也是基于dff和lut来创建的&#xff0c;之前我们也讨论过。今…

ABAP 之ALV展示及下钻弹窗数据页面

序 HELLO, 这里是百里一个学习中的ABAPER,这里记录工作学习中遇到的bug,知识内容等内容.今天讲的是在工作中经常会使用的数据下钻,通过跳出小界面的方式展示关联数据.今天结合工作经验这里做下技术总结. 下钻简介 在ALV报表展示中.会出现关键字段下钻,展示某个界面或者系统自…

C语言基础--操作符详解

文章目录一、操作符1. 算数操作符2. 移位操作符&#xff08;1&#xff09;右移操作符举例补充&#xff08;2&#xff09;左移操作符举例分析&#xff08;3&#xff09;警告3.位操作符&#xff08;1&#xff09;按位与&#xff08;2&#xff09;按位或&#xff08;3&#xff09;…