Chico joint calibration
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" inrobotMotorGui
.
- 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.