坐标变换及其方法

  • 1.转化关系图
  • 2 换算关系
    • 3.1 旋转矩阵换算至其他
    • 3.2 四元数换算至其他
    • 3.3 旋转向量转换至旋转矩阵与四元数
    • 3.3 欧拉角转换到旋转矩阵和四元数
  • 3 坐标变换
  • 4 坐标变换方法概述
    • 4.1 换算公式
    • 4.2 各旋转表示特点
  • 参考

1.转化关系图

坐标变换是实际导航与定位中必不可少的一环,而其中旋转变换至关重要,本文对学习过程中关于坐标变换内容做一点总结,以下是本文提供的转换关系。

说明:旋转矩阵和四元数提供与其他三种旋转表示的转换关系,欧拉角与旋转向量只提供与旋转矩阵和四元数的换算关系。

2 换算关系

3.1 旋转矩阵换算至其他

  • 旋转矩阵→旋转向量

  • 旋转矩阵→欧拉角

  • 旋转矩阵→四元数

3.2 四元数换算至其他

  • 四元数->旋转矩阵

  • 四元数->欧拉角

  • 四元数->旋转向量

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

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

  • 旋转向量->旋转矩阵
    使用罗德里格式公式:

    n^表示向量n的取反对称矩阵操作,展开公式如下:
  • 旋转矩阵->四元数

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

  • 欧拉角->旋转矩阵

  • 欧拉角->四元数

    欧拉角到四元数的计算为:

3 坐标变换

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

4 坐标变换方法概述

4.1 换算公式

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

  • 世界坐标系(World):固定不动的全局坐标系,这里记为坐标系C1。(在实际使用时也可以是上一帧坐标系)

  • 局部坐标系(Local):动坐标系,或者当前坐标系,这里记为坐标系C2。

  • P-c2、P-c1为空间点P在C2、C1中的坐标。

  • R12为在C1中C2的姿态矩阵(C2相对于C1的旋转矩阵),t12为C1中C2坐标原点的坐标(C2相对于C1的平移向量)。

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

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

  • 坐标变换时,向量(表示三位点)不动,坐标系运动,是同一向量的不同坐标系表示,此时向量是不变的(注意区分向量及向量的坐标是不同概念)。
  • 向量运动时,向量绕某轴旋转(也可以加上平移),此时向量改变。

二者关系:

反向等效性:

  • 旋转:向量主动绕某轴旋转θ°,其旋转后的坐标等于原向量保持不动,原坐标系绕该轴旋转 -θ°(即反向旋转θ°)后的该向量在新坐标系下的坐标。
  • 平移:与旋转类似,坐标系反向运动后的向量坐标等效于向量正向运动后的坐标。

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

4.2 各旋转表示特点

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

  • 旋转矩阵:使用SO3(特殊正交群,即三阶正交矩阵构成的群)表示旋转。该形式可以这么理解,当点使用坐标基与点坐标相乘这种形式时(基向量线性组合),旋转矩阵左乘或者右乘该组合,相当于对原基向量进行线性变换,形成了新的正交基,其坐标也会进行相应的线性变换。

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

  • 旋转向量:使用一个单位向量n表示旋转方向,角度为θ,则θn可以表示该旋转。即一个向量的方向表示旋转轴,模长表示旋转角度,这个和物理中的角速度定义很类似。

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

  • 欧拉角:将任意旋转分解为绕X、Y、Z轴的旋转,然后依次将绕这三个轴的单次旋转矩阵相乘,得出最后的旋转矩阵。

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

  • 四元数:一个实部加三个虚部形成的代数结构。

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

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

参考

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

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

  1. 刚体运动部分(坐标、旋转、平移、李群和李代数)

    文章目录 1概述 2向量点积和叉积 2.1向量的点积 2.2 向量的叉积 3 旋转和变换 3.1 变换矩阵与齐次坐标 3.2 旋转向量 3.3 四元数 4 李群和李代数 4.1 群 4.2 李代数 4 ...

  2. 刚体运动中变换矩阵的逆

    刚体运动中变换矩阵的逆 刚体运动中的变换矩阵为: T=[Rt0T1]T= \begin{bmatrix}\\R&t \\0^T&1 \end{bmatrix} T=[R0T​t1​] ...

  3. 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)

    矩阵的使用可参考系列博客:点击此处 原文链接:基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换. 也可以参考另一篇博客:eigen 中四元数.欧拉角.旋转矩阵.旋转向量. ...

  4. 一、旋转矩阵,旋转向量,单位四元数的相互转换总结

    文章目录 前言 一.要点 1. 旋转矩阵 2. 旋转向量 3. 单位四元数 二.旋转向量--->旋转矩阵(罗德里格斯公式) 三.旋转矩阵--->旋转向量 四.单位四元数--->旋转矩 ...

  5. 三维坐标变换(旋转矩阵旋转向量)

    矩阵运算显然是计算机三维坐标变换最简单方便的计算方法,因此在 opencv.opengl.工业机器人等开发中,提到位姿旋转变换,多半用的是旋转矩阵.然而,用矩阵来表示一个旋转关系有两个缺点: 首先,通 ...

  6. python二郎成长笔记(三)(matlab标定工具箱详解,旋转矩阵旋转向量,matlab标定数据传入opencv)

    这一章由来:二郎之前研究matlab的双目立体视觉,已经得到了需要的信息,可是,二郎想要对代码进行修改使其更适宜自己的应用目的. 修改:标定不用修改--matlab内置的已经很强大了,而且没有必要用p ...

  7. 简单研究Unity中的万向锁和欧拉角以及四元数

    欧拉角是欧拉在17世纪发明引进的一个数学工具,在三维欧几里得空间内,欧拉角可以确定一个物体的朝向.在解决静态问题上,欧拉角是一个比较完美的解决方案,但在动态问题上,欧拉角有一个万向锁的瑕疵,数学界在后 ...

  8. 《视觉SLAM十四讲》-第三章第3节公式推导-旋转向量-欧拉角--罗德里格斯公式详细推导

  9. SO3,SE3,旋转,欧拉角与四元数笔记

    在机器人学中的定义和其它领域中的定义有时候会有不同,长时间不用也会记混淆.这里记录一下便于回头翻阅. 参考<A Mathematical Introduction to Robotic Mani ...

最新文章

  1. Hadoop集群的安全模式
  2. python基本使用-Python标准库详细介绍与基本使用方式,超详细!
  3. 天才编程少女16岁获哈佛offer,全民网红时代,我们该怎么做?
  4. 神经网络瘦身:SqueezeNet
  5. cenyos7安装 yum不可用_centos7安装fabric
  6. FFMPEG关键结构体
  7. Bayesian Personalized Ranking
  8. 史上超全web渗透测试思维导图
  9. 打破传统桎梏,挑战性能巅峰,网友:这轻薄本性能强的像游戏本
  10. 解决问题:Consider defining a bean of type ‘com.xxx.mapper.xxxMapper‘ in your configuration.
  11. JAVA使用wkhtmltopdf 将Html 导出PDF
  12. 热插拔机制之udev和mdev
  13. R语言基础编程技巧汇编 - 20
  14. 陕西云数据库_创业英雄汇:“秦盾云加密数据库系统”沈玉龙
  15. 制造企业如何从0到1进行信息化建设?
  16. 基于核极限学习机KELM、在线顺序极限学习机OS-ELM、在线贯序核极限学习机OSKELM
  17. Hive复杂类型的导入
  18. Python自动化小技巧10——excel文件批量多sheet表合并
  19. 使用fft计算序列的互相关函数
  20. 【转】关于相机CMOS CCD 尺寸知识

热门文章

  1. 解决Nginx出现 403 Forbidden的办法
  2. 全球便携式彩色超声设备行业收入预计2028年达到12.755亿美元
  3. Jenkins之配置自动发送邮件
  4. [Vulhub] ThinkPHP漏洞合集
  5. 中国护照含金量再上升,Qbao Network 教你玩转全球54个国家!(二)
  6. 收集一些可以发外链的网站
  7. 上传漏洞 Upload-Labs实战
  8. vue element upload组件 file-list的动态绑定
  9. NAXX Demo2_WYQ_01
  10. 一、CSS定位布局[相对定位、绝对定位、固定定位]