理解ROS的参数
记住每次操作之前都要在一个单独的终端中运行ros的核心.
roscore
rosparam命令允许你在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表。ROS使用YAML标记语言作为语法,在简单的情况下,YAML看起来是非常自然的:1是整数,1.0是浮点数,one是字符串,true是布尔类型,[1,2,3]是一个列表,{a:b,c:d}是一个字典。我们使用rosparam list 命令可以查看参数服务器上的内容:
rosparam list
返回的结果如下:
/rosdistro
/roslaunch/uris/host_ununtu__49327
/rosversion
/run_id
上面的这些是运行roscore后参数服务器上的内容。然后运行小乌龟的节点,再次查看参数服务器上的内容:
/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_ununtu__49327
/rosversion
/run_id
我们可以看到turtlesim_node节点在参数服务器上存储了三个表示背景颜色的参数。
使用rosparam set可以改变参数服务器上的参数,而rosparam get可以获取参数服务器上参数的值,它的使用方法如下:
rosparam set [param_name]
rosparam get [param_name]
我们改变背景颜色如下:
rosparam set background_r
这条命令执行完成后,我们会发现背景颜色并没有发生变化,对了我们得刷新一下,怎么刷新呢,这条命令我们已经学过了哦:
rosservice call /clear
执行完这条命令之后就能看到小乌龟的背景颜色变化了(小乌龟本身没有任何变化)。
使用下面的命令:
rosparam get /background_r
可以获得修改过的/background_r的值,我们也可以使用
rosparam get /
一次性获取所有参数的值.
你可能希望存储参数服务器上的这些值,然后在某个时候直接reload这些数据就可以直接使用了.
使用命令rosparam dump可以将参数服务器的内容写到一个文件中,它的使用方法如下:
rosparam dump [file_name]
例如:
rosparam dump params.yaml
我们将参数服务器的内容写到params.yaml的文件中。
在reload这些数据的时候,你甚至可以load到另外的命名空间去:
rosparam load params.yaml copy
然后查看:
rosparam get copy/background_b
总结:ROS的节点node可以把自己的数据已YAML的形式存放到ROS的参数服务器上去,然后利用一些命令行工具操作这些数据.如rosparam list, rosparam get, rosparam set, rosparam dump,rosparam load等命令行工具.
理解ROS的参数的更多相关文章
- ROS知识(2)----理解ROS系统结构
学习新事物,方法高于技术本身,如果没有把握"BIG PICTURE"的话很难理解进去.通过以下几点进行理解ROS: ROS实际上不是操作系统,他只是一个通信的框架,一个代码管理的架 ...
- 理解ros话题--6
理解ROS话题(原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/) Description: 本教程介绍ROS话题(topics)以及如何使用ro ...
- 理解JavaScript函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...
- 由浅到深理解ROS(1)
ROS机器人操作系统 ( Robot Operating System 或简称 ROS),可以帮助提高机器人软件的开发效率.ROS能够提供类似传统操作系统的诸多功能,如硬件抽象.底层设备控制.常用功能 ...
- 理解ros服务和参数 ---- 7
原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 周学伟 Description: 本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservi ...
- ROS学习(八)—— 理解ROS服务和参数
一.ROS 服务 服务(services)是节点之间通讯的另一种方式.服务允许节点发送请求(request) 并获得一个响应(response) 二.rosservice 1.用途 rosservic ...
- 理解ROS话题
首先需要打开一个终端在里面运行roscore: roscore 再打开一个终端,在里面运行一个turtlesim_node节点: rosrun turtlesim turtlesim_node 打开另 ...
- ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters
上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameters 我不理解为何 ROS wiki 要把service与parameter放在一起介绍, 很想分 ...
- ROS学习(六)—— 理解ROS节点
一.准备工作 下载一个轻量级的模拟器 sudo apt-get install ros-kinetic-ros-tutorials 二.图概念的理解 1.Nodes:一个节点就是一个可执行文件,用来与 ...
随机推荐
- CodeForces463C Gargari and Bishops(贪心)
CodeForces463C Gargari and Bishops(贪心) CodeForces463C 题目大意: 在国际象棋的棋盘上放两个主教,这个两个主教不能攻击到同一个格子,最后的得分是这 ...
- POJ2186 Popular Cows 【强连通分量】+【Kosaraju】+【Tarjan】+【Garbow】
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 23445 Accepted: 9605 Des ...
- sql 查询结果中加入空值列
select a,b,c,''d from X; 其中d为新加列,''表示默认值为空值 原文:http://hi.baidu.com/ddduggguo/item/747d5ba5ca18fd2689 ...
- Spring 4.0 中的 WebSocket 架构
两年前,客户端与服务器端的全双工双向通信作为一个很重要的功能被纳入到WebSocket RFC 6455协议中.在HTML5中,WebSocket已经成为一个流行词,大家对这个功能赋予很多构想,很多时 ...
- [一道搜狗输入法的面试题]C++转换构造函数和类型转换函数
今天面试遇到一道有关C++转换构造函数的题目,之前经常见到默认构造函数.拷贝构造函数.析构函数,但是从没听说过转换构造函数,隐式转换函数也是一样,C++的确是够博大精深的,学习之路很长啊! 其实我们已 ...
- C语言处理CSV文件的方法(一)
什么是CSV文件 CSV是 Comma-separated values (逗号分隔值)的首字母缩写,它通常是以逗号且不仅限于逗号分隔各个值,我们都叫他CSV. 看下面的例子: China, Shan ...
- cursor的形状
Example:CSS鼠标手型效果 <a href="#" style="cursor:hand">CSS鼠标手型效果</a> Exam ...
- 通过 IP 访问谷歌
最近貌似谷歌都不能访问,对于我等经常使用谷歌的人说不是件好事,毕竟谷歌比百度专业,好在有解决办法: 1. 找到文件:C:\Windows\System32\drivers\etc\hosts 2. 把 ...
- C语言struct类型
在实际问题中,一组数据往往具有不同的数据类型.例如, 在学生登记表中,姓名应为字符型:学号可为整型或字符型: 年龄应为整型:性别应为字符型:成绩可为整型或实型. 显然不能用一个数组来存放这一组数据. ...
- Cocos2d-x 学习之路------(CCCallfunc 系列)
CCCallFunc,CCCallFuncN,CCCallFuncND,CCCallFuncO类都是调用函数来执行动作,他们的使用只是局限于他们调用的的函数的参数不同而不同 CCCallFunc的回调 ...