Skip to content
Marc Hanheide edited this page Feb 29, 2024 · 46 revisions

The L-CAS Ubuntu/ROS software distribution

The L-CAS build farm generates and provides Ubuntu packages for Ubuntu, usually for 64 bit AMD 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

Current Structure of the Repository

The L-CAS repository needs to be enabled on your machine to install our software in the most easy way. There is an easy batch install that carries out all steps on a freshly installed Ubuntu computer, or the full manual install. Both steps don't really install any of our software (just enable the repositories), but allow you to then easily install our packages.

batch install (e.g. on a fresh computer)

The main target platform is Ubuntu 22.04LTS ("jammy") with ROS2 humble.

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

  • add ROS2 repositories (and install the ros-base
  • enable our L-CAS repositories (so that our released packages can be installed easily)
  • enable CUDA repositotories, so that such dependencies can be resolves.
  • enable docker repository, to ease installation of docker where needed
  • enable gazebo repository
  • setup rosdep for L-CAS dependencies and set the ROSDISTRO_INDEX_URL to our L-CAS one

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-ros2.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 ! Currently we support Ubuntu 22.04 (ROS humble).

  2. Enable the generic ROS repositories: Details to be found under 1. Installation at https://docs.ros.org/en/humble/Installation.html, but here the gist of it:

    sudo apt install software-properties-common
    sudo add-apt-repository universe
    sudo apt update && sudo apt install curl -y
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
    
  3. Enable the L-CAS public repositories:

    sudo sh -c 'echo "deb https://lcas.lincoln.ac.uk/apt/lcas $(lsb_release -sc) lcas" > /etc/apt/sources.list.d/lcas-latest.list' 
    curl -s https://lcas.lincoln.ac.uk/apt/repo_signing.gpg | sudo apt-key add -
    
  4. update your index:

    sudo apt-get update

  5. configure L-CAS rosdep:

    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
      
    3. rosdep update

restricted repositories

to be added

Installing packages

  • install any packages you want using sudo apt-get install <pkg-name>
  • If you have some workspace with code of ROS packages, the following command will install all required dependencies (ONLY IF you have enabled rosdep as indicated below). This command recursively finds all package.xml in your current source tree, starting from ., and installs the corresponding apt packages:
    rosdep update && rosdep install --from-paths . -i -y
    
    This will call apt install with sudo. If the package.xml in the source tree correctly declared all dependencies then after this command you have everything installed to compile that package.

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 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