ROS Service 相关API接口与命令行介绍

本文涉及的产品
资源编排,不限时长
简介: ROS Service 相关API接口与命令行介绍

一、Topic

二、Service

2.1 常用函数接口

ros::ServiceClient类

// 四个重载函数模板,用于调用服务
// 使用指定的服务类型调用服务
template<class Service>
bool call(Service &service)

// 使用指定的请求/响应消息类型调用服务
template<class MReq, class MRes>
bool call(MReq &req, MRes &res)

// 多用于内部调用,以上两个函数最终均调用到该函数
template<typename MReq , typename MRes>
bool call(const MReq &req, MRes &resp, const std::string &service_md5sum)

bool call(const SerializedMessage &req, SerializedMessage &resp, const std::string &service_md5sum)

// 返回此句柄是否有效。对于持续性服务,当连接断开时,这将变为false。非持续性服务句柄始终有效。
bool isValid() const;

// 返回此句柄是否是持续性服务
bool isPersistent() const;

// 等待此服务发布并可用。
bool waitForExistence(ros::Duration timeout = ros::Duration(-1));

// 检查该服务是否已发布并可用。
bool exists();

// 返回此ServiceClient连接到的服务的名称。
std::string getService();

// 关闭与此ServiceClient关联的连接
void shutdown();

ros::ServiceServer类

// 返回此ServiceServer发布的服务的名称。
std::string getService();

// 取消发布与此ServiceServer关联的服务
void shutdown();

2.2 常用命令行工具

rosservice相关

rosservice call   使用提供的参数调用服务
rosservice find   通过服务消息类型查找服务
rosservice list   列出活跃的服务
rosservice node   打印服务的node名称
rosservice uri    打印服务的ROSRPC uri
rosservice type   打印指定服务的消息类型
rosservice args   打印服务的参数列表
rosservice info   打印服务相关信息
2.2.1 rosservice call
rosservice call <service-name> [service-args]
rosservice call /service_name service-args

使用提供的参数调用服务

d4eafcbce0c747febe60b6092c2f46f2.png

可以在服务名后直接跟参数列表,也可以使用字典的格式(键入服务名后,按tab自动补全,默认是这种格式)。

参数选项:--wait

等待服务发布才调用

b194f0b5f1c64c2ba8c9576034f28452.png

如果服务没有发布,直接调用,会返回错误,使用 --wait 选项后,会一直等待服务发布才调用。

2.2.2 rosservice find
rosservice find <service-type>
rosservice find rospy_tutorials/AddTwoInts

按照特定的消息类型查找已发布的 service

2a4afcf80f5a4d999d2aeb979fba3473.png

2.2.3 rosservice list
rosservice list

列出当前所有活跃的service

dc3850acd915494584fec7289fccb87c.png

rosservice list <namespace>

列出指定名空间下当前所有活跃的service

75ff653b4e2e43779b716b0c6bf40af1.png

-n选项:同时打印服务所在节点的名称
rosservice list -n
rosservice list <namespace> -n

2f5bfbf0bdb04bef9a7068fb694eb6fe.png

前面是服务名,后面是节点名。

2.2.4 rosservice node
rosservice node <service-name>
rosservice node /add_two_ints

719834ee39a548b8bfc25b8c7f353dbd.png

2.2.5 rosservice uri
rosservice uri <service-name>
rosservice uri /add_two_ints

打印服务的ROSRPC uri

c129631408074f3c9e6c3f9af528c2c4.png

2.2.6 rosservice type
rosservice type <service-name>
rosservice type /add_two_ints

打印指定service的消息类型

5f1991771b1f44e0bdff3c6f7b12be48.png

2.2.7 rosservice args
rosservice args <service-name>
rosservice args /service_name

打印服务的参数列表,没有参数则没有打印

a704c8dc61904983a24a9cbe7b5811f2.png

2.2.8 rosservice info
rosservice info <service-name>
rosservice info /rosout

打印指定service的信息,相当于 rosservice noderosservice urirosservice typerosservice args 的集合。

