《机器人与数字人:基于MATLAB的建模与控制》——2.3节指数映射和k过程

2.3指数映射和k过程
如前面所述,李群的SO(3)旋转矩阵常用来表示三维旋转。这已经被公认为最为通用、稳定和独特的方法。然而,在许多应用实例中,希望执行给定坐标系绕自身单位向量k旋转角度,而不是使用一个连续的旋转,即从基坐标系的三个基本旋转矩阵的乘积公式(22)计算出来。由于这种连续旋转变换的矩阵乘法一般是不可交换的,因此此旋转方法在机器人路径规划应用中更加直观、自然、简单有效。
将一个单位向量k=k1
k2k3投影到给定坐标系中进行旋转,显然,‖k‖2=k21+k22+k23=1。给出其相应的斜对称矩阵为

S(k)=K=0-k3k2
k30-k1
-k2k10

显然,对这个3×3斜对称矩阵来说:
1 K是斜对称矩阵,它的迹tr(K)=0;
23
2 K2是对称矩阵,它的迹tr(K2)=-2;

3 K3=-K。

基于以上介绍的单位斜对称矩阵K特有的性质,提出了一个实用的旋转表达方法,称为k过程。首先,令k∈瘙綆3为3×1向量。将它的斜对称矩阵K∈so(3)代入指数映射公式(26)中得到:
exp(K)=R∈SO(3)(27)
指数映射结果是旋转矩阵,它应该等同于绕k轴旋转角度。
将式(27)左边按照泰勒级数展开,结合上面提到的K的性质,得到:

exp(K)=I+K+22!K2+33!K3+44!K4+…

=I+-33!+…K+22!-44!+…K2

=I+sinK+(1-cos)K2=R
(28)
应用著名的泰勒展开式:
sin=-33!+55!-…, cos=1-22!+44!-…
假如给定坐标系绕单位向量k旋转角度,式(28)通常称为罗德里格斯公式,它提供了一种正向求解等效旋转矩阵R的方法。
为了求逆解,首先,计算式(28)的迹,即
tr(R)=3-2(1-cos)=1+2cos
那么
=arccostr(R)-12(29)
因为
RT=I-sinK+(1-cos)K2(210)
将式(28)减去式(210)得
R-RT=2sinK
最后有
K=R-RT2sin(211)

方程(29)和方程(211)提供了递归求逆算法,可以求解给定旋转矩阵R的向量k和旋转角度。乍一看,此公式没有唯一的符号。然而,对于每个余弦值都存在正负角度,假如公式(29)选择+(或-),那么方程(211)将相对应地得到k(或-k)。因此,可以选择一对可能的和k或者-和-k,且任何一对都是正确的。
例如,如果要使一个坐标系绕轴(121)T自身旋转60°(π/3),则单位坐标轴和其斜对称矩阵为

k=161
2
1,K=160-12
10-1
-210
因此,等效旋转矩阵为
R=I+sin60°K+(1-cos60°)K2=05833-0186907904

0520208333-01869

-062380520205833

通过逆运算,可以应用上面的旋转矩阵R的逆解公式来确定角度和轴线k。根据方程(29),由于tr(R)=2,=arccos(1/2)=60°,则有sin=3/2。那么,根据方程(211),有
K=R-RT2sin=0-0408208165
040820-04082

-08165040820
(212)

因此,单位向量为k=(040820816504082)T。显然,由于余弦函数是偶函数,可以取旋转角度为-60°。在这种情况下,轴线k相应变为负值。这两种选择显然是等价的,因为初始坐标系绕轴线旋转角度与绕相反的轴旋转负角度在三维空间中有同样的终点。
第二个实例是建立一个新的坐标系1,使得它的z1轴在基坐标系0下沿向量z10=(1-1-1)T。虽然可能有不同方法来建立坐标系1的方向矩阵R10,但我们只是尝试用k过程。将基坐标系z0=(001)T轴和新坐标系z1轴的公共法向量通过叉积确定为

b=z10×z0=01-1
-10-1
1100
0
1=-1
-1
0
然后,选择单位向量b作为旋转轴k:

k=b‖b‖=12-1
-1
0, K=1200-1
001
1-10
为了求出基坐标z0轴相对于新坐标系z1轴绕k旋转的角度,可使用点积:
zT0·z10=-1=‖z0‖‖z10‖cos=3cos
那么
cos=-13, sin=1-cos2=23

注意到cos<0,可见在第二象限,从而sin>0。因此,可求得新坐标系的方向矩阵

R10=I+sinK+(1-cos)K2=I+23K+1+13K2

=0211307887-05774
078870211305774
05774-05774-05774

