【ROS实践入门(四)使用服务与参数服务器】

【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实践入门(三)小海龟案例主题与节点交互】

下一篇:【ROS实践入门(五)自定义节点功能包使用与消息传递】

 

 

参考资料:

【1】ROS官网:http://wiki.ros.org/cn

【2】ROS机器人高效编程

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值