SVD法坐标系转换原理

喜你入骨 提交于 2019-12-11 07:32:05

SVD法是将在两个不同坐标系下的测量的多个点的坐标值对构造成一个矩阵,对该矩阵进行奇异值分解得到姿态矩阵。
1P=12R2P+12T{}^1P = {}_1^2R{}^2P + {}_1^2T
首先,使用两组点构造出一个矩阵HH
H=i=1m((2Pi2Pˉ)(1Pi1Pˉ)T)H = \sum\limits_{i = 1}^m {\left( {\left( {{}^2{P_i} - {}^2\bar P} \right) \cdot {{\left( {{}^1{P_i} - {}^1\bar P} \right)}^T}} \right)}
然后对HH进行奇异值分解
UΔVT=SVD(H)U \cdot \Delta \cdot {V^T} = SVD\left( H \right)
然后计算VUT|V \cdot {U^T}|的符号,如果大于0,则
12R=VUT{}_1^2R = V \cdot {U^T}
如果小于0,把VV的任意一列改变符号,仍然计算VUTV \cdot {U^T}作为12R{}_1^2R
在计算出12R{}_1^2R后,代入
1P=12R2P+12T{}^1P = {}_1^2R{}^2P + {}_1^2T
即可得到 12T{}_1^2T
该方法的代码实现可以参考笔者以前的博客
https://blog.csdn.net/iamqianrenzhan/article/details/103463932

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!