计算尺寸> 3的欧拉角/ Tait-Bryan角的模拟

Nic*_*edy 15 math geometry r rotation euler-angles

在试图回答另一个SO问题时,出现了如何计算尺寸> 3的欧拉角的问题.该RSpincalc软件包具有直接的DCM2EA功能,可将3d旋转矩阵转换为Euler或Tait-Bryan角度,但这仅处理3维的特定情况.关于欧拉角维基百科页面简要讨论了将欧拉角扩展到更高维度的问题,并引用了一篇意大利语论文,该论文显然将该方法推广到更大数量的维度.不幸的是,我的意大利语和我的数学都没有完全掌握这篇论文并创建一个可用的R函数.

至少可以说,我在这个答案中使用的当前方法有点麻烦.我使用Ryacas包来创建一个符号矩阵,它是一系列旋转的复合,用于任意数量的维度.然后可以针对已知的旋转矩阵迭代地求解,以找到所需的角度.它有效,但一旦维数为5或更多,它就变得越来越慢.

是否有更好的方法来实现这一目标,无论是通过意大利报纸中的方法实施还是其他方式?

dpm*_*xvi 2

这里有一篇1972 年的有趣论文,解决了给定 N 维正交矩阵(我假设就是你所拥有的)计算 N 维欧拉角的问题。我浏览了这篇论文,它给出了您似乎需要的公式:

  1. 给定 N 维欧拉角的变换矩阵
  2. 给定变换矩阵的 N 维欧拉角
  3. 替代参数化,因为本文给出的方程解决了一种特定的参数化,这对于欧拉表示来说是常见的。

我没有尝试重新推导和验证他们的方程,但他们给出了明确的公式,这样你就可以将它们应用于你已经有答案的低维,看看他们是否同意。