Proposal: extract ros2 interfaces from controller manager into a helper file#69
Open
Nibanovic wants to merge 4 commits intoros-controls:masterfrom
Open
Proposal: extract ros2 interfaces from controller manager into a helper file#69Nibanovic wants to merge 4 commits intoros-controls:masterfrom
Nibanovic wants to merge 4 commits intoros-controls:masterfrom
Conversation
bmagyar
reviewed
Aug 27, 2025
Co-authored-by: Bence Magyar <bence.magyar.robotics@gmail.com>
bmagyar
reviewed
Sep 8, 2025
|
|
||
| 1. **Extract all ROS 2 interfaces** and their callback implementations into a helper file `controller_manager_ros.cpp/hpp` which current `controller_manager.hpp` would include. | ||
|
|
||
| 2. **Rename the current `ros2_control_node`** to `ros2_control_executable` to accurately reflect its function as a system entry point rather than a Node |
Member
There was a problem hiding this comment.
I personally don't see much value in renaming this and it'd definitely break a lot of people's code when we remove the old one.
bmagyar
reviewed
Sep 8, 2025
Co-authored-by: Bence Magyar <bence.magyar.robotics@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
extract ros2 pub/sub/services into a
ros2_communicationhelper files.Motivation:
In a project, we're wrapping
controller_managerin a custom scheduler task, essentially re-writing theros2_control_noderos2_control_nodeis not a node, but an executable specific to the OS scheduler responsible for instantiating and running thecontroller_manager, which IS the node.controller_manager.cppfile is hitting 4k LoC, mixes core logic and ROS2 communicaiton (services, publishers, subscribers)Proposed changes
We propose a simple refactoring with two main objectives:
Extract all ROS 2 interfaces and their callback implementations into a helper file
ros2_communication.cpp/hppwhich currentcontroller_manager.hppwould include.Rename the current
ros2_control_nodetoros2_control_executableto accurately reflect its function as a system entry point rather than a NodeNotes:
naming is are for discussion, of course
Food for thought, outside of scope of this suggestion:
We could push it a step further and make
ControllerManagernot inherit fromNodeat all, and place all ROS-related stuff intoControllerManagerNodeclass.Then, as we do with
ResourceManager, we'd pass in the necessary node interfaces to it:Then the
ControlNodewould be responsible for ros2 communication, controller manager for controllers and resource manager for hardware.