一、ROS 服务
服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response)
二、rosservice
1、用途
rosservice可以很轻松的使用 ROS 客户端/服务器框架提供的服务。
2、语法:
rosservice list print information about active services 输出可用的服务信息
rosservice call call the service with the provided args 调用服务
rosservice type print service type 打印服务参数类型
rosservice find find services by service type
rosservice uri print service ROSRPC uri
3、rosservice list
rosservice list
4、rosservice type
(1)语法:
rosservice type [service]
(2)demo
rosservice type /clear
返回std_srvs/Empty
5、rosservice call
(1)语法:
rosservice call [service] [args]
(2)demo:
rosservice call /clear
正如我们所期待的,服务清除了turtlesim_node的背景上的轨迹。
(3)demo2:
rosservice type /spawn| rossrv show
返回:
float32 x float32 y float32 theta string name --- string name
然后我们再创建一个乌龟,命令为:
rosservice call /spawn 2 2 0.2 ""
返回给我们新的乌龟的名字:
name: turtle2
三、rosparam
rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1 是整型, 1.0 是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典. rosparam有很多指令可以用来操作参数,如下所示:
1、用法:
rosparam set set parameter rosparam get get parameter rosparam load load parameters from file rosparam dump dump parameters to file rosparam delete delete parameter rosparam list list parameter names
2、rosparam list
rosparam list
我们可以看到服务器参数上的参数:
/background_b /background_g /background_r /roslaunch/uris/aqy:51932 /run_id
3、使用rosparam set和rosparam get
(1)语法:
rosparam set [param_name] rosparam get [param_name]
(2)demo:改变背景颜色
rosparam set /background_r 150 rosservice call /clear
(3)得到全部参数
rosparam get /
4、参数保存和载入
(1)语法:
rosparam dump [file_name] [namespace] rosparam load [file_name] [namespace]
(2)demo:
保存:
rosparam dump params.yaml
载入:可以载入到另一个名字空间(好像可以随便取,即可生成新的名字空间)
rosparam load params.yaml copy rosparam get /copy/background_b