写在前面的话:
在ROS调试参数中,我们可以三种方式调试参数:
- 在C++中设置参数,编译执行,此种方式相对比较麻烦,每次都需要重新编译,然后查看效果,不建议;
- 将参数写入launch 文件中,<param name="" value="" / > 此种方式,需要在C++文件中添加nh.param<param_type>(“param_name”, var, default_value),每次不需要编译C++文件,需要修改launch文件中参数,启动launch 即可,推荐;
- 采用dynamic_reconfigure的形式完成调试,在程序运行过程中可以是实时更改参数大小,C++参数通过回调函数接收数据,实在是仿真中的一件利器,推荐。(注意cfg文件要更改执行权限)
下面给出实现过程:
代码的树行结构如下图所示:
需要额外编写cfg文件,该文件采用python编写,具体内容如下:
#!/usr/bin/env python
PACKAGE = "dynamic_tutorial"
from dynamic_reconfigure.parameter_generator_catkin import *
gen = ParameterGenerator()
gen.add("int_param", int_t, 0, "An Integer parameter", 50, 0, 100)
gen.add("double_param", double_t, 0, "A double parameter", .5, 0, 1