我想获得高架摄像机的姿势(平移:x、y、z 和旋转:世界坐标系中的 Rx、Ry、Rz)。通过用机械臂移动 ChArUco 校准板(如https://www.youtube.com/watch?v=8q99dUPYCPs),我得到了许多对象点和图像点。因此,我已经有了所有对象点的确切位置。
为了向 提供许多点solvePnP
,我将第一个检测到的模式(ChArUco 板)设置为第一个对象,并将其用作对象坐标系的原点。然后,我将检测到的对象点(从第二个模式到最后一个模式)添加到第一个检测到的对象点的坐标系(对象框架的原点是第一个对象的原点)。
在我得到相机和物体坐标系之间的转换后,我根据该转换计算了相机的位姿。
结果一开始看起来还不错,但是当我用尺子或卷尺测量相机的绝对位姿时,我注意到外部校准结果对于 z 方向(相机的高度)大约偏离了 15-20 毫米,尽管对于其他(x、y、Rx、Ry、Rz)几乎是正确的。即使我通过不同地移动机械臂来改变对象点的范围,结果也是一样的,它最终总是会偏离高度几厘米。
有没有人遇到过类似的问题?我想知道我可以尝试的任何事情。当深度方向 (z) 不准确时,常见的错误是什么?