Exponential Coordinate与旋转矩阵的转换
Exponential Coordinate的旋转表示参考旋转表示, 即
因为:
将(2)带入(1),所以有:
上式中\(s_\theta =sin\theta,c_\theta=cos\theta\), 将上式的每个元素与旋转矩阵\(R\in SO(3)\)的元素比对,当\(sin\theta\ne 0\)则有:
即:
所以有:
(3)(4)满足\(w_1^2+w_2^2+w_3^2=1\)
只要在\(sin\theta\ne 0\)的情况下,根据(3) (4)两式即可求得\(e^{[w]R}\)旋转表示.
现在讨论\(sin\theta=0\)的情况即\(\theta=k\pi\)的情况,当\(k= 0,\pm 2,\pm 4,...\),有:
$$tr R=3 \qquad R=I $$
当\(k=\pm 1,\pm 3,\pm 5,...\)时,有:
再根据\(w_1^2+w_2^2+w_3^2=1\),所以:
上式可能不总是返回一个单位化向量\(w\),此时可以看看另一种解决方法是否可求得单位化\(w\):
一旦找到了单位\(w\), 旋转表示则可以得到:\(R=e^{[w]k\pi},k=\pm\pi,\pm 3\pi...\)
实际表示旋转的时候,我们将\(\theta\)限制在\([0,\pi]\),综合上面的推导,可以得出:
给定\(R\in SO(3),\gamma=w\theta\in R^3,\theta\in[0,\pi],w\in R^3, ||w||=1,R=e^{[w]\theta}=I+sin\theta[w]_(1-cos\theta)[w]^2\), \(w\)和\(\theta\)的求法如下:
- 如果R=I,那么\(\theta=0,[w]\theta=0\)
- 如果\(trR=-1\),那么\(\theta=\pi\), \(w\)可以有一下任意给出:
\(w=\frac{1}{\sqrt{2(1+r_{33})}}\begin{bmatrix}r_{13}\\r_{23}\\1+r_{33}\end{bmatrix}\)
或者
\(w=\frac{1}{\sqrt{2(1+r_{22})}}\begin{bmatrix}r_{12}\\1+r_{22}\\r_{32}\end{bmatrix}\)
或者
\(w=\frac{1}{\sqrt{2(1+r_{11})}}\begin{bmatrix}1+r_{11}\\r_{21}\\r_{31}\end{bmatrix}\) - \(\theta=cos^{-1}(\frac{trR-1}{2})\in[0,\pi), \qquad [w]=\frac{1}{2sin\theta}(R-R^T)\)
旋转可以用下图形象的来表示,给定球内一点\(r\in R^3\), 让\(w=r/||r|| \qquad \theta=||r||\),则有\(r=w\theta\).对于任意个\(R\in SO(3) , tr R \ne -1\),球内存在唯一一点使得\(e^[r]=R\)
而对于\(tr R =-1\)的情况,存在两点在球的表面上,两点连线通过圆心,\(||r|=\pi\),或者是\(R=e^{r}\)或者是\(R=e^{-r}\),两者表示同一个旋转.