ROS(4)参数

ROS提供参数机制用于获取和设置节点信息,通过集中参数服务器存储变量值。节点可通过查询获取参数,如`rosparam get`,并使用`rosparam set`更新。节点需主动请求参数更新。C++接口简单,`ros::param::set/get`进行操作。启动文件中可使用`<param>`元素设置参数,roslaunch支持加载参数文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ROS(4)参数

参考《机器人操作系统简析》

除了消息传递,ROS还提供另一种参数(parameters)机制用于获取节点的信息。其主要思想是使用集中参数服务器(parameterserver)维护一个变量集的值,包括整数、浮点数、字符串以及其他数据类型,每一个变量用一个较短的字符串标识。由于允许节点主动查询其感兴趣的参数的值,它们适用于配置那些不会随时间频繁变更的信息。


A.常用命令

查看参数列表使用下面的命令可以查看所有参数的列表rosparam list

查询参数 向参数服务器查询某个参数的值rosparamget parameter_name

检索给定命名空间中的每一个参数的值 rosparam get namespace

设置参数 : rosparam set parameter_nameparameter_value

创建和加载参数文件为了以YAML文件的形式存储命名空间中的所有参数,可以使用rosparam dump命令: rosparam dump filename namespace


B.需要引起高度注意的是,更新的参数值不会自动“推送”到节点。恰恰相反,如果节点关心它的一些或者所有参数是否改变,必须明确向参数服务器请求这些参数的值。对一个节点来说,可以请求参数服务器在参数更新后将新参数值发给它,这个功能可以通过ros::param::getCached命令替换ros::param::get来实现


C.ROS参数的C++接口是相当简单的

voidros::param::set(parameter_name, input_value);

boolros::param::get(parameter_name, output_value);

定义参数变量例如conststd::string PARAM_NAME = "~max_vel" ;


D. 启动文件中设置参数 可以使用param元素请求roslaunch设置参数值:

<paramname="param-name" value="param-value" />放于<node/>或<group/>中

**在文件中读取参数 最后,启动文件也支持 与rosparam load等价的命令,可以一次性从文件中加载多个参数:

<rosparamcommand="load" file="path-to-param-file" />

 

关于节点的一些补充:

Cmake文件的node可执行文件是rosrun 对象

ros::init(argc,argv,”nodename”),这边所取的名字是rosnode list 中显现的名字,即为节点的默认名字

个人习惯:可执行文件为xxx_node,init中命名xxx。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值