From Wiki for iCub and Friends
Revision as of 21:20, 7 January 2010 by Robotics (talk | contribs)
Jump to: navigation, search

This procedure describes how to correct small errors in the calibration of the iCub legs. It applies mainly to the leg joints (joint0...joint5).

  1. Step 1: put the iCub in a suitable posture and let's call this configuration theta_desired in accordance to the convention you decided to use. As an example, if you decide to use the convention described in ICubForwardKinematics, you might decide to use the posture in the pictures which corresponds to theta_desired = [0 0 0 0 0 0] [deg]. A possible posture is given in the pictures below.

FineCalibFront.jpg FineCalibSide.jpg FineCalibTop.jpg

  1. Step 2: read the robot legs posture as reported by the iCubInterface (e.g. using the robotMotorGui). Let's call this configuration theta.
  2. Step 3: for each joint compute the difference between theta and theta_desired. Let's call this difference Delta = theta - theta_desired.
  3. Step 4: consider Delta for joint i, called Delta(i). Add Delta(i) to the suitable Zeros entry in the iCubInterface configuration file. Note: the legs have a unique configuration file (e.g. icub_legs_safe.ini). The first six joints (j0, j1, j2, j3, j4, j5) in this file corresponds to the six joints of the left leg; the last six joints (j6, j7, j8, j9, j10, j11) corresponds to the right leg.

As an example if you want to change the left leg calibration (when using the icubSafe.ini initialization file), edit the icub_legs_safe.ini file as follows:

BEFORE: Zeros  aaa bbb ccc ddd eee fff ggg hhh iii lll mmm nnn....
AFTER:  Zeros  aaa+Delta(0) ... fff+Delta(5) ggg hhh iii lll mmm nnn....