Rosanswers logo

If you have a robot composed of several sub-robots (e.g. a mobile base platform with a manipulator attached), each of which has its own independent controllers defined, is there a preferred approach to managing the controllers for the combination?

Are there reasons for or against either:

  • aggregating the controllers for both the base and arm into a single controller_manager node, or
  • running separate controller_manager nodes for each sub-robot (e.g. base_controller_manager and arm_controller_manager)?

I'd imagine the former might have a bit less overhead, but the latter might make lifecycle management a bit more flexible?

Originally posted by shonigmann on ROS Answers with karma: 1567 on 2022-06-30

Post score: 0


1 Answer 1


Rosanswers logo

Here are some things to think about:

  • If everything is included in one controller_manager, then all controllers will spin at the same rate. That may or may not be OK. The spin rate is determined by the update_rate parameter.

  • If you have 2 controller_managers, then using the command line for querying controller stuff gets more tricky. You can't use ros2 control list_controllers, for example -- IIRC you have to specify which controller manager.

Originally posted by AndyZe with karma: 2331 on 2022-07-01

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by shonigmann on 2022-07-01:
great points, thank you!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.