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

To answer your direct questions first:

  1. Any folder which contains one or many package.xml files somewhere below can be compiled with catkin_make / catkin_make_isolated. Sourcing the setup.bash from the ROS distro is only necessary for you to get catkin on the PATH and PYTHONPATH. As an alternative you could place a checkout of catkin into your workspace and invoke the commands from there directly.

  2. Your summarized options are all fine and the choice is mostly depending on your personal preference. I for myself use vcstool to manage my repositories. It is very similar to wstool. The two major differences are:

  3. it does not require a configuration file, it simply operates on your filesystem
  4. you can export a set of repositories into a file (similar to a .rosinstall file), you can import a file which clones all the specified repos (this accepts the file format generated by export as well as .rosinstall files)
  5. it is completely independent from ROS (wstool is not really since it has catkin-specific options)
  6. it provides some advanced features making it more efficient to use for me when working with many repos (e.g. vcs diff shows the diff for multiple repos, vcs log --limit-untagged all commits in multiple repos since they have been tagged the last time)

  7. You would need a fork of the repository specifying the rosdep mappings (https://github.com/ros/rosdistro/tree/master/rosdep) and use that by setting the ROSDISTRO_INDEX_URL to a custom location. You would then need to keep it in sync with upstream (if you care) which might result in conflicts from time to time when you have changes on-top of it.

To answer your direct questions first:

  1. Any folder which contains one or many package.xml files somewhere below can be compiled with catkin_make / catkin_make_isolated. Sourcing the setup.bash from the ROS distro is only necessary for you to get catkin on the PATH and PYTHONPATH. As an alternative you could place a checkout of catkin into your workspace and invoke the commands from there directly.

  2. Your summarized options are all fine and the choice is mostly depending on your personal preference. I for myself use vcstool to manage my repositories. It is very similar to wstool. The two major differences are:

    • it does not require a configuration file, it simply operates on your filesystem
    • you can export a set of repositories into a file (similar to a .rosinstall file), you can import a file which clones all the specified repos (this accepts the file format generated by export as well as .rosinstall files)
    • it is completely independent from ROS (wstool is not really since it has catkin-specific options)
    • it provides some advanced features making it more efficient to use for me when working with many repos (e.g. vcs diff shows the diff for multiple repos, vcs log --limit-untagged all commits in multiple repos since they have been tagged the last time)

  3. You would need a fork of the repository specifying the rosdep mappings (https://github.com/ros/rosdistro/tree/master/rosdep) and use that by setting the ROSDISTRO_INDEX_URL to a custom location. You would then need to keep it in sync with upstream (if you care) which might result in conflicts from time to time when you have changes on-top of it.