ROS官网wiki介绍ROS Service功能为nodes间另外一种通信方式,nodes允许向其他node发送一个Service请求(request)并从接收node处获取请求的响应(response)。
从提供的事例理解,Service功能为nodes提供的一个自身的public接口,允许外部进行访问或修改此node,并进行反馈。
rosservice 指令可以在命令行调用nodes的Service服务:
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
list指令用于打印当前node提供的所有Services;
call service_name [args]用于调用service,实现service提供的功能;
type service_name用于打印service 执行的node提供的service_type;
find service_type用于显示service_type 的提供者service_name;
uri service_name 打印提供此service_name服务的node的rosrpc链接。
ROS Parameters功能为ROS提供的Parameter Server,允许nodes在ROS Parameters Server读写数据。数据类型有整型,浮点型,布尔值,字典型,列表型等。
rosparam使用YAML标记语言符号,并根据数据值默认数据类型;1为整型,1.0为浮点型,one为String类型,true为布尔型,[1, 2, 3]为整型列表,{a: b, c: d}为字典序。
指令类型:
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
list用于打印当前node的parameter列表;
get [param] 获取node 的param参数值;
set [param] [value] 设置node的param的参数值;
dump [file_name] [namespace] / load [file_name] [ namespace] 将参数列表写入命名空间namespace的file_name文件中/从file_name中读取参数列表;
delete [param] 删除参数param.