Hello,
I need some help about calibrating camera with KUKA robot. The camera sees the object (I know its coordinates in pixels) and I know its coordinates in KUKA. How do I get the matrix between KUKA and camera ?
calibrate KUKA with camera
-
jojo -
May 26, 2016 at 1:35 PM -
Thread is marked as Resolved.
-
-
Depth camera or DSLR? With DSLRs you need more than one camera to find a point in 3D space.
-
https://www.robot-forum.com/robotforum/kuk…83229/#msg83229
jojo,
to calibrate something, you need to specify product type, model, KSS version, type of tech package etc.
Kuka offers several tech packages for camera integration. What is it that you plan on using?
-
As Panic said: Robot model, Controller Model, KSS version, Camera type, and you need to describe your camera-to-robot interface (Fieldbus? TCP/IP? RS232?). And how many degrees of freedom you are trying to correct -- 2D? 3D? 5D? 6D?
Also, the physical relationship of the camera to the robot: fixed camera or robot-mounted? Well-aligned (squared) to a known coordinate frame or not? Distance between the camera and the robot tool?
Without all of that information, there is very little we can do to advise you. -
ok then, KUKA KR16 with KSS8.2 and Im going to use a normal webcam linked to my PC. This camera will give object coordinates in pixel. I need to transform it somehow to the cartesian coordinates of KUKA
-
webcam?
ok, that is image source. what are you using for processing? your image processing tool will have some sort of calibration method, usually using checkerboard or dot array.
-
Im going to use python and opencv. So as you said I need to calibrate my camera which will give me intrinsic parameters right ?
-
Intrinsic parameters define lens distortions so that the raw image can be corrected. Extrinsic parameters define the camera's pose in the world coordinate frame ie. robot coordinate frame. If you want the camera localization to be as accurate as possible, you need both parameters, but extrinsic parameters you must to define, if you want to localize the objects to the robot's coordinate frame.
-
-
ok then, KUKA KR16 with KSS8.2 and Im going to use a normal webcam linked to my PC. This camera will give object coordinates in pixel. I need to transform it somehow to the cartesian coordinates of KUKAThat's about 1/5 of the information that we need.
-
this is a picture taken by my webcam and the object on the table red lines are the table coordinate system. I get the pixels of the center and I know its position in X,Y, Z on the table
-
So, is there still a problem you want us to help with?
-
In fact yes I can't get the accurate coordinates I have the pixels coordinates and the X,Y and Z in KUKA. I need to have a matrix of transformation right ?
-
robot does not work in pixels, you will need to provide result in millimeters and degrees. this is done through scaling and transform in vision system. once you have proper result, you can use it to correct robot position (for example to pick target object).
-
one can also include fiducial in the calibration plate and size of blocks so vision can do proper scaling
-
this is example result obtained through Kuka.VisionTech, note that result is already scaled by vision system
-
I'm sorry but I'm a bit confused. First of all I did my camera calibration I got the intrinsic and extrinsic parameters so that I can transform the object position from pixel to mm. Then I know that position in KUKA(coordinate system is the table in the photo I met earlier is the red one). Having this what should I do ?
because I need to be able to transform the object position from pixel to the base of the table and that's how KUKA will go to that position -
Ok. So if you used opencv's solvepnp and rodrigues methods to build a 4-by-4 homogeneous transformation matrix from the table coordinate system to the camera coordinate system, just multiply any camera coordinate system points with the homogenous transformation matrix, and the points should be in the table coordinate system. And if you have defined the table coordinate system as a base for the robot, you should be able to pick objects from the table.
-
Thank you so much well since I can't get the accurate position I think there is a mistake in some values or something like that. I'm going to check again