-
Notifications
You must be signed in to change notification settings - Fork 69
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
Standalone Component Action #19
Comments
So, currently one can do: ld = launch.LaunchDescription([
launch_ros.actions.ComposableNodeContainer(
package='rclcpp_components', node_executable='component_container',
composable_node_descriptions=[
launch_ros.descriptions.ComposableNode(
package='composition', node_plugin='composition::Talker'
)
]
)
]) @dirk-thomas @mjcarroll do you guys think that's too verbose? How do you imagine it could be? I wonder about the potential redundancy with the |
IIUC correctly the desire is for a standalone executable to be generated for components, something created from a template that has a |
On a related note, I was a little confused by the ld = launch.LaunchDescription([
launch_ros.actions.ComposableNodeContainer(
node_name='my_container_name', node_namespace='/',
composable_node_descriptions=[
launch_ros.descriptions.ComposableNode(
package='composition', node_plugin='composition::Talker'
)
]
)
]) But I was missing the keyword arguments: package='rclcpp_components', node_executable='component_container', Do you think we could make these the default values for the As an aside, we could probably also relax the requirement for specifying the node name and namespace (similar to the |
The API for component managers is language neutral. It is possible to implement a python component container for |
Hey - I was just playing with components and wanting this exact thing, mostly for interactive purposes - e.g. |
@emersonknapp We added some CMake magic to help build standalone executables from node components (ros2/rclcpp#784). For example, rclcpp_components_register_node(timers_library
PLUGIN "demo_nodes_cpp::OneOffTimerNode"
EXECUTABLE one_off_timer) Basically, when registering the component with
So, if you use this CMake helper for your component, then you can launch it as a regular node (ie. with the I'm still not exactly sure what the objective of this ticket is. I guess it would be to make the current syntax for loading a single component into a container less verbose. E.g. - launch_ros.actions.ComposableNodeContainer(
- package='rclcpp_components', executable='component_container',
- composable_node_descriptions=[
- launch_ros.descriptions.ComposableNode(
- package='composition', plugin='composition::Talker'
- )
- ]
- )
+ launch_ros.action.StandaloneComponent(
+ package='composition', plugin='composition::Talker'
+ ) Though, to achieve this we would have to assume the type of container and declare a dependency on Maybe we can close this ticket as something we won't do? |
Considering the extensible nature of launch, maybe it makes more sense to create a specialized package, |
@jacobperron thanks for that extra context, the CMake stuff meets my needs - sorry to have derailed the thread slightly off topic. My understanding of this issue is, yes, to just make that syntax less verbose. It probably doesn't need to exist in
This seems possible by embedding the python interpreter - the component syntax would probably need to be a little different given that no special consideration needs to be made in the Python code, just a defined |
Feature request
Feature description
Add a launch action that will allow for a single component to be loaded into a component container. This would be a simplified representation or alias to the larger component actions.
The text was updated successfully, but these errors were encountered: