Understanding ArUco Pose Estimation

asked 2019-11-09 09:50:16 -0500

Hi guys, I am working on a project with OpenCV and Aruco, and I have some questions. I have camera on a small drone, which has some Aruco markers in its workspace. I am using all the Aruco functions to detect the markers in the FOV and estimate their pose, which gives me a Rotation Vector and a Translation Vector for each marker. Since I know the positions of my markers in the 'world' frame , I want to use that info (the rvecs , tvecs) to try to infer the drone's (or the camera's) position in the 'world' frame. But to do that, I need to know exactly what those rvecs and tvecs represent. Like, it is ambiguous to me whether they give the transformation from the camera frame to the marker frame or the inverse. Also is there a specific coordinate frame that OpenCV assumes for the camera? It's things like that, that I am not clear on. For example, if the rvec,tvec means that a point P expressed in the Marker's Frame , can be expressed in the Camera's Frame as C = rotation_matrix(rvec)*P + tvec , then I would know how to move on with making my code. Any input appreciated, thanks.

edit retag flag offensive close merge delete


Since I know the positions of my markers in the 'world' frame

you don't. it's all respective to the camera (there is no "world")

berak gravatar imageberak ( 2019-11-09 10:02:37 -0500 )edit

Sorry, I didn't mean to confuse. I meant that I really do know, in real life, where all my markers are in the workspace. And I'd like to use that knowledge , plus the relative rvecs, tvecs I get from aruco, to calculate my camera's position in the real world

Jim Chaik gravatar imageJim Chaik ( 2019-11-09 11:18:52 -0500 )edit

The camera pose respect to a marker is the 3d transformation from the marker coordinate system to the camera coordinate system. It is specified by a rotation and a translation vector (see solvePnP() function for more information). https://docs.opencv.org/trunk/d5/dae/...

Does this answer your question?

fogx gravatar imagefogx ( 2019-11-10 05:46:48 -0500 )edit

It actually did, yes. I was able to get the drone's position in space from combining the rvecs, tvecs and my map of the markers. Thanks

Jim Chaik gravatar imageJim Chaik ( 2019-11-11 16:07:08 -0500 )edit