ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

What's the best way to publish dynamic parameters to a topic when they change?

asked 2018-01-26 14:56:31 -0500

somudrog gravatar image

updated 2018-01-29 18:29:14 -0500

I'd like to publish dynamic parameters (from dynamic_reconfigure) to a topic from a C++ node when they change, for the purpose of recording parameter changes in a bag file. In Python, I just convert the dynamic parameters object to a string and publish it in the dynamic parameters callback. What's the best way to do something similar in C++, without having to manually copy each field of the param struct into a string?


def update_dynamic_params(self, dynamic_params, _level):
    # this always works and I don't have to change the code when the cfg file changes


void MyNode::updateDynamicParams(const MyConfig& dynamic_params, uint32_t level)
  // I'd like to avoid manually copying each field of MyConfig struct into a string, especially because I'd have to update it each time the cfg file changes
edit retag flag offensive close merge delete


Do you want to publish only if the parameter changes?

mohsen gravatar image mohsen  ( 2018-01-29 15:47:14 -0500 )edit

Yes. Please see my updated question details.

somudrog gravatar image somudrog  ( 2018-01-29 17:16:01 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2018-01-29 17:48:35 -0500

prem gravatar image

There are two topics /node_name/parameter_descriptions and /node_name/parameter_updates that are published when you run a dynamic reconfigure server. The latter publishes the parameters whenever you update them - which is what you need.

edit flag offensive delete link more

answered 2018-01-29 10:21:18 -0500

C++ can do all Python can do. Numbers may be published in ROS as well as strings. Conversion may not be needed. Many different types of variables may be used. Your publishing rate may be fast or slow- you determine that. If the number changes each time it's published, that's not a problem.

edit flag offensive delete link more


Thanks for your answer. Please see my updated question with the detail of what I'm trying to do.

somudrog gravatar image somudrog  ( 2018-01-29 17:15:37 -0500 )edit

Question Tools

1 follower


Asked: 2018-01-26 14:56:31 -0500

Seen: 1,219 times

Last updated: Jan 29 '18