Chico head

From ISRWiki
Revision as of 20:05, 24 March 2014 by Mtaiana (talk | contribs) (→‎Demos)
Jump to navigation Jump to search

Basic info

Chico head.


The storage memory of Chico head is a USB stick. There are 2 images (~4GB each) for that data on Blackhole:

 smb://blackhole/Database/CHICO_HEAD/CHICO_BACKUP_image1.7-oc.bin
 smb://blackhole/Database/CHICO_HEAD/CHICO_HEAD_BACKUP_image1.8_2014_02_10.bin

The second image is more recent and features some improvements respect to the first one.
An image can be dumped on a new USB stick with the "dd" command:

 sudo dd bs=4096 if=CHICO_HEAD_BACKUP_image1.8_2014_02_10.bin of=/dev/sdXXXXX

Specify the correct sd device istead of sdXXXXX (sdb, sdc or the like). Pay attention not to overwrite the wrong disk! DD doesn't give you progress information while it's running, you can make it write such information on the screen by sending it a special message:

  sudo kill -USR1 $(pgrep ^dd)

Before removing the USB stick, run sync to ensure that all data has been written:

 sync

People who know about the image are Matteo, Ricardo Ferreira and Alex.

In case you improve the content of the USB stick and want to make a new image of it, you can use a command like this:

 sudo dd if=/dev/sdXXXXX1 of=/home/matteo/sdXXXXX1.bin

readme.txt

The remaining of this page is the content of the readme.txt file in the home directory of Chico head (That file is not updated, it was generated on Feb. 6 2014):

Log in: like the one for the iCub

Demos

To start the X server: startx (or startxfce4)

When you are in the X interface you can open terminals and start the various processes from there.

  • Scripts 1 and 2 start the YARP server and the iCubInterface (used for moving the robot).
  • Scripts 3_1..3_3 start the right camera, start a viewer and connect the two.
  • Scripts 4_1..4_4 start the emotion system and cycle emotions in a fixed sequence.
  • Script 6 moves the head and the eyes in a fixed sequence.

All of this was running together smoothly on Feb. 6 2014.
On Mar. 21 2014 the facial expression system was not working at all. The YARP driver could not be initialized and the board emitted a weird sound when approached with a finger. Once the associated USB port was disconnected, the delays in accessing the USB stick greatly reduced. It is possible that the broken board was contributing to the known USB problems by jamming the USB system.
The board was substituted on Mar. 24 2014 and is now working smoothly. While we were at it, we also fixed the lower eyelid which was loose.

Known problems

  • The ethernet adapter on the bottom of the robot does not work.
  • Turning on the robot with a cable plugged into the ethernet connector in the head of the robot gets the system stuck. You can plug the cable in after boot and initialize the ethernet connection with: sudo dhclient eth0.
  • Sometimes the iCubInterface gets stuck because it stops being able to communicate with some of the boards. It happened once on Mar. 21 2014 while the head seemed to be the limit of one of the joints. That joint was not actuated any more, while the others remained actuated. A similar problems seems to be happening on Vizzie.

Click on the image to see the high resolution version.

  • Something can block one application (typically the terminal and gedit) for 10..20 seconds. (This might have been caused by a malfunctioning board for the facial expressions. The problem is being investigated.)
 The freezing seems to be triggered both by some disk read and write operations.
 The system is still responsive, the affected application freezes, other applications can also freeze at that time if they need to access the disk (I suppose).
 It doesn't give problems to the demos once they have been started.
  • It is common to get this USB-related error at boot time:
 >>USB 3-2: device descriptor read/64, error -71
 >>device not accepting address 4, error -71
 >>device not accepting address 5, error -71

After which the system booted normally. It seems to happen every time that the USB connector for the facial expression is connected to the board. It might mean that the USB connectors as a whole are requiring too much current. Even if the system is started and run without the facial expression connector plugged in, the system still freezes.

USB pen drive test

  • I ran hdparm 4 times and got these results (with low variation):
 $ sudo hdparm -tT /dev/sda
   /dev/sda:
   Timing cached reads:   5390 MB in  2.00 seconds = 2697.28 MB/sec
   Timing buffered disk reads:   74 MB in  3.05 seconds =  24.27 MB/sec
  • I tried to run "bonnie", but it didn't work.
 sudo bonnie -u1000
  • I used iostat, I did an "ls" after the first measurement

$iostat -dkx 5 (displays measures every 5 seconds)

 Device:           rrqm/s   wrqm/s r/s   w/s     rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
 sda               0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
 sda               0.00    13.39  0.00  0.81     0.00    56.80   140.00     0.01    9.00   4.00   0.32
 sda               0.00     3.69  0.00  0.65     0.00     2.60     8.00     8.27 1216.00 716.00  46.59
 sda               0.00     2.72  0.00  3.09     0.00    24.68    16.00    15.81 2809.18 294.12  90.74
 sda               0.00     0.00  0.00  1.00     0.00     4.80     9.60    32.69 4841.60 1000.00 100.00
 sda               0.00     0.00  0.00  2.20     0.00    11.18    10.18    25.63 10185.82 454.55  99.80
 sda               0.00     0.00  0.00  2.19     0.00    17.53    16.00    12.01 13870.91 454.55  99.60
 sda               0.00     0.00  0.00  1.00     0.00     4.00     8.00     5.96 20111.20 1000.00 100.00
 sda               0.00     0.20  0.00  1.00     0.00     4.78     9.60     0.45 13737.60 152.00  15.14
 sda               0.00     0.40  0.00  0.40     0.00     3.20    16.00     0.00    0.00   0.00   0.00

svctm = service time in milliseconds (not including the time spent in queue. await = service time including waiting in queue. it peaks at 20 seconds!

Little data is written, almost no data is read. Lots of time is spent in queue... Why? Could it be that the USB pen is "asleep" and needs to be woken up?

Wishlist

  • Once the face detector+gaze demo was working on this platform. Maybe it could be restored with little effort.

Improvements since previous bootable image

  • The demos work out of the box.
  • The keyboard layout is Portuguese both for the real terminals and the X session.
  • The browser doesn't write cache to the disk (freezing at almost every click)
  • The sources lists have been updated, so more packages can be installed.
  • Added the readme file