Skip to content
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

[launch_ros] node_name overrides for a multi-node rclpy process #7

Open
stonier opened this issue Mar 18, 2019 · 5 comments
Open

[launch_ros] node_name overrides for a multi-node rclpy process #7

stonier opened this issue Mar 18, 2019 · 5 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@stonier
Copy link

stonier commented Mar 18, 2019

Feature description

A means of setting node_name overrides for a multi-node rclpy process such as that given in ros2/launch#204.

Implementation considerations

This also brings into question the naming of the class launch_ros.actions.Node since it currently can launch a multi-node process. Perhaps that should fail on trying to launch a multi-node process and for that, use a launch_ros.actions.MultiNode action.

Note: This is a different problem to the composable node launch. Here the nodes are brought into the same process via ... the process, not the launcher. I suspect the same situation would arise linking two c++ classes with nodes and instantiating them in the same application.

@stonier
Copy link
Author

stonier commented Mar 18, 2019

FYI @IanTheEngineer

@wjwwood wjwwood transferred this issue from ros2/launch Mar 22, 2019
@wjwwood wjwwood added the enhancement New feature or request label Jul 25, 2019
@masynthetic
Copy link

is there a workaround/fix for this? remapping the rclpy.create_node() parameter does not seem to do anything, any use of the name= parameter in the launch file seems to cause the issue

@hidmic
Copy link
Contributor

hidmic commented May 19, 2021

any use of the name= parameter in the launch file seems to cause the issue

@masynthetic launch_ros.actions.Node is not a multi-node aware action, so yes, it won't work as you intend in that case.

If you can't use components, a possible workaround is to launch your process as a plain process using launch.actions.ExecuteProcess and configure your nodes through command line arguments.

Alternatively, contributions are most welcome. A multi-node aware action proposal would be great.

@clalancette clalancette added the help wanted Extra attention is needed label Jun 3, 2021
@jbohren
Copy link

jbohren commented Dec 2, 2021

This also brings into question the naming of the class launch_ros.actions.Node since it currently can launch a multi-node process.
@stonier

This is what brought me here.

Since even a single-node executable is an executable which owns a node and not the node itself, it feels like launch_ros.actions.Node is a misnomer and could lead to confusion and unexpected behavior. Something like ExecuteSingleNodeProcess would definitely reduce the likelihood of that occurring.

Also is it weird that some actions are written as imperative statements while others are noun phrases?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

6 participants