Skip to content

Callibration

Zichong Li edited this page Feb 15, 2023 · 1 revision

JointCalibration (Legs Only)

Each joint on the NAO robot has an encoder which measure the current joint position. However, over an long period of time, the wear and crash a robot experienced might cause unexpected shift in the sensor reading. Especially in the lower kinematic chain, only a few degrees of sensor reading shift is detrimental for the motion performance.

Therefore, having an reproducible methodology to measure and calibrate those offset is quite crucial. For this, we designed an simple two part 3D model that can be used to calibrate all the joints in the lower kinematic chain.

In order to perform the joint calibration related stuffs, you can call the JointCalibrator.con script. To do the joint calibration. First call the unstiff default standing pose using:

call JointCalibrationStandPos

Then you can reset the previous offsets to zero using the command:

dr module:JointCalibrator:reset

Finally, bring the Robot into the StandZero posture and its ground0truth can be checked using the 3D printed calibration tools. In the 3D printed model, there are a pair of 4mm diameter reference hole. A rod can be used to simplify the checking. If both holes are perfect vertically aligned, then the ground-truth pose is reached. Now call:

dr module:JointCalibrator:standPosReset

to capture the ground-truth offset. This new values can be saved using: 

save representation:JointCalibration

img

JointPlay

Similar to the joint calibration. call the Stiff default standing pose using:

call JointCalibrationStandPosStiff

Then execute the command:

dr module:JointCalibrator:captureJointPlay

Now the maximum joint play can be recorded by.

  • Shake the robot

  • Shake each joint individually

These values can be saved using:

save representation:JointCalibration

Clone this wiki locally