2.2 旋转运动的性质
在上一节中曾提到利用局部坐标系的坐标轴排列成3×3的矩阵来表示机器人关节的旋转。这样的矩阵称为旋转矩阵,用来表示连杆的姿态和旋转运动。本节利用旋转矩阵来讨论在处理人形机器人时应该理解的三维旋转运动的性质。另外,在本节中,为了将内容进行简化,只讨论围绕原点的旋转运动。
2.2.1 滚转、俯仰、偏转的表现方式
旋转运动的基础是以 x 、 y 、 z 坐标轴为轴的旋转,分别称为滚转、俯仰、偏转。对 xy 平面上的三角形进行滚转(Roll)、俯仰(Pitch)、偏转(Yaw)的情况如图2.5所示。
图2.5 围绕 x 、 y 、 z 轴的滚转、俯仰、偏转。以π/18刻度旋转了+π/3rad。如果将三角形比作沿 x 轴飞行的飞机,这些运动分别对应右翻滚、机头向下、左旋
它们的旋转轴、名称和常用符号如表2.1所示。
表2.1 旋转轴、名称和常用符号
为了使某物体以给定角度进行滚转、俯仰、偏转,分别使用如下旋转矩阵。
以原点为中心,把某个点 p 按照滚转、俯仰、偏转的顺序进行旋转,公式如下。
p ′= R z ( ψ ) R y ( θ ) R x ( ϕ ) p
在这里改写为
p ′= R rpy ( ϕ , θ, ψ ) p
从而得到
式中, c ψ =cos ψ , s ψ =sin ψ 。
还是用矩阵 R rpy ( ϕ , θ , ψ )来表示旋转矩阵,那么任意姿态都可以通过( ϕ, θ, ψ )这三个数值来进行表示,这三个数值对应于滚转、俯仰、偏转(roll-ptich-yaw),又称为 Z-Y-X 欧拉角。
由于用滚转、俯仰、偏转来表示姿态直观易懂,所以经常用于表示船舶、飞机、机器人等的姿态。
2.2.2 旋转矩阵的含义
旋转矩阵 R 有两层含义。第一层是使向量旋转的操作。点 p 会根据选择矩阵 R 进行旋转,从而移动到 p ′,如图2.6a所示。
图2.6 旋转矩阵所包含的两层含义
p ′= Rp
p 和 p ′是相同坐标系表达的点。
R
的第二层含义是表示局部坐标系的姿态。图2.6b表现了局部坐标系的坐标轴和通过局部坐标系定义的
。将旋转矩阵定义为
点 P 在世界坐标系的坐标是
注意这只是用不同的视角去看相同的点,即进行了坐标变换,没有产生实质的运动。
旋转矩阵的含义,取决于计算后的结果是否属于同一个坐标系。
2.2.3 旋转矩阵的逆矩阵
用旋转矩阵表示局部坐标系的姿态,将构成坐标轴的单位向量设为 e x 、 e y 、 e z 。因为它们是正交的,所以有
是指两个向量的内积。现在取转置矩阵
R
T
和
R
的内积并应用上面的关系,有
因此 R T R = E 。把这个式子右乘 R -1 ,可得
也就是说,旋转矩阵转置后会变成逆矩阵。具有这种性质的矩阵称为正交矩阵。
2.2.4 角速度向量
现在定义一种表示物体在三维空间中的旋转速度的方法。在图2.7中,圆筒以1rad/s的速度绕 z 轴旋转。将圆筒的旋转速度用三维向量来表示,即角速度向量。
图2.7 旋转的圆筒。这个圆筒的角速度向量为[0 0 1] T rad/s
向量各个元素的单位为rad/s。
角速度向量的属性如下。
(1) ω 是通过单位向量×标量得到。
与旋转轴的方向一致的单位向量为
a
,旋转速度用
(标量)表示,由旋转产生的角速度向量可用单位向量的标量倍数表示。
(2) ω 会给旋转物体各个点赋予速度。
以 ω 旋转的物体上各个点的速度可通过 ω × p 得到。在这里, p 表示以旋转轴上面任意1点为出发点的位置向量,×表示外积(Cross Product),其定义如图2.8所示。
根据给定的两个向量 ω 和 p ,确定具有以下性质的新的三维向量 v (见图2.8)。
但是,满足这一要求的向量有2个,所以选择与从 ω 向 p 转动右手螺旋前进的方向一致的向量。这个时候以
图2.8 外积的定义。 v = ω × p 是旋转的圆周上一点的速度,与 ω 和 p 都正交
进行表达,也就是说,向量 v 是 ω 和 q 的外积。当给定 ω 、 p 中的元素时,外积的计算如下:
综上所述,外积的定义是为了正确计算旋转运动产生的速度 [3] 。下面的公式给出了角速度向量 ω 的物理意义。
顶点的速度= ω ×顶点的位置
使用上面的公式,可以轻松表示图2.9所示的以 ω 旋转的橄榄球状物体的各点所具有的速度。像这样旋转的物体在不同的地方具有方向和大小不断变化的速度,角速度向量仅用3个元素就表示了这一信息 [4] 。
(3) ω 本身自己是可以旋转的。
在式(2.17)的两侧乘以随机的旋转矩阵 R 。
在这里有
ω ′= Rω a ′= Ra
图2.9 旋转物体表面的速度。橄榄球状的旋转椭圆体以角速度向量 ω (粗箭头)旋转,用小箭头表示其表面的速度向量
这样,式(2.20)可以改写如下。
这与式(2.17)的定义相等,因此可知 ω ′是绕新旋转轴 a ′的角速度。所以角速度向量可以通过 R 直接旋转或进行坐标变换。
接下来,如图2.10所示,考虑用旋转矩阵 R 分别旋转角速度向量、位置向量和速度向量。也就是说
ω ′= Rω p ′= Rp v′= R v
根据外积的定义,旋转前和旋转后分别有
v= ω × p
v′= ω ′× p ′
然后就会导出如下的式子。
图2.10 用旋转矩阵 R 旋转角速度向量、位置向量和速度向量。三个向量之间的相对关系在旋转后也不变
2.2.5 旋转矩阵的微分和角速度向量的关系
角速度向量 ω 和旋转矩阵 R 之间有什么关系呢?在2.2.2节中我们看到,旋转矩阵 R 给出了物体顶点的局部坐标和世界坐标的关系。
在这里用时间对其进行微分,就可以得到世界坐标系中的速度。在局部坐标系中看到的物体上的点的坐标
不随时间变化。
在这里,把式(2.22)改写成
代入
上面式子是在世界坐标系中,从物体的顶点位置计算速度的公式。
由于
,下式成立。
这里的外积会以如下形式展开进行计算[见式(2.19)]。
将其重新表述为3×3矩阵的乘法,如下所示(请各自确认)。
新定义的矩阵 S 转置后其元素的符号会发生反转。这样的矩阵称为反对称矩阵(Skew Symmetric Matrix)。
那么,比较式(2.25)和式(2.27),
应该变成反对称矩阵
S
,证明如下。因为旋转矩阵的转置矩阵等于逆矩阵,有
对它进行时间上的微分 [5] 。
因此
无疑是反对称矩阵。
接下来,本书用“∨”来表示从反对称矩阵中提取三维向量的操作,用“∧”来表示从三维向量中生成反对称矩阵的操作,如下所示。
因此,外积运算可以表达为
ω × p = ( ω ∧ ) p
这里为了方便看式子,把∧放在头上 [6] 。
用以上的记法重新表示式(2.25)的旋转矩阵和角速度向量的关系,得到如下结果。
又或者是
2.2.6 角速度向量的积分和旋转矩阵的关系
思考一下对给定角速度向量进行积分得到旋转矩阵的方法。在式(2.30)的两边右乘 R ,得到以下式子。
式(2.32)是角速度向量和旋转矩阵的关系式,也是旋转运动的基础公式。旋转运动的基础公式是关于矩阵 R 的微分方程,所以只要积分就能得到旋转矩阵。初始条件 R (0)= E ,角速度 ω 一定时,解为
将式(2.33)代入式(2.32)即可确认是否正确。根据与指数函数的类比,将其标记为
,称为矩阵指数函数,即
这个无穷级数可以简化为下式 [71] 。首先将 ω 分解为单位向量和标量的乘积。
这时有
,所以
的高阶项都可以换成
或
。利用sin、cos的级数表示,可以得到下式。
式(2.35)被称为Rodrigues式,直接给出由一定角速度向量产生的旋转矩阵。该式和旋转运动的基础公式一样,是本书中出现的最重要的方程式之一 [7] 。
式(2.35)也可以看作是给出了围绕旋转轴 a (单位向量)旋转 ωt rad的旋转矩阵。把旋转角替代为 θ ≡ ωt ,可得
这个公式在正向运动学的计算中使用得特别多。
2.2.7 矩阵对数函数
前文已定义矩阵指数函数,下面定义它的反函数——矩阵对数函数,即
该函数用于获得与给定旋转矩阵对应的角速度向量(在1s内到达对应旋转矩阵的值)。
ω = (ln R ) ∨
具体的计算方法如下。推导过程可参见文献[71]。
式中,
利用矩阵指数函数和矩阵对数函数,任意两个旋转矩阵 R 1 、 R 2 的插值计算可以如下进行。
(1)求两者之间的旋转矩阵
。
(2)求出对应于旋转矩阵的角速度向量 ω =(ln R ) ∨ 。
(3)世界坐标系中的角速度向量是 R 1 ω 。
(4)插值是
,
t
∈[0,1]。


