[ros-users] rosinstall refactoring

Thibault Kruse kruset at in.tum.de
Wed May 18 17:35:18 UTC 2011

Hi ROS users,

I quite like the rosinstall tool for all the magic it provides. However
my personal intuition from my experience is that it is a bit complex to
understand for beginners with ROS (who are busy learning plenty of other
ROS concepts). As a consequence, I observed several new ROS users from
shying away from rosinstall and creating ROS_PKG_PATH and such manually,
or modifying setup.sh manually, with results that vary with the users
unix skills.

So I suggest to change rosinstall to use an SCM-like command

Assuming that current rosinstall Signature is: rosinstall PATH

Signature change:

rosinstall init PATH? /path/to/ros {/path/to/URI}*
rosinstall add PATH? {/path/to/URI}*
rosinstall change-ros /path/to/ros
rosinstall remove PATH? {localname}*
rosinstall update PATH?
rosinstall info PATH?
rosinstall sort PATH? {localpath}*


init: generates .rosenv and setup.sh, etc.
info: lists ROS_ROOT and localpaths registered in .rosenv (plus info
like SCM URI)
add: adds uri, calls rosmake, etc. in new ones, updates setup.sh, etc.
change-ros: selects a different local dir to use as ros root
remove: removes localpath from .rosinstall, updates setup.sh, etc.
update: calls SCM update and rosmake, etc.
sort: changes order in setup.sh, etc.
When PATH is omitted, use "." for all except create


Reduce FUD (Fear, Uncertainty, Doubt) about rosinstall

Allows changes to .rosinstall to be made by tool rather than editing
the .rosinstall file (such as removing a path)

Breaking down functionality helps self-explaining of the tool

Having the user specify his intention allows to generate
context-specific error messages, options and help

Also this makes it easier to extend rosinstall with other functions, and
to use rosintall in scripts (e.g. provide a curses/tk-based rosinstall

Changes in workflow: rosinstall workflow remains almost unchanged. New
users do not get confused by signature syntax being the same for
different purposes


Never change a running system + Keep it simple stupid.
However, core functionality of rosinstall remains unchanged, and
simplicity is in the eye of the beholder.

I would be happy to hear your thoughts on that, and I volunteer to make
the required changes if the community were in favor.

In particular, I would like to know:
Do you share my intuition that rosinstall as it is now creates FUD?
Do you approve of the change I suggest?
Do you know further commands that you would like to see included in

best regards,
  Thibault Kruse

More information about the ros-users mailing list