Design Pattern for sharing packages between projects

asked 2020-01-17 09:38:40 -0600

LukeAI gravatar image

We have quite a few ROS packages that are in active development that we want to reuse in different combinations for different projects. We host our projects on github.

I'd like to create a git repo. for every package and then each project can be assembled as a git repo. containing a catkin workspace with a series of git submodules under src/ one for each required package.

The problem with that is that package_name/launch would be part of the package submodule and thus shared across all projects when I would like to have package_name/launch tracked by the project, not the package submodule (since the launch params will be usually be specific for the project).

What would be a good design pattern for achieving this?

edit retag flag offensive close merge delete


Do you have a particular requirement / desire to use submodules? Would a .rosinstall or .repos file with wstool or vcstool not work as well?

gvdhoorn gravatar imagegvdhoorn ( 2020-01-17 11:01:37 -0600 )edit

No I don't in particular, I will look into the tools you have suggested. I guess I have a slight desire to use some solution that is more general than a catkin only system, so that I can apply the same design pattern to other projects, ROS2 and beyond.

LukeAI gravatar imageLukeAI ( 2020-01-18 07:05:01 -0600 )edit

Despite the name, there is nothing ROS-specific about these tools, nor the file format. I routinely use them on Windows with visual studio and Python IDEs.

gvdhoorn gravatar imagegvdhoorn ( 2020-01-18 07:38:08 -0600 )edit