# Hand-eye calibration?

I am having an issue with some hand-eye calibration.

So i am using a simple robot which at its tool point has an stereo camera mounted on it.

I want to perform some visual serving/tracking based stereo images extracted from the camera in the "hand". The camera provides me x,y,z coordinates of the object I want to track.

I can at all time extract an homogenous transformation matrix from base to tool (not cam) as (T_tool_base).

Firstly... I guess i would need perform some form of robot to (vice versa) camera calibration, My idea was that would consist of something like this

T_base_world = (T_base_tool) (T_tool_cam) (T_cam_world)


Where the T_tool_cam would entail the calibration... since the camera is at the tool point, would that entail the T_tool_cam should entail information on how much the camera is displaced from the tool point, and how it is rotated according to the tool point? or is not like that?

secondly... How do i based purely x,y,z coordinate make an homogeneous transformation matrix, which includes an rotation matrix ?

thirdly.. Having a desired Transformation matrix which in theory this

T_base_world = (T_base_tool) (T_tool_cam) (T_cam_world)


would provide me, would an inverse kinematics solution provide me with one or multiple solution?... In theory should this only provide me one, or what?

• All your ideas are correct, though you are really talking about a base->object transform. Calibration is an additional step where you measure and include in your transform the error between an ideal and actual. Assuming a rigid connection between tool and cam, inverse kinematics will remain the same with the same number of solutions as base_tool. Commented Apr 8, 2016 at 22:53
• ...How do I make a T_matrix from the camera to object? Commented Apr 8, 2016 at 23:08
• For those that come across this I answered a question in great detail where Hand Eye Calibration is explained. I also created a tool that lets you find the hand eye calibration using ROS. Commented Sep 14, 2016 at 0:30

If $x, y, z$ are the coordinates of the object in the camera frame, then the camera to object transform will be: $$\begin{pmatrix}1 & 0 & 0 & 0\\ 0 & cos\theta & -sin\theta & 0\\ 0 & sin\theta & cos\theta & 0\\ 0 & 0 & 0 & 1\\ \end{pmatrix} \begin{pmatrix}0 & 0 & 0 & x\\ 0 & 0 & 0 & y\\ 0 & 0 & 0 & z\\ 0 & 0 & 0 & 1\\ \end{pmatrix}$$
The tool->cam transform includes a single rotation about the $x$ axis of the tool by $\theta$ from the tool frame to the camera frame, followed by the camera to object transform.