ICub instructions: Difference between revisions
m (→yarprun: remove 32bit and 64bit notes for icubbrains (both are 64bit now anyway)) |
m (→Setup: Chico's CPU is not read-only anymore) |
||
Line 18: | Line 18: | ||
|- | |- | ||
| '''icubsrv''' Dell XPS M1330 laptop | | '''icubsrv''' Dell XPS M1330 laptop | ||
| don't worry about this machine, just keep it switched on. It contains a hard disk that gets mounted by Chico's | | don't worry about this machine, just keep it switched on. It contains a hard disk that gets mounted by Chico's CPU at boot time | ||
| 10.10.1.51, icub | | 10.10.1.51, icub | ||
|- | |- |
Revision as of 20:57, 2 November 2011
This article explains how to manage Chico for demos and experiments alike. We will describe the hardware setup that accompanies our iCub, how to turn things on and off, and how to run demos.
An older version of this article can be found at iCub demos/Archive and Innovation Days 2009.
Setup
The 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 M1330 laptop | don't worry about this machine, just keep it switched on. It contains a hard disk that gets mounted by Chico's 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 |
---|---|
Xantrex XFR 35-35 | thin power supply unit, to power pc104 and some motors. Voltage: 12.9, current: 05.0 or more |
Xantrex XFR 60-46 | thick power supply unit, to power most motors. Voltage: 48.0 (initially it is 0 - it changes when you turn the green motor switch), current: 10.0 or more |
APC UPS | uninterruptible power supply |
Note: the iCubBrain chassis, which contains two servers used for computation (icubbrain1 - 10.10.1.41, icubbrain2 - 10.10.1.42) is normally in the ISR server room on the 6th floor as of Dec. 2009. However, it sits on top of the power supply units when we bring the iCub to external demos.
Switching on the robot
Hardware side
- Check that the UPS is on
- Turn on icubsrv (Dell XPS laptop)
- Turn on chico3 (Tsunami 17" laptop), the display machine that we will use to actually control the demos
- Turn on the Xantrex power supply units; make sure the voltage values are correct (see iCub_demos#Setup)
- Check that the two iCubBrain servers are on (if the demo is held at ISR then they are already on: ignore this step)
- Check that the red emergency button is unlocked
- Turn on the green switches behind Chico
- Safety hint: first turn on the pc104 CPU switch, wait for the CPU to be on, and only then switch the motors on
- Second safety hint, after turning on motors: wait for the four purple lights on each board to turn off and become two blue lights – at this point you can continue to the next steps
Software side
- Run cluster_manager.sh from the chico3 desktop icon and start the needed YARP components (click here for detailed instructions). The summary is:
- First, always launch
yarpserver
with the 'Run' button in the Nameserver panel - Then, if your application employs machines other than chico3 itself, launch the necessary
yarprun
listeners (usually on chico3, pc104, icubbrain1, icubbrain2)
- First, always launch
- If you need to use the motors, start iCubInterface on the pc104. Warning: make sure that the iCub is vertical before launching this software, otherwise the robot will first fall down (dangerous)
- Depending on which demo you want to execute, you probably need to start the cameras as well
Shutting off the robot
Software side
- Stop your demo software and the cameras with the respective application manager GUIs; do not stop
yarpserver
in the Cluster Manager yet - Go to the (yellow) pc104 iCubInterface shell window and stop the program hitting ctrl+c, just 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 chest since the head may fall to the front.)
- Now, in the Cluster Manager GUI stop the instances of
yarprun
, and finallyyarpserver
- Optionally, shut down the pc104 gracefully by typing this in the yellow pc104 shell window:
sudo shutdown -h now
Hardware side
- Turn off the two green switches. Pay attention when turning off the 'Motors' switch: if iCubInterface was not stopped properly in the previous steps, then be ready to hold the robot when turning that switch
- Turn off the Xantrex power supply units
- Turn off chico3 (Tsunami 17" laptop)
- If necessary, turn off icubsrv (Dell XPS laptop), other machines (such as portable servers during a demo outside ISR) and the UPS
Stopping the robot with the red emergency button
The emergency button, as the name suggests, is to be used for emergencies only. For example:
- When the robot is about to break something
- When some components make nasty noises that suggest they are going to break
Use this button with great care, as it cuts power to all motors and controllers abruptly! In particular, be ready to hold Chico from his chest, because the upper part of his body might fall upon losing power.
To start using the robot again, it is convenient to quit and restart all the software components and interfaces; refer to #Switching on the robot for that. Don't forget to unlock the red emergency button after an emergency, otherwise the program #iCubInterface will start but not move any joint.
Starting YARP components
See Cluster Management in VisLab for background information about this GUI (not important for most users).
This section explains how to use the graphical Cluster Manager, which is accessible by double-clicking cluster_manager.sh from the chico3 desktop icon and selecting 'Run'. In short, we use this tool to manage two types of YARP components:
yarpserver
: only one instance, which runs on the chico3 laptop itself. This is needed by all kinds of iCub applications.yarprun
command listeners: one instance per every machine that your desired application will run on. This step is demo-dependent. For most purposes we use the following machines: chico3, pc104, icubbrain1, icubbrain2. The #Yoga demo does not require anyyarprun
.
Here is what you should do within the GUI for the two parts, respectively.
yarpserver
Click the 'Run' button in the Nameserver panel. This will launch the (single) instance of 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
- icubbrain2
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 at this point. You should see something like this:
Other components
Many demos and programs assume that components such as cameras, the iCubInterface driver or the facial expression driver have been launched. Here is how to run these blocks.
Cameras
- Make sure that basic YARP components are running: summarized Cluster Manager instructions are here; detailed instructions are in section #Starting YARP components
- Double-click the cameras.sh icon on chico3 desktop and select 'Run'
- Run modules and connect
iCubInterface
This program controls the motors and reads the inertial sensors. In practice, all demos assume that iCubInterface is already running in the background.
To start iCubInterface, check that the red emergency button is unlocked and click on the cartesian_solver.sh icon, running its modules. You should start at least the first module (iCubInterface, as shown in the following picture) and optionally the other modules, depending on your demo.
Wait for all boards to answer (which takes around 1 minute); after that, you are ready to move on.
There is a GUI application to interact with iCubInterface and command robot joints. Just invoke it from the display machine with:
robotMotorGui
Facial expression driver
- Make sure that basic YARP components are running: summarized Cluster Manager instructions are here; detailed instructions are in section #Starting YARP components
- Double-click the EMOTIONS1 icon on chico3 desktop and select 'Run'
- Finally, run modules and connect. It should look similar to this:
Note that the actual expression device driver (the first module of the two listed) runs on the pc104. Sometimes, that process cannot be properly killed and restarted from the graphical interface; in the event of you needing to do that, you can either kill -9
its PID, or do a hard restart of the pc104.
Skin GUI
- Make sure that basic YARP components are running: summarized Cluster Manager instructions are here; detailed instructions are in section #Starting YARP components
- Double-click the skinGuiRightArm icon on chico3 desktop and select 'Run'
- Finally, run modules and connect.
At this point, the driftPointGuiRight window should look like this:
and the iCubSkinGui window will display the fingertip/skin tactile sensors response:
See also: http://eris.liralab.it/viki/images/c/cd/SkinTutorial.pdf
Specific demos
Refer to iCub demos/Archive for older information such as manual ways to start demos.
Ball tracking and reaching (demoReach)
This demo is obsolete, but if you really want to use it, follow iCub demos/Archive#Ball_tracking_and_reaching_.28demoReach.29. We suggest you run the Ball Tracking and Grasping demo (demoGrasp) instead.
Ball tracking and grasping (demoGrasp)
- Make sure that basic YARP components are running: summarized Cluster Manager instructions are here; detailed instructions are in section #Starting YARP components
- Start iCubInterface and the Cartesian solvers through cartesianSolver_iCubInterface.sh. start modules and make connections.
- Run camerasSetForTracking.sh (not cameras.sh!) from the chico3 desktop icon; start modules and make connections.
- Run gazeControl.sh; start this module (iKinGazeCtrl)
- Optionally, start the facial expression driver (EMOTIONS1 icon)
- Finally, run the demoGrasp_LeftEye.sh icon and use the Application Manager interface to start the modules and make the connections.
Note that this demo launches the left eye camera with special parameter values:
brightness 0 sharpness 0.5 white balance red 0.474 // you may need to lower this, depending on illumination white balance blue 0.648 hue 0.482 saturation 0.826 gamma 0.400 shutter 0.592 gain 0.305
Face tracker demo
- Make sure that basic YARP components are running: summarized Cluster Manager instructions are here; detailed instructions are in section #Starting YARP components
- Start iCubInterface on the pc104
- Run cameras.sh from the chico3 desktop icon; start modules and make connections
- Optionally, start the facial expression driver (EMOTIONS1 icon)
- Run faceTracking_RightEye_NoHand.sh (or the Left/Right Arm version) from the chico3 desktop icon; start modules and make connections
Yoga demo
- Make sure that basic YARP components are running: summarized Cluster Manager instructions are here; detailed instructions are in section #Starting YARP components. For this demo we only need
yarpserver
(yarprun
s are not necessary) - Run iCubInterface on the pc104
- Click on the yoga.sh icon and run the module
Facial expression demo
- Make sure that basic YARP components are running: summarized Cluster Manager instructions are here; detailed instructions are in section #Starting YARP components
- Start the facial expression driver (EMOTIONS1 icon)
- Select the EMOTIONS2 icon (Run in terminal); stop with ctrl+c