0

我正在使用(新发布的)ArUco 2.0.7 来跟踪一些标记。我使用的摄像头朝下安装在天花板上,所以我只需要 x 和 y 坐标。它可以查看 2.6m x 1.5m 的区域。如果我正确理解文档,我会以任意单位提供我正在使用的标记的边长,姿势的输出将采用相同的单位。所以标记的边长为 19.5 厘米。因为我希望我的结果以米为单位,所以我将该值设置为 0.195。

但是,我得到的结果是不正确的。如果我将标记放在相机视野的角落,它们不在相应的预期 x 和 y 坐标处。

我将全局原点放在视野的一个角上,例如(0,0)是左下角。这是通过使用 getRTMatrix() 获得的矩阵变换将所有传入位置转换到该标记坐标系来完成的。一切似乎都在工作,除了 x 和 y 坐标的单位错误或缩放。旋转完美。

我错过了什么吗?或者我不能期望一个很好的准确性?误差很大,比如应该是(2.6,1.5)的时候显示为(1.8,1),大概是33%的误差。

4

1 回答 1

1

经过一番思考后,我发现我的相机只是使用从校准板到镜头的距离进行校准,而不是我的用例所需的距离。这导致失真系数是错误的,从而给了我一个虚假的比例。我使用 aruco_calibration 工具重新校准,现在精确到大约 3 或 4 厘米,这对我来说已经足够了。

于 2016-07-11T14:22:40.990 回答