[ros2学习]-CLI Tools - 了解ROS 2服务(service)

① 背景

service 也是通讯的一种方式,req/respone 的方式,是触发式的,topic 是订阅式的

② 前提

  • 装ros2
  • 配置环境
  • 装小乌龟

③ 任务

Ⅰ准备

启动小乌龟
命令:

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

Ⅱ ros2 service 命令

ros2 service list

列出服务
命令提示

usage: ros2 service list [-h] [--spin-time SPIN_TIME] [-t] [-c]

Output a list of available services

optional arguments:
  -h, --help            show this help message and exit
  --spin-time SPIN_TIME
                        Spin time in seconds to wait for discovery (only
                        applies when not using an already running daemon)
  -t, --show-types      Additionally show the service type
  -c, --count-services  Only display the number of services discovered

可以通过命令和rqt去看
在这里插入图片描述

ros2 srv show (eloquent版本是 ros2 service type)

就是看看srv的消息的几种方法,

  • 执行命令行 ros2 srv show turtlesim/srv/SetPen
  • rqt 查看
  • 文件查看
    在这里插入图片描述
eloquent 版本

在这里插入图片描述

ros2 service find (dashing 不支持 )

根据类型找服务,使用eloquent版本

ros2 service find <type_name>

例如

ros2 service find std_srvs/srv/Empty

在这里插入图片描述

ros2 interface show (dashing 不支持)

查看service的消息信息,用的eloquent版本
命令:ros2 interface show <type_name>.srv
例子:ros2 interface show turtlesim/srv/Spawn.srv
在这里插入图片描述

ros2 service call

调用服务,命令行模式

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

我们调用/clear 和 /spawn

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

在这里插入图片描述

④ 总结

如果是不是连续的通讯,可以使用serviceaction更好一点

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

越来越胖了_mengleijin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值