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/
相关文章
|
1天前
|
JSON 监控 API
唯品会商品详情接口(唯品会 API 系列)
唯品会商品详情接口助力电商发展,提供商品名称、价格、规格等详细信息,支持HTTP GET/POST请求,响应为JSON格式。开发者可通过API Key和商品ID获取数据,应用于电商数据分析、竞品调研、应用开发及价格监控,提升业务效率与竞争力。示例代码展示Python调用方法,方便快捷。
|
2天前
|
JSON API 数据格式
微店商品列表接口(微店 API 系列)
微店商品列表接口是微店API系列的一部分,帮助开发者获取店铺中的商品信息。首先需注册微店开发者账号并完成实名认证,选择合适的开发工具如PyCharm或VS Code,并确保熟悉HTTP协议和JSON格式。该接口支持GET/POST请求,主要参数包括店铺ID、页码、每页数量和商品状态等。响应数据为JSON格式,包含商品详细信息及状态码。Python示例代码展示了如何调用此接口。应用场景包括商品管理系统集成、数据分析、多平台数据同步及商品展示推广。
|
11天前
|
搜索推荐 数据挖掘 API
微店商品详情接口(微店API系列)
微店商品详情接口是微店API的重要组成部分,帮助开发者和商家获取商品的详细信息(如标题、价格、库存等),并将其集成到应用程序或数据分析系统中。该接口支持HTTP GET/POST请求,返回JSON/XML格式数据,需通过AppKey和AppSecret进行身份验证和签名加密。应用场景包括商品信息同步、数据分析与市场调研、个性化推荐系统等,助力商业决策和业务拓展。
37 13
|
13天前
|
供应链 数据挖掘 API
1688app 商品详情接口系列(1688API)
1688作为国内知名批发采购平台,提供了一系列商品详情接口(API),助力企业和开发者获取商品基础、价格、库存及供应商信息。通过Python示例代码展示如何调用这些接口,应用场景涵盖采购决策辅助、数据分析与市场调研、电商平台整合及供应链管理系统的优化,为企业和采购商提供有力的数据支持,提升业务效率和竞争力。
60 15
|
20天前
|
JSON 搜索推荐 API
京东店铺所有商品接口系列(京东 API)
本文介绍如何使用Python调用京东API获取店铺商品信息。前期需搭建Python环境,安装`requests`库并熟悉`json`库的使用。接口采用POST请求,参数包括`app_key`、`method`、`timestamp`、`v`、`sign`和业务参数`360buy_param_json`。通过示例代码展示如何生成签名并发送请求。应用场景涵盖店铺管理、竞品分析、数据统计及商品推荐系统,帮助商家优化运营和提升竞争力。
65 23
|
12天前
|
JSON 数据挖掘 开发者
1688 商品评论接口系列(1688API)
1688商品评论接口助力电商数据分析与优化。通过该接口,开发者可获取指定商品的评论数据(如昵称、内容、评分等),支持情感分析和质量反馈收集。接口采用HTTP GET/POST请求,返回JSON格式数据。Python示例代码展示如何调用接口并处理响应。应用场景包括商家产品优化、客户服务提升、市场调研及电商平台数据分析。
|
12天前
|
供应链 数据挖掘 BI
1688 买家订单,订单物流,订单回传接口系列(1688 寻源通 API)
1688作为国内领先的批发采购平台,提供了买家订单、订单物流及订单回传三大API接口,助力企业实现订单管理、物流跟踪和信息反馈的自动化。通过这些接口,企业可以获取订单详情、物流状态,并将处理结果回传至平台,提升运营效率。Python示例代码展示了如何使用这些接口进行数据交互,适用于电商内部管理、物流跟踪及数据分析等场景。
|
19天前
|
JSON 缓存 API
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
35 12
|
18天前
|
供应链 监控 数据挖掘
1688 商品详情接口系列(1688 API)
1688商品详情接口系列(1688 API)是阿里巴巴旗下批发电商平台提供的强大工具,支持开发者、商家获取商品的详细信息。通过商品基本信息、价格库存、图片和描述查询接口,用户可以精准高效地获取商品数据,涵盖电商运营、数据分析、市场调研等领域,极大提升工作效率。示例代码展示了如何使用Python调用这些接口,助力电商平台整合、价格监控、商品展示优化及库存管理等应用场景。
|
23天前
|
API Python
京东拍立淘图片搜索商品接口系列(京东 API)
简介:本文介绍了如何使用拍立淘图片搜索 API 在京东平台上查找相似商品。首先需安装 Python 库 `requests`,并通过内置库 `hashlib` 生成签名。API 支持通过图片 URL 或 Base64 编码的图片进行搜索,返回商品名称、价格等信息。示例代码展示了如何构建请求并处理响应。应用场景包括电商购物助手和竞品分析,帮助用户和商家提高购物效率和市场竞争力。

推荐镜像

更多