Skip to content

Commit

Permalink
Add new page Calibration type 10 details (#354)
Browse files Browse the repository at this point in the history
Co-authored-by: Ugo Pattacini <ugo.pattacini@iit.it>
  • Loading branch information
MSECode and pattacini authored Jun 21, 2024
1 parent 338081b commit b400997
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Calibration type 10 details - AMO Encoder Joint Calibration

This section illustrates the details of the calibration procedure used for the `iCub 3/ergoCub` joints that mount an AMO encoder at the slow shaft.
As already detailed in the [`calibration-10-procedure`](./standard_calibration_types.md/#calibration-10) joints provided with the `AMO` encoder are currently calibrated so that it can be handled as an incremental encoder coupled with a quadrature encoder placed at the motor.

## Calibration workflow

Complete pipeline for the `calibration type 10` using `AMO encoder` at joint and `quadrature encoder` at motor.
<p align="center">
<img src="../img/calibration-amo-abs-enc.png" width="700">
</p>

As you can see in the above-reported state machine, after the calibration command is received by the EMS, a timer of 30 seconds gets triggered; afterward, we wait until the motor encoder calibration ends; finally, the calibration procedure 10 commences.

The procedure basically consists in moving the slow shaft towards one of the hardware limits as defined in the position set within the calibration parameter `calibrationZero`. The value of the PWM used is in turn defined through the parameter `calibration1`. The joint moves until the limit is reached within a time window and within a predefined maximum length, whose values are coded in the firmware.

Finally, if the `hard-stop` limit position is found before the `CALIBRATION TIMEOUT` expires, the zero of the `AMO encoder` is updated with the found offset and the whole calibration completes correctly; otherwise, the joint is moved to the `NOT CONFIGURED` state, the PWM is set to `zero` and the motor switched to `IDLE`.

The FW verifies if the joint has reached the hard position by checking that the encoder position does not change for 1 second, meaning that the relative increase of joint position is smaller than 6.5 deg (1200 iCubDegrees) within 1 second. The encoder position considered for the check is processed to filter out the spikes.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions docs/robot_calibration_types/standard_calibration_types.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,8 @@ This calibration is used for joints with relative encoders, which are calibrated

Regarding iCub 3 and the AMO boards, the AMO magnetic target is subdivided into 64 or 32 sectors. The AMO sensor provides a 14-bit resolution per sector, for a total of 14+6=20 or 14+5=19 bits per revolution resolution, respectively. The `Gearbox_E2J` parameter must be configured with the number of sectors in the corresponding `mechanicals/part-mec.xml` file.

Further details of how the workflow of the whole calibration type 10 is managed are outlined on [this page](./amo_encoder_joint_calibration_10_details.md).

| | |
|---|---|
|`Calibration type`| 10|
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ nav:
- iCub 3 Stator-Rotor auto-calibration: icub_robot_calibration/icub3-stator-rotor-autocalibration.md
- Calibration Types:
- Standard Calibration types: robot_calibration_types/standard_calibration_types.md
- AMO Encoder joint calibration type 10 details: robot_calibration_types/amo_encoder_joint_calibration_10_details.md
- iCub 3 Calibration types: robot_calibration_types/icub3_calibration_types.md
- Robot Configuration:
- Summary: icub_robot_configuration/icub_robot_configuration_index.md
Expand Down

0 comments on commit b400997

Please sign in to comment.