旋转轴+角表示这一块#
在三维空间中,任意旋转都可以表示为绕某一固定轴旋转一定角度。 这种表示方法称为旋转轴-角表示。对应的数学工具是罗德里格斯公式(Rodrigues’ rotation formula)。
R=I+sin(θ)K+(1−cos(θ))K2先规定符号:
我觉得把source和target都放在上下标里不太好理解,不如直接回归定义:左上标表示参考系,右下标表示被表示的对象
-
P点在A基底下的表示:AP
-
绕固定轴的旋转矩阵:Raxis(θ)
-
A基底(向量)在B基底下的表示:BXA
-
B基底下到A基底的旋转:BRA=(BXA,BYA,BZA)
-
B基底下到A基底的平移(A系下B的原点):BPAorg
-
B基底下A基底的齐次变换矩阵:BTA=[BRA0BPAorg1]
绕固定轴旋转:旋转因子#
旋转因子 Raxis(θ),axis∈{x,y,z} 表示绕axis轴正向旋转 θ 角度的旋转矩阵。
TIP正向:右手定则:大拇指指向旋转轴正方向,四指弯曲方向为正向旋转方向
旋转因子的形式:
RX(θ)=1000cosθsinθ0−sinθcosθRY(θ)=cosθ0−sinθ010sinθ0cosθRZ(θ)=cosθsinθ0−sinθcosθ0001TIP看主对角线1的位置,从右往左依次是xyz;三角是 cssc 形式,XZ轴-在右上角,Y轴-在左下角
旋转因子的左乘与右乘#
作用方式分为左乘和右乘:
Aprotated=RZ(θ)⋅AporiginalA(rotated)p=Aporiginal⋅RZ(θ)可见,左乘是坐标系不动,对向量进行旋转,得到原坐标系下旋转后的坐标;
右乘是对坐标系进行旋转,向量保持不变,得到向量在旋转后坐标系 Arotated 下的坐标。
旋转因子的连乘#
在左乘(参考的坐标系不变)的情况下,按照欧拉角旋转,xyz和yzx的结果有可能不一样。对于,从 axis1 旋转 θ1,再从 axis2 旋转 θ2,最后从 axis3 旋转 θ3,总的旋转矩阵为:
R=Raxis3(θ3)⋅Raxis2(θ2)Raxis1(θ1)R⋅Aporiginal=Raxis3(θ3)⋅Raxis2(θ2)Raxis1(θ1)⋅Aprotated第一次转动写在乘积的最右边,依次往左。(可以理解为不断左乘进行变换)
在右乘(参考系变换)的情况下,按照欧拉角旋转,xyz和yzx的结果也是不一样的。对于,从 axis1 旋转 θ1,再从 axis2 旋转 θ2,最后从 axis3 旋转 θ3,总的旋转矩阵为:
R=Raxis1(θ1)⋅Raxis2(θ2)Raxis3(θ3)Aporiginal⋅R=Aporiginal⋅Raxis1(θ1)⋅Raxis2(θ2)Raxis3(θ3)不断右乘进行变换。
旋转因子,置换矩阵和反转矩阵#
置换矩阵:简单讲就是对单位矩阵的重新排列,3*3的置换矩阵有6个:
P1=100010001,P2=010100001,P3=001010100,P4=100001010,P5=001100010,P6=010001100置换矩阵的作用方式和旋转因子类似,也分为左乘和右乘。
左乘行变换,右乘列变换。
由于旋转矩阵的列向量有特殊性,表示旋转后坐标系的基底方向,所以常用右乘。
反转矩阵:单位阵主对角线元素取负号,3*3的反转矩阵有7个:(去掉单位阵)
M1=−100010001,M2=1000−10001,M3=10001000−1,M4=−1000−10001,M5=−10001000−1,M6=1000−1000−1,M7=−1000−1000−1反转矩阵的作用方式和旋转因子类似,也分为左乘和右乘。
左乘行变换,右乘列变换。
左乘在坐标系不动的前提下,对向量进行反转;右乘在向量不动的前提下,对坐标系进行反转。
这两种作用方式的到的向量互为转置,虽然元素相同,但意义不同。
TIP反转矩阵里面有两个负号的可以看作旋转矩阵转了180
旋转因子可以和置换矩阵、反转矩阵结合使用,完成更复杂的旋转操作。
正手:用三种矩阵组合完成任意旋转
反手:给定组合得到的矩阵,分解成旋转因子,置换矩阵,反转矩阵组合的形式
重点讲一下反手
设经过某种组合得到的矩阵 T,旋转因子记作 R,置换矩阵记作 P,反转矩阵记作 M,那么 T 的分解方式和左乘右乘有关:
⎩⎨⎧T=M⋅P⋅RifT⋅APT=R⋅P⋅MifAP⋅T例如:
T=−c0ss0c010如果 T 是左乘作用于向量 AP,那么:
T⋅AP=−100010001⋅100001010⋅cs0−sc0001⋅AP表示向量 AP 在坐标系不变的情况下,依次经历了旋转,置换,反转三个变换。
如果 M 是右乘作用于向量 AP,那么:
AP⋅T=AP⋅c0−s010s0c⋅100001010⋅−100010001表示向量 AP 在坐标系依次经历了旋转,置换,反转三个变换后,在新的坐标系下的表示。
旋转因子的性质#
-
旋转因子是正交矩阵,满足RTR=I
-
旋转因子的行列式为1,∣R∣=1
-
旋转因子的逆矩阵等于其转置矩阵,R−1=RT
-
多个旋转因子相乘仍然是一个旋转因子
坐标变换矩阵这一块#
上文的旋转矩阵更类似于一种“局部旋转”,即在固定坐标系下对向量进行旋转。而坐标变换矩阵则用于描述不同坐标系之间的转换关系。比如说不同的舵机都会有自己的基底坐标系,我们需要将它们转换到一个统一的全局坐标系下进行计算。
用矩阵 APBorg 表示在A基底下B基底的平移变换。也就是B 的原点在A坐标系下的表示:
用矩阵 ARB 表示在A基底下B基底的旋转变换。也就是B 的基底在A坐标系下的表示:
ARB=[AXBAYBAZB]=X^B⋅X^AX^B⋅Y^AX^B⋅Z^AY^B⋅X^AY^B⋅Y^AY^B⋅Z^AZ^B⋅X^AZ^B⋅Y^AZ^B⋅Z^A对于坐标变换矩阵的连乘
ARC=ARB⋅BRC
齐次变换矩阵这一块#
齐次变换矩阵是将旋转和平移结合在一起的矩阵,通常表示为4x4的形式:
ATB=[ARB0APBorg1]其中,ARB 是在A基底看B基底的旋转矩阵(可以是旋转因子和置换阵与反转阵的结合),APBorg 是在A基底看B基底的平移向量。
其次变换矩阵左乘与右乘#
需要注意的是,其次变换矩阵形式上包含旋转和平移,左乘和右乘对平移旋转的顺序有影响
左乘:先旋转后平移,不改变参考系,只改变向量
右乘:先平移后旋转,改变参考系,不改变向量
特别地,当右乘作用于基底时,可以得到新的坐标系,这就是正向运动学的数学基础
{B}={A}⋅ATB齐次变换矩阵也满足连乘。