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)

ROS服务指令可见,当前有 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测试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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_41869763/article/details/104098340