ICub laptop

From ISRWiki
Jump to navigation Jump to search

This laptop is used to control the iCub robot.

Toshiba Qosmio X70 17" iCub laptop.

Note: this laptop replaces Chico3, which was used during 2009-2014.

Specifications

  • processor: 4 x i7-4700MQ @ 2.40-3.40 GHz
  • memory: 32GB
  • graphics card: Nvidia GeForce GTX 770M (compute capability 3.0) with 3072MB of memory; onboard card HD 4600

Setup

Ubuntu LTS Desktop, 64-bit. Computer name: icub-laptop.

Operating system installation

In the Windows 8 preferences, configure the power button to really turn off the machine (as opposed to suspend). In the BIOS, activate CSM instead of UEFI. Now it is possible to boot from a Linux DVD.

Network

See also iCub machines configuration#Network_configuration.

address 10.10.1.53
netmask 255.255.255.0
gateway 10.10.1.254
dns 10.0.0.1, 10.0.0.2

NFS

NFS server configuration: the volumes must be defined in /etc/exports as follows.

/exports/code          10.10.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)
/exports/local_yarp    10.10.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)

NFS client configuration: the shared volumes are defined in /etc/fstab as follows.

10.10.1.53:/exports/code        /usr/local/src/robot            nfs    _netdev,auto,hard,intr,nfsvers=3     0    0
10.10.1.53:/exports/local_yarp  /home/icub/.local/share/yarp    nfs    _netdev,auto,hard,intr,nfsvers=3     0    0

Notes about the NFS client configuration:

  1. we specify the IP address of the server rather than its name: for example, 10.10.1.53:/exports/code rather than icub-laptop:/exports/code
  2. we enforce NFSv3 to fix a problem related to automatic mounting on boot

Successful mounting on client machines shows something link this (where 10.10.1.x is the client IP):

$ mount
...
icub-laptop:/exports/code on /usr/local/src/robot type nfs4  
 (rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.10.1.x,minorversion=0,
 local_lock=none,addr=10.10.1.53,_netdev)
icub-laptop:/exports/local_yarp on /home/icub/.local/share/yarp type nfs4
 (rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.10.1.x,minorversion=0,
 local_lock=none,addr=10.10.1.53,_netdev)

If automatic mounting at boot time fails, mount the volumes manually:

sudo mount /usr/local/src/robot
sudo mount /home/icub/.local/share/yarp
# the above commands use settings from /etc/fstab and are equivalent to:
# sudo mount icub-laptop:/exports/code        /usr/local/src/robot           -t nfs   -o _netdev,auto,hard,intr
# sudo mount icub-laptop:/exports/local_yarp  /home/icub/.local/share/yarp   -t nfs   -o _netdev,auto,hard,intr

Open issues

  • brightness: fn+F2 does not work, fn+F3 does not work and hibernates the machine
  • shutdown does not work

NFS:

  • we can log onto other machines only when NFS volumes have been successfully mounted (when icub-laptop is up) - insert a robust mechanism (e.g. timeout) to let us log anytime

Customization

Passwordless connections

First, generate a key as follows. You only need to it once; use default choices:

ssh-keygen -t rsa

Then, copy the key to each machine you want to connect to, e.g., for pc104 do the following:

ssh-copy-id -i /home/icub/.ssh/id_rsa.pub icub@pc104

Launcher icons

Bash script icons

To create a launcher on the desktop, create a file with a .sh extension, make it executable and edit the content like this:

#!/bin/bash
source ~/.bash_iCubrc
icub-cluster.py vislab-cluster.xml // <- customize this line with the command and arguments
exec /bin/bash

GNOME Panel icons

Note: as of Feb. 2015 this method is broken due to this bug in GNOME.

Install gnome-panel then use gnome-desktop-item-edit to create/edit launcher icons on the Desktop.

For example, to create a launcher for icub-cluster.py, do

gnome-desktop-item-edit ~/Desktop/cluster-manager.desktop

and select:

Type: Application // <-- runs the command without showing any terminal; use "Application in Terminal" to show it
Name: icub-cluster // <-- put your preferred icon name here
Command: icub-cluster.py vislab-cluster.xml
Comment: Launch iCub cluster manager (yarpserver and yarprun)

More information and troubleshooting:

See also