HandEye Calibration and Nodal Point of camera


In my setup I have a camera with a tracker mounted ontop of it.
For calibrating the camera, I move the camera to various positions around the aruco board and also capture the tracker’s position for each snapshot.
After calibrating the camera, I use the calculated camera poses as well as the recorded tracker position to retrieve the tracker 2 camera transform via the HandEye (Tsai) calibration.

After having done so succesfully, I calculate the board position ustilizing the calculated camera postition, the tracker 2 camera offset as well as a recorded tracker position. With this i can successfully render the aruco board ontop of the saved snapshots.

Yet when using live tracker data, I get a considerable offset in rotation around the x and y axis in the render and I have no clue where I’m going wrong - perhaps I’m missing a point. For example I’m unsure if the HandEye calibration will return the offset from tracker to camera sensor or the offset from tracker to the camera’s nodal point?

Thank you


Have a look at the corresponding documentation, you have this figure:


What you could do to debug is to use some approximated values and check that the equations in the doc make sense/correspond.

If not, you could have some mismatched coordinate frames.