How to install ROS Jade on Ubunty Wily

Posted in linux ros with tags linux ros howto -

ROS (The Robotic Operating System) is a middleware often use in … Robotics. ROS’ latest version (Jade) only supports Ubuntu 14.04, 14.10 and 15.04 but I’m using Ubuntu 15.10 and I want to use it. Let see how we can fix this

Before getting ours hands dirty, there are several alternatives you need to consider.

  • Use a virtual machine to run an old version of Ubuntu and follow the official guides.
  • Wait ! The upcomming ROS version will be released in May (usually a month after Ubuntu’s release) and it will support Ubuntu 16.04. So wait a couple of months.

If you can’t wait and can’t use a virtual machine, then read on and be ready to have your hands dirty.

We will create a fake 15.04 Vivid environnement using a chroot. Creating a chroot will requiere you to be root on your compuuter. Or at least to be able to install software.

Many commands will be executed in the chrooted environnement, thses commands are prefixed by a @ and by @@ if they need root privilegies. Root chrooted commands will requiere you to run sudo schroot -c jade_vivid whereas a simple schroot -c jade_vivid will be for the others.

# Chroot from taht link
# http://answers.ros.org/question/220064/ros-on-ubuntu-wily/

sudo apt-get install debootstrap schroot

Edit the following file

sudo nano /etc/schroot/chroot.d/jade_vivid.conf

to put inside and remember to put your username

[jade_vivid]
description=Ubuntu 15.10 and ROS Jade
directory=/srv/chroot/jade_vivid
root-groups=root
type=directory
users=**YOUR_USERNAME**
personality=linux
preserve-environment=true

The following lines will create the folders and the chroot environment

# Create the chroot environment
sudo mkdir -p /srv/chroot/jade_vivid
sudo debootstrap --variant=buildd --arch=amd64 vivid /srv/chroot/jade_vivid http://archive.ubuntu.com/ubuntu/

You should be able to see it with

schroot -l

Become root in the schroot environment and install git and vim inside

@@ apt install sudo vim git

Then we install in the chrooted environment several packages that ROS needs.

# Configure APT for fetching some ROS packages
# From http://wiki.ros.org/jade/Installation/Ubuntu#jade.2BAC8-Installation.2BAC8-Sources.Setup_your_sources.list

@@ sh -c 'echo "deb http://packages.ros.org/ros/ubuntu vivid main" > /etc/apt/sources.list.d/ros-latest.list'
@@ apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-key 0xB01FA116
@@ apt update ; apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential

The page uses lsb_release -sc which did not work in my chroot environment so I replaced it manually by vivid.

Then we will follow the usual procedure.

Run as chrooted root

@@ rosdep init

and once it is over, as a chrooted normal user :

@ rosdep update
@ mkdir ~/ros_catkin_ws
@ cd ~/ros_catkin_ws
@ rosdep install --from-paths src --ggignore-src --rosdistro jade -y 

The latest command will install many packages through sudo apt install XX. If you need to set the http_proxy variable on your computer, you will need to run visudo and replace the line Defaults env_resetby Defaults env_keep = "http_proxy ftp_proxy", otherwise apt will not be able to retrieve the packages.

Then you can run the last commands

@ rosinstall_generator desktop --rosdistro jade --deps --wet-only --tar > jade-desktop-wet.rosinstall
@ wstool init -j8 src jade-desktop-wet.rosinstall
@ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Releas

You can test your install by sourcing the file and running a ROS core

@ source ~/ros_catkin_ws/install_isolated/setup.bash
@ roscore

Hope it helps !

Written by Davidbrcz