6bd2382e864b45dab58db716ad4e0809.png

其中,

Node:是service所在节点的名称。

URI:是service的ROSRPC地址。

Type:是service的消息类型。

Args:是service的参数列表。

rossrv 相关

rossrv和rosmsg的用法完全相同,具体对照rosmsg,见ROS Topic 相关API接口与命令行介绍的rosmsg部分

rossrv show 显示服务格式内容
rossrv list 显示服务列表
rossrv package 显示指定包中的所有服务列表
rossrv packages 显示所有带有服务的包的列表
rossrv md5 显示指定服务类型的 md5 总和
相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
13天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
62 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
|
1天前
|
JSON 安全 API
淘宝商品详情API接口(item get pro接口概述)
淘宝商品详情API接口旨在帮助开发者获取淘宝商品的详细信息,包括商品标题、描述、价格、库存、销量、评价等。这些信息对于电商企业而言具有极高的价值,可用于商品信息展示、市场分析、价格比较等多种应用场景。
|
9天前
|
前端开发 API 数据库
Next 编写接口api
Next 编写接口api
|
15天前
|
XML JSON 缓存
阿里巴巴商品详情数据接口(alibaba.item_get) 丨阿里巴巴 API 实时接口指南
阿里巴巴商品详情数据接口(alibaba.item_get)允许商家通过API获取商品的详细信息,包括标题、描述、价格、销量、评价等。主要参数为商品ID(num_iid),支持多种返回数据格式,如json、xml等,便于开发者根据需求选择。使用前需注册并获得App Key与App Secret,注意遵守使用规范。
|
14天前
|
JSON API 开发者
淘宝买家秀数据接口(taobao.item_review_show)丨淘宝 API 实时接口指南
淘宝买家秀数据接口(taobao.item_review_show)可获取买家上传的图片、视频、评论等“买家秀”内容,为潜在买家提供真实参考,帮助商家优化产品和营销策略。使用前需注册开发者账号,构建请求URL并发送GET请求,解析响应数据。调用时需遵守平台规定,保护用户隐私,确保内容真实性。
|
14天前
|
搜索推荐 数据挖掘 API
淘宝天猫商品评论数据接口丨淘宝 API 实时接口指南
淘宝天猫商品评论数据接口(Taobao.item_review)提供全面的评论信息,包括文字、图片、视频评论、评分、追评等,支持实时更新和高效筛选。用户可基于此接口进行数据分析,支持情感分析、用户画像构建等,同时确保数据使用的合规性和安全性。使用步骤包括注册开发者账号、创建应用获取 API 密钥、发送 API 请求并解析返回数据。适用于电商商家、市场分析人员和消费者。
|
24天前
|
JSON API 开发工具
淘宝实时 API 接口丨淘宝商品详情接口(Taobao.item_get)
淘宝商品详情接口(Taobao.item_get)允许开发者获取商品的详细信息,包括基本信息、描述、卖家资料、图片、属性及销售情况等。开发者需注册账号、创建应用并获取API密钥,通过构建请求获取JSON格式数据,注意遵守平台规则,合理使用接口,确保数据准确性和时效性。
|
25天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
120 5
|
25天前
|
JSON 缓存 监控
淘宝商品详情接口(Taobao.item_get)丨淘宝API接口指南
淘宝商品详情接口(Taobao.item_get)允许开发者通过HTTP GET方法获取淘宝商品的详细信息,包括商品ID、价格、库存等。请求需包含key、secret、num_iid等必选参数,支持缓存及多种返回格式。此接口广泛应用于电商数据分析、商品选品、价格监控等领域,提升商家运营效率。
|
29天前
|
JSON 搜索推荐 API
LAZADA关键词搜索API接口的获取与应用
Lazada作为东南亚领先的电商平台,为满足开发者和商户需求,开放了关键词搜索API接口。本文详细介绍该接口的获取与应用,助力提升电商业务效率。接口支持关键词搜索、指定搜索范围和排序方式,提供精准、灵活且全面的数据支持,促进电商应用和服务的优化与创新。
28 3

推荐镜像

更多