Skip to content
Marc Hanheide edited this page Dec 4, 2019 · 46 revisions

The L-CAS Ubuntu/ROS software distribution

The L-CAS build farm generates and provides Ubuntu packages for Ubuntu 16.04 (ROS Kinetic) and Ubuntu 18.04 (ROS Melodic), both for 64 bit architectures (amd64). L-CAS hosts these Ubuntu binary packages for general use (unless specifically available only in restricted repositories), but all software comes without warranties. The licenses of the respective software packages are unaffected by the availability of binaries in this repository. The L-CAS distribution is build upon LTS releases of Ubuntu and ROS respectively and directly uses them.

It also offers Continuous Integration services for software developed by L-CAS and affiliated partners and industries.

Using the L-CAS repository

If you are just looking for an easy way to use and deploy the L-CAS software, read further

batch install

The 'lcas-rosdistro.setup.bash` script is an easy way to configure a system completely very quickly (does all the steps below):

To make it simple, just copy this and paste in your shell:

  1. sudo ls (this is just to cache you admin password for the next steps)
  2. sudo apt-get update && sudo apt-get install curl (curl is required for the next step)
  3. curl https://raw.githubusercontent.com/LCAS/rosdistro/master/lcas-rosdistro-setup.sh | bash - (should install everything required)

If the above has worked, there's no need to read any further.

manual install

The recommended installation is via batch install detailed above. Here are the manual steps (but it's quick and easy nonetheless).

These steps are for a system administrator who wants to install L-CAS' released packages:

  1. probably can be skipped: Install Ubuntu. Ensure you only install versions of Ubuntu supported by the L-CAS distribution. These are the LTS releases of Ubuntu for the amd64 architecture only! Currently we support Ubuntu 16.04 (ROS Kinetic) and Ubuntu 18.04 (ROS Melodic).

  2. Enable the generic ROS repositories: Details to be found under 1. Installation at http://wiki.ros.org/kinetic/Installation/Ubuntu#Installation, but here the gist of it:

    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
    
  3. Enable the L-CAS public repositories:

    curl -s http://lcas.lincoln.ac.uk/repos/public.key | sudo apt-key add -
    sudo apt-add-repository http://lcas.lincoln.ac.uk/ubuntu/main
    
  4. somewhat optional: Add the NVIDIA (CUDA) repositories. This is only needed for Ubuntu 18.04 and only if you intend to install packages that depend on CUDA. Safe bet if using Ubuntu 18.04 is to just enable these as well (won't hurt) and then also all packages requiring CUDA are available. Detailed instructions are here, but this will do:

    curl -s https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub | sudo apt-key add - 
    sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
    
  5. update your index:

    sudo apt-get update

restricted repositories

Some packages are not released publicly, but sit in their own restricted repository. That repository can be added in addition to the one above with:

sudo apt-add-repository https://restricted:[email protected]/ubuntu/restricted

Obviously, PASSWORD will not be published here, request it from [email protected] if you believe you should have it. Also, please not you need to have apt-transport-https installed beforehand, e.g. by sudo apt-get install apt-transport-https.

Installing packages

  • install any packages you want using sudo apt-get install <pkg-name>
  • If you have some workspace with code of ROS packages, this command will install all required dependencies (ONLY IF you have enabled rosdep as indicated below ).

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


Developing in the L-CAS environment

We assume the previous steps of installing packages to have completed successfully here. The following is for anyone developing (hacking, compiling, debugging, testing,...) software in L-CAS. To all rosdep to automatically resolve package names etc a few more configurations are necessary. Again, if you have run the batch installer, then this is already done for you.

One time setup on a computer (by sys admin)

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

  1. Initialise the rosdep system globally: sudo rosdep init
  2. overwrite with L-CAS dependencies:
    sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://raw.githubusercontent.com/LCAS/rosdistro/master/rosdep/sources.list.d/20-default.list
    sudo curl -o /etc/ros/rosdep/sources.list.d/50-lcas.list https://raw.githubusercontent.com/LCAS/rosdistro/master/rosdep/sources.list.d/50-lcas.list
    

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

The ROS index plays a vital role in any ROS system. L-CAS uses its own ROS distro configuration, which is the central configuration place listing all packages available for a ROS distribution. Our L-CAS fork 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 L-CAS' own ROS index! Put the following in ~/.config/rosdistro/config.yaml:

    index_url: https://raw.github.com/lcas/rosdistro/master/index.yaml
    

    easy one-liner: mkdir -p ~/.config/rosdistro && echo "index_url: https://raw.github.com/lcas/rosdistro/master/index.yaml" >> ~/.config/rosdistro/config.yaml

  2. update your rosdep cache:rosdep update