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

互联网站建设维护大连网站建设过程

互联网站建设维护,大连网站建设过程,网站建设和优化的好处,网站域名做注册目标:使用命令行工具了解 ROS 2 中的服务。 教程级别:初学者 时间: 10分钟 内容 背景 先决条件 任务 1 设置 2 ros2服务列表 3 ros2服务类型 4 ros2 服务查找 5 ros2界面展示 6 ros2 服务调用 概括 下一步 相关内容 背景 服务是 …

目标:使用命令行工具了解 ROS 2 中的服务。

教程级别:初学者

时间: 10分钟

内容

  • 背景

  • 先决条件

  • 任务

    • 1 设置

    • 2 ros2服务列表

    • 3 ros2服务类型

    • 4 ros2 服务查找

    • 5 ros2界面展示

    • 6 ros2 服务调用

  • 概括

  • 下一步

  • 相关内容

背景

服务是 ROS 图中节点的另一种通信方法。服务基于调用和响应模型,而不是主题的发布者-订阅者模型。虽然主题允许节点订阅数据流并获得持续更新,但服务仅在客户端专门调用时才提供数据。

 

先决条件

本教程中提到的一些概念,如nodes和topics,在本系列之前的教程中有所介绍。

你将需要turtlesim 包。

任务

1 设置

启动两个 turtlesim 节点,/turtlesim/teleop_turtle

打开一个新的终端并运行:

ros2 run turtlesim turtlesim_node

打开另一个终端并运行:

ros2 run turtlesim turtle_teleop_key

2 ros2服务列表

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

/clear
/kill
/reset
/spawn
/teleop_turtle/describe_parameters
/teleop_turtle/get_parameter_types
/teleop_turtle/get_parameters
/teleop_turtle/list_parameters
/teleop_turtle/set_parameters
/teleop_turtle/set_parameters_atomically
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/describe_parameters
/turtlesim/get_parameter_types
/turtlesim/get_parameters
/turtlesim/list_parameters
/turtlesim/set_parameters
/turtlesim/set_parameters_atomically

parameters您会看到两个节点的名称中都包含相同的六项服务。几乎 ROS 2 中的每个节点都有这些构建参数的基础设施服务。在下一个教程中将有更多关于参数的内容。在本教程中,将省略参数服务的讨论。

现在,让我们关注 turtlesim 特定的服务/clear、、、、、、、和。您可能还记得在“介绍 turtlesim 和 rqt”教程中使用 rqt 与其中一些服务进行交互。/kill/reset/spawn/turtle1/set_pen/turtle1/teleport_absolute/turtle1/teleport_relative

3 ros2服务类型

服务具有描述服务请求和响应数据结构的类型。服务类型的定义与主题类型类似,除了服务类型有两部分:一个消息用于请求,另一个消息用于响应。

要找出服务的类型,请使用以下命令:

ros2 service type <service_name>

我们来看看turtlesim的/clear服务。在新终端中,输入命令:

ros2 service type /clear

哪个应该返回:

std_srvs/srv/Empty

Empty类型表示服务调用在发出请求时不发送数据,在接收响应时不接收数据。

3.1 ros2服务列表 -t

要同时查看所有活动服务的类型,可以在命令后附加--show-types选项,缩写为:-tlist

ros2 service list -t

哪个将返回:

/clear [std_srvs/srv/Empty]
/kill [turtlesim/srv/Kill]
/reset [std_srvs/srv/Empty]
/spawn [turtlesim/srv/Spawn]
...
/turtle1/set_pen [turtlesim/srv/SetPen]
/turtle1/teleport_absolute [turtlesim/srv/TeleportAbsolute]
/turtle1/teleport_relative [turtlesim/srv/TeleportRelative]
...

4 ros2 服务查找

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

ros2 service find <type_name>

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

ros2 service find std_srvs/srv/Empty

哪个将返回:

/clear
/reset

5 ros2界面展示

您可以从命令行调用服务,但首先您需要了解输入参数的结构。

ros2 srv show <type_name>

/clear要在服务类型上运行此命令,请执行以下操作Empty

ros2 srv show std_srvs/srv/Empty

