[Documentation] [TitleIndex] [WordIndex

dynamic_reconfigure/Reviews

Package proposal

The dynamic_reconfigure package allows a node (the server) to get its configuration parameters in a way that allows parameters to be changed dynamically. The package provides:

The package satisfies the following proposed set of core requirements:

The package should satisfy the following proposed set of desirables:

The following are hotly debated:

Give it a spin

Make sure you have run make twice in hokuyo_node/wge100_driver (autogeneration of messages is currently partly broken).

Bring up the robot.

Run

rosrun dynamic_reconfigure reconfigure_gui

Select what you want to reconfigure and reconfigure it.

If you don't want to bring up the robot, you can just run a hokuyo_node, a wge100_node or a wge100_multi_reconfigurator, and run the reconfigure_gui. You just won't be able to observe the result of your changes.

You can also play around with dynparam in the dynamic_reconfigure package.

Notes on current implementation

The description of the node's parameters is in the cfg directory (e.g. wge100_camera/cfg or hokuyo_node/cfg). In dynamic_reconfigure, I use message generation, but I don't like this implementation as in practice the message never seems to be built when you want it, and you can't atomically modify a subset of the parameters. I have started an alternate implementation in dynamic_reconfigure2 that uses a generic message. The code generation and C++ server API should be good, but I have stopped there pending the review meeting.

API Proposal

Still rough around the edges... dynamic_reconfigure works, but the C++ API sucks, and I don't like the message format. dynamic_reconfigure2 has only been partially ported to a new message format. Gives a better idea of what the C++ API should be like.

C++

Server

Have a look at dynamic_reconfigure2/test/testserver.cpp and dynamic_reconfigure

Client

Not implemented yet. Not sure how best to support modifying only selected parameters.

Python

Have a look at DynamicReconfigureServer and DynamicReconfigureClient in dynamic_reconfigure/src/dynamic_reconfigure/dynamic_reconfigure.py

Server

Have a look at wge100_camera/nodes/wge100_multi_configurator. This node is both a dynamic_reconfigure server and client. You configure it (server side), and it passes on its configuration to a list of wge100_camera nodes (client side). (Note that handling of configuration returned by wge100_node currently sucks.)

Client

Have a look at dynamic_reconfigure/dynparam for a simple example and dynamic_reconfigure/bin/reconfigure_gui for a more involved one.

Package review meeting notes

Create new package review

Enter the date in the appropriate box to generate a template for an API or code review meeting. Check the QAProcess page for more information.


2024-10-26 14:25