This was a tool I built at the NAO Biped Lab, aimed at making the robot's world model more accurate. The problem: the camera and gyro sensor on the NAO have small physical displacements that the nominal kinematics model doesn't account for. If you trust the model blindly, you get small but consistent errors in where you think objects are on the field โ which compounds as the robot moves.
The approach
The calibration works by placing the robot in front of a calibration board, using its known kinematics to project where checkerboard markers should appear in the image, then comparing those projections to where the markers actually appear. The gap between the two is the error signal.
We used Gauss-Newton optimization to minimize that error across multiple image-kinematic pairs โ different robot poses, different frames. The result is an estimated displacement for the camera and gyro relative to their nominal positions. Apply those corrections, and the robot's calculations of object positions become meaningfully more accurate. The improvement showed up in both the world model quality and the self-localization results.