Difference between revisions of "HeadFineCalibration"

From Wiki for iCub and Friends
Jump to: navigation, search
 
Line 5: Line 5:
 
# '''Step 2:''' read the robot posture as reported by the iCubInterface (e.g. using the robotMotorGui). Let's call this configuration theta.
 
# '''Step 2:''' read the robot posture as reported by the iCubInterface (e.g. using the robotMotorGui). Let's call this configuration theta.
 
# '''Step 3:''' for each joint compute the difference between theta and theta_desired. Let's call this difference Delta = theta - theta_desired.
 
# '''Step 3:''' for each joint compute the difference between theta and theta_desired. Let's call this difference Delta = theta - theta_desired.
# '''Step 4:''' consider Delta for joint i, called Delta(i). Add Delta(i) to the suitable Zeros entry (see also [[controlBoard configuration file | iCubInterface config file]]) in the iCubInterface configuration file. As an example if you want to change the torso calibration (when using the icub.ini initialization file), edit the icub_head_torso_safe.ini file as follows:  
+
# '''Step 4:''' consider Delta for joint i, called Delta(i). Add Delta(i) to the suitable Zeros entry (see also [[controlBoard configuration file | iCubInterface config file]]) in the iCubInterface configuration file.  
 +
As an example if you want to change the torso calibration (when using the icub.ini initialization file), edit the icub_head_torso_safe.ini file as follows:  
  
 
  BEFORE: Zeros  xxx yyy .... zzz  
 
  BEFORE: Zeros  xxx yyy .... zzz  
  
 
  AFTER:  Zeros  xxx+Delta(0) yyy+Delta(1)  ... zzz+Delta(5)
 
  AFTER:  Zeros  xxx+Delta(0) yyy+Delta(1)  ... zzz+Delta(5)
 +
 +
'''IMPORTANT: You can also use this excel worksheet [[Media:fine_calibration.xls|fine_calibration.xls]] to quickly compute the needed zero parameters, given the RobotMotorGui encoder readings'''.

Latest revision as of 18:57, 20 February 2014

This procedure describes how to correct small errors in the calibration of the iCub head. It applies mainly to the head joints (joint0...joint5). Note: this procedure has to be done after the calibration of the torso (the torso should be in 0,0,0).

  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] [deg] (remember we are just considering the five dof of the head).

Head1.JPG Head2.jpg Head3.jpg

  1. Step 2: read the robot 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 (see also iCubInterface config file) in the iCubInterface configuration file.

As an example if you want to change the torso calibration (when using the icub.ini initialization file), edit the icub_head_torso_safe.ini file as follows:

BEFORE: Zeros  xxx yyy .... zzz 
AFTER:  Zeros  xxx+Delta(0) yyy+Delta(1)  ... zzz+Delta(5)

IMPORTANT: You can also use this excel worksheet fine_calibration.xls to quickly compute the needed zero parameters, given the RobotMotorGui encoder readings.