04-Dynamic Reconfigure入门-新建.cfg文件

基础配置

在工作区中新建dynamic_tutorials工作包

cd ~workspace
catkin_create_pkg --rosdistro indigo dynamic_tutorials rospy roscpp dynamic_reconfigure
cd dynamic_tutorials
mkdir cfg

cfg 代码

vim cfg/Tutorials.cfg

#!/usr/bin/env python
PACKAGE = "dynamic_tutorials"

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)
gen.add("str_param",    str_t,    0, "A string parameter",  "Hello World")
gen.add("bool_param",   bool_t,   0, "A Boolean parameter",  True)

size_enum = gen.enum([ gen.const("Small",      int_t, 0, "A small constant"),
                   gen.const("Medium",     int_t, 1, "A medium constant"),
                   gen.const("Large",      int_t, 2, "A large constant"),
                   gen.const("ExtraLarge", int_t, 3, "An extra large constant")],
                 "An enum to set size")

gen.add("size", int_t, 0, "A size parameter which is edited via an enum", 1, 0, 3, edit_method=size_enum)

exit(gen.generate(PACKAGE, "dynamic_tutorials", "Tutorials"))#将会生成TutorialsConfig.py文件

chmod +x cfg/Tutorials.cfg

更新CMake文件

vim CMakeLists.txt

#add dynamic reconfigure api
#find_package(catkin REQUIRED dynamic_reconfigure)
generate_dynamic_reconfigure_options(
  cfg/Tutorials.cfg
  #...
)

你可能感兴趣的:(04-Dynamic Reconfigure入门-新建.cfg文件)