【ROS实践学习入门系列(四)使用服务与参数服务器】
本内容经官网实例以及一些参考书总结而成,欢迎留言评论交流~
联系方式:ziyuanw#foxmail.com(#换成@)
一、使用服务
除了上篇文章中节点之间通过消息通信之外,服务是使节点之间相互通信的另一种方法。服务允许节点发送请求和接收响应。
命令工具:
rosservice [parameter]
可接受参数:
①rosservice list:列出活动服务
②rosservice call/service:根据命令行参数调用服务
③rosservice find msg-type:根据服务类型查询服务
④rosservice info /service:输出服务信息
⑤rosservice args/service:输出服务参数
⑥rosservice type/service:输出服务类型
⑦rosservice uri/service:输出ROSRPC URI 服务
同样以小海龟案例做演示:
打开CTRL+Shift+T两个新终端,运行小海龟案例:
roscore
rosrun turtlesim turtlesim_node
CTRL+Shift+T打开第三个终端,键盘方向键控制小海龟移动:
rosrun turtlesim turtle_teleop_key
CTRL+Shift+T打开第四个终端,查看服务列表:
rosservice list
- 查看某一个服务类型:
rosservice type /clear
调用服务:
rosservice call /clear
会发现刚才小海龟的移动轨迹线被清除了。
- spawn服务:
查看服务类型:
rosservice type /spawn
查看消息参数:
rossrv show turtlesim/Spawn
调用服务:
在不同方向的另外一个位置创建另外一只名为"my_turtle"的小海龟。
rosservice call /spawn 4 4 0.4 "my_turtle"
二、使用参数服务器
1.参数服务器:
存储着所有当前工作空间节点均可访问的数据。ROS中使用rosparam工具来对其进行管理。
rosparam [param]
可用参数如下:
①rosparam list:列出所有参数
②rosparam get /<parameter>:获取参数值<缺省后获得所有参数值>
③rosparam set parameter value:设置参数值
④rosparam load file:从文件加载参数
⑤rosparam dump [filename]:将参数转储到文件
⑥rosparam delete parameter:删除参数
2.同样以小海龟案例说明:
查看参数列表:
rosparam list
查看所有参数值:
rosparam get /
\
设置画布背景色r通道为255:
rosparam set /background_r 255
执行修改了参数的值,需要调用清除服务使得修改后的参数生效:
rosservice call clear
保存参数服务器:
rosparam dump myparam.yaml
加载数据参数文件:
rosparam load [file_name] [namespace]
加载数据参数到命名空间(我这里起名为new):
rosparam load myparam.yaml new
查看新的参数空间中参数(因为加载的参数来自我保存的myparam.yaml,所以参数值相同):
rosparam get new/background_r
至此,使用服务与参数服务器基本完毕。
下一篇:【ROS实践入门(五)自定义节点功能包使用与消息传递】
参考资料:
【1】ROS官网:http://wiki.ros.org/cn
【2】ROS机器人高效编程