Chico joint calibration

From ISRWiki
Revision as of 16:01, 13 November 2009 by Giovanni Saponaro (talk | contribs) (bulleted list)
Jump to navigation Jump to search

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.