[ros-users] RFC: rosworkspace

Brian Gerkey gerkey at willowgarage.com
Wed Jul 13 04:06:04 UTC 2011


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



More information about the ros-users mailing list