ROS动态参数 - dynamic reconfigure 动态配置参数

一、普通参数和动态参数的对比

什么是动态参数?

一种可以在运行时更新参数而无需重启节点的参数!

接下来我们与普通的参数进行对比:

1. 修改时机和灵活性

对于静态参数:

        仅能在节点启动时通过launch文件或命令行设置,一旦节点运行,参数值无法动态修改,必须重启节点才能生效!例如,传感器的物理参数(如摄像头焦距)通常作为静态参数配置

对于静态参数:

允许在节点运行过程中实时调整,无需重启

        例如机器人标定:比如当前我们需要标定机器人的线速度或者角速度(线速度和角速度都是和轮胎的半径、轮间距相关的),此时可能每一辆机器人的轮子之间的参数都会有一点误差,不是那么绝对相等的,所以有时候为了获取更准确的里程计数据(与车辆的速度有关),所以我们会经常的调试轮胎的半径和轮间距,此时就可以通过动态参数进行调整!

        导航期间调整动态参数:例如当我们设置全局代价地图的参数的配置的时候:

        膨胀半径的值可能不符合我们设置的要求,如果我们将这个值设置到参数服务器当中,那么此时更改值需要重新启动节点,比较麻烦!

如果我们想要更改动态参数,可以通过rqt进行更改:

rqt

 

此时可以通过动态配置,选择glbal_costmap来对代价值进行设置,例如下面所示,可以看到全局地图的代价值发生改变:

2. 实现机制与通信方式

对于静态参数:

        基于 ROS 参数服务器(Parameter Server),参数存储在全局空间,通过rosparam命令或ros::param接口访问。修改参数需调用rosparam set命令,但节点不会自动感知变化,需主动查询

对于动态参数:

通过dynamic_reconf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一道秘制的小菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值