15.ROS编程学习:服务通信生成海龟

目录

准备工作

c++通过服务通信生成乌龟

python通过服务通信生成乌龟


准备工作

首先启动前的写的launch文件

roslaunch wugui_ttest wugui_start.launch

列出所有的ROS服务

rosservice list
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice list
/clear
/key/get_loggers
/key/set_logger_level
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/spawn
/turtle1/get_loggers
/turtle1/set_logger_level
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/wugui_pose/get_loggers
/wugui_pose/set_logger_level

找到对应的服务,服务名必须找到,因为服务通信中服务端和客户端必须相同服务名才能进行通信,并列出该服务的详细信息

rosservice info
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice info /spawn 
Node: /turtle1
URI: rosrpc://rosmelodic-virtual-machine:54625
Type: turtlesim/Spawn
Args: x y theta name

Node节点名,Type服务数据类型名,Args服务接收的请求参数名。

查询特定的服务数据类型,还记得在查询自定义服务数据类型时,必须进入其所在的工作空间才能查询。

rossrv info
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rossrv info turtlesim/Spawn
float32 x
float32 y
float32 theta
string name
---
string name

(2条消息) 6.ROS编程学习:服务通信——自定义服务数据_机械专业的计算机小白的博客-CSDN博客https://blog.csdn.net/wzfafabga/article/details/127381171

请求和应答数据通过---分开,同时发现rosservice info查看的服务详细信息,只显示了请求的数据类型。

尝试在控制台终端通过命令生成新的乌龟

rosservice call
rosservice call /spawn "x: 2.0
y: 2.0
theta: 3.14
name: 'turtle2'"

 因为在实际应用中有逻辑关系,故不满足于在终端通过命令实现生成乌龟。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值