Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
nodeのためのDynamic Reconfigureを設定する (python)
Description: pythonでどのように、動的再設定可能なnodeを作るかを学びます。Tutorial Level: INTERMEDIATE
Next Tutorial: Using the Dynamic Reconfigure Python Client
Show EOL distros:
コード
すでに、前回のチュートリアルで、cfgファイルを作成しているので、さっそく取り掛かりましょう。dynamic_tutorialsのパッケージに戻り、新しくnodesと呼ばれるディレクトリとsrcと呼ばれるディレクトリ、nodesの中にserver.pyと呼ばれるファイルを作成し、server.pyに以下のコードを貼り付けてください。:
1 #!/usr/bin/env python
2
3 PACKAGE = 'dynamic_tutorials'
4 import roslib;roslib.load_manifest(PACKAGE)
5 import rospy
6
7 from dynamic_reconfigure.server import Server
8 from dynamic_tutorials.cfg import TutorialsConfig
9
10 def callback(config, level):
11 rospy.loginfo("""Reconfiugre Request: {int_param}, {double_param},\
12 {str_param}, {bool_param}, {size}""".format(**config))
13 return config
14
15 if __name__ == "__main__":
16 rospy.init_node("dynamic_tutorials", anonymous = True)
17
18 srv = Server(TutorialsConfig, callback)
19 rospy.spin()
コード解説
詳しくserver.pyをみていきましょう.:
これらの最初のいくらかの行は、単純にROSの準備と、configのタイプと一緒にdynamic_reconfigureをインポートしているだけです。
ここで、設定が更新されたときに呼び出されるコールバックを定義します。今回のチュートリアルでは、単に更新された設定を表示するだけとなります。
最後に、nodeを初期化、サーバを構築し、configのタイプとコールバック関数を渡し、nodeをspinしています。
実行
まず、nodeを実行可能にしなくてはなりません。:
chmod +x nodes/server.py
nodeをrosrunして、reconfigure_guiをlaunchします。 以下を使用してください:
rosrun dynamic_reconfigure reconfigure_gui
以下のようなポップアップが見れると思います。 これで終わりです!。初めての動的再設定可能なnodeを作れました。
コード
すでに、前回のチュートリアルで、cfgファイルを作成しているので、さっそく取り掛かりましょう。dynamic_tutorialsのパッケージに戻り、新しくnodesと呼ばれるディレクトリとsrcと呼ばれるディレクトリ、nodesの中にserver.pyと呼ばれるファイルを作成し、server.pyに以下のコードを貼り付けてください。:
1 #!/usr/bin/env python
2
3 import rospy
4
5 from dynamic_reconfigure.server import Server
6 from dynamic_tutorials.cfg import TutorialsConfig
7
8 def callback(config, level):
9 rospy.loginfo("""Reconfiugre Request: {int_param}, {double_param},\
10 {str_param}, {bool_param}, {size}""".format(**config))
11 return config
12
13 if __name__ == "__main__":
14 rospy.init_node("dynamic_tutorials", anonymous = True)
15
16 srv = Server(TutorialsConfig, callback)
17 rospy.spin()
=コード解説 = 詳しくserver.pyをみていきましょう.:
これらの最初のいくらかの行は、単純にROSの準備と、configのタイプと一緒にdynamic_reconfigureをインポートしているだけです。
ここで、設定が更新されたときに呼び出されるコールバックを定義します。今回のチュートリアルでは、単に更新された設定を表示するだけとなります。
最後に、nodeを初期化、サーバを構築し、configのタイプとコールバック関数を渡し、nodeをspinしています。
実行
まず、nodeを実行可能にしなくてはなりません。:
chmod +x nodes/server.py
nodeをrosrunして、reconfigure_guiをlaunchします。 以下のように:
rosrun rqt_gui rqt_gui -s reconfigure
以下のようなポップアップが見れると思います。
これで終わりです!。初めての動的再設定可能なnodeを作れました。