|
|
(29 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| In this page we explain how we took care of Chico during the [http://www.innovationdays.eu Innovation Days 2009] exhibition that occurred in the Feira Internacional de Lisboa from 18 to 20 June 2009. This is also a useful '''reference for Chico demos in general'''.
| | delete this page |
| | |
| == Setup ==
| |
| | |
| The demo inventory consists of:
| |
| | |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! 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 laptop machine configuration|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:
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! what
| |
| ! notes
| |
| ! IP address, username
| |
| |-
| |
| | '''[[iCubBrain server configuration|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 Management in VisLab|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 several YARP modules distributed on different machines 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 (if it doesn't find the yarpserver, you will need to write the following line into yarp conf: 10.10.1.53 40000).
| |
| | |
| 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:
| |
| | |
| [[Image:Successful_cluster_mgr.png]]
| |
| | |
| == Other components ==
| |
| | |
| === Cameras ===
| |
| | |
| ''Note: for the old "./cameras start" method consult [[Innovation Days 2009/Archive]]. Following, we will only list the new method based on an Application Manager GUI and XML files.''
| |
| | |
| Open a chico3 console and type:
| |
| cd $ICUB_ROOT/app/default/scripts
| |
| ./manager.py $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/cameras_320x240.xml // ''or the other resolution''
| |
| | |
| === iCubInterface ===
| |
| | |
| This program controls all of Chico hardware (except 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 ==
| |
| | |
| * Check that the UPS is on
| |
| * Turn on icubsrv (Dell XPS laptop)
| |
| * Turn on chico3 (Tsunami 17" laptop), which we will use to actually control the demos
| |
| * Turn on the Xantrex power supply units
| |
| * Turn on the green switches behind Chico
| |
| ** Safety hint: first turn on the [[pc104]] CPU switch, wait for it to be alive and only then switch the motors on
| |
| ** Another safety hint: wait for the four purple lights on each board to turn off and become two blue lights – at this pointy you can start [[#iCubInterface | iCubInterface]]
| |
| * [http://mediawiki.isr.ist.utl.pt/wiki/Innovation_Days_2009#Starting_YARP_components Start the needed YARP components] with the GUI: one instance of yarpserver and all necessary instances of yarprun, one per machine
| |
| * Depending on which demo you want to execute, you will probably need to start [[#iCubInterface | iCubInterface]] and the [[#Cameras | cameras]] (this is explained below, in every demo subsection)
| |
| * Depending on your demo, you might need to power up icubbrain1 (left half of server chassis) and/or icubbrain2 (right half)
| |
| | |
| == Yoga demo ==
| |
| | |
| * Run [[#iCubInterface | iCubInterface]] on the pc104
| |
| * On any machine, type:
| |
| iCubDemoY3 --config /app/demoy3/fullBody.txt
| |
| | |
| == Facial expressions ==
| |
| | |
| * 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 sequences 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 tracking and reaching demo ==
| |
| | |
| ''Note: for the old (manual) method, see [[Innovation Days 2009/Archive]]. Here we report the new method based on the Application Manager GUI and an XML file.''
| |
| | |
| This demo uses the left eye and the right arm of Chico. Assumption: left eye is running at a resolution of 320x240 pixels. Attention: use '''icubbrain2''' (32bit) or any of the 32-bit Cortexes for this, unless specified differently.
| |
| | |
| These dependencies will be checked by the GUI:
| |
| * [[#Cameras | cameras]] are running
| |
| * [[#iCubInterface | iCubInterface]] is running
| |
| | |
| On chico3 type:
| |
| cd $ICUB_ROOT/app/default/scripts
| |
| ./manager.py $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/demoReach_IIT_ISR/scripts/isr/demoReach_IIT_ISR_RightHand.xml
| |
| | |
| Notes:
| |
| * there exists also an XML file for the left hand, and one which doesn't move any hand
| |
| * you still need to set the camera parameters somehow (''how?'').
| |
| | |
| === 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 ===
| |
| | |
| * Disconnect all ports. Careful: this will stop the robot.
| |
| cd 13.FIL
| |
| ./7.disconnect_all.sh
| |
| * Quit/Kill the processes of the demo, in any order.
| |
| | |
| == SIFT Object Detection and Tracking demo ==
| |
| | |
| Ignore this for now, as some libraries are not compiling.
| |
| ''[controlGaze2 COMPILATION TO BE FIXED ON THE SERVERS - PROBLEMS WITH EGOSPHERELIB_LIBRARIES and PREDICTORS_LIBRARIES]''
| |
| | |
| Assumptions:
| |
| * [[#Cameras | cameras]] are running
| |
| * [[#iCubInterface | iCubInterface]] is running at /icub/head (in order to read encoder values)
| |
| | |
| On any machine, run:
| |
| $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/controlGazeManual.sh
| |
| $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/attentionObjects/noEgoSetup/CalibBothStart.sh
| |
| | |
| On any machine (preferably one of the icubbrains, at this task is computationally heavy) type:
| |
| $ICUB_DIR/app/$ICUB_ROBOTNAME/scripts/attentionObjects/noEgoSetup/startSiftObjectRepresentation.sh
| |
| | |
| If you want to change the configuration, do:
| |
| nano -w $ICUB_DIR/app/$ICUB_ROBOTNAME/conf/icubEyes.ini
| |
| | |
| == Attention system demo ==
| |
| | |
| Assumptions:
| |
| * [[#Cameras | /icub/cam/right]] is running at 320x240 pixels
| |
| * [[#iCubInterface | iCubInterface]] is running at /icub/head
| |
| | |
| Please note: we will run all the modules of this demo on '''icubbrain1''' (64bit), unless specified differently.
| |
| | |
| Start the following module:
| |
| cd $ICUB_ROOT/app/attentionDistributed/scripts
| |
| ./camCalibRightManual.sh
| |
| | |
| Then:
| |
| cd $ICUB_ROOT/app/attentionDistributed/scripts/
| |
| ./salienceRightManual.sh
| |
| | |
| Then:
| |
| cd $ICUB_ROOT/app/attentionDistributed/scripts
| |
| ./egoSphereManual.sh
| |
| | |
| Then:
| |
| cd $ICUB_ROOT/app/attentionDistributed/scripts
| |
| ./attentionSelectionManual.sh
| |
| | |
| Then:
| |
| cd $ICUB_ROOT/app/attentionDistributed/scripts/
| |
| ./controlGazeManual.sh
| |
| | |
| And finally, but this time on chico3:
| |
| cd $ICUB_ROOT/app/attentionDistributed/scripts
| |
| ./appGui.sh
| |
| | |
| Press 'check all ports and connections', followed by pressing '>>' buttons (becoming green), in all the tabs of the GUI.
| |
| | |
| Now, in the 'Salience Right' tab of the GUI, press 'Initialize interface' and move the thresholds a bit (e.g., the 'intensity' one).
| |
| | |
| [[Category:Vislab]]
| |