微分几何在机器人领域的应用(二)深入理解三维空间变换

时间:2022-09-25来源:佚名

空间几何变换

空间中的几何变换分为多类,从简单,到逐渐复杂的变换,分别有如下几种:

1. 等距变换(Isometries)。等距变换下点到点的欧式距离保持不变。刚体变换是典型的等距变换。

2. 相似变换(Similarity)。在等距变换的基础上加上一个各向同性的缩放。矩阵表示上需要在旋转矩阵部分乘以一个非零系数s。

3. 仿射变换(Affine)。是一个非奇异的线性变换加上一个平移向量组成的变换。

4. 投影变换(Projective)。任意非奇异的4×4矩阵所构成的变换。

变换的分类和特征如下图所示。

三维刚体的空间变换属于种情况。如果物体不变形,那么刚体变换涵盖物理世界中的所有情况。刚体变换包含三个平移自由度和三个旋转自由度,总共6个自由度。应用刚体变换,点到点的距离保持不变,同时矢量的点积和叉积保持不变。平移自由度易于理解,故本文重点讨论旋转分量,即旋转矩阵R。

旋转矩阵

在理解高维理论时,我们一般采用降维的方式理解,由易到难。首先回到二维空间的变换。二维平面中,刚体变换有三个自由度,x, y 和旋转角θ。用矩阵的形式表示:

其中

分别为旋转矩阵和平移向量。可以看到旋转矩阵只有一个自由度,因其只有一个变量θ。

旋转矩阵R的性质:

1. 旋转矩阵的逆矩阵是它的转置矩阵,故旋转矩阵是正交矩阵。(如果不理解逆矩阵和转置矩阵,请首先恶补线性代数)。

2. 一个矩阵是旋转矩阵,当且仅当它是正交矩阵,且它的行列式是1。正交矩阵的行列式是±1。读者可思考行列式为-1的情况对应什么变换。

二维旋转矩阵可用旋转角唯yi表示。正角表示逆时针旋转。

如下图表示的是当θ=20°的情况。

二位旋转矩阵的许多性质在三维空间中同样满足。

让我们回到三维空间。旋转可以有三个旋转组合而成。在右手(笛卡尔)坐标系下分别绕x,y, z轴旋转。其旋转矩阵分别对应为

任意旋转矩阵可写作一定角度下的三个矩阵的乘积。

注意:矩阵乘法不符合交换律!故顺序不同,得到的旋转矩阵并不相同。

欧拉角

航空领域,一般定义飞机前后轴为x轴,沿x轴旋转的角度一般称为Roll,中文称作翻滚角;两翼方向称作Pitch,中文称作俯仰角;垂直地面的方向是航向角(Yaw),如下图所示。作者觉得中文翻译很符合愿意,更易于理解。可以记住在驾驶飞机时,如何操纵翻滚角,俯仰角,航向角。Roll,Pitch,Yaw,又称作欧拉角。习惯上,三个欧拉角的方向是z-y-x,使用时需要特别重要,欧拉角顺序错了,旋转矩阵也会发生变化。

程序实现:
程序使用基于C 的Eigen库[3]。注意,Eigen库是一个仅包含头文件的基础矩阵库,没有静态或动态库。使用时仅需要把相关的目录include就可以了。

再次注意:三个欧拉角的顺序!

 

李群和李代数

三维旋转矩阵是直观的表示方法,但旋转矩阵有9个变量,只有3个自由度,故信息是冗余的。旋转矩阵在工程使用更好的表达方法。根据定义,所有的刚体变换属于一个群(李qun,Lie Group)。刚体变换又称作特殊欧式变换(special Euclidean transformation),通常写作SE(3)。李群中的变换满足如下特性。详细性质可参见李群和李代数的资料。如果只限于3D视觉或机器人学,只需记住其主要特性:

▪封闭性
▪相关性
▪单位矩阵
▪可逆

刚体变换的组合和逆变换均属于刚体变换。
单纯的旋转变换称作特殊正角变换(special orthogonal transformation),通常写作SO(3)。旋转矩阵都是正交矩阵。
李代数通过指数映射,将旋转矩阵的9个变量转换为3个变量,结合三个平移向量,总共6个变量,对应6个自由度。李代数表示法在三维重建(SFM)、VR、SLAM等位姿估计领域应用的较多。李代数有基于Eigen的Sophus库[4]可使用,方便完成指数映射。

罗德里格斯旋转公式

(Rodriguez’s Rotation Formula)

旋转矩阵有一个更有效的表达方法,即由一个单位向量和一个旋转角生成。每一个旋转矩阵均可转化为向量和角(又称轴-角)的表达方式。根据公式,单位向量用表示,旋转的角度是θ,那么相应的旋转矩阵是:

此矩阵可简化为如下公式:

