目录
准备工作
首先启动前的写的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
请求和应答数据通过---分开,同时发现rosservice info查看的服务详细信息,只显示了请求的数据类型。
尝试在控制台终端通过命令生成新的乌龟
rosservice call
rosservice call /spawn "x: 2.0
y: 2.0
theta: 3.14
name: 'turtle2'"
因为在实际应用中有逻辑关系,故不满足于在终端通过命令实现生成乌龟。