ROS的参数服务器使用纪要
来源:互联网 发布:qq飞车神影官方数据 编辑:程序博客网 时间:2024/06/10 00:37
1.使用意义
参数服务器的使用旨在提高ROS 节点的灵活性和可配置性,其意义从两个方面去理解:
- 在机器人系统中,参数传递十分重要,无论是传感器的设置,还是控制参数的调整,都需要留出方便的参数调试接口。使用参数服务器配置系统的参数,是全局可见的,方便我们检索和更改系统的配置状态。
- 参数服务器为ROS节点之间提供了另一种信息交互方式(常用的方式还有消息和服务)。其主要思想是使用集中参数服务器( parameter server )维护一个变量集的值,节点可以主动查询其感兴趣的参数的值。
2. 使用要点
ROS为我们提供了操作参数的roslaunch .launch接口、命令行接口、roscpp接口和rospy接口,使用要点如下:
2.1 roslaunch .launch接口
该接口用于在启动的时候将参数配置好。用launch文件配置参数的好处:1、可以不查看源程序就可以知道节点用到的参数以及给定的初始值;2、要修改参数的初始值,可以将它保存到launch文件而不必修改和重新编译源程序。
使用
<param>
标签直接定义参数<param name="publish_frequency" type="double" value="10.0" />
使用标签
<rosparam>
配置参数从YAML文件读取参数:
<rosparam command="load" file="$(find rosparam)/example.yaml" />
其中,YAML文件的格式为:
param1: value1param2: value2......
删除参数
<rosparam command="delete" param="my/param" />
直接赋值参数
<rosparam param="a_list">[1, 2, 3, 4]</rosparam>
或者
<rosparam> a: 1 b: 2</rosparam>
2.2 命令行接口
该接口使我们可以通过命令行参数灵活地查看和配置参数。
rosparam set set parameterrosparam get get the value of parameterrosparam load load parameters from filerosparam dump dump parameters to filerosparam delete delete parameterrosparam list list parameter names
范例
$ rosparam list /namespace$ rosparam get parameter_name$ rosparam set parameter_name value$ rosparam delete parameter_name
2.3 roscpp参数接口
该接口使我们能够定制ROS节点如何处理参数。roscpp的参数API有两套:一套在ros::param名字空间下,另一套封装在handle中,通过ros::NodeHandle接口访问:
为参数设置默认值
nh.param<<variable_type>>("<param_name>", variable, <default_value>);
ros::param::param<<variable_type>>("<param_name>", variable, <default_value>);
上述代码功能是用名为
<param_name>
、值为<default_value>
的参数初始化类型的变量variable。从参数服务器获取一个参数值。
ros::NodeHandle::getParam("<param_name>", variable)
ros::param::get("<param_name>", variable)
上述代码功能是从参数服务器获取名为
<param_name>
的参数的值,赋值给变量variable- cache方式获取
ros::NodeHandle::getParamCached() and ros::param::getCached() provide local caching of parameter data. Using these versions informs the Parameter Server that this node would like to be notified when the parameter is changed, and prevents the node from having to re-lookup the value with the parameter server on subsequent calls.
Cached parameters are a significant speed increase (after the first
call), but should be used sparingly to avoid overloading the master. Cached parameters are also currently less reliable in the case of intermittent connection problems between your node and the master.配置参数
-
ros::NodeHandle::setParam("<param_name>",<param_value>)
-ros::param::set("<param_name>",<param_value>)
将参数
<param_name>
赋值为<param_value>
判断参数是否存在
-
ros::NodeHandle::hasParam("<param_name>")
-ros::param::has("<param_name>")
判断参数
<param_name>
是否存在删除参数
ros::NodeHandle::deleteParam("<param_name>")
ros::param::del("<param_name>")
删除参数
<param_name>
- ROS的参数服务器使用纪要
- ROS的参数服务器
- ros 参数服务器
- ros参数服务器
- ROS:参数服务器
- ROS学习--如何结合launch文件使用参数服务器
- ROS学习--如何结合launch文件使用参数服务器
- ROS学习 cpp参数服务器
- ROS学习-URDF学习纪要
- ROS学习之 cpp参数服务器
- git 服务器搭建纪要
- ROS多线程的使用问题ros::MultiThreadedSpinner
- ROS与Python中如何使用参数
- ROS的学习(九)理解ROS的参数
- sqlserver sys系列参数纪要
- distcp使用纪要
- distcp使用纪要
- ros 参数服务器 消息发布和订阅 机器人避障
- tomcat配置https详解
- JavaScript ------- 文本内容 选择 (高级程序设计)
- Oracle分析函数
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
- jia
- ROS的参数服务器使用纪要
- 171210之JavaWeb简单的登录注册功能实现
- objective-c 编程基础(3.6 Foundation框架之数组)
- 数独问题
- 洛谷P2286 [HNOI2004]宠物收养场
- 机器学习实战第4章-朴素贝叶斯(bayes)
- 月息1分相当于年华利率多少
- pat考试-1136
- 洛谷p1352没有上司的舞会 树形dp