声明:以下内容全为原创,大家有疑问可以留言或直接私信我。
该功能包的所有内容我放到了百度网盘下,大家可以自取下载解压到自己的工作空间下。如下
链接: https://pan.baidu.com/s/12T8av-sAM8vPxjIx1Y0l5Q 提取码: ksdv
1.如题,我们知道在c++中,可以通过nodehandle.param从launch文件或yaml文件中获取配置的参数,传入顺序是yaml文件——launch文件——cpp文件。通过这种做法,我们可以直接在yaml文件中很方便的设置变量的值,将其传进cpp里作为具体参数。
2.但这种做法有问题。就是我们在想修改参数的时候。我们都需要找到yaml文件进行修改,然后再重新启动cpp。这样就十分不方便。熟悉navigation导航包的同学会知道,我们在调试真实小车时,可以打开rqt中的dynamic_configure工具去实时调试move_base节点参数的值(如小车的最大加速度,最大速度等),而不需要修改yaml里的默认配置和重新启动节点。
3.那这是怎么做到的呢,接下来我将通过一个简单的例子给大家展示。
4.首先在你的工作空间的src目录下打开终端创建一个功能包(如没有工作空间,新建一个,并新建一个src目录),接下来通过这行命令创建一个功能包
catkin_create_pkg dynamic_test roscpp rospy dynamic_reconfigure
在创建好后,进入该功能包,新建cfg、launch、param文件夹,分别用于存放cfg、launch、yaml配置文件。
5.接下来我们先来创建用于配置动态参数的test.cfg文件,打开文件,输入以下内容。具体解释以及注释在代码段里。
#!/