ROS学习笔记系列是对 ROS中文教程的记录总结。
笔记四包括:
- 4.1 ROS服务
- 4.2 ROS参数
4.1 ROS 服务和参数
4.1.1 ROS服务概念
思考话题 是怎样的一种模式呢?大家“各抒己见”、“各取所需”,但是发的消息有没有人听,能不能读到消息,那是另外一回事。
而服务(service) 模式是怎样的呢?简单说,一个请求(request) ,一个响应(response)。值得注意的是,这里的请求是指重置 (reset), 清除 (clear), 再生 (spawn), 终止 (kill) 等,响应即完成对应的操作。
4.1.2 ROS服务指令: rosservice
指令 | 功能 |
---|---|
rosservice list |
输出当前各节点可用的服务 |
rosservice call [服务] [服务所需参数] |
调用服务 |
rosservice type [服务] |
输出服务类型 |
rosservice find [服务类型] |
根据服务类型寻找服务 |
rosservice uri [服务] |
输出服务 |
如果您刚刚打开终端,需要先运行ROS并创建一个小海龟节点,在不同终端运行以下指令:
$ roscore
$ rosrun turtlesim turtlesim_node
在新的终端输入以下指令
rosservice list #查看可用服务
rosservice type spawn #查看 再生 指令的用法
rosservice call spawn 2 2 0.2 "" #再生一只小乌龟,位置为 (2, 2) ,头转动 0.2rad,名称默认(为turtle2)
可见,当前有 clear 等一系列服务可以用;spwan 是turtlesim 库的一个Spawn 类;执行再生指令后生成了一只新的小乌龟。
4.2 ROS参数指令: rosparam
如果说ROS服务用来让节点完成指定的操作,那么ROS参数用来设计一些细节。
ROS方法如下:
指令 | 功能 |
---|---|
rosparam list | 列出可用的参数 |
rosparam set [参数] [值] | 设置参数 |
rosparam get [参数] | 获取参数 |
rosparam load [文件名] | 从文件读取参数 |
rosparam dump [文件名] [命名空间] | 向文件写入参数 |
rosparam delete [参数] | 删除参数 |
执行以下指令
$ rosparam list #查看当前可用参数方法
$ rosparam set background_r 150 #设置背景红色分量为150
$ rosservice call clear #清空刷新服务器,设置才有效
$ rosparam get background_r #查看红色分量值
从
rosparam list
返回可见,前三个都是设置背景颜色的;我们把红色分量修改为 150,清空服务,然后就可以看到背景颜色变了;我们也可以使用 rosparam get
查看当前的值。
我们也可以把当前数据写入文件,指令如下:
$ rosparam dump params.yaml #将所有参数写入params.yaml 文件
$ gedit params.yaml #查看params.yaml 文件
$ rosparam load params.yaml copy #将params.yaml 文件加入 copy 命名空间
$ rosparam get copy/background_b #放在命名空间之后,可以更加方便获取数据
小结
ROS话题(上一节)、ROS服务和ROS参数 分别用于实现哪些功能?
版权声明:本文为weixin_41869763原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。