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/
相关文章
|
2月前
|
JSON API 开发工具
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
|
12天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
55 6
|
2月前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
2月前
|
安全 API 网络安全
【Azure API 管理】APIM不能连接到 App Service (APIM cannot connect to APP service)
【Azure API 管理】APIM不能连接到 App Service (APIM cannot connect to APP service)
|
1月前
|
测试技术 API 数据库
电商API接口定制与开发系列之——商品详情接口介绍
——在成长的路上,我们都是同行者。这篇关于API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 在电商API接口定制与开发系列中,商品详情接口是至关重要的一部分,它直接关系到用户浏览商品、获取商品信息的关键环节。以下是对商品详情接口的详细介绍:
|
2月前
|
存储 数据采集 API
提升店铺好评秘籍:淘宝商品评论接口与电商 API 接口的深度解析
该接口名为item_review,用于获取淘宝商品评论信息,支持HTTP GET或POST请求,体验API为c0b.cc/R4rbK2。主要请求参数包括商品ID(num_iid)、排序方式(sort)、页码(page)。响应参数涵盖评论内容(rate_content)、评论日期(rate_date)、评论图片(pics)、买家昵称(display_user_nick)、商品属性(auction_sku)
|
2月前
|
API
【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常
【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常
|
2月前
|
编解码 Java API
【Azure 媒体服务】记录使用Java调用Media Service API时候遇见的一些问题
【Azure 媒体服务】记录使用Java调用Media Service API时候遇见的一些问题
|
2月前
|
API 开发者
【Azure API 管理】API Management service (APIM) 如何实现禁止外网访问
【Azure API 管理】API Management service (APIM) 如何实现禁止外网访问
|
2月前
|
API 开发工具 数据安全/隐私保护
【Azure Developer】Python 获取Micrisoft Graph API资源的Access Token, 并调用Microsoft Graph API servicePrincipals接口获取应用ID
【Azure Developer】Python 获取Micrisoft Graph API资源的Access Token, 并调用Microsoft Graph API servicePrincipals接口获取应用ID

推荐镜像

更多
下一篇
无影云桌面