旋转变换的指数形式

看一篇英文文献,里面用到了一个绕空间三个坐标轴旋转的矩阵,原文说using the exponential representation for rotations,并直接给出了下面的公式

Ri=e[θi]×,[θi]×=0θi3θi2θi30θi1θi2θi10(1)

初看直接傻了,完全摸不着头脑。在我印象中,旋转矩阵应该是这样的
R=cos(θ3)sin(θ3)0sin(θ3)cos(θ3)0001cos(θ2)0sin(θ2)010sin(θ2)0cos(θ2)1000cos(θ1)sin(θ1)0sin(θ1)cos(θ1)(2)

其中 θ1,θ2,θ3 分别是绕x,y,z轴旋转的角度。而这个和上面(1)式中的指数表示有什么关系呢?

三维旋转问题除了用旋转矩阵来表示,还可以用旋转向量来表示。我们知道,空间任何一个旋转变换(或是很多次旋转变换的组合),都可以简化为绕某一单位向量 r=[rx,ry,rz] 旋转 θ 角。假设这个旋转变换把一个向量 V1 变换到 V2 ,则

V2=V1cos(θ)+(r×V1)sin(θ)+r(rV1)(1cos(θ)(3)

而叉乘又可以表示为矩阵乘法的形式
r×V1=r×V1,r×=0rzryrz0rxryrx0(4)

我们把 r× 称为叉乘矩阵。由(3)式即可把绕向量的旋转变换变成矩阵形式。实际中,经常把旋转角度作为旋转向量的长度(模),因此有旋转向量转换成旋转矩阵的公式
旋转向量转旋转矩阵公式 (5)
即先从旋转向量提取出旋转角度的信息,再将旋转向量归一化,最后求出旋转矩阵。已知旋转矩阵,求旋转向量的公式如下
旋转矩阵转旋转向量公式
这个和本文主题关系不大,只是为了完整性提一下。以上两个公式,在OpenCV的文档里能找到,就是所谓的罗德里格斯公式(Roderigues Formula)。
而(5)式中的R矩阵,与矩阵的指数就有些关系了。
小木虫上有个帖子,介绍了矩阵的指数与旋转向量的关系
http://emuch.net/bbs/viewthread.php?tid=4536854
矩阵指数与旋转向量的关系 (6)
(6)式中最后一项I-cos(t)应为1-cos(t)。
从(6)式中我们可以看出,矩阵的指数是由泰勒展开式定义的
http://zh.wikipedia.org/wiki/%E7%9F%A9%E9%98%B5%E6%8C%87%E6%95%B0
维基百科里还提到它的一些性质,具体可以自己看。
(6)式中的 w^ 就是 w 向量叉乘的矩阵表示。从上面这段英文我们可以知道,由于叉乘矩阵的特殊性质,即w^3=w^,矩阵的指数可以简化为矩阵和三角函数的线性组合的形式。
因此,如果将
w^=0θ30θ300000=010100000θ3

代入(6)式,我们有
ew^t=cos(θ3)sin(θ3)0sin(θ3)cos(θ3)0001(7)

啊哈,这就是我们常见的绕z轴旋转的旋转矩阵。
同理,(5)式中如果我们注意到
r2×=r2x1rxryrxrzrxryr2y1ryrzrxrzryrzr2z1(r)


rrT=r2xrxryrxrzrxryr2yryrzrxrzryrzr2z=r2×I(8)

将(8)式代回(5)式就能得到
R=I+r×sin(θ+r2×(1cos(θ))

对比(6)可以发现这就是 er×θ ,因此(5)式和(6)式是等价的,(6)式即把绕向量的旋转变换为了矩阵的指数的形式。
至于(1)式中那个 θ 的叉乘矩阵,我本来想把它分解一下
0θ3θ2θ30θ1θ2θ10=010100000θ3+001000100θ2+000001010θ1

然后应用(7)式的结论就有了(2)式我们常见的旋转矩阵的形式。但矩阵的指数只有满足矩阵可以交换时才能分解,即 eX+Y=eXeY 只有在 XY=YX 时才成立。因此上面这种做法是行不通的。因为这种拆解方式, θ1,θ2,θ3 之间是没有顺序的,而(2)式的三个矩阵显然是有顺序的。

因此(1)式中的 θ1,θ2,θ3 并不是分别绕三维轴的夹角,而是一个旋转向量 θ=(θ1,θ2,θ3)T ,它定义的旋转变换,就是(1)式的这个矩阵指数形式。直接通过(5)式或者(6)式,可以把它换成一般的矩阵形式。由于矩阵的指数是通过泰勒级数定义的,因此用矩阵指数的形式来把旋转向量转换为旋转矩阵,计算起来比较容易。另外如果旋转向量 θ=(θ1,θ2,θ3)T 中含有变量,把它转换为(5)式那种形式,再想对变量求导就很不方便,而如果写成 eθ× 这种形式,根据定义很容易就能证明

ddθ1eθ×=eθ×ddθ1θ×

处理起来非常方便。

简言之,用矩阵指数来表示旋转向量的矩阵,计算、求导过程用计算机处理起来都很方便,我觉得这就是它常常被使用的原因。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 3

打赏作者

薇洛的打火机

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值