Skip to content
Marc Hanheide edited this page Nov 20, 2018 · 42 revisions

This page is mostly deprecated. Most of the STRANDS software stack is available as part of the L-CAS ROS distribution (for ROS kinetic, at the tie of writing). Please read https://github.com/LCAS/rosdistro/wiki to understand how to install the packages.


The STRANDS project is committed to release its outcomes as open source. github

Nearly all our software outcomes are available from our github organisation. To ease use by others and simply installation, we are releasing Ubuntu binary and source packages for most of our software development. STRANDS software is mostly based on ROS. We actively maintain and support software packages for ROS Indigo on Ubuntu trusty (Indigo is the project's default and only supported distribution since January 2015). While some more mature packages are directly released in to the ROS universe, most of our software is hosted on our repositories. The binary packages we host ourselves are for 64-bit architectures (amd64) only, due to limited capacity of our own build farm. Check this up-to-date report for details about packages hosted by us.

Check out our STRANDS Release Status Reports

Using the STRANDS repository

These steps are for a system administrator who wants to install STRANDS' release packages:

  1. Enable the ROS repositories: Accomplish all the steps under 1. Installation http://wiki.ros.org/indigo/Installation/Ubuntu#Installation.

  2. Enable the STRANDS repositories:

  3. Add the STRANDS public key to verify packages:

    curl -s http://lcas.lincoln.ac.uk/repos/public.key | sudo apt-key add -

  4. Add the STRANDS repository:

    sudo apt-add-repository http://lcas.lincoln.ac.uk/repos/release

  5. update your index:

    sudo apt-get update

  6. install any packages you want using sudo apt-get install <pkg-name>

A few useful packages to install

  1. The STRANDS "Desktop" meta package (containing almost all packages that can be run in simulation (see below) or also on other robots than the ones used in STRANDS. This is what most users want!):
sudo apt-get install ros-indigo-strands-desktop
  1. The STRANDS ROBOT package (similar to "Desktop", but with drivers and utils for the STRANDS Scitos robot and without simulation tools and packages):
sudo apt-get install ros-indigo-strands-robot

Known Issues:

If you see

The following packages have unmet dependencies.
 ros-indigo-strands-desktop : Depends: ros-indigo-strands-base but it is not going to be installed

or similar, please uninstall libqwt-dev as it conflicts with some dependencies, and apt-get doesn't report that properly:

sudo apt-get autoremove --purge libqwt-dev

(thanks to https://github.com/lucasb-eyer/strands_karl#basics)

Running a STRANDS system

To get started with a basic, simulated robot system that includes many of the core STRANDS packages, follow this guide. Please report any problems with the instructions in the issue tracker.


DISCLAIMER: If you just want to use STRANDS software, no need to read further than this. You are ready to go! The following is for people who want to develop and release STRANDS software.


Developing in the STRANDS environment

We assume the previous steps of installing packages to have completed successfully here.

One time setup on a computer (by sys admin)

In order to resolve packages that are not in the official ROS repositories, but in STRANDS' own, you need to make rosdep aware of this.

  1. Initialise the rosdep system globally: sudo rosdep init
  2. add STRANDS dependencies sudo curl -o /etc/ros/rosdep/sources.list.d/50-strands.list https://raw.githubusercontent.com/strands-project/rosdistro/strands-devel/rosdep/sources.list.d/50-strands.list

One time setup in a user's account (for a developer)

The ROS index plays a vital role in any ROS system. STRANDS uses its own ROS distro configuration, which is the central configuration place listing all packages available for a ROS distribution. Our STRANDS version of rosdistro is regularly (daily) updated, pulling in changes from the official ROS distro, but has our own packages added.

  1. Tell ROS to use STRANDS' own ROS index! Put the following in ~/.config/rosdistro/config.yaml:
index_url: https://raw.github.com/strands-project/rosdistro/strands-devel/index.yaml
  1. update your rosdep cache:rosdep update

Releasing to the STRANDS Ubuntu Repository (using Release Wizard)

If your repository has been released before, you can use the "Release Wizard" to re-release the current head of you github repository very easily. Simply navigate to http://strands-project.github.io/rosdistro/, enter the name of the repository (usually the last part of the github URI of the repository, e.g. v4r for https://github.com/strands-project/v4r) to be re-released and hit "release" (It is normal that this takes you to a blank page. Don't hit the "release" button again, please). You can see the progress on Jenkins of the two step prepare-release and bloom-release. This will trigger our build farm to generate all the required files and open a pull request in https://github.com/strands-project/rosdistro/pulls which, when accepted by one of the integration managers, will automatically (re-)build all Ubuntu packages required (also the ones depending on the repository you re-released). This normally takes some time (an hour or so), after the pull request has been accepted. The integration managers might ask you about the release before accepting the pull request.

If no version of your repository has ever been released yet, get in touch with marc@hanheide.net.

Releasing to the STRANDS Ubuntu Repository (Manual)

If no version of your repository has ever been released yet, get in touch with marc@hanheide.net (or if you are a STRANDS member read this)

  1. Make sure you have configured your system to use the STRANDS ROS index (see above).
  2. simply follow this simple guide to prepare your upstream repository. Usually this involved the following steps:
  3. catkin_generate_changelog to generate Debian Changelogs form git log
  4. git commit -a -m "updated Changelogs" to commit the new logs
  5. catkin_prepare_release to bump the version number and tag the source with it (with --bump {major|minor|patch} to choose which version part to increase)
  6. run bloom-release as described here, usually something like this: bloom-release mongodb_store -t hydro -r hydro with hydro replaced by indigo where needed and mongodb_store replaces with the name of you repository as configured in https://github.com/strands-project/rosdistro

Release to the official ROS rosdistro

Disclaimer: Usually you don't do this, but the software management team will release version that are considered stable to the official repos

Same steps as above, but the bloom-release command needs another environment variable to be defined:

ROSDISTRO_INDEX_URL=https://raw.github.com/ros/rosdistro/master/index.yaml bloom-release mongodb_store -r indigo -t indigo