Roslaunch and Metapackages
I know that metapackages should not contain any files except for the package.xml
and CMakeLists.txt
meant to specify the metapackage, but I'm wondering how I might call a launch file tied to a collection of packages cleanly.
For example, with this package structure:
├── catkin_ws
│ └── src
│ └── robot_motion_control
│ ├── robot_motion_control # Metapackage
│ ├── pilot
│ ├── navigator
│ └── controller
If I wanted to run a launch file that groups together the conceptually-related pilot
, navigator
and controller
, I'd want to call something like roslaunch robot_motion_control do_a_little_dance.launch
, which exists at a higher level of abstraction than any of the three packages.
The problem is that I can't put .launch
files in a metapackage, and calling something like roslaunch robot_motion_control_launch do_a_little_dance.launch
feels fairly hacky.
I'd love to run roslaunch robot_motion_control do_a_little_dance.launch
, but is there a way to architect my metapackage and packages such that I can actually do that?
Is
src/robot_motion_control
a metapackage, or just a plain directory that stores the packages in your metapackage into a single location on your FS?src/robot_motion_control
is the directory that stores the conceptually related packages, includingsrc/robot_motion_control/robot_motion_control
(the metapackage).