Innovation Days 2009
In this page we will explain how to take good care of Chico during the Innovation Days 2009 exhibition that takes place in the Feira Internacional de Lisboa from 18 to 20 June 2009.
Setup
The demo inventory consists of:
machine | notes | IP address, username |
---|---|---|
Chico the robot (duh) | has a pc104 CPU in its head | 10.10.1.50, icub |
icubsrv Dell XPS laptop | don't worry about this machine, just keep it switched on. It contains a hard disk that gets mounted by Chico's read-only CPU at boot time | 10.10.1.51, icub |
chico3 Tsunami 17" laptop | we will use this machine for YARP and all demo management | 10.10.1.53, icub |
Below Chico's table, from top to bottom we have:
what | notes | IP address, username |
---|---|---|
iCubBrain chassis | contains two servers used for computation | 10.10.1.41 (icubbrain1), 10.10.1.42 (icubbrain2), icub |
Xantrex XFR 35-35 | thin power supply unit, to power pc104 and some motors | - |
Xantrex XFR 60-46 | thick power supply unit, to power most motors | - |
APC UPS | Uninterruptible power supply | - |
Starting YARP components
Launch the graphical Cluster Manager application on the chico3 laptop, by typing this in a terminal:
cd $ICUB_ROOT/app/default/scripts ./icub-cluster.py $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/vislab-cluster.xml
yarpserver
Click 'Run' to start yarpserver on chico3. The light above the 'Stop' button will become green.
yarprun
Now we are ready to start 'yarprun' on all the machines we need (necessary for the distributed YARP modules that make up a demo to communicate with one another). In the 'Select' column, make sure that only the following machines are selected with a red light:
- chico3
- pc104
- icubbrain1
Click 'Run Selected' and wait a bit so that all machines can turn on their green 'On' light. The pc104 can be slow and, sometimes, unpredictable.
Do all the selected machines have their 'On/Off' switch green by now? If so, proceed to the next step. If not, click on 'Check All' and see if we have a green light from the pc104 now. You should see something like this:
Other components
Cameras
Open a chico3 console and type:
cd $ICUB_ROOT/app/default/scripts ./cameras start
Sometimes we need to manually establish these connections in order for images to display:
yarp connect /icub/cam/right /icub/view/right yarp connect /icub/cam/left /icub/view/left
To turn off the cameras:
./cameras stop
To change the size of images:
nano -w $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/config.sh
[CHECK THIS]
iCubInterface
This program controls all of Chico hardware (except the cameras). In practice, all demos assume that iCubInterface is already running in the background.
To start iCubInterface, unlock the red button switch and type this on a pc104 console:
iCubInterface --config $ICUB_ROOT/app/iCubLisboa01/conf/icubSafe.ini
and wait for all boards to answer (which takes around 1 minute); after that, you are ready to move on.
To stop iCubInterface, type ctrl+c once. Chico will thus move its limbs and head to a "parking" position. (If things don't quit gracefully, hit ctrl+c more times and be ready to hold Chico's forehead since the head may fall to the front.)
Before every demo
- Turn on icubsrv (Dell XPS laptop)
- Turn on chico3 (Tsunami 17" laptop), which we will use to actually control the demos
- Turn on the Chico's Xantrex power supply units
- Turn on the green switches behind Chico
- Start the needed YARP components with the GUI: one instance of yarpserver and all necessary instances of yarprun, one per machine
Yoga demo
- Run #iCubInterface on the pc104
- On any machine, type:
iCubDemoY3 --config /app/demoy3/fullBody.txt
Facial expressions demo
- Start the facial expression driver on the pc104:
cd $ICUB_DIR/app/faceExpressions/scripts ./emotions.sh $ICUB_DIR/app/iCubLisboa01/conf
- Start the facial expression demo by typing one of these two commands on any machine:
$ICUB_DIR/app/faceExpressions/scripts/cycle.sh
or
yarp rpc /icub/face/emotions/in set all hap // full face happy set all sad // full face sad set all ang // full face angry set all neu // full face neutral set mou sur // mouth surprised set eli evi // eyelids evil set leb shy // left eyebrow shy set reb cun // right eyebrow cunning set all ta1 // mouth talking position 1 (mouth closed) set all ta2 // mouth talking position 2 (mouth open)
Ball following demo
This demo uses the left eye and the right arm of Chico. Assumption: left eye is running at a resolution of 320x240 pixels.
- Make sure cameras are running
- Make sure iCubInterface is running
- Run image rectifier on icubbrain1
cd 0.icub_3D_ball_tracker ./0.LEFT_320x240_image_rectifier.sh
- Set left camera colour parameters and run tracker [ON icubbrain2?]
cd 0.icub_3D_ball_tracker ./1.LEFT320x240.iCub_set_parameters_of_framegrabber_REALISTIC.sh ./2.execute_the_tracker.sh
- Start a viewer on chico3
yarpview /viewer
- Run expression module on icubbrain1 [CHECK THIS]
cd 0.icub_3D_ball_tracker ./3.execute_trackerExpressions.sh
- Run arm inverse kinematics module on icubbrain1
cd iCub/bin ./iKinArmCtrl --onlyXYZ
- Connect all ports from icubbrain1. Careful: the robot will start moving after this step!
cd 0.icub_3D_ball_tracker ./4.LEFT.iCub_connect_ports.sh ./6.connect_LeftEyeToRoot.sh
- [OPTIONAL] Read the 3D position of the ball in the root reference frame (from any machine)
yarp read ... /icub/LeftEyeToRoot/ballPositionOut
Pausing the Ball Following demo
You can do this by disconnecting two ports (and connecting them again when you want to resume the demo).
Note that this will only stop the positions from being sent to the inverse kinematics module (and thus, almost always, it will stop the robot). The rest of the processes (e.g., the tracker) will keep running.
- Pause (from any machine)
yarp disconnect /icub/LeftEyeToRoot/ballPositionOut /iKinArmCtrl/right_arm/xd:i
- Resume (from any machine)
yarp connect /icub/LeftEyeToRoot/ballPositionOut /iKinArmCtrl/right_arm/xd:i
Quitting the Ball Following demo
- On icubbrain1, disconnect all ports. Careful: this will stop the robot.
cd 0.icub_3D_ball_tracker ./7.disconnect_all.sh
- Quit/Kill the processes of the demo, in any order.