06-18-2019, 09:28 AM
Some info about the project:
Procedure/Algorithm overview
1. Note the position of the board in the robot base frame. Use the robot to touch three corner points of the board (origin, x-axis, y-axis).
2.For N robot poses, record the camera images and robot *flange* pose. Angles should be in angle-axis format using `Pose_2_UR()` in RoboDK.
3. Detect board points in each frame.
4. Perform intrinsic camera calibration.
5. Perform extrinsic calibration based on detected boards, recorded flange poses and intrinsic camera calibration.
Sources of error
1. For step 1, the TCP used to touch the points must be properly teached.
2.步骤2,记录下来flange pose must be recorded correctly.
3. For step 3, the physical size of the board markers and separation between markers must be input correctly.
4. For step 4, it is important that the board covers the whole area of the camera sensor across all images.
Potential improvements
1. Increase camera resolution. As of now we are using 640x480 px.
Problem:
According to the results the camera is always a few centimeter above the flange when in reality it is a few centimeters beneath (only the z-coordinate is wrong). The x- and y-coordinate are not perfect (but close), but I believe the main error/root cause is the z-coordinate.
What I have already tried:
I have already controlled that the position of the flange is correct (same with the robot base, so not an incorrect pose from the robot) and the axis on the checkerboard also seems right (by eye). I have also ensured that the dimensions regarding the aruco board are correct (aruco side length and separation).
I am running out of solutions to solve this problem was wondering if anyone has encountered a similar problem or know a good way to find the potential sources of error?
Procedure/Algorithm overview
1. Note the position of the board in the robot base frame. Use the robot to touch three corner points of the board (origin, x-axis, y-axis).
2.For N robot poses, record the camera images and robot *flange* pose. Angles should be in angle-axis format using `Pose_2_UR()` in RoboDK.
3. Detect board points in each frame.
4. Perform intrinsic camera calibration.
5. Perform extrinsic calibration based on detected boards, recorded flange poses and intrinsic camera calibration.
Sources of error
1. For step 1, the TCP used to touch the points must be properly teached.
2.步骤2,记录下来flange pose must be recorded correctly.
3. For step 3, the physical size of the board markers and separation between markers must be input correctly.
4. For step 4, it is important that the board covers the whole area of the camera sensor across all images.
Potential improvements
1. Increase camera resolution. As of now we are using 640x480 px.
Problem:
According to the results the camera is always a few centimeter above the flange when in reality it is a few centimeters beneath (only the z-coordinate is wrong). The x- and y-coordinate are not perfect (but close), but I believe the main error/root cause is the z-coordinate.
What I have already tried:
I have already controlled that the position of the flange is correct (same with the robot base, so not an incorrect pose from the robot) and the axis on the checkerboard also seems right (by eye). I have also ensured that the dimensions regarding the aruco board are correct (aruco side length and separation).
I am running out of solutions to solve this problem was wondering if anyone has encountered a similar problem or know a good way to find the potential sources of error?