具体点符号定义可参见相关文献。单纯环绕x,y或z轴旋转而成的旋转矩阵是罗德里格斯公式的特殊形式。读者可以把上式中的单位向量替换为(0,0,1)进行验证。虽然公式复杂,但程序实践比较方便。利用Eigen库中的Eigen::AngleAxisf(旋转向量)可以直接获得。

四元数(Quternions)

四元素可看作一种特殊的复数,由一个实部和三个虚部构成。四元素的表示方法同旋转矩阵、欧拉角表示方法是等价的。根据罗德里格斯旋转公式,任何一个旋转都可以表达成轴角的表达法。四元素可以更方便的表达出旋转轴和旋转角。单位欧拉向量可表示为:

根据欧拉公式的扩展,四元素可表示为

四元素分为实部和虚部,实部只跟旋转角有关。虚部有单位向量和旋转角共同计算得来。

四元数的求逆可采用复数的共轭(即虚部取反)方式求得

同时,四元数更易于做线性插值(Slerp)。实际实验中,使用四元素做旋转矩阵的计算更加方便。使用Eigen库时,四元素的使用更为方便。

总结

刚体的空间变换由平移和旋转两部分组成。平移部分易于理解,旋转部分一般由直观的3×3矩阵表示。

旋转矩阵有很多特性(正交矩阵、单位矩阵),但其由9个元素,但只有3个自由度,故数学上的表示是冗余的。

在机器人领域,使用多的除旋转矩阵外,还有旋转向量、欧拉角、四元素等。

本文的几乎所有变换都容易实现,可直接使用三方库如Eigen[3],类似的还要OpenCV等。但如要深入理解,hao自己实战。

思考:二维空间刚体变换有3个自由度,三维有6个自由度,四维空间呢?n维空间呢?

参考文献:

1. Multiple View Geometry in Computer Vision (2nd Edition), Richard Hartley and Andrew Zisserman.

2. An Invitationto 3-D Vision From Images to Models, Yi Ma, Jana Kosecka, Stefano Soatto and Shankar Sastry.

3. Eigen, eigen.tuxfamily.org/.

本文属于纯原创文章,转载请注明杭州蓝芯科技有限公司

    相关阅读

    螺杆空压机工作原理及结构图解析

    通过螺杆空压机工作原理及结构图解析能更好的了解设备,螺杆空压机有双螺杆和单螺杆两种。双螺杆空压机在单螺杆空压机的基础上升级,设计更加合理和先进,同时克服了单螺杆空...
    2022-07-16
    螺杆空压机工作原理及结构图解析

    空压机型号参数大全

    了解空压机型号参数大全有哪些之前首先要知道空压机有哪些类型,市场上空压机可以分为活塞空压机和螺杆式空压机两种,每种空压机型号参数又是不一样,以下是广州江城空压机厂...
    2022-07-16
    空压机型号参数大全

    等离子激光切割机不起弧的原因及解决方法快来看看吧!

    等离子激光切割机切割速度快,精度高。切割口小,整齐,无掉渣现象。在传统的数控系统的基础上,改进了切割用的控制方式,避免了二次修整加工。广泛应用于汽车、机车、压力容...
    2022-06-29

    五轴编程用什么软件比较好,五轴加工中心用什么编程软件。

    现在五轴的趋势越来越明显,五轴的人才空缺也是越来越明显。 大家都想了解五轴五轴编程用什么软件比较好,五轴加工中心用什么编程软件呢? 目前五轴编程软件有: UG,mastercam, P...
    2022-09-25

    拖链安装方式有几种/拖链的正确安装方式

    拖链安装方式有几种/拖链的正确安装方式 拖链的运行方式 一:拖链水平方向的运动(也包括拖链水平方向的叠加运动),此种拖链的运行方式超过拖链zui大承载长度是要加支撑轮来辅...
    2022-09-23
    拖链安装方式有几种/拖链的正确安装方式

    空压机规格型号及功率对照参数表

    空压机规格型号有很多,并且其技术参数及功率各不相同,为了方便给大家选型,江城整理出各大厂家的空压机规格型号及功率对照参数表如下: 企业 名称 产品 规格 制冷剂 汽缸容积...
    2022-07-16
    空压机规格型号及功率对照参数表

    使用外圆磨床磨削时产生螺纹和椭圆的原因及解决方法

    外圆磨床是加工工件圆柱形、圆锥形或其他形状素线展成的外表面和轴肩端面的磨床;使用广泛,能加工各种圆柱形圆锥形外表面及轴肩端面磨床。 那么我们在使用时出现螺纹及椭圆的...
    2022-08-18

    浅析数控车床主轴径向跳动的原因及解决方法

    今天小编给大家讲讲数控车床主轴径向跳动产生的原因: 1、影响主轴机构径向跳动的因素 1)主轴本身的精度:如主轴轴颈的不同心度、锥度以及不圆度等。主轴轴颈的不同心度将直接...
    2022-09-23

    网站栏目