Hi, I have 1 camera that see 4 arUcos placed in a box, as shown in the image below, and I’m trying to get the pair wise tranformations between all of them. For that, I’m using Opencv’s detectMarkers() and estimatePoseSingleMarkers() to get the pose of each marker with respect to the camera.
I then obtain rvecs and tvecs of each arUco and I use Rodrigues’ Formula to get a rotation matrix out of rvecs. Then, I build the transformation matrix between each arUco and the camera. After this I get the inverses of this matrices and multiply them like this:
M12 = inv(M_cam_1) * M_cam_2
The problem is the rotation between 1 → 3 is not the same as 1 → 4, and it should be and should also be 90º. Below are the matrices between arUco 1 and 3 and 4 respectivly.
Do any of you as any ideia what i might be doing wrong? Thanks in advance for the help.
draw on your picture the corners and edges of your markers, and mark the first corner of each.
to interpret the composite matrices by eye, it’ll help if their relative orientations aren’t too complicated.
in the translation component, I would expect only X or Y between {1 and 2} and {3 and 4} and I would expect some -Z (and X or Y) if you compare {1 or 2} with {3 or 4}.
practical advice double-sided adhesive tape. or print directly on card stock.
Conserning your reply, do you mean to add them physically in the box, or edit the image? And how will this help? Shouldn’t the function detectMarkers() find the markers already? What Am I missing? thanks, again
Hi, I’m woriking on a project where I have to obtain the pairwise transformations between arUcos on a box. I’m using OpenCV’s calibrateCamera() to calibrate my camera and I obtain 0.100 of reprojection error, which I believe is not bad. Then I use detectMarkers() to detect the arUcos on the box and then I use estimatePoseSingleMarkers() to estimate their pose with respect to the camera. I then use Rodrigues formula on rvecs and build the tranformation matrix with that. The problem is, the arUcos should have a 90º angle between them, and that’s not happening. The image bellow shows the image I’m using and the poses that I’m obtaining. (I changed the perspective so you can see better)