Home› Integration
Discussion
Back to discussions page
UR rotation matrix for handEye calibration 
276 views

Answered  
/ Most recent by dahonora
in Integration

2 comments 
dahonora
Posts: 17 Apprentice
in Integration
Hi there!
I am working with a camera mounted to a UR10e gripper. The application requires very high precision, so I am performing a handEye calibration to measure the relatives angles between the TCP and the camera. They are suppose to be [0, 0, 180], but because the mounting is not precise, I know that the error is around 1° in each coordinate.
To do the calibration I need to get the UR rotation matrix from the axisangle notation. I created a Polyscope program to extract the robot poses. It gets them in axisangle notation, in radians. However, If you check the axisangle notation on the Polyscope (under move) and you compare with the script values of that same point, you will see a difference. From another post, I understood that the Polyscope values are scaled following the next formula:
p[x,y,z]  script values
scale = 1  2*PI/length(p[x,y,x])
polyscope_values = [scale*x, scale*y, scale*z]
I took 5 different poses on the UR and realized, that this formula is correct.
But, which one should I use to get the rotation matrix?
I am working with a camera mounted to a UR10e gripper. The application requires very high precision, so I am performing a handEye calibration to measure the relatives angles between the TCP and the camera. They are suppose to be [0, 0, 180], but because the mounting is not precise, I know that the error is around 1° in each coordinate.
To do the calibration I need to get the UR rotation matrix from the axisangle notation. I created a Polyscope program to extract the robot poses. It gets them in axisangle notation, in radians. However, If you check the axisangle notation on the Polyscope (under move) and you compare with the script values of that same point, you will see a difference. From another post, I understood that the Polyscope values are scaled following the next formula:
p[x,y,z]  script values
scale = 1  2*PI/length(p[x,y,x])
polyscope_values = [scale*x, scale*y, scale*z]
I took 5 different poses on the UR and realized, that this formula is correct.
But, which one should I use to get the rotation matrix?
Tagged:
From my point of view, it would be easier to use Robotiq Wrist Camera. It came with a URCap including wizard for calibrating the camera mounted on the robot, wizard for identifying parts and then retrieving parts is only a matter of making the move relative to the reference variable.
No maths, no wondering. Just finding the part and picking it. The handEye calibration is already done in the background.
Maybe you could give it a try and "Start Production Faster" .
Enjoy UR programming. And hope you will enjoy Robotiq Wrist Camera soon.
Regards,
David Gouffé
Integration Coach
Coach en intégration
Robotiq is now into packaging, palletizing and sanding applications. Learn more about our new Vacuum Grippers and the Robotiq Sanding Kit.
1888ROBOTIQ #275 (7626847)
14183802788 #275 (Outside US and Canada)
14186559221 (Cell)
Follow us on
For our specific application is not possible to use a Wrist camera. We are working with a RealSense D415 stereo camera to get depth information of the scenes. We are working in a high unstructured environment, so I don´t think that we could change that.
The part of the handEye calibration is fixed already. I am anyway curious about the difference in the axisangle values and the scaled issue.
Kind regards,