The basic design of rosstack

Summary:

A tool to help manage working out of multiple repositories with different versions of stacks. And a first step toward being able to have out of the box apps.

Protype usage

Clean Install

Download/unpack rostack
rosstack update
rosstack install 2dnav_stage
rosstack setup 2dnav_stage --name=2dnav_stage_demo
source ~/ros/.bashrc.2dnav_stage_demo
rosdep 2dnav_stage
rosmake 2dnav_stage
roscd 2dnav_stage
roslaunch 2dnav_stage_wavefront.launch

Problem: Need to bootstarp compile ROS not met

Switch to branch of ROS

rosstack update
rosstack install ros-0.5
rosstack setup ros-0.5
source ~/ros/.bashrc.ros-0.5
rosmake roscpp_tutorials
rosrun roscpp_tutorials 001talker

Environment Variables Read

ROS_STACK_PATH_READ_ONLY --- colon seperated search path (non recursive) ROS_STACK_PATH (Default: ~/ros) --- colon seperated search path (non recursive) write to first one

ROS_SOURCES (Default ~/ros/sources.list)

Files

configuration files

~/ros/sources.list

  • A list of repo urls to put stack listing from

~/.rosstack_cache A local cache of above stack listings

stack.xml

Same as manifest except add version (maybe remove sysdeps, for that's tracked at a package level)

Server Files

On some server(s) there will be definitions of each stack including the following fields:

  • name
  • version
  • download url (one or more of the below)
    • targz url
    • svn co url
    • (maybe extend to git, perforce etc)
    • (maybe add binary install opetions/args deb, dmgs etc)

Modes

list

Options:

  • installed - Search all stack paths and list all installed stacks
  • available - list all available packages from servers
  • active stacks in PKG_PATH

find

Stack-Name return the full path to the stack

contents

  • stackname

List packages in stack

update

Read ROS_SOURCES and update local cache of available packages (~.rosstack_cache)

upgrade

Iterate through stacks installed from svn and update each

install

Install stack NAME(S) and all their dependencies. Options:

  • policy for what style of download to prefer

publish

A helper function which will upload the stack definition to some server where it will be pulled down when others update

setup

options:

  • stacks/apps = list of stacks to include(plus all their dependencies)
  • name = NAME (default = ros)

Create ~/.bashrc.NAME with:

ROS_ROOT
ROS_PACKAGE_PATH

Wiki: rosstack/Design (last edited 2009-08-14 20:52:51 by localhost)