此外,如果R是对称的,方程(211)将导致一个00不确定的极限。这意味着坐标系旋转角度如下:要么R=I,旋转0°;要么R≠I且RT=R,旋转180°。在第一种情况下R=I,由方程(29)计算=arccos(1)=0,可以略过公式(211)以避免出现奇异点和零点。然而,在第二种情况下,=arccos(-1)=180°,不能直接由方程(211)确定K。在这个特例中,sin=0,cos=-1。根据前面的方程(28),R=I+sinK+(1-cos)K2=I+2K2,或者
K2=12(R-I)(213)

因此,当R=RT,R ≠I时,必须使用这个公式来确定K。
例如,如果

R=0-10

-100

00-1
26
R是对称矩阵,但R≠I,则tr(R)=-1,=180°。现在,令
K=0-k3k2
k30-k1
-k2k10
那么
K2=-k23-k22k1k2k1k3
k1k2-k23-k21k2k3
k1k3k2k3-k21-k22
因为
R-I=-1-10
-1-10
00-2
将上式与K2相比,根据式(213)我们首先得到非对角元素值
k1k2=-12,k1k3=0,k2k3=0
这意味着k3=0。然后,得到对角元素值
k23+k22=k22=12,k23+k21=k21=12

这样,无论是k1=2/2,k2=-2/2还是k1=-2/2,k2=2/2,都与=±180°相对应,其旋转结果相同。可以任取一组这样的单位向量

k=2/2
-2/2
0,=180°

因此,仅在RT=R但R≠I的情况下,可以使用上面的方法来确定k,以及设置=180°。这样的情况在第3章中将会再次提到。
如果方程(28)两边都右乘单位向量k,很容易得到
Rk=k+sinKk+(1-cos)K2k=k
因为Kk=k×k≡0。这个结果显示单位向量k是k过程中特征值为1的旋转矩阵R的特征向量。因此,如果在MATLAB中进行k过程反解数值编程,对于给定的旋转矩阵R,可以利用内部求特征值

函数特征向量eig(R)而不需要通过方程(211)确定K,以避免可能产生的奇异点。在先前的数值实例中,

可以清楚地看到,一旦内部函数eig(R)被调用,元素“val”沿着输出矩阵的对角线打印出三个特征值,而“vec”打印输入矩阵R的三列特征向量。显然,因为最后一个对角元素“val”是10000,其对应的特征向量是“vec”的第三列,即(040820816504082)T,得到的结果和公式(212)是一致的。如果令R=I,则单位矩阵在MATLAB工作窗口中输出如下结果:

这一结果表明特征值+1对应的单位特征向量为k=(-07071070710)T。从上面的例子中得到这个向量为负值,但它并不影响最终旋转结果,因为在这种特殊情况下,旋转角度可以选择±180°。
总之,基于数学上的完美指数映射在公式(27)中的so(3)和SO(3),研究了式(28)中简洁的旋转矩阵R∈SO(3)的正向和逆向方程,以及式(29)和式(211)中的k过程。后面将会发现,k过程在机器人运动学、数字人运动规划尤其是路径定向规划方面是非常有用的。

时间: 2024-09-20 06:18:59

《机器人与数字人:基于MATLAB的建模与控制》——2.3节指数映射和k过程的相关文章

《机器人与数字人:基于MATLAB的建模与控制》——导读

目 录 前言第1章机器人和数字人建模概述1.1机器人的发展历程: 过去.现在和未来1.2数字人建模:历史.成就和新挑战1.3借助机器人分析方法进行数字人建模第2章数学基础2.1向量.坐标变换和空间描述2.2李群和李代数2.3指数映射和k过程2.4对偶数.对偶向量及代数形式2.5外代数简介习题第3章刚体运动的表示3.1平移和旋转3.2线速度和角速度参考文献

《机器人与数字人:基于MATLAB的建模与控制》——2.4节对偶数、对偶向量及代数形式

2.4对偶数.对偶向量及代数形式 在数学运算中,两个实数a和b可以与某一单位量j结合产生一个新的数c=a+jb.通常情况下,仅在下面三种不同的情况下,单位量j才可以单独定义为 j2=+1,j2=0,j2=-1 在过去,组合数的三种形式已经有相关的研究[9, 10, 12],可以通过表2-1来简要描述. 在表21中,每种类型的组合数构成一个加法群,但只有复数满足乘法群,因此它能形成代数域.而双数和对偶数仅能形成乘法半群,因为双数在a=b时以及对偶数在a=0时逆运算不存在.因此,这两种代数只能形成

《机器人与数字人:基于MATLAB的建模与控制》——1.1节机器人的发展历程: 过去、现在和未来

