  When a humanoid robot performs a manipulation task, it first makes a model of
the world using its visual sensors and then plans the motion of its body in
this model. For this, precise calibration of the camera parameters and the
kinematic tree is needed. Besides the accuracy of the calibrated model, the
calibration process should be fast and self-contained, i.e., no external
measurement equipment should be used. Therefore, we extend our prior work on
calibrating the elastic upper body of DLR's Agile Justin by now using only its
internal head-mounted RGB camera. We use simple visual markers at the ends of
the kinematic chain and one in front of the robot, mounted on a pole, to get
measurements for the whole kinematic tree. To ensure that the task-relevant
cartesian error at the end-effectors is minimized, we introduce virtual noise
to fit our imperfect robot model so that the pixel error has a higher weight if
the marker is further away from the camera. This correction reduces the
cartesian error by more than 20%, resulting in a final accuracy of 3.9mm on
average and 9.1mm in the worst case. This way, we achieve the same precision as
in our previous work, where an external cartesian tracking system was used.
