Ask Your Question

Revision history [back]

Is Relative Position Estimation with projectPoints Reasonable?


I am working on a project that involves finding points in my image pane relative to ARUCO targets. I am interested in whether what I am trying to do is reasonable/feasible.

First, I hard-code the xyz position of a point in space, say a black x on the ground, relative to an ARUCO target. An example is, a black x on the ground is .4 meters to the left of the ARUCO target, so I would hard-code pos_rel = [-.4,0,0].

After successfully detecting the ARUCO target, I try and project this point back into my camera's image space like this: camera_points = cv2.projectPoints(pos_rel, rvec, tvec, camera_matrix, dist_coeff)

So this camera_points is where the black x should be in the image. Experimentally, its been kind of close but at times the error is quite large. Especially, when the z-offset of my 'black x' is nonzero, the error is quite large.

Is it possible to do this? Does it require rigorous camera calibration? Or is this an infeasible/unreasonable goal? I'm looking for decent estimates for positions of my black x from up to 1 meter away from the ARUCO target.

I'd appreciate any advice anyone can give