最近,我一直在尝试实现一个系统来识别和三角测量机器人系统中物体的3D位置。该过程的概要如下:
在实践中,三角测量仅在旋转几乎没有变化时起作用;如果机器人在移动时甚至稍微旋转一点(由于例如车轮打滑),那么估计就会偏离。这也适用于模拟。由于我只能将两个超链接here's a link发布到包含模拟图像的页面(在地图上,红色方块是模拟机器人的位置和方向,黄色方块是使用线性三角测量估计对象的位置。 )
所以你可以看到,即使是一点旋转,估计也会被抛弃,就像在该页面上的位置2(那是15度;如果我再旋转它,那么估计完全不在地图上),甚至在已知完美校准矩阵的模拟环境中。在真实的环境中,当我真的随机器人移动时,情况更糟。
获得点对应关系没有任何问题,也没有在计算A矩阵时实际求解AX = 0方程,所以我认为它可能与我如何设置两个摄像机投影矩阵有关,具体来说我是如何从我相对于世界框架的位置/方向信息计算平移和旋转矩阵。我现在怎么做的是:
这导致第一个投影矩阵为K [I | 0],第二个是K [R | T],其中R和T如上所述计算。
我在这里做错了吗?或者它可能是其他一些问题?任何帮助将不胜感激。
答案 0 :(得分:-1)
如果没有Hartley和Zisserman在这里,我无法完全理解这个过程,但问题确实是由投影矩阵的成分引起的。请记住,由于矩阵为3x4,因此在平移之前应用旋转。这意味着您首先将相机轴旋转到最终方向,然后使用通过“旋转两个点(起始角度)度数”构建的平移向量。我会尝试通过将点旋转到最终角度来制作平移向量,然后减去它们的位置,看看是否能解决所有麻烦。从您发布的摘要中,我认为您使用的是在错误的轴上定义的平移向量。