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

ROS2 Configuration management

asked 2022-07-13 12:25:36 -0500

tnajjar gravatar image


In my project, as we get more customers, more hardware versions, more robots, configuration management is becoming more and more complex to manage and I'm wondering how does the ROS community handle it.

Our config is centralized in the bringup package, as it is for many I assume. One idea would be to move the config to its own repository and create a branch for each robot. A problem with that approach is that, to add/delete/modify a parameter, one would have to do it for each branch.

Another approach would be to have a default configuration in the bringup package/repository and in a separate configuration repository, create branches for each robot but only with some yaml files that override the defaults.

How do you version control your ROS configuration efficiently and scalably for a system where parameter modifications is still very common? This doesn't sound like a ROS/Robotics specific problem yet I failed to find much help online.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2022-11-30 15:54:42 -0500

I've tried the bringup package approach but this leads to one overly complicated repository. Finding this hard to maintain and making some operational tasks time consuming.

I then moved to separate repositories for different types of configuration parameter; robot specific, deployed site specific, robot hardware version specific etc. Then branches to facilitate switching between sites, specific robots etc. This can work fairly well with little time investment in the setup. Like you mention the main issue is that if you want to update a single value for all branches of a given repo, but this can be mitigated by splitting out robot specific and manufacturing batch specific configurations

Steve's cloud based solution sounds like a much more scalable long term approach.

Interested to see if there are any other methods out there too.

edit flag offensive delete link more

answered 2022-07-13 14:26:53 -0500

I can't speak for the best way of doing it, but "a" way I've done it is to have the configurations in cloud storage where its very easy to do bulk operations where required and then setup my CM software to grab the right files for a given facility / robot type when its being initially bootstrapped or updates to software are made.

edit flag offensive delete link more


I appreciate the help Steve. Could you share some cloud storage and CM software examples that could do the job as you describe? CM software google results don't seem like something I could use.

tnajjar gravatar image tnajjar  ( 2022-07-13 16:22:40 -0500 )edit

Things like Ansible, Chef, Puppet, etc. I don't have any examples that I could share

stevemacenski gravatar image stevemacenski  ( 2022-07-14 14:21:15 -0500 )edit

Question Tools



Asked: 2022-07-13 12:25:36 -0500

Seen: 289 times

Last updated: Jul 13 '22