Chico3
The black 17" Tsunami laptop, dubbed chico3, is used as an interface to control to the iCub robot and to launch demos.
Old information can be consulted at Chico3 laptop machine configuration/Archive.
Specifications
- processor: Intel Core 2 Duo (2 x P8600 @ 2.40 GHz)
- memory: 3GB
- graphics card: Nvidia GeForce 9600M GT with 512MB of memory
For full systems specifications, check http://www.tsunami.pt/ .
Current setup
chico3 currently runs Ubuntu 10.04 LTS Desktop 'Lucid Lynx', 64-bit.
Operating system installation
In general, follow the guidelines at VisLab machines configuration. Below are some special notes.
Operations after first boot
Extra operations performed after the standard guidelines:
- enabled Nvidia proprietary drivers (necessary to obtain a decent screen resolution)
- removed the package network-manager-gnome
Other operations performed
Network
- manually configured the internet connection (
/etc/network/interfaces
):
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.10.1.53 netmask 255.255.255.0 network 10.10.1.0 broadcast 10.10.1.255 gateway 10.10.1.254
- added the following lines to
/etc/hosts
, to enable running commands like:ping cortex1
(if we don't make this change, we can still easily access other machines, but with.visnet
attached at the end of their names, see VisLab network for details)
10.10.1.50 pc104 10.10.1.51 icubsrv 10.10.1.52 chico2 10.10.1.53 chico3 10.10.1.1 cortex1 10.10.1.2 cortex2 10.10.1.3 cortex3 10.10.1.4 cortex4 10.10.1.5 cortex5 10.10.1.41 icubbrain1 10.10.1.42 icubbrain2
- TODO: disable wifi (wlan0 and wmaster000 interfaces), for security and power consumption reasons
Additional packages
In addition to the standard packages listed on the VisLab machines configuration page, install these:
sudo apt-get install libncurses5-dev libgtk2.0-dev libgtkmm-2.4-dev libglademm-2.4-dev python-tk libqt3-mt-dev vlc
Environment variables
As of October 2011, the configuration is like the one mentioned in VisLab machines configuration, but with a different value for YARP_ROOT: /home/icub/YARP/yarp2.
TODO: fix it and check the following (ROOT and DIR seem swapped)
- Create a file called ~/.bash_env (used by non-interactive sessions, namely commands launched via yarprun from another machine) containing these lines:
export ICUB_DIR=/home/icub/iCub export ICUB_ROOT=$ICUB_DIR export YARP_DIR=/home/icub/YARP/yarp2 export YARP_ROOT=$YARP_DIR export PATH=$PATH:$ICUB_DIR/bin export PATH=$PATH:$YARP_DIR/bin export ICUB_ROBOTNAME=iCubLisboa01
Nvidia graphics card
- In order to have multi-screen external monitor support for beamers,
apt-get install nvidia-settings sudo nvidia-settings
In the 'X Server Display Configuration' menu, select the 'Separate X screen' configuration. Then, edit /etc/X11/xorg.conf
(make a backup first) by doing the following under Section 'ServerLayout': switch the Screen 0
with the Screen 1
strings.
Restart the xserver and enter nvidia-settings again, you will get some errors in the terminal because of the manual change, furthermore you will now see the correct screen numbering. To resolve the error in the configuration press "save X configuration file". Restart xserver, everything should be ok.
Additional software
YARP
- Type this from the homedir (/home/icub):
mkdir ~/YARP cd ~/YARP
- Then follow RobotCub software instructions to install the repository into
/home/icub/YARP/yarp2
- Proceed with the configuration and compilation:
ccmake .
Click 'c' when CMake starts, then enable:
COMPILE_NEW_YARPVIEW CREATE_DEVICE_LIBRARY_MODULES CREATE_GUIS CREATE_LIB_MATH
Click 'c' again, then choose
ENABLE_yarpmod_opencv_grabber
Click 'c' a couple of times more, until nothing happens when you do it. Now hit 'g': generate and quit.
make make test
- Enable YARP bash completion, so you don't have to type /extremely/long/port/names in the terminal: add the following line to
~/.bash_env
:
source $YARP_ROOT/scripts/yarp_completion
iCub
- Follow RobotCub software instructions to install the repository into
/home/icub/iCub
- Off we go with the configuration:
cd $ICUB_DIR ccmake $ICUB_ROOT/main c <-- whenever necessary
- Enable these modules:
BUILD_IN_DIR CREATE_GUIS_GTK CREATE_GUIS_GTKMM CREATE_GUIS_QT ENABLE_icubmod_cartesiancontrollerclient for Cartesian robotMotorGui ENABLE_icubmod_gazecontrollerclient
- And finally:
g make
Customization of this machine
Passwordless connection to other machines
- set up passwordless log-in to the Cortex computers:
#generate the public and private keys on this computer. enter empty strings when prompted for various answers. ssh-keygen #the cortex computers (ip addresses 10.10.1.1 to 10.10.1.5) share the same disk, so you need to do the set up only once.
#copy the public key you just generated to cortex1, on the user account you want to use there (e.g. icub). scp /home/icub/.ssh/id_rsa.pub icub@10.10.1.1: <-- be sure to write the colon ":" at the end #log in as 'icub' to cortex1 ssh 10.10.1.1 #add the public key to the authorized ones cat id_rsa.pub >> ~/.ssh/authorized_keys #remove the id_rsa.pub file and log out from cortex1. rm id_rsa.pub exit exit #log in again to each cortex computer, to check that the process worked and they don't prompt for a password.
- set up passwordless log-in to pc104
pc104 boots from a read-only medium, so you cannot modify permanently its authorized_keys file. pc104, though, mounts a part of icubsrv's hard-disk and then runs some scripts from there (see the pc104 page for reference).
#copy the usual public key to the icubsrv (laptop) scp id_rsa.pub icub@10.10.1.51: #ssh to icubsrv ssh icub@10.10.1.51 #add the key to the authorized ones cat id_rsa.pub >> /exports/code-pc104/pc104/hooks/keys/authorized_keys #rm the id_rsa.pub file rm id_rsa.pub
PC104 authentication caveat
For pc104 it might be necessary to add a StrictHostKeyChecking=no option argument to ssh (because there are different incompatible keys depending on the pc104 hardware setup, i.e., with or without pen):
gnome-terminal --window-with-profile=pc104 -e "ssh -o StrictHostKeyChecking=no icub@10.10.1.50 -X"
Customization of GNOME
We used the same buttons that we put on Chico2. We copied the files by typing this on chico2:
scp ~/Pictures/* chico3:/home/icub/Pictures
and then we manually added the buttons one by one on the top toolbar of chico3.
Adding a new terminal button
Example for the button to open the gnome-terminal on cortex1:
- right click on the panel and select "add to panel"
- select "custom application launcher"
- click on the icon and select the directory where your icons are, typically ~/Pictures/
- click on open, then select the picture for this particular button
- write this in the "command" field:
gnome-terminal --window-with-profile=cortex -e "ssh icub@10.10.1.1 -X"
- set the name to something like: ssh icub@cortex1
Note about gnome-terminal profiles: the profile we have specified specified (--window-with-profile=cortex) does not exist by default, we need to create it. These profiles are used to give terminals on different machines different colors (e.g., all terminals running in a cortex computer will be blue, terminals local to chico2 will be white, etc.). To create the "cortex" profile do this:
- open a terminal on, say, cortex1
- click on File, select "new profile" and name it "cortex", then choose the colors
- cortex windows usually are blue background with white text, while pc104 windows are yellow with black text.
Nautilus buttons
For the buttons that start the file manager Nautilus on pc104 and on cortex (once again, all cortex computers share the same disk, so you need only one button for them) you should use these lines of code:
nautilus sftp://icub@10.10.1.50/home/icub/ nautilus sftp://icub@10.10.1.1/home/icub
After you are done browsing a remote machine disk with Nautilus, don't forget to unmount the volume (right-click the relevant icon on the desktop).
Desktop background
Last but not least, you can change the default Ubuntu desktop background to something fancier: