hi, Exploiting Ken's work on a version-specific roslocate index [1], I put together a new tool, tentatively called `rosworkspace`. The idea is that it will help you manage your ROS workspace (aka overlay), which can get kind of complicated when you're developing several stacks at once, or frequently switching between development contexts. rosworkspace can pull any released stack, as well as stacks that depend on it, from source, using either the development branch or the latest release tag, conditioned on your ROS distro. It's really just a front-end for rosinstall, with some calls to roslocate and rosstack. Example usage: ------ # Start with the system installation $ source /opt/ros/unstable/setup.bash # Create a workspace, bootstrapping from ROS_ROOT # and ROS_PACKAGE_PATH $ rosworkspace /tmp/work init # Now I have an empty workspace in /tmp/work $ source /tmp/work/setup.bash # I want to hack on navigation $ rosworkspace /tmp/work add navigation # Now my workspace contains the unstable development branch for # navigation, as well as all stacks that depend on navigation. $ source /tmp/work/setup.bash $ rospack find amcl /tmp/work/navigation/amcl $ rosstack find pr2_plugs /tmp/work/pr2_plugs # Now I'm done hacking on navigation, and I want to revert to the # system install $ rosworkspace /tmp/work delete navigation $ source /tmp/work/setup.bash $ rospack find amcl /opt/ros/unstable/stacks/navigation/amcl $ rosstack find pr2_plugs /opt/ros/unstable/stacks/pr2_plugs ------ To give it a try, grab the latest rosinstall and adjust your PATH: $ svn co https://code.ros.org/svn/ros/stacks/ros_release/trunk/rosinstall $ export PATH=`pwd`/rosinstall/scripts:$PATH Comments most welcome. I'm interested to hear whether such a tool would be useful, and if so, what command-line syntax and defaults would best support common workflows. brian. [1] https://code.ros.org/lurker/message/20110711.160222.666ecfe4.en.html