Chico joint calibration: Difference between revisions

From ISRWiki
Jump to navigation Jump to search
mNo edit summary
(bulleted list)
Line 1: Line 1:
We explain here to how calibrate Chico's joint encoders.
We explain here to how calibrate Chico's joint encoders.


Power-cycle (switch off and on) the board controlling the joint we need to calibrate.
= General calibration procedure =


Launch:
* Power-cycle (i.e., switch off and on) the board controlling the joint that you want to calibrate.
iCubInterface --config $ICUB_ROOT/app/iCubLisboa01/conf/icubRaw.ini (emergency/fault button must be pressed)
robotMotorGui


Manually align the joints to the zero position and write down the values provided by robotMotorGui
* Launch <code>iCubInterface --config $ICUB_ROOT/app/iCubLisboa01/conf/icubRaw.ini</code> - the emergency/fault button must be pressed


Open $ICUB_ROOT/app/iCubLisboa01/conf/iCub_Calibration_Lisboa_001.xls
* Launch <code>robotMotorGui</code>


Go to the desired joint section; edit the yellow values that we have noted down and observe the resulting red values.
* Manually align the joints to a desired zero position and write down the values provided by <code>robotMotorGui</code>


Edit $ICUB_ROOT/app/iCubLisboa01/conf/icub_<limb>_safe.ini and write the new "red" values: Zeros, Min, Max, Encoders, Calibration1, Calibration3.
* Open <code>$ICUB_ROOT/app/iCubLisboa01/conf/iCub_Calibration_Lisboa_001.xls</code>


Update $ICUB_ROOT/app/iCubLisboa01/conf/icub_<limb>.ini as well.
* Go to the desired joint section; edit the yellow fields with the values that you have previously noted down; observe the resulting red values.


Launch iCubInterface --config $ICUB_ROOT/app/iCubLisboa01/conf/icubSafe.ini (emergency/fault button must be pressed)
* Edit <code>$ICUB_ROOT/app/iCubLisboa01/conf/icub_<limb>_safe.ini</code> and write the new "red" values that you have just read in the XLS. The rows to edit are typically: Zeros, Min, Max, Encoders, Calibration1, Calibration3.


Verify that:
* Update <code>$ICUB_ROOT/app/iCubLisboa01/conf/icub_<limb>.ini</code> as well.
* the zero position is approximately zero;
* manually move the joints a bit around the zero position and verify that the values ini robotMotorGui are continuously moving (without glitches or jumps)


Calibration is complete. You are ready to run iCubInterface with the motors enabled (emergency button up)
* Launch <code>iCubInterface --config $ICUB_ROOT/app/iCubLisboa01/conf/icubSafe.ini</code> - again, the emergency/fault button must be pressed


= Shoulder calibration =
* Verify these things:
** that the zero position makes physical sense, i.e., it is really close to the desired zero;
** manually move the joints a bit around the zero position, check that the values provided robotMotorGui are changing continuously, without glitches or jumps


With canLoader20, flash the old firmware version 1.51 to board number 2 (example for right shoulder: pcan, net 2, board 2).
* Calibration is now complete. You are ready to run <code>iCubInterface</code> with the motors enabled (emergency button up).


icubRaw.ini phase:
= Example: shoulder calibration =
Follow the procedure in the beginning of this article; put the 3 shoulder joints in position (0, 0, any), corresponding to the arm being vertical and perpendicular to the floor. Write down the first two encoder values.


Manually move the shoulder to a position (before-30, before+30, 0). Write down the third value.
* With <code>canLoader20</code>, flash the old firmware version 1.51 to board number 2 (example for right shoulder: pcan, net 2, board 2).


Update the XLS file.
* For the <code>icubRaw.ini</code> phase, follow the instructions of the general calibration procedure above. Manually place the 3 shoulder joints to a position that is consistent to the desired values (0, 0, any). This corresponds to the arm being vertical and perpendicular to the floor. Write down the first two encoder values; let's call these "first value" and "second value" in <code>robotMotorGui</code>.


With canLoader20, flash back to the new firmware version 1.53.
* Next, manually put the shoulder to position (first value - 30, second value + 30, 0), which means that the third joint is in a position that corresponds to the desired zero. Take note of the "third value" provided by <code>robotMotorGui</code>.
 
* Update the XLS file as per general procedure.
 
* With <code>canLoader20</code>, flash back to the new firmware version 1.53.


[[Category:Vislab]]
[[Category:Vislab]]

Revision as of 16:01, 13 November 2009

We explain here to how calibrate Chico's joint encoders.

General calibration procedure

  • Power-cycle (i.e., switch off and on) the board controlling the joint that you want to calibrate.
  • Launch iCubInterface --config $ICUB_ROOT/app/iCubLisboa01/conf/icubRaw.ini - the emergency/fault button must be pressed
  • Launch robotMotorGui
  • Manually align the joints to a desired zero position and write down the values provided by robotMotorGui
  • Open $ICUB_ROOT/app/iCubLisboa01/conf/iCub_Calibration_Lisboa_001.xls
  • Go to the desired joint section; edit the yellow fields with the values that you have previously noted down; observe the resulting red values.
  • Edit $ICUB_ROOT/app/iCubLisboa01/conf/icub_<limb>_safe.ini and write the new "red" values that you have just read in the XLS. The rows to edit are typically: Zeros, Min, Max, Encoders, Calibration1, Calibration3.
  • Update $ICUB_ROOT/app/iCubLisboa01/conf/icub_<limb>.ini as well.
  • Launch iCubInterface --config $ICUB_ROOT/app/iCubLisboa01/conf/icubSafe.ini - again, the emergency/fault button must be pressed
  • Verify these things:
    • that the zero position makes physical sense, i.e., it is really close to the desired zero;
    • manually move the joints a bit around the zero position, check that the values provided robotMotorGui are changing continuously, without glitches or jumps
  • Calibration is now complete. You are ready to run iCubInterface with the motors enabled (emergency button up).

Example: shoulder calibration

  • With canLoader20, flash the old firmware version 1.51 to board number 2 (example for right shoulder: pcan, net 2, board 2).
  • For the icubRaw.ini phase, follow the instructions of the general calibration procedure above. Manually place the 3 shoulder joints to a position that is consistent to the desired values (0, 0, any). This corresponds to the arm being vertical and perpendicular to the floor. Write down the first two encoder values; let's call these "first value" and "second value" in robotMotorGui.
  • Next, manually put the shoulder to position (first value - 30, second value + 30, 0), which means that the third joint is in a position that corresponds to the desired zero. Take note of the "third value" provided by robotMotorGui.
  • Update the XLS file as per general procedure.
  • With canLoader20, flash back to the new firmware version 1.53.