ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Starting one node in another node's executable directory _is_ what I "really want to do"

with the current implementation of roslaunch this is not supported.

So the answer to this would be: you can't.

then I lose the abstraction of launching nodes in arbitrary project binary directories.

This is also not really supported. It can work, but it is not recommended to depend on this.

Accepted practice would be to use absolute paths to resources (ie: those returned by the find subst arg) and/or pass ROS args to your nodes in the arg section of the node that launches them.

Location transparency cannot be guaranteed if you start making assumptions about what the CWD is of nodes. This is exactly why using find and passing the result of that to your node and/or using ROS parameters (populated with the output of find again) is considered 'better'.

Starting one node in another node's executable directory _is_ what I "really want to do"

with the current implementation of roslaunch this is not supported.

So the answer to this would be: you can't.

then I lose the abstraction of launching nodes in arbitrary project binary directories.

This is also not really supported. It can work, but it is not recommended to depend on this.

Accepted practice would be to use absolute paths to resources (ie: those returned by the find subst arg) and/or pass ROS args to your nodes in the argargs section of the node that launches them.

Location transparency cannot be guaranteed if you start making assumptions about what the CWD is of nodes. This is exactly why using find and passing the result of that to your node and/or using ROS parameters (populated with the output of find again) is considered 'better'.