第二章刚体空间变换_第1页
第二章刚体空间变换_第2页
第二章刚体空间变换_第3页
第二章刚体空间变换_第4页
第二章刚体空间变换_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、刚体空间变换作者:追风少年 时间:2016/12/29本文为作者原创文章,未经作者允许不得转载,谢谢合作!前言在定位导航领域,最基本知识当属空间几何、刚体变换等,尤其是对于机器人领域,开发 人员涉及到大量的空间转换和刚体运动方面细节。稍有不慎,就有可能发生错误和混淆,有时 一个小的错误,就会导致算法无法正常运行,令人十分困恼.本文梳理了一些基础的刚体变换 知识,更侧豆于从应用角度来分析刚体空间变换.一笛卡尔坐标以及右手法则Note:英国法律规定马路行车靠左行驶,我国法律规定行车靠右行驶.空间XYZ三维坐标中,当在某个平面内确定XY轴的正方向时,Z轴的选择有两种可能 性:垂直平面的两个方向。为了

2、规范坐标系建立的一致性,选择右手定则进行确定,我们称为 笛卡尔坐标.右手定则:伸出右手,将拇描指向X轴的正方向,食指指向Y轴正方向,则中指所指示的 方向即为Z轴的正方向.规定旋转方向:在右手坐标系中,物体旋转的正方向是右手螺旋法则,即从该轴正半轴向 原点看,逆时针方向为其正方向。图a)右手规则Orientation o< Axm ofandPolarity of Rotation图b)规定旋转方向二坐标系室内定位过程中,需要建立不同坐标系的观测,如我体坐标系(BodyCoordinate;观测的加速度、角速度等转换到世界坐标系(Earth Coordinate)进行运算。这里选最常用的两

3、种坐标系解释。裁体坐标轴(B):一般地,在航天飞行领域和计算机图形学中,选取载体前进方向为x轴正方向,右侧冀方向为y轴正方向,向下为z轴正方向.世界坐标系(E):Tips:在实际项目开发中,我们往往会使用一些开源库进行开发,需要强调的是,在使 用其提供的API Z前,必须要搞清楚开源库函数坐标系的选取和基准是否与目前系统参照有所 冲突,有时方向不一致十分影响程序的运行,尤其是科研研发当中!三空间变换3.1什么是空间变换简言Z,空间变换是把戟体坐标系i动)下观测的变量(向量丿换算成世界坐标系(定丿下的对应 值,获得有用的数据,即将载体Body坐标系B转换到世界坐标系E设空间八尺下的一组肌位正交基

4、为下的一组单位正交基为亿,厶,&,则B坐标系卜的基坐标在坐标系A卜的表示为Xfi =+ r2l Jl + 41*2 = A< Vb = rill + r21Jl + rill = Jl= rl5i2 + ruj2 + r3ik2 = k,由空间变换的定位可知,使用不同基坐标观测一个矢量,会在不同的度量空间下得到不同的表示.而空间变换的意义就在于能够建立两个空间的连接,即旋转矩阵显然,由向竜空间旋转知,ARfl = Rotation.表示为作用于基坐标A到基坐标B的旋转;ARJ乍用于B下的坐标则得到由4基坐标构成的空间,称为坐标变换.上式助记符,八只的含义为B坐标系下的单位正交基在

5、坐标系4下的表示。则如果需 要将但坐标系上的矢量表示为坐标系,则叭乘以这组正交aAxfl,A>«,Azj即可: ax=aRhhx其中,AR&表示刚体3相对于坐标系A的姿态的旋转矩阵.Tips:空间由一组正交基表示.则空间变换的核心当然就是这组正交基之间的关系.步骤 为使用农示S寻找仏)到(4、之间变换 使用切表示h3.2向量旋转与坐标系姿态向帚旋转是指在同一坐标系下,经过旋转后原向疑与当前向疑之间的变换关系,注噸空间 位置关系.坐标系姿态则是指同一观测量任不同坐标系(基元)下农示之间的变换关系,-般地需要将 其中一个基坐标旋转至另一个基坐标对齐.从两者的定义来说,向虽旋

6、转描述的是旋转矩阵作用于空间向屋而坐标系込态则是旋转矩 阵作用于一组基坐标.不难发现,在数学表达形式上,旋转矩阵表达形式一致,其含义却大不相同.不可混淆.3.3基本旋转将绕X. Y. Z轴的旋转变换称为基本变换.RlXQ =1 0 00 cos& - sin 0 0 sm& cqsO R(YZ) =cos& 0 sin 00 1 0 -sin3 0 cos。 /?(乙 0)=cqsO - Sill 00sm& cos。 00 0 1 任何的旋转都可以由如上的基本变换组合而成.但旋转合成过程中需要区分两种情况:旋 转轴固定和旋转轴不固定.若旋转经过的姿态为ABC,

7、旋转合成应该分情况讨论:载体每次的旋转过程都是绕着同一皐坐标系库坐标变换,如地球坐标系为参照)进行,则旋转合成可以表示为T=TJJ载体毎次的过程都足绕着当前坐标系(联体坐标突换.如中问姿态的坐标系为参照丿进行,则旋转合成可以表示为T=T6J、以匕规律.通常被称之为右乘联体左乘基.该口诀会在之后的欧拉角以及各种旋转表达方 式中表现出来.可以看出合成运动与旋转次序有着必然联系.四空间姿态空间姿态的农示方式有方向余弦(Direction Cosine八 欧拉角(Euler Angle八 四元数法 (Quaternion).其中方向余(DirectionCosine八欧拉角(EulerAngle)表示

8、方法直观便于进行空 间理解和图形展示但运算性质不佳,而卩q元数法在数学性质上有着很好的表达能力,所以在实 际应用中常常需要相互转换.获取全面的姿态表示,其优劣将在下而进行讨论.4.1 方向余弦法(Direction Cosine)已知在坐标系1的向量V1农示为可以表达为:rX1/J''严也+ y丛+ zK =>1 =町=A VvJAT/v厂Tr-il-11 r 1 孔 X。VArK:>v = Ol2 + v2 => %= y。+ v2T最后有空间变换公式:Il 12 'Jl a 12=2 +Il J2 Ji J2V2十Ii -K2 'J1K2K

9、, -I2 K1J2 Ki - K2 (】2叼十121/2十K2乙2)cos(7i)COS(72)cos(73)cos(cii) cos(Bi)COS(Q2) COS(32)COS(°3)COS(03)4.2 欧拉角(Euler Angle)欧拉角农示方法由著名数学家欧拉首次提出,主要用于飞行器、制导与导航、小型飞行器 等设备调节姿态,以便到达指定姿态和位置,这种方式的空间变换便于人的理解和操作.欧拉 角表示方法认为,任意姿态变换可以分解为分别绕X、 Z轴的旋转变换合成来表示.旋转次序:依次绕着三个坐标轴的旋转可以描述任意一个旋转.事实上这样会有27种可能 的旋线次序,但是仅仅有12

10、种満足连续2次旋转不为同一旋转轴,如下所示:At)G (1.2.1),(1- 2.3), (1,3.1),(1.3.2),(2.1.2) , (2,1,3), (2,3,1),(2,3,2),(3.1.2) , (3.1.3), (3.2.1),(3. 2.旳.图中黑色加粗旋转序列是实际应用中最常见的选择.序列3,】,3(ZXZ丿,被称为Leonhard Euler,是以世纪瑞士数学家和物理学家Leonhard 命名,主要应用于陀螺运动中刚体自旋的姿态表示.序列1, 2, 3(XYZ丿,被称为6rdan Euler,是以文艺复兴时期意大利数学家Gerolamo Cardano命名,又叫Tait

11、-Bryan Angles.以19世纪苏格兰数学物理学家Peter Guthne Tait命名, 主要应用于航空工程和计算机图形学领域.本文主要介绍旋转次序为XYZ的欧拉角表示,按如下旋转顺序XYZ:在YZ平面内,绕x轴旋转0角度,称为翻滚角rolling,在XZ平面内,绕y轴旋转0角度,称为俯仰角pitch,在XY平面内,绕z轴旋转角度,称为航向角heading ,为方便理解.特附匕欧拉旋粋槻频満示地址:hg:/wHki(zmAhz/M_XN:k()TIMTI=hmd欧拉角的表示方法:考世从载休坐标系旋转到世界坐标系时.旋转矩阵可以由墓木矩阵构成,按照ZYX旋转顺序,我们很容易获得其屁转矩阵

12、为cBc屮=> £v= sQsBc屮一 cQs屮C0S0C 屮+ S0S 屮C&S屮S0S0S 屮+ c(frcy/cQsBs屮一 st/fcy/-sO鸟=/?(X"广忌丫0严乙屮)E Xri00 'cO0s0c屮-si/of Xy=0C070010SI/Cl/0y0$0C(f>-s60ce001z_欧拉角速度与角速度0:Tips:静止状态下,为了初始化载体姿态,这时如何求解谨态矩阵(ZYX旋转次序丿呢?s av=>ay=azC0C屮S0S0C 屮一gs 屮C0S0C 屮+ S0S 屮C0S屮S0S0S屮七 ccy/cQsOs屮一 s如屮a

13、x = gsO ay = -gcOs(t> =>az = -gc(/K'0(fi= atan2-ayy-az)0 = otan.2(心,Jay' +血,) 0 «0 0=R(y、O)*Ri Z、屮)0+ R(乙 )e+03. 00申c0cy/c8s 屮s6 s屮(屮0 e001 _y_4.3 四元数法(Quaternion)四元数法是由19世纪爱尔兰数学家William Roxn Hamilton提出.什么是四元数?四元 数是由一个实数和一个三维复数相加组成基本性质四元数共辄:ft四元数模长:四元数逆:iwii乘法:q®p =p) = Q(q)

14、p=Q(p)qQ® =£q、-如-_侑-纟Q® = Q3s s 亦)=Q(q)TA*JS昇:-q, q.The inverse mappings, frcm a unit quaternion to rhe ccr responciing axis and angle of rotation, are aq : H K and n7 : H > S2, (lelined by(q) = 2;i(“s .n7(q):=qi:3Ml;3<11:3(198)(199)四元数姿态表示四元数表示法中姿态变换是载体坐标系以空间向虽/为轴旋转角度0得到.如右图所示,

15、 Frame B是由Frame A以向疑"厂为轴旋转角度&而得.四元数;q = cos(0/2) Ar siii /2»描述了刚体妁定点转动,可认为B系是由A系经过无中间过程的一次性等效旋转 形成的,:q包含了这种等效旋转的全部信息:竹为旋转瞬轴 和旋转方向,0为转过的角度.向量旋转:令;q=h Qi ch 表示由载体坐标系向地理坐标系乙旋转表示的四元数,使用 四元数对向量进行旋转,得:2v=討两討T= :(1)fv= fiv®(2)其中,式 表示的几何含义为向最绕q:进行旋转后与'vfi合,式表示不同坐标观 测Z间的变换并无儿何意义.四元数姿态更

16、新因为对角速率进行枳分,可以计算载体旋转的角度.一般地,选取s=q©.0:;q® 制 ® ;q进行姿态更新(区别与£灯角选取s亠作为姿态),因为每次进行姿态更新时,有冋 一基准.在导航的应用过程中,常使用:勺将载体的姿态通过陀螺仪的旋转速度变换到新姿态上俗 称姿态更新.四元数微分方程:W=o a)v 冬四元数更新:Ecit+i = R +由姿态更新等式,四元数所表示的旋转矩阵为2矿一1+ 2q: 2(弘俗+幺侑)2(绻侑一纽偽);R = 2(仏偽一 q、qj 2qj_ 1 + 2q;2(g« + q、qj2(仏仍 + qg 2(弘s - q、q

17、j 2q; 一 1 + 2qj 从实际应用来看,四元数即代表裁体状态,又代表姿态更新行为从获取载体的姿态來看, 四元数可以农示为对应的欧拉角;从姿态更新的角度上来看,陀螺仪的旋转引起的姿态变换可 表示为当前卩q元数与o/waZ、当前卩q元数的逆三者之间叉乘运算的结果.四元数均值在UKF卡尔曼滤波过程中,需要对四元数姿态求均值,本小节从这里出发探索四元数一些 有趣的性质.使用四元数作为状态最时,由于卩q元数构成的空间并不是欧几米德空间,即阿元 数运算并不满足算子的封闭性和结合性.在对四元数进行UT变换时,不能使用常规的求均值 方式.四元数与噪声在卩q元数状态方程中,噪声叫增加了物体姿态不确定度(

18、Deg/Tune Interval).叫是一个三维噪声向呈,它不能被简单地加到单位四元数上,需要转化为单位四元数。若随机变量叫服从均值为0,方差为0却的髙斯噪声.可以将叫看成是绕着xyz旋转的向屋,则可等价于u = sin(a / 2)II 可IIq表示旋转角度"表示旋转轴,號位卩q元数可以表示为:q = cos(a / 2).sm(a! 2)基于迭代的四元数均值对于四元数来说,律立一种新的度呈方式描述两个四兀数Z间的距离,成为最为关键的部分.由四元数的传递性可知:角七代角旷角角7=> 2i =Z =(h® qj'q,与</,之间的距离可由表示,则这两个

19、四元数之间的夹角为0 = 2arccos(A70)使用&可表示四元数之间的距离设N个四元数的均值为4,则该均值与所有四元数之间 的距离和为© ng ;e表示估计的均值四元数和真实的均值卩q元数之间的误差.e是一个描向真实均值四元数 的旋皴向量,故存H会不断逼近均值向屋,直到误差相至无几.一般地,初始值选择Sigma中心点时,迭代一次悶可完成均值获取.为其他点时,迭代2次可以获取均值.故基于迭代的方式效率很髙基于代价函数的最优化四元数均值为此,早在60年代Wahbci就提出了构造函数代价求解四元数均值问题,基于这种恩想文献 学者们提出了各种不同的算法.其中文献3戌接以姿态矩阵为

20、对象来求解加权均值四元数的方 法因为不涉及矩阵的奇异值分解使得算法相对简单而得到较为的广泛应用,该算法具体如下:构造姿态矩阵代价函数如下:-Nq = aignun工 n; | A(q) - A(q ) |匸igi 冋 >=1其中 弘足由滤波卩q元数构成的正交姿态矩阵,尸为Fiubtuiu范数为更新四元数J&ua 点.由Frobenius范数定义及姿态矩阵的正交性3,四元数均值可转化为求如下代价函数值最大 时的向量解:q = aig max cf KqikKK = 4M L,M=±wqq:从而均值卩q元数q即为矩阵K授大特征值对应的特征向帚:.五总结:不同的姿态变换,实质

21、上只是表达形式上的不一致其本质的几何关系却并没有什么区别, 四元数姿态农示方法虽然计算便利,但不便于直观调试和应用,故往往需要将四元数转换为更 加形象的欧拉角,其转换公式为>roll-atan2(2q3q4 +2q©2,q; W)欧拉角0=pitch=-asin(2q2q4 -2qtq3)headingatan2(2q2q,)(XVZ)在将四元数转换为角度Angle a程中,需要使用反三角函数Jtan2,其表达式为atan(j/jr) if .r > 0atan(i/a;) - tt if x <0 A 1/ < 0atan(i/j:) + tt if t < 0 A y > 0各种坐标系之间的相互转换容易混乱,这里必须要注总的是:欧拉角的变换主要为b系(载体丿T参考系(R系丿四元数的变换主要为参考系迅系)T b系(载体)参考文献 秦永元惯性导航M科学出版社,201

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论