本文档将说明如何推导三维空间旋转变换矩阵
Copyright © 2020 HIT 余晨, 转载请注明出处。
原理说明
其实推导三维空间的旋转变换矩阵就是对三维空间进行换基而已,如果有学过矩阵分析的人应该能很好地理解我所说的意义,即入口基与出口基之间的变换矩阵。
当然,这里假设学习的人都是使用空间机器人或视觉处理的同学,因此这里由空间方法进行推导。
绕单个轴旋转的变换矩阵推导
现在假设我们有两个坐标系:x,y,z与n,o,a,如图1所示:
假设这两个坐标系原点重合,且坐标系n,o,a上固连有一点p,现在我们绕着世界坐标系x,y,z的x轴旋转一个角度
θ
\theta
θ,那么从x轴正方向上往里看,应该看到如下:
那么从几何关系上,我们通过计算旋转后P点在x,y,z坐标系下的坐标可以得到如下公式:
p
x
=
p
n
p
y
=
p
o
c
o
s
θ
−
p
a
s
i
n
θ
p
z
=
p
o
s
i
n
θ
+
p
a
c
o
s
θ
p_{x} = p_{n} \\ p_{y} = p_{o}cos\theta-p_{a}sin\theta \\ p_{z}=p_{o}sin\theta+p_{a}cos\theta
px=pnpy=pocosθ−pasinθpz=posinθ+pacosθ
写成矩阵形式:
这就是绕着x轴旋转的变换矩阵,有的人把负号位置弄错了是因为弄混了坐标系关系,其实只要记住点是固连在旋转坐标系noa上的,我们知道点在noa下的坐标,而我们要求的是旋转后这个点在xyz坐标系下的坐标,因此上面的等式左边应为
p
x
,
p
y
,
p
z
p_{x},p_{y},p_{z}
px,py,pz,而右边为
p
n
,
p
o
,
p
a
p_{n},p_{o},p_{a}
pn,po,pa。
如果等式左右对调了,得出的矩阵负号位置就错了,你们可以试着推一下。
正确的三维连乘矩阵结果
假设我们按照x,y,z的顺序旋转矩阵(世界坐标系,不是本身,因此左乘),那么: