I am trying to use Aruco boards for high-precision (< 1 mm) localisation of a small object, with small markers (markerLength < 2 cm). I figured that there is some kind of precision limit using Aruco boards, around 2 millimeters. I wondered why, and I supposed this could be some limitation due to the datatype used for pose estimation. To test this hypothesis, I wanted to convert all the parameters of cv.aruco.estimatePoseBoard to numpy.float64, but it was not possible for the cv.aruco.Board object.
This assert prevents Aruco board creation with 64-bit floating point data, as shown in this issue. And mixing datatypes results in incoherent results, so I wanted to know if there was a good reason to disable this feature.