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

Should one or multiple controller_manager nodes be used for modular robots (e.g. base + arm)? [ros2_control]

asked 2022-06-30 13:18:11 -0500

shonigmann gravatar image

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?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2022-07-01 08:03:25 -0500

AndyZe gravatar image

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.
edit flag offensive delete link more


great points, thank you!

shonigmann gravatar image shonigmann  ( 2022-07-01 11:16:08 -0500 )edit

Question Tools



Asked: 2022-06-30 13:18:11 -0500

Seen: 398 times

Last updated: Jul 01 '22