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

rosbuild migration - mixing workspaces?

asked 2013-09-16 23:20:11 -0500

Markus Achtelik gravatar image


we're in the process of migration to catkin, but have a lot of packages that we won't migrate all at once. Keeping track of overlays, and which package is migrated in two rosinstall files, one for the rosbuild workspace, and one for the catkin workspace seems a bit tedious... Can we just put all packages (rosbuild + catkin) into the src folder of the catkin workspace, add src to ROS_PACKAGE_PATH and create CATKIN_IGNORE / ROS_NOBUILD files in the packages according to their migration status? Or will that just create more problems?

Thanks! Markus

edit retag flag offensive close merge delete


Interesting idea. I doubt that works, but don't know for sure. Have you tried it? What happened?

joq gravatar image joq  ( 2013-09-17 05:44:33 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2013-09-17 06:00:58 -0500

Dirk Thomas gravatar image

updated 2013-09-17 12:08:32 -0500

It technically works to build both wet and dry packages from a single folder. The main drawback is that it gets more difficult to keep track what is actually being build since it is not obvious anymore what kind of package a subfolder represents.

catkin_make will only consider folders containing a package.xml file. rosmake will only consider folders containing a manifest.xml file (after adding src to the ROS_PACKAGE_PATH).

And alternative way how to deal with this could be:

  • you check out all repos to one location, e.g. "repos"
  • you create a catkin workspace and add symlinks one by one to repos or packages under "repos" as soon as you migrate them
  • you create a rosbuild workspace and symlink all repos/packages "under" as long as thy are not migrated yes This approach allows you to still manage your repos with one tool but maintain a clean separation of your wet and dry workspaces.

Another way (if e.g. multiple people should share the same setup) would be to modify the rosinstall file in a way that all wet and dry repos are checked out to a different subfolder. That way you can easily share the rosinstall file with other people and they will immediately get the same splitting. (May be can be helpful to manage your repositories.)

edit flag offensive delete link more



@Dirk We are working with a mixed catkin/rosbuild source space without problems. The ROS_PACKAGE_PATH is not an issue as catkin will add the src folder, not the devel folder. You won't even need a rosbuild workspace initialized with rosws then.

Johannes Meyer gravatar image Johannes Meyer  ( 2013-09-17 11:46:01 -0500 )edit

Thanks, you are right. I will update my answer to not contain false information.

Dirk Thomas gravatar image Dirk Thomas  ( 2013-09-17 12:06:21 -0500 )edit

Thanks a lot for the answers and suggestions! I wasn't fully aware of the different folders to check-out to with one rosinstall file. Since indeed multiple people will have to use this setup, that (and probably vcstool) seems to be the best solution for now.

Markus Achtelik gravatar image Markus Achtelik  ( 2013-09-17 21:49:31 -0500 )edit

Question Tools

1 follower


Asked: 2013-09-16 23:20:11 -0500

Seen: 341 times

Last updated: Sep 17 '13