Skip to content

DaikiMin/dynamic_reconfigure_tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic Reconfigure Tutorial

Dynamic Reconfigureのチュートリアル rqt_reconfigureパッケージを使うことで、プログラム実行中でも、パラメータ変更することができます。

Getting started

rqt_reconfigureが使えるようになっていること

※ROSをdesktopfullで入れた場合はすでにインストールされているはず

心配な方は…

$ sudo apt install ros-$ROS_DISTRO-rqt-reconfigure

でインストールしてください

下準備

  1. cfgファイルの制作
  2. 実行フラグの設定
  3. CmakeFileを設定

cfgファイルの制作

本パッケージのcfgディレクトリに、○○○.cfgとして生成してください

cfgファイルの書き方

 gen.add("name",int_t,0,"An Integer parameter",50,0,100)

gen.addでパラメータを追加していきます。引数の意味はそれぞれ以下のようになっています。

引数 意味
name パラメータ名
type パラメータの型(int_t/double_t/str_t/bool_tのどれか)
level dynamic reconfigureコールバックに渡されるビットマスク
description パラメータに関する説明
default 初期値
min 最小値(strとboolは不要)
max 最大値(strとboolは不要)

↓のようにするとプルダウンでの変更もできます

 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)

最終行では第2引数はパッケージ名、第3第3引数はこのファイル名から拡張子を除いた物にすること

 exit(gen.generate(PACKAGE, "dynamic_reconfigure_tutorial", "Sample"))

実行フラグの設定

 $ roscd dynamic_reconfigure_tutorial/cfg
 $ chmod a+x Sample.cfg

Cmakeファイルの設定

# パッケージの依存を追加
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  dynamic_reconfigure #この行を追加
)
# configファイルを追加
generate_dynamic_reconfigure_options(
  cfg/Sample.cfg
)

How to use

rosrunで起動する場合

  • パラメータを変更される側
$ rosrun dynamic_reconfigure_tutorial reconfigure_node
  • GUIでパラメータを変更
$ rosrun rqt_reconfigure rqt_reconfigure

roslaunchで起動する場合

$ roslaunch dynamic_reconfigure_tutorial reconfigure_node.launch

reference

「ROS講座28 Dynamic Reconfigureを使う」

https://qiita.com/srs/items/3adcc5898955a6aa1631

Releases

No releases published

Packages

No packages published