哪个将返回:

---

---请求结构(上方)与响应结构(下方)分开。但是,正如您之前了解到的,该Empty类型不发送或接收任何数据。所以,自然地,它的结构是空白的。

让我们回顾一下具有发送和接收数据类型的服务,例如/spawn. 从结果中,我们知道的类型是。ros2 service list -t/spawnturtlesim/srv/Spawn

要查看调用和请求中的参数/spawn,请运行以下命令:

ros2 srv show turtlesim/srv/Spawn

哪个将返回:

float32 x
float32 y
float32 theta
string name # Optional.  A unique name will be created and returned if this is empty
---
string name

该行上方的信息---告诉我们调用/spawn. xytheta确定生成的海龟的位置,name显然是可选的。

在这种情况下,您不需要了解该行下方的信息,但它可以帮助您了解从调用中获得的响应的数据类型。

6 ros2 服务调用

现在您知道什么是服务类型、如何查找服务类型以及如何查找该类型参数的结构,您可以使用以下方法调用服务:

ros2 service call <service_name> <service_type> <arguments>

<arguments>部分是可选的。例如,您知道Empty类型化服务没有任何参数:

ros2 service call /clear std_srvs/srv/Empty

这个命令将清除 turtlesim 窗口中你的乌龟绘制的任何线条。

现在让我们通过调用/spawn和输入参数来生成一个新的海龟。<arguments>来自命令行的服务调用中的输入需要采用 YAML 语法。

输入命令:

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

您将获得正在发生的事情的这种方法样式视图,然后是服务响应:

waiting for service to become available...
requester: making request: turtlesim.srv.Spawn_Request(x=2.0, y=2.0, theta=0.2, name='None')response:
turtlesim.srv.Spawn_Response(name='None')

您的 turtlesim 窗口将立即更新为新生成的海龟:

概括

节点可以使用 ROS 2 中的服务进行通信。与主题(一种单向通信模式,其中节点发布可由一个或多个订阅者使用的信息)不同,服务是一种请求/响应模式,其中客户端向节点发出请求提供服务,服务处理请求并生成响应。

您通常不想使用连续呼叫服务;主题甚至行动会更合适。

在本教程中,您使用了命令行工具来识别、阐述和调用服务。

下一步

在下一个教程“了解 ROS 2 参数”中,您将学习如何配置节点设置。

http://www.yayakq.cn/news/600985/

相关文章:

  • 如何做网站推广达到好的效果wordpress注册会员收费下载插件
  • 如何搜索易思cms做的网站企业的网络推广
  • 响应式网站建设源码WordPress菜单过滤器
  • 做网站公司 汉狮网络毕业设计做网站选题
  • 宁波外贸网站建设和推广wordpress 上传主机
  • 百度联盟网站怎么做wordpress应用教程
  • asp.net网站开发文档婚纱摄影店排名前十名
  • 网站关闭备案指数工具
  • 石家庄做网站优化公司网页游戏传奇世界开服表
  • 做网站软件下载手机版wordpress parent id
  • 拉人注册给佣金的app网站代码优化的内容有哪些
  • 网站报价文档自己搭建网站只有文字
  • 网站开发设计运维下载做蛋糕网站
  • 用vue做的网站微信官网免费下载
  • 报考大专网站肇庆轻云服务器 多个网站
  • 外贸英文网站建设设计工作室的名字
  • 网站备案成功后怎么网站开发费入账
  • 购物网站名称哪些网站做科技专题
  • 医院网络系统江门seo网站推广
  • 网站设计稿是怎么做的生鲜网站制作
  • 网站建设线框图网站建设seo方案
  • 用php做网站aspcms 网站标签调用
  • 网站制作排名优化照片制作视频软件
  • wordpress网站搭建教程e通网网站建设
  • 0基础12天精通网站建设wordpress代码块行号
  • 网站服务器慢app源码论坛
  • 涟水住房和城乡建设局网站中国建设教育网证件查询
  • 站长工具国色天香丽水网站建设seo
  • 网站访客qq抓取原理如何寻找外贸公司订单
  • 营销案例分析网站网站站内的seo怎么做