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

Automatically resolve source dependencies?

asked 2014-11-12 04:42:36 -0600

T045T gravatar image

We have a set of ros packages that depend on each other, but are all still in development, i.e. not released. This means the only way to get them is to check out their latest versions from git and build them in the local catkin workspace.

But then, one has to manually find the repository URLs for all dependencies and clone those too.

Actually, the same is true for system dependencies on a system where one does not have apt permissions (i.e. a lab computer).

Now, I'm aware I could set up a workspace with all the packages using wstool and then share that, but this is inconvenient for developers who only need an independent subset of packages.

What I'd instead like to do is resolve dependencies automatically, like rosdep does, but instead of using a package manager to globally install them, have their source checked out into a local catkin workspace.

This is what I imagine the workflow looking like:

$ mkdir -p catkin_workspace/src && cd catkin_workspace/src
$ catkin_init_workspace
$ git clone
$ cd ourcoolpackage
$ rospack deps | rosdep --download-source --target-folder=..
$ # recursive solving of dependencies would be great, too
$ cd ../..
$ catkin_make # everything magically works!

Adding a custom source to rosdep seems like a step in the right direction, but I can't find a way to have rosdep just download sources.

Is there already some tool that does this and that I overlooked?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2014-11-12 15:20:41 -0600

tfoote gravatar image

I think you're looking forrosinstall_generator which can do most of this. However it can only support publicly released packages or you need to create your own forked rosdistro file to add your private sources.

edit flag offensive delete link more


Thanks! Forking rosdistro looks like the way to go :) But it would be nice to have a way to "overlay" rosdistro, so we don't have to rebase our fork when the official rosdistro files are updated...

T045T gravatar image T045T  ( 2014-11-22 13:11:09 -0600 )edit

Also, if all of your dependencies are released then this answer may be useful for you:

William gravatar image William  ( 2014-11-23 20:05:39 -0600 )edit

Question Tools



Asked: 2014-11-12 04:42:36 -0600

Seen: 1,543 times

Last updated: Nov 12 '14