-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compatibility with ROS 2 Components #1704
Comments
Hello @jcarpinelli-bdai! This is no longer a problem because the issue you are describing is solved with the #1694. The ros2 components that you are describing internally use the same approach of setting Let us know if this fixes your issue. Thank you! |
Thanks for the quick reply! In my own testing, setting |
Well that's true, that part will be affected. That's why the changes are not backported to older distros. However, in order to have it working use |
Thanks for the detailed summary of your issue. |
Yes, it is outdated as now such individual node remapping is no longer needed, even though the same trick will still work. Should we cleanup this part of the docs? |
Ah, I understand. Thank you for the clarification. I have been using global arguments passed to the controller manager node to configure each of the controllers, as shown in this humble demo. In demos for later releases, the I am also interested, just to learn, how these "composed lifecycle nodes" used in |
Summary
Can we use
rclcpp_components
, and Components more generally, to more effectively separate manager node / managed node semantics in theControllerManager
class?Issue
When using the
ControllerManager
class in a new process (not the project-providedros2_control_node
process), renaming the controller manager might cause every underlying controller to have its private member variable node to change its name to the name of the controller manager. This is a known issue, and is described in theros2_control
documentation.Composition
In ROS 2, Node Composition seems to be the general solution to the issue described above. Components can be renamed independently of the component manager.
Question
Does composition (in the ROS 2 sense of the word) offer any benefits over the existing design of the controller manager, and the controller interface? Instead of inheriting a
std::shared_ptr<rclcpp_lifecycle::LifecycleNode>
in the controller interface, could controllers act as Node components? Could the controller manager be a component manager? Thank you for reading!Warning
I am not a ROS 2 expert, so my understanding could definitely be incorrect. Please let me know if I'm misunderstanding
ros2_control
, or ROS 2 features more broadly.The text was updated successfully, but these errors were encountered: