Am using a fixed checkerboard pattern to calculate the individual poses of two different cameras on a rigid rig and then plot their individual relative motion. Since the rig is rigid the relative x,y,z motion should be the same. I get good results for x and z but not y as shown in the image below. Does anyone know the reason why the measurements in the y-position are not the same? Note the coordinate system is x- right, y- down, and z- out of the plane.
I think more details are necessary.
- In order to quantify the error, what are the measurement units of the axis in the plot? What x and y represents?
- How do you get the relative pose in other frames after the calibration? Or are you evaluating the relative pose on the same calibration images?
This could be dependant on a higher calibration error in getting the extrinsics, or an estimation error on the relative pose after the calibration, or on a wrong physical setup.
Very difficult to understand this error without having many more details.
The measurements are in pixels. the x-axis just represents a set of measurements while the y axis is the change in the value of the particular cartesian coordinate. The camera calibration has very low reprojection error for each camera. For each set of messurments am calculating the relative pose for each camera as below:
From there am extracting the change in x,y,z of the camera position which should be the same for each coordinate but somehow the y-coordinate is not consistent. Note that am getting the pose of the camera from a checkerboard pattern using solvePNP. I have no worries about the calibration or pose calculation.
I don’t see what might be going on so allow me to suggest a generic approach.
you probably tried to place everything exactly and aligned well… yet there will be small imperfections.
to debug this… ruin it all! make it messy. put things at weird angles. then you’ll see where the neatness hides mistakes in the math (if there are any).
I would suggest also to:
- manually look at the chessboard appearance on these frames, to see if the error is that one coming from corner detection in case of strong perspective views (high rotation, stretching of squares, and other perspective effects);
- repeat the process of estimating the pose with an Aruco board, which could increase the achieved precision.