Verticalizing a Robot's Head

For six months I was a member of Vislab - the Computer Vision Lab and worked on the RobotCub project. The aim of this project is to study cognition through the implementation of a humanoid robot the size of a 2 year old child (the iCub). My goal was to emulate on iCub the process by which an infant senses gravity and learns to control its head. The idea was to implement an online algorithm by which it could learn a model of its direct rotation kinematics (that is, a motor-inertial map).
In order to apply any learning algorithm to this problem, one had to callibrate the motor encoders (which were previously manually calibrated). That is, we had to implement an algorithm which aligns iCub's head with its body. The autocalibration procedure performed quite well in practice (as you can see in the videos below).