旋转公式和矩阵对数

您所在的位置:网站首页 对矩阵取对数怎么算 旋转公式和矩阵对数

旋转公式和矩阵对数

2024-06-17 17:41| 来源: 网络整理| 查看: 265

在csdn上换点积分,感兴趣可以看知乎这个链接:

罗德里格旋转公式和矩阵对数 - Mr.Bo的文章 - 知乎 https://zhuanlan.zhihu.com/p/369659467

这样p(t)矢量末端的线速度 \dot p 可以表示为:

\\ \dot p=\hat\omega\times p=\left[\hat\omega\right]p

这个式子和我们之前介绍的向量微分方程如出一辙,因此它的解为:

\\p(t)=e^{\left[\hat\omega\right]t}p(0)

那意味着p(0)绕轴旋转后的新位置为:

\\p(\theta)=e^{\left[\hat\omega\right]\theta}p(0)

接着我们进一步展开这个式子,由于 \left[\hat\omega\right] 是斜对称阵,运算一下就有 \left[\hat\omega\right]^3=-\left[\hat\omega\right]\\ \left[\hat\omega\right]^4=-\left[\hat\omega\right]^2\\ \left[\hat\omega\right]^5=-\left[\hat\omega\right]^3

这样:

继续化简,可以看出括号内正好和sin和cos的麦克劳林级数有联系:

这样就有了下面这个描述:

对于一个向量 \hat\omega\theta\in R^3 , \theta 是任意标量, \hat\omega 是单位向量, \left[\hat\omega\right]\theta=\left[\hat\omega\theta\right]\in SO(3) , 绕轴\hat\omega\in R^3,{||\hat\omega||=1} 旋转 \theta 的旋转矩阵就可以写成:

上式就是著名的Rodrigues’formula。

通过这种方式,我们就可以很方便的完成旋转操作。比如我们要对3x3的矩阵B进行旋转,那么 e^{\left[\hat\omega\right]\theta}B 表示在定系中绕 \hat\omega 轴旋转θ, Be^{\left[\hat\omega\right]\theta} 表示在动系中绕 \hat\omega 轴旋转θ。

纯理论是不是过于抽象,这里我们举个例子:

图中定系s绕 \hat\omega=(0,0.866,0.5) 旋转30°,那么旋转矩阵就可以表示为:

假设定系s的矩阵是单位阵I,那么转动后的新位置就是R,注意角度不同,旋转后的位置不一致。

接下来进一步进行讨论:

如果 \hat\omega\theta\in R^3 表示旋转矩阵R的指数坐标,那么斜对称阵 {\left[\hat\omega\right]\theta} 就是旋转矩阵R的矩阵对数(matrix logarithm)。通过这种方式,就在旋转矩阵和向量之间搭建了桥梁:

旋转矩阵表示为:

\\ R=\left[\begin{array}{ccc} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{array}\right]

为了推导矩阵对数,我们先将Rodrigues’formula展开:

式中, \hat{\omega}=\left(\hat{\omega}_{1}, \hat{\omega}_{2}, \hat{\omega}_{3}\right) ,cθ=cosθ,sθ=sinθ ,由于旋转矩阵是对称阵,对矩阵减去它的转置后我们可以得到:

上式中 sin(\theta)\not=0 ,就有:

上面解出的式子可以表示为斜对称阵:

由于 sin\theta 的存在,这里得做出讨论:

当 sin\theta\not=0 时,引入矩阵的迹:

因为 \hat{\omega}=\left(\hat{\omega}_{1}, \hat{\omega}_{2}, \hat{\omega}_{3}\right) 是单位向量,因此 \hat{\omega}_{1}^2+\hat{\omega}_{2}^2+\hat{\omega}_{3}^2=1 ,那么对于任意 \theta满足 trR=1+2cos\theta 且 sin\theta\not=0 ,旋转矩阵R就可以用指数坐标 e^{\left[\hat\omega\right]\theta} 来描述,其中:

当sin\theta=0 时, \theta=\pm k\pi,k\in Z ,

当k为偶数时,这意味着已经绕轴转回了 R=I ,所以转轴 \hat{\omega}=\left(\hat{\omega}_{1}, \hat{\omega}_{2}, \hat{\omega}_{3}\right) 没有被定义。

当k为奇数时,旋转矩阵可以表示为:

继续运算就有:

由于旋转矩阵是对称阵,因此所有元素都计算完毕了。

到这里,矩阵对数的推导就结束了,总结一下:

对于给出的旋转矩阵 R\in SO(3) ,绕单位旋转轴 \hat{\omega}\in R^3,{\|\hat{\omega}\|=1} 旋转一个角度 \theta \in[0,\pi] ,向量 \hat\omega\theta\in R^3 表示旋转矩阵R的指数坐标,斜对称阵 {\left[\hat\omega\right]\theta}\in so(3) 表示旋转矩阵R的矩阵对数(matrix logarithm )。

就有以下情况:

(1)如果 R=I ,意味着 \theta =0 且旋转轴 \hat{\omega} 没有被定义

(2)如果 R=-1 ,意味着 \theta =\pi ,旋转轴 \hat{\omega} 的表示为下式三者任意一个:

(3)如果 \theta =arccos(\frac{1}{2}(trR-1))\in[0,\pi) ,那么:

满足上述三个条件中的一个,对于一个旋转矩阵R的指数坐标就存在一个矩阵对数。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3