其他分享
首页 > 其他分享> > 刚体运动中的坐标变换-旋转矩阵、旋转向量、欧拉角及四元数

刚体运动中的坐标变换-旋转矩阵、旋转向量、欧拉角及四元数

作者:互联网

坐标变换及其方法

1.转化关系图

坐标变换是实际导航与定位中必不可少的一环,而其中旋转变换至关重要,本文对学习过程中关于坐标变换内容做一点总结,以下是本文提供的转换关系。
转换关系图
说明:旋转矩阵和四元数提供与其他三种旋转表示的转换关系,欧拉角与旋转向量只提供与旋转矩阵和四元数的换算关系。

2 换算关系

3.1 旋转矩阵换算至其他

旋转矩阵-四元数

3.2 四元数换算至其他

在这里插入图片描述

3.3 旋转向量转换至旋转矩阵与四元数

假设这里有一个旋转向量:q=nθ

3.3 欧拉角转换到旋转矩阵和四元数

3 坐标变换

三维空间中,同一空间点在不同坐标系中的坐标换算。在计算机三维视觉的定位与位姿估算时,由于观测的位置在变动,不同时刻的观测位置就是一个个局部坐标系,而当我们需要把上一帧图像点换算到当前帧时,使用的就是不同坐标系中同一点的坐标换算。

4 坐标变换方法概述

4.1 换算公式

同一三维欧氏空间,一个坐标系相对于另一坐标系的关系可以用一个旋转加平移来描述,为便于理解,现做如下关于两个坐标系及相它规定:

则有:P-c1=R12*P-c2+t12
也可以反向的,及从世界坐标系换算到局部坐标系,此时公式为:P-c2=R21*P-c1+t21

注意:坐标变换与向量运动的关系

二者关系:

反向等效性:

利于这一等效性,可以推导出如何利用旋转矩阵来计算坐标换算。

4.2 各旋转表示特点

由于两个坐标系间的平移很好表示,使用三维向量即可,但旋转表示比较复杂,主要有以下四种形式:

特点:换算直观方便,用坐标直接左乘或者右乘旋转矩阵就可以得到不同旋转情况下的换算结果。但由于该表示是非紧凑表示,旋转是三个自由度的量,旋转矩阵含有九个量。另外SO3带有正交约束,在进行非线性优化时不方便。

特点:紧凑表示,但具有奇异性(旋转超过2Π)。换算到旋转矩阵和四元数也很方便,在opencv中常用旋转向量(轴角)作为求得的旋转结果,你可以方便的转化为其他旋转表示形式。(有点像中间桥梁)

特点:紧凑表示,对人类友好,在实际飞行控制或者姿态显示时,常常将欧拉角rpy作为旋转的表示形式,即roll:翻滚角,pitch:俯仰角,yaw:偏航角。但依次绕三个轴旋转时,在特定旋转角度(比如90°),会形成万向锁问题(丢失一个自由度),即也具有奇异性。

特点:它既是紧凑的,也不带奇异性,常用于以位姿为优化变量的优化问题中,是优化中的旋转表示形式,但它不直观,计算也相对复杂一点。

注:复数表示旋转具有天然优势,基于这一点,很多人对复数进行研究,想找出一种表示三维旋转的复数形式,最后有一个人成功了,发明了四元数,这人十分高兴,将他发明的四元数公式刻在了桥边的一块石碑上,供来往人瞻仰。

参考

1.旋转矩阵、欧拉角、四元数、轴/角之间的转换
2.欧拉角、四元数、旋转矩阵推导及相互关系
3.三维旋转:欧拉角、四元数、旋转矩阵、轴角之间的转换
4.欧拉角wiki

标签:欧拉角,矩阵,旋转,四元,坐标,坐标系,向量
来源: https://blog.csdn.net/hu_hao/article/details/117197727