Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers.
Welcome to JeVois Tech Zone, where you can ask questions and receive answers from other members of the community.

How to get pose from ArUco or QR Markers?

0 votes

I would like to use the camera to help adding  localization and navigation capabilities to a indoor robot. I am using Markers Combo because I can use a mix of markers.

 Is that possible to obtain camera's angle of incidence on the marker?  Knowing from which side and from what angle is looking at the marker it will help determinate on which direction the robot is moving.

Also about  q1,---q4 quaternions  if D3 serstyle or x1,y1 , ...x4,y4 image corners coordinates for D2 serstyle,  is not clear to me which one is where reported to the image center.  I didn't found any clear explanation in the documentation.

Thank you!
asked Oct 11 in User questions by DT (310 points)

1 Answer

+1 vote

yes, this has not been fully tested here, here are some hints while we investigate here as well:

- only the ArUco and ARtoolkit modules compute the quaternion

- to enable, you do (as it looks like you are doing already):

setpar serstyle Detail

setpar serprec 5

setpar dopose true

- the quaternion can be interpreted as an axis (pointing normal from the marker) and a rotation angle about this axis. Hence you may want to try to convert it to an AngleAxis using the Eigen library if your program is already using it, or check out this link


- So, in the D3 message, you get

D3 id x y z w h d q1 q2 q3 q4 extra

where x,y,z are the 3D coordinates of the center of the marker (in millimeters)

w,h,d are marker size in millimeters (d is always 1mm, w and h are just as you have declared the markerlen ArUco parameter)

q1 to q4 are the quaternion, if you transform it into Axis-Angle representation, the axis should tilt as you tilt the marker in front of the camera.

I know we need to make a tutorial about this, will do as soon as we find the time... Thanks for your patience in the meantime and please contribute anything you can find while experimenting.

answered Oct 20 by JeVois (13,610 points)