UPMC iCub project/MACSi cluster

From Wiki for iCub and Friends
Revision as of 16:19, 26 June 2013 by Arwen (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Latest news/updates

30/05/2013: Cluster upgrade - the cluster machines are upgraded from Ubuntu 10.04 to Ubuntu 12.04 LTD

General description

the network of iCubParis01

Network configuration

ICUB-GATEWAY is the server-gateway pc used to manage the cluster and the iCub@ISIR network. The following machines are available     : icub-gateway       : icubsrv       : pc104      : macsi01      : macsi02      : macsi03      : macsi04

The pc104 is on the robot, whereas icubsrv is a Ubuntu 12.04 (was 10.04 before the upgrade) server, sharing /icub/home/software and /exports. Dynamic IPs range from 150 to 160. Special static IPs can be set (ask the administrator = Serena).

Shared iCub home

You can access the precompiled iCub software by downloading the shared folder


using nfs. The folder has /lib, /share and /bin, containing yarp, icub and icub_isir applications and modules, and /src folder with the source code of all libraries. A bashrc_icub file is also provided, so you can add the environmental variables you need in your bashrc. All the computers of the cluster in the iCubParis01 network mount the same home directory from the server, so that the code is consistent everywhere. All computers being Ubuntu 12.04 (10.04 before), they mount the shared icub software folder in their /home/icub/software folder (note that Ubuntu users in their home also have pictures, videos etc).

Shared pc104 code

You can access the pc1404 code here



Generally, icubsrv hosts the yarp server ( 10000) and the namespace is /iCubParis01.


Generally, ros master (launched through roscore) is on macsi01.

  • ROS version: fuerte (may-2012), electric (june-2012), groovy (may-2013)

Important notice for ROS users In order to install ROS, the configuration of macsi01 is different with respect to the other machines of the cluster. Precisely, we had to uninstall the previous versions of libeigen3-dev and pcl* libraries in order to install the ones which ROS require (which are differently listed in apt lists). For more details, see what we did to install ROS.


Matlab is installed on macsi04. This installation requires the compilation of swig for YARP, and few tricks.

How to load iCub home into your computer

Hereinafter, we assume you have a freshly installed Ubuntu 12.04 LTD x64, with a user named 'icub', in the iCubParis01 network.

The following instructions were written for Ubuntu 10.04 LTD x64, they should be valuable for other versions as well: if not, and you encounter problems, please ask Serena Ivaldi for assistance.

You may start with getting ssh

  sudo apt-get install ssh openssh-server

In order to mount its shared software folder, you must download (if you don't have it already) nfs:

  sudo apt-get install nfs-common

you can now check if you can see the shared folders, for example you can use showmount and if everything is properly configured (i.e. you are within the iCubParis01 network) you should see something like this:

  icub@macsi02:~$ showmount -e icubsrv
  Export list for icubsrv:

All the computers in the cluster mount the shared folder in /home/icub/software. We recommend to mount it in the home folder of your icub user, so you don't have to modify the bashrc file we provide and recompile all the code. If you mount the shared folder in the icub's home directory, edit /etc/fstab

  sudo nano /etc/fstab

and add this line at the bottom

  icubsrv:/home/icub/software /home/icub/software nfs rw,intr,rsize=8192,wsize=8192 0 0

save and mount:

  sudo mount -a


  • Note 1: If you modify something in this folder, changes will reflect everywhere! So please, use this configuration only for new nodes in the cluster, and not for testing your code.
  • Note 2: The code is continuously updated and compiled in icubsrv, so if you modify something and do not commit changes (using svn), you will loose everything at the following automatic update+recompile.

How to run iCub apps from your computer

Hereinafter, we assume you have a freshly installed Ubuntu 10.04 LTD x64, with a user named 'icub', and that you are correctly mounting /home/icub/software as explained in the previous section. Now you can modify your .bashrc file

  sudo nano .bashrc

by adding these few lines

  # iCub software
  if [ -f /home/icub/software/bashrc_icub ]; then
      . /home/icub/software/bashrc_icub

or simply this line

  source ~/software/bashrc_icub

These will automatically load the correct variables you need to run yarp and iCub modules and applications.

Important! To avoid known issues with yarprun, if you intend to use the application GUIs to launch your programs (avoiding to launch each app with the command line) do not include these lines 'anywhere' in the .bashrc, but before the [-z "$PS1"] && return line, which is usually at the beginning of the .bashrc file. As an example, you should have:

  # load icub environment vars even in non-interactive mode
  # this is a bug-correction for yarprun
  source ~/software/bashrc_icub
  # If not running interactively, don't do anything
  [ -z "$PS1" ] && return

To check if everything works, reload the terminal, and echo some variables, for example:

  icub@macsi02:~$ echo $YARP_DIR
  icub@macsi02:~$ echo $ICUB_DIR

In /home/icub/software/src you can find yarp2, iCub, iCub_ISIR and some precompiled libraries:

The other libraries listed in the manual are missing, so you have to install them via apt-get

  sudo apt-get update
  sudo apt-get -y install < LIBRARIES >

This list of libraries is in continuous growth and update: please refer to UPMC iCub project/libraries to get the complete list with the apt-get commands. Now you can run yarp and iCub modules.

If you need to run also iCub_ISIR code and MACSi code, you will need additional libraries, which are located in /home/icub/software/src:

Important: to use CUDA, you have to install the drivers for your graphics card. In /home/icub/software/src you can find the linux drivers compatible with the CUDA version we provide. In some cases, if you have "nouveau" drivers installed (by default in Ubuntu), there could be problems in installing Nvidia dev-drivers directly; it is suggested to install Nvidia proprietary drivers first, and then the dev-drivers we provide.

Misc tips

  • A quick link to pc104: create first a terminal profile named 'pc104', graphically different from the default (so running pc104 can be easily recognized) then add a link on the panel with
  gnome-terminal --window-with-profile=pc104 -e "ssh -X pc104"
  • Setting the yarp server:
  yarp namespace /iCubParis01
  yarp detect --write
  • Remote password-less ssh: a very nice guide here
  • How to remove Unity in 12.04 and restore Gnome
  sudo apt-get install gnome-session-fallback

then logout from your session, log in selecting gnome. For more, have a look here.

Installation information (administrators only)


icub-gateway is a Debian stable, with only root as account

  Linux ICUB-GATEWAY 2.6.32-5-xen-amd64

Update Debian (may 2013)

Connect to icub-gateway (as root), stop icubsrv before doing any update: since it is a virtual machine on xen, do:

  xm shutdown icubsrv

Verify that the machine has been shutted down properly by looking at the list of virtual machines

  xm list

When icubsrv is down (note: this causes disconnections of the shared folders on the machines!), proceed with the update:

  apt-get update

this adds the new apt-get functionality to verify the authenticity of the Debian servers, as explained here. Hence do

  gpg --keyserver pgpkeys.mit.edu --recv-key  ***************
  gpg -a --export *************** | apt-key add -

where *************** is the public key ID which is provided by apt-get during the update. Then do:

  apt-get upgrade

When everything is ok, restart icubsrv

  xm create /etc/xen/icubsrv.cfg