ICub instructions/Archive: Difference between revisions

From ISRWiki
Jump to navigation Jump to search
(Undo revision 2505 by Giovanni Saponaro (Talk))
(now, really insert old Innovation Days 2009 information here)
Line 32: Line 32:


Alternatively, the second command can use the <code>cameras_640x480.xml</code> configuration, if you need a larger resolution.
Alternatively, the second command can use the <code>cameras_640x480.xml</code> configuration, if you need a larger resolution.
= Old Innovation Days 2009 archive =
== 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  ''// TODO: check if we are really using $ICUB_ROBOTNAME and not default''
== Ball tracking and reaching demo, old method ==
* Run image rectifier on '''icubbrain2'''
  cd 13.FIL
  ./0.LEFT_320x240_image_rectifier.sh
* Set left camera colour parameters and run tracker
  cd 13.FIL
  ./1.LEFT320x240.iCub_set_parameters_of_framegrabber_REALISTIC.sh
  ./2.execute_the_tracker.sh
* Start a viewer on chico3
  yarpview /viewer
* Start the facial expression driver on the [[pc104]]:
  cd $ICUB_DIR/app/faceExpressions/scripts
  ./emotions.sh $ICUB_DIR/app/iCubLisboa01/conf
* Run expression decision module
  cd 13.FIL
  ./3.execute_trackerExpressions.sh
* Run coordinate transformation module
  cd 13.FIL
  ./5.execute_LeftEyeToRoot.sh
* Run arm inverse kinematics module (this ''must'' run on icubbrain2)
  iKinArmCtrl --onlyXYZ
* Connect all ports. Careful: the robot will start moving after this step!
  cd 13.FIL
  ./4.LEFT.iCub_connect_ports.sh
  ./6.connect_LeftEyeToRoot.sh
* [OPTIONAL, FOR DEBUG] Read the 3D position of the ball in the root reference frame (from any machine)
  yarp read ... /icub/LeftEyeToRoot/ballPositionOut
== Ball tracking and reaching demo, not so old method ==
This demo uses the left eye and the right arm of Chico. Assumption: left eye is running at a resolution of 320x240 pixels. Attention: make sure that the launcher uses '''icubbrain2''' (32bit) or any of the 32-bit Cortexes for the kinematics computation.
These dependencies will be checked by the GUI:
* [[#Cameras | cameras]] are running
* [[#iCubInterface | iCubInterface]] is running
You need to set the color parameters of the camera using the framegrabberGui (left eye) to the following. Be careful, though, that the first time that you move any slider the action typically does not work. You have to move the slider first to a random position and then to the desired one.
  brightness 0
  sharpness 0.5
  white balance red 0.474
  white balance blue 0.648
  hue 0.482
  saturation 0.826
  gamma 0.400
  shutter 0.592
  gain 0.305
On chico3 type:
  cd $ICUB_ROOT/app/default/scripts
  ./manager.py $ICUB_ROOT/app/demoReach_IIT_ISR/scripts/isr/demoReach_IIT_ISR_RightHand.xml
Notes:
* the aforementioned XML file configures a system that moves the head and right arm of the robot. There exist also an XML file for moving juste the head and the left hand (<code>demoReach_IIT_ISR_LeftHand.xml</code>), one which moves just the head (<code>demoReach_IIT_ISR_NoHand.xml</code>) and one which only starts the tracker, so it moves nothing (<code>demoReach_IIT_ISR_JustTracker.xml</code>).
* you still need to set the camera parameters using framegrabberGui, we're trying to make that automatic.
=== 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.

Revision as of 22:02, 22 February 2010

Note: these methods are obsolete and kept here for historic reference only. Most probably, you may ignore this page and go back to iCub demos.

Useful things to archive

Desktop icons to launch the Application Manager and XMLs

Example: cameras.sh icon (to be placed in ~/Desktop/) contains:

 #!/bin/bash
 source ~/.bash_env
 cd $ICUB_ROOT/app/default/scripts
 ./manager.py cameras_320x240.xml

Note that Resource Finder searches for XMLs in $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/ first, then in a number of other directories.

Starting YARP components

In case that (i.e., cluster_manager.sh) did not work, you can launch the program in a terminal:

  cd $ICUB_ROOT/app/default/scripts
  ./icub-cluster.py $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/vislab-cluster.xml

Other components

Cameras

In case that (i.e., cameras.sh) did not work, type this inside a chico3 console:

  cd $ICUB_ROOT/app/default/scripts
  ./manager.py cameras_320x240.xml

That XML file is actually located in $ICUB_ROOT/app/$ICUB_ROBOTNAME/scripts/. Resource Finder gives priority to that directory, when $ICUB_ROBOTNAME is defined, as is the case for us (iCubLisboa01).

Alternatively, the second command can use the cameras_640x480.xml configuration, if you need a larger resolution.

Old Innovation Days 2009 archive

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   // TODO: check if we are really using $ICUB_ROBOTNAME and not default

Ball tracking and reaching demo, old method

  • Run image rectifier on icubbrain2
  cd 13.FIL
  ./0.LEFT_320x240_image_rectifier.sh
  • Set left camera colour parameters and run tracker
  cd 13.FIL
  ./1.LEFT320x240.iCub_set_parameters_of_framegrabber_REALISTIC.sh
  ./2.execute_the_tracker.sh
  • Start a viewer on chico3
  yarpview /viewer
  • Start the facial expression driver on the pc104:
  cd $ICUB_DIR/app/faceExpressions/scripts
  ./emotions.sh $ICUB_DIR/app/iCubLisboa01/conf
  • Run expression decision module
  cd 13.FIL
  ./3.execute_trackerExpressions.sh
  • Run coordinate transformation module
  cd 13.FIL
  ./5.execute_LeftEyeToRoot.sh
  • Run arm inverse kinematics module (this must run on icubbrain2)
  iKinArmCtrl --onlyXYZ
  • Connect all ports. Careful: the robot will start moving after this step!
  cd 13.FIL
  ./4.LEFT.iCub_connect_ports.sh
  ./6.connect_LeftEyeToRoot.sh
  • [OPTIONAL, FOR DEBUG] Read the 3D position of the ball in the root reference frame (from any machine)
  yarp read ... /icub/LeftEyeToRoot/ballPositionOut

Ball tracking and reaching demo, not so old method

This demo uses the left eye and the right arm of Chico. Assumption: left eye is running at a resolution of 320x240 pixels. Attention: make sure that the launcher uses icubbrain2 (32bit) or any of the 32-bit Cortexes for the kinematics computation.

These dependencies will be checked by the GUI:

You need to set the color parameters of the camera using the framegrabberGui (left eye) to the following. Be careful, though, that the first time that you move any slider the action typically does not work. You have to move the slider first to a random position and then to the desired one.

 brightness 0
 sharpness 0.5
 white balance red 0.474
 white balance blue 0.648 
 hue 0.482
 saturation 0.826
 gamma 0.400
 shutter 0.592
 gain 0.305

On chico3 type:

  cd $ICUB_ROOT/app/default/scripts
  ./manager.py $ICUB_ROOT/app/demoReach_IIT_ISR/scripts/isr/demoReach_IIT_ISR_RightHand.xml

Notes:

  • the aforementioned XML file configures a system that moves the head and right arm of the robot. There exist also an XML file for moving juste the head and the left hand (demoReach_IIT_ISR_LeftHand.xml), one which moves just the head (demoReach_IIT_ISR_NoHand.xml) and one which only starts the tracker, so it moves nothing (demoReach_IIT_ISR_JustTracker.xml).
  • you still need to set the camera parameters using framegrabberGui, we're trying to make that automatic.

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.