本文介绍了艾根 - 重新正交旋转矩阵的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

相乘很多旋转矩阵后,将最后的结果可能不是一个有效的旋转矩阵任何更多,由于舍入问题(去正交)

After multiplying a lot of rotation matrices, the end result might not be a valid rotation matrix any more, due to rounding issues (de-orthogonalized)

一种方式重新地正交是要遵循以下步骤:

One way to re-orthogonalize is to follow these steps:

  1. 转换旋转矩阵,以轴角度重新presentation(链接
  2. 转换回轴角度旋转矩阵(链接
  1. Convert the rotation matrix to an axis-angle representation (link)
  2. Convert back the axis-angle to a rotation matrix (link)

有什么在库,做同样的事情通过隐藏所有的细节?或者有没有更好的配方?

Is there something in Eigen library that does the same thing by hiding all the details? Or is there any better recipe?

该过程必须小心处理,由于特殊的奇异的情况下,因此,如果本征为此提供了一个更好的工具,这将是巨大的。

This procedure has to be handled with care due to special singularity cases, so if Eigen provides a better tool for this it would be great.

推荐答案

您可以使用QR分解,系统地重新地正交,在那里你与Q因子取代原来的矩阵。库中的程序,必须检查和正确的,如果需要的话,通过否定Q中相应的列,该R的对角项是正的(接近1,如果原始矩阵接近正交)。

You can use a QR decomposition to systematically re-orthogonalize, where you replace the original matrix with the Q factor. In the library routines you have to check and correct, if necessary, by negating the corresponding column in Q, that the diagonal entries of R are positive (close to 1 if the original matrix was close to orthogonal).

最接近的旋转矩阵Q以一个给定的矩阵从所述极性或QP分解,其中P是一个半正定对称矩阵被获得。该QP分解可迭代计算或使用SVD。如果是后者具有分解USV',则Q = UV'。

The closest rotation matrix Q to a given matrix is obtained from the polar or QP decomposition, where P is a positive semi-definite symmetric matrix. The QP decomposition can be computed iteratively or using a SVD. If the latter has the factorization USV', then Q=UV'.

这篇关于艾根 - 重新正交旋转矩阵的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-27 17:57