2017/10/30:Interactive ROS Indigo environment with Docker (1)

Indigo? Kinetic?

ROS will continue to be newly released. The latest version is Lunar Loggerhead (Lunar) and the previous, Kinetic Kame (Kinetic) and  Jade Turtle (Jade). Traditionally, they named after turtles.

However, I think still many people are actually using the previous version Indigo Igloo (Indigo). There are many Indigo packages that have not yet been released in Kinetic. For the same reason, even TORK is currently using the Indigo in our workshop materials and contract development .

Indigo is based on Ubuntu14.04 while Kinetic and Lunar is based on Ubuntu16.04 or later. We feel a bit outdated to install Ubuntu14.04 into our PC only in order to use the Indigo.

It could be a solution to use virtual machine (VM), such as VMWare or VirtualBox.  However, it can be a problem when you try to use the hardware. For example, there are often device driver problem such as graphics performance, USB camera compatibility, not compatible with USB3.0 and so forth.

Docker can be the remedy for this issue. You can work easily in the interactive Indigo development environment using devices and GUI while you installed the Ubuntu16.04 on your PC. 

Installation of Docker

First install Docker. Let’s install the latest version according to the instructions in the pages of the Docker. Use of that Community Edition (CE). 

Preparation of Indigo of Docker image

OSRF prepares the Docker container of Indigo on DockerHub.

Get the Indigo of the container with the following command.

$ docker pull osrf/trusty-ros-indigo:desktop

By the way, TORK also publishes the Indigo Docker container. It contains additional packages for the TORK workshops, Nextage Open and other useful tools. You may also find it here.

For example, if you want to check the version by the command ‘lsb_release’, 

$ docker run osrf/trusty-ros-indigo:desktop lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04
LTSRelease: 14.04
Codename: trusty

User permissions of execution will be root by default. To change the user rights and the access rights to the devices, you need to set the options at the time of the separate docker run. For more information around here, Please refer to Docker Run Reference.

Interactive start-up that share user and home directory

Here we want to run the shell with their own user rights, and to work interactively in the home directory. We created a script to do some of the settings that are required for that.

$ ./docker_shell osrf/trusty-ros-indigo:desktop

After that, you are on the shell as if it’s OS has become Trusty + ROS Indigo.

$. /opt/ros/indigo/setup.bash

You can use the shell like normal Indigo environment. You must be careful the home directory is shared. If you are using the Kinetic in the base system, you can easily get confused whether your workspace is for Kinetic or Indigo.

If you are using the NVidia driver

If the PC is not using a special X graphics driver, you can also use GUI, such as rviz. But if the PC is using the NVidia driver, it does not work apps, including OpenGL, such as rviz. This solution will introduce the next time.