UPMC iCub project/MACSi cluster
30/05/2013: Cluster upgrade - the cluster machines are upgraded from Ubuntu 10.04 to Ubuntu 12.04 LTD
ICUB-GATEWAY is the server-gateway pc used to manage the cluster and the iCub@ISIR network. The following machines are available
10.0.0.254 : icub-gateway 10.0.0.1 : icubsrv 10.0.0.2 : pc104 10.0.0.11 : macsi01 10.0.0.12 : macsi02 10.0.0.13 : macsi03 10.0.0.14 : 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).
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).
You can access the pc1404 code here
Generally, icubsrv hosts the yarp server (10.0.0.1 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: /home/icub/software 10.0.0.0/24 /exports 10.0.0.0/24
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
cd sudo nano .bashrc
by adding these few lines
# iCub software if [ -f /home/icub/software/bashrc_icub ]; then . /home/icub/software/bashrc_icub fi
or simply this line
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 /home/icub/software/src/yarp2/build icub@macsi02:~$ echo $ICUB_DIR /home/icub/software/src/iCub/main/build
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.
- 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
When icubsrv is down (note: this causes disconnections of the shared folders on the machines!), proceed with the 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:
When everything is ok, restart icubsrv
xm create /etc/xen/icubsrv.cfg