服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response)。
rosservice 可以很轻松的使用 ROS 客户端/服务器框架提供的服务。rosservice 提供了很多可以在 topic 上使用的命令,如下所示:
使用方法:
rosservice list 输出可用服务的信息rosservicecall调用带参数的服务rosservicetype输出服务类型rosservice find 依据类型寻找服务find servicesbyservicetyperosservice uri 输出服务的ROSRPC uri
rosservicetype[service]
我们来看看clear服务的类型:
$ rosservicetypeclear
std_srvs/Empty
服务的类型为空(empty),这表明在调用这个服务是不需要参数(比如,请求不需要发送数据,响应也没有数据)。
rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1 是整型, 1.0 是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典. rosparam有很多指令可以用来操作参数,如下所示:
使用方法:
rosparamset设置参数rosparamget获取参数rosparamload从文件读取参数rosparam dump 向文件中写入参数rosparamdelete删除参数rosparamlist列出参数名