第1章A Journey from Robot to Digital Human: Mathematical Principles and Applications with MATLAB Programming机器人和数字人建模概述 1.1机器人的发展历程: 过去.现在和未来近半个世纪以来,机器人研究和技术开发不断发展进步.机器人的发展历史主要分为三个时期:早期.中期和近期.美国机器人协会早期对机器人的官方定义为:"机器人是一种用于移动各种材料.零件.工具或专用装置的,通过程序动作来执行各种任

《机器人与数字人:基于MATLAB的建模与控制》——1.3节借助机器人分析方法进行数字人建模

1.3借助机器人分析方法进行数字人建模回顾机器人和数字人建模的研究和技术开发的历史,可以发现,每一次技术进步和前沿创新总是反映在主要商业仿真软件产品中.虽然大多数图形模拟软件会显示一个小的"窗口"表明自己的开放式体系结构特征,并号称允许用户编写自己的应用程序进行研究.测试或者验证,而实际上,当用户自己编写的程序准备好与这些软件产品通信时,往往需要特殊的应用程序编程接口(API)以便识别和运行用户自己的应用程序.因此这些软件的应用就受到了限制,不适合用于科研和教学.最理想的是有一种集建模

《机器人与数字人:基于MATLAB的建模与控制》——1.2节数字人建模:历史、成就和新挑战

1.2数字人建模:历史.成就和新挑战 2008年,密歇根大学HUMOSIM研究室的Don Chaffin博士做了一个综述评论[19].在评论的开头,他强调许多人机工程/人类工程学专家都渴望有一个具有鲁棒性的分析模型,这个模型具有模拟人口统计学上特定定义人群的物理和认知性能的能力.他还 7 提到了一份来自美国国家研究委员会的1990年人体性能建模报告,并强调这种模型具有如下优点: 1人类工程学专家使用该模型可以模拟和测试各种潜在的人类行为理论,从而明确新研究的优先领域. 2专家们可以使用该模型

《机器人与数字人:基于MATLAB的建模与控制》——2.1节向量、坐标变换和空间描述

2.1向量.坐标变换和空间描述一般情况下,一个向量可以有以下两种不同类型的定义:1点向量--向量仅由它的长度和方向确定,与它的终点位置无关.依据此定义,不管向量的终点位于何处,任意两个长度和符号相同的平行向量相等.为了表示这种类型的向量,通常把终点放置在参考系的原点并用箭头指出方向,坐标值的增加量就构成了点向量.2线向量--向量不仅由它的长度和方向确定,也取决于它的位置.因此,两个不同直线的平行向量,即使有相同长度和符号也被认为是不相等的向量.直观地看,为了准确定义这种线向量,图2-1长度相同的

《机器人与数字人:基于MATLAB的建模与控制》——3.2节线速度和角速度

3.2线速度和角速度 为了求得给定的3×1位置向量p∈瘙綆3所表示平移运动的瞬时速度,即通常的刚体运动的线速度,可以简单地对位置向量p按时间求导,即v=.但是在求导之前,需要先完成一些准备工作,必须先把位置向量p投影到一个固定的基础坐标系上,而不能是移动的坐标系上.也就是说,如果pi当前投影到一个非固定坐标系i上,那么必须找到坐标系i相对于基础坐标系的方向矩阵Rib,在计算线速度vb=b之前,需要先求pb=Ribpi.原因很明显,vb=b=ibpi+Ribi≠Ribi,除非Rib是常数矩阵,然

《机器人与数字人:基于MATLAB的建模与控制》——2.5节外代数简介

2.5外代数简介外代数最早由赫尔曼瘙簚格拉斯曼在1844年提出,随后庞加莱.嘉当以及达布等许多伟大的数学家对其进行了进一步研究和发展[19, 20, 21].针对微分几何中的多变量微分,它提供了一种有用的计算和概念工具,揭示了许多数学关系的重要实质是斜对称本质,尤其是微分和积分.定义5令x1,-,xm为瘙綆n空间中的m个向量(m≤n),对于任何i,j=1,-,m,如果以下条件成立,那么xi∧xj称为楔积或者外积.1斜对称:xi∧xj=-xj∧xi.2分配律:对于任意两个常量a1和a2,有(a

《机器人与数字人:基于MATLAB的建模与控制》——2.2节李群和李代数

2.2李群和李代数在数学中[4,5],与集合论不同,群论在研究集合或者一组元素时,通常连同其某种运算一起研究.定义1一个群是由一个集合G连同其布尔运算""来定义的,并满足如下条件. 1闭合律:对于任意a, b∈G,ab=c∈G. 2结合律:对于所有a,b,c∈G,(ab)c=a(bc). 3单位律:存在单位元ι∈G,对于所有g∈G,使得等式ιg=gι=g成立. 4交换律:对于每个g∈G,存在一个元素h∈G,使得gh=hg=ι. 所有实整数与加法相关联形成加法群,但与