-
Notifications
You must be signed in to change notification settings - Fork 145
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] unexpected behaviour setting node_name on a multi-node process #204
Comments
FYI @IanTheEngineer |
linking ros2/rcl#375 for context |
I believe this is the expected behavior when overriding the node name using the command line in a multi-node process. Launch cannot know if the executable you're running is multi-node or not, and therefore cannot do anything about it. |
Nice informative article on ros answers, thanks. Couldn't launch do something about it in the same way that the command line overrides do? e.g. an api like:
|
Having an action for multi node processes is exactly what is needed, but it also relies on separating node description and arguments (remapping, parameters, etc) and the process to be executed. See:
|
Aye, lots more than just node name remapping. I cherry-picked that just to keep the example simple. My use case actually doesn't lend itself to Composable Nodes. I have independently built classes that are instantiated and required to work together via their programming (not middleware) api in an application. The nodes are there for communicating to external processes. |
Sure, I just meant that like ComposableNode's we need to separate the description of a node from the execution of them. Which composable nodes inherently do, but currently the existing "Node actions" (multi- node or not) do not. I talk about this in my most recent ROSCon talk: https://roscon.ros.org/2018/presentations/ROSCon2018_launch.pdf (slide number 7) But it has unfortunately yet to make it to reality. |
Rename nodes apart to work around rclcpp bug ros2/launch#204
… global parameters to work around ros2/launch#204 since changing node names broke all the services)
Since there is #114 (separate the idea of Nodes and Processes) and ros2/launch_ros#7, and also because we have the linked ROS answer, I'm going to close this. |
NODE It has the same problem as following link ros2/launch#204 All nodes have the same node name...
Bug report
Required Info:
Steps to reproduce issue
Multi-node rclpy process (installs ros2 runnable
testies
):And launcher:
Expected behavior
With
node_name="one"
commented out in the launcher, two nodes appear:foo
andbar
. This works fine.With
node_name="one"
uncommented, then I'd expect termination, some meaningful error message (not warning), even better, a hint directing the user to the correct way to override node names in a multi-node process.Actual behavior
In the latter case, surprise! Everything launches, but both nodes
foo
andbar
get set toone
with the following warning message.
Additional Behaviour
Is there a case for setting all node names in a process to the launch defined override? If so, then this is probably not the path to take regardless.
The text was updated successfully, but these errors were encountered: