5 坐标变换与视觉测量

  • 目录
  • 1 左右手坐标系及转换
    • 1.1 左手坐标系、右手坐标系、笛卡尔坐标系
    • 1.2 左手旋转规则、右手旋转规则
    • 1.3 左手坐标系和右手坐标系相互转换
  • 2 旋转矩阵
  • 3 欧拉角&万向锁
    • 3.1 欧拉角
    • 3.2 万向锁
    • 3.3 欧拉角描述旋转
      • 欧拉角的基本思想
      • 欧拉角的缺点
    • 3.4 由欧拉角求旋转矩阵
    • 3.5 由旋转矩阵求欧拉角
  • 4 四元数
    • 4.1 概念
    • 4.2 四元数定义:
    • 4.3 四元数的几何意义
    • 4.4 旋转矩阵 & 四元数
      • 四元数求旋转矩阵
      • 旋转矩阵求四元数

目录

  1. 左右手坐标系及转换
  2. 旋转矩阵
  3. 欧拉角&万向锁
  4. 四元数

1 左右手坐标系及转换

1.1 左手坐标系、右手坐标系、笛卡尔坐标系

  • 左手坐标系:

    • 伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。
  • 右手坐标系:
    • 伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。
  • 在高等数学中使用的三维空间是笛卡尔坐标系:
    • 笛卡尔坐标系其实就是右手坐标系,OpenGL中使用右手坐标注系,Direct3D使用的是左手坐标系。

[注]

  • 世界坐标系、相机、手机… -> 以O的位置分类
  • 左右… -> 以方向分类

1.2 左手旋转规则、右手旋转规则

1.3 左手坐标系和右手坐标系相互转换

  • 位置(Location)与位移(Translation):
    位置与位移的转换是相同的,都是顶点位置,转换也比较简单,将X,Y,Z中的任意一个值取反即可。
  • 旋转(Rotation)
# 右手坐标系下旋转 RR,那么左手坐标系下的旋转LR应为
Matrix M = [[1, 0, 0, 0],[0, -1, 0, 0],[0, 0, 1, 0],[0, 0, 0, 1]]
LR = M*RR*M;

注意,一定要和Location,Translation取反的值一致,也就是说,如果Location是Y轴取反,那么矩阵M一定要是第二行为-1,其他两个轴同理,要对应起来。


2 旋转矩阵


  • 任何一个旋转可以表示为依次绕着三个旋转轴旋三个角度的组合。这三个角度称为欧拉角
  • 三个轴可以指固定的世界坐标系轴,也可以指被旋转的物体坐标系的轴。三个旋转轴次序不同,会导致结果不同。

3 欧拉角&万向锁

3.1 欧拉角

欧拉角有两种:

  1. 静态:即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,所以称为静态。
  2. 动态:即绕物体坐标系三个轴的旋转,由于物体旋转过程中坐标轴随着物体做相同的转动,所以称为动态。

使用动态欧拉角会出现万向锁现象,静态欧拉角不存在万向锁的问题。

3.2 万向锁

  • 正常状态:三个独立的旋转轴
  • 万向锁:一旦选择±90°作为pitch角,就会导致第一次旋转和第三次旋转等价,整个旋转表示系统被限制在只能绕竖直轴旋转,丢失了一个表示维度。
    • 万向锁含义:当两个旋转轴重合时,导致只剩了2个旋转,2个旋转不能将所有情况进行描述。
    • 万向锁产生的根本原因是绕三个轴的旋转不是同时进行的。

3.3 欧拉角描述旋转

  • 对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。
  • 参考系又称为实验室参考系,是静止不动的。
  • 而坐标系则固定于刚体,随着刚体的旋转而旋转。

[注]

  • 实际上,有许多方法可以设定两个坐标系的相对取向。欧拉角方法只是其中的一种。
  • 此外,不同的作者会用不同组合的欧拉角来描述,或用不同的名字表示同样的欧拉角。
  • 因此,使用欧拉角前,必须先做好明确的定义。

欧拉角的基本思想

欧拉角的基本思想是将角位移分解为绕三个互相垂直轴的三个旋转组成的序列。
所以,欧拉旋转的三个角,可以对应于三个旋转矩阵:

  1. Yaw(偏航):欧拉角向量的y轴
  2. Pitch(俯仰):欧拉角向量的x轴
  3. Roll(翻滚): 欧拉角向量的z轴

欧拉角的缺点

  1. 欧拉角的表示方式不唯一。给定某个起始朝向和目标朝向,即使给定yaw、pitch、roll的顺序,也可以通过不同的yaw/pitch/roll的角度组合来表示所需的旋转。这其实主要是由于万向锁(Gimbal Lock)引起的;
  2. 欧拉角的插值比较难(以实现“平滑”旋转);
  3. 计算旋转变换时,一般需要转换成旋转矩阵,这时候需要计算很多sin, cos,计算量较大;

3.4 由欧拉角求旋转矩阵

设三个轴x,y,z的欧拉角分别为θx,θy,θz,正弦值、余弦值分别为sx,cx,sy,cy,sz,cz那么旋转矩阵为:

与之前无人机的里的一样

3.5 由旋转矩阵求欧拉角


4 四元数

4.1 概念

  • 四元数是简单的超复数。 复数:z=a+bi
  • 四元数都是由实数加上三个虚数单位 i、j、k 组成,而且它们有如下的关系: i^2 = j^2 = k^2 =-1, i^0 = j^0 = k^0 = 1
  • 每个四元数都是 1、i、j 和 k 的线性组合,即四元数一般可表示为:z=a + bi+ cj + dk,其中a、b、c 、d是实数。

4.2 四元数定义:

  • q=q0+q1i+q2j+q3k=[s,v]
  • 其中 q0,q1,q2,q3均为实数, s=q0, v=[q1,q2,q3]i2=j2=k2=−1
  • 对于 i,j,k本身的几何意义可以理解为一种旋转,其中 i 代表 x 轴与 y 轴相交平面中 x 轴正向向 y 轴正向的旋转, j 旋转代表 z 轴与 x 轴相交平面中 z 轴正向向 x 轴正向的旋转, k 旋转代表 y 轴与 z 轴相交平面中 y 轴正向向 z 轴正向的旋转, −i,−j,−k 分别代表 i,j,k 的反向旋转

4.3 四元数的几何意义

  • 三维空间的任意旋转,都可以用绕三维空间的某个轴旋转过某个角度来表示。
  • 这种表示方法里,Axis可用一个三维向量(x,y,z)来表示,θ可以用一个角度值来表示。
  • 直观来讲,一个四维向量(θ,x,y,z)就可以表示出三维空间任意的旋转。
  • 注意,这里的三维向量(x,y,z)只是用来表示axis的方向朝向,因此更紧凑的表示方式是用一个单位向量来表示方向axis,而用该三维向量的长度来表示角度值θ。
  • 这样一来,可以用一个三维向量(θ∗ x, θ∗ y, θ∗ z)就可以表示出三维空间任意的旋转,前提是其中(x,y,z)是单位向量。
  • 这就是旋转向量(Rotation Vector)的表示方式。

4.4 旋转矩阵 & 四元数

四元数求旋转矩阵

  • 已知四元数: q=q0+q1i+q2j+q3k=[s,v]
  • 利用Rodrigues公式可以由四元数求得旋转矩阵R:

旋转矩阵求四元数

5 坐标变换与视觉测量相关推荐

  1. AI学习笔记(五)坐标变换与视觉测量

    AI学习笔记之坐标变换与视觉测量 左右手坐标系即转换 左手坐标系.右手坐标系.笛卡尔坐标系 左手旋转规则.右手旋转规则 左手坐标系和右手坐标系相互转换 旋转矩阵 欧拉角与万向锁 欧拉角 万向锁 四元数 ...

  2. 机器人视觉测量与控制

    机器人视觉的基本概念 1.摄像机标定(Camera Calibration):对摄像机的内部参数.外部参数进行求取的过程. 2.视觉系统标定(Vision System Calibration):对摄 ...

  3. code epi 光场_光场相机视觉测量误差分析

    0 引言 光场相机[作为一种新型相机,将计算和成像相结合,在它的主透镜和传感器之间放置微透镜阵列,相对于传统相机可以通过单次曝光就能同时获取光辐射的空间信息和角度信息.光场相机具有重聚焦.多视角等特点 ...

  4. 知识分享:三维视觉测量技术之“被动视觉测量”和“主动视觉测量”

    三维视觉测量技术按照测量过程中是否投射光源,获取被测物体三维形貌信息的方法可以分为两大类: 被动视觉测量和主动视觉测量. 一.被动视觉测量 被动视觉测量不需要特殊的照明投射装置,仅利用相机拍摄被测物的 ...

  5. 视觉测量—相机与镜头选型

    相机与镜头选型 摄像机作为视觉测量中图像检测与目标跟踪的核心部件,通过图像传感器获得实时图像,使用过程中需要结合具体测量需求,选取参数,规格相符的摄像机与光学镜头,以达到较优的成像和测量效果. 一.相 ...

  6. 机器视觉,halcon项目源码,视觉检测和视觉测量源码

    机器视觉,halcon项目源码,视觉检测和视觉测量源码. 提供源码和图片调试 支持本地相机和实际相机 网络通信 流程设计 框架源码 用户管理 支持产品切换功能

  7. 如何计算像素当量_面向视觉测量像素当量标定方法.pdf

    12 5 Vol. 12 No. 5 第 卷 第 期 纳 米 技 术 与 精 密 工 程 2014 9 Nanotechnology and Precision Engineering Sept. 2 ...

  8. [毕设系列--参考文献内容整理] 视觉测量中圆形标志两种提取方法的比较

    目录 摘要 一.引言 二.基于感兴趣区域的最小二乘边缘拟合提取方法 2.1 感兴趣区域的提取 2.1.1 感兴趣区域 2.1.2 感兴趣区域的交互式提取 2.2 圆形标志的边缘提取 2.3 最小二乘边 ...

  9. 水下视觉测量之求摄像机光心到折射面的距离的几种方法

    目录 1.前言 2.基于费马原理求解 3.基于共面约束求解 4.参考文献 1.前言 笔者查阅有关水下视觉测量相关论文,发现在水下模型的建立过程中,总避免不了需要解一个参数,即光心到折射面的距离.通过查 ...

最新文章

  1. 《LeetCode力扣练习》第3题 C语言版 (做出来就行,别问我效率。。。。)
  2. NR 5G 测量与寻呼
  3. python对话框机制_Chromium 新的弹窗机制以及 HTML 的 dialog 元素
  4. JSON.stringify() 格式化 输出log
  5. spring 三级缓存_通过画图+视频把循环依赖、监听器等等spring源码讲明白了
  6. LInux 安全测试 2
  7. qml学习文档-转载
  8. 怎么让背景铺满整个页面_必能用到,一页PPT中想放超多图片怎么办?
  9. vba 判断是否为数字
  10. 记录一个美丽的小县城
  11. 1年经验却拿总监薪资?看到他做的数据可视化报表,我彻底服了
  12. CI Weekly #5 | 微服务架构下的持续部署与交付
  13. 闲聊libhybris
  14. Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
  15. Kindle fire 刷机
  16. 计算机并口回路测试工具,COM口和LPT口回路环的制作与CheckIT3.0测试方法
  17. 数字信号处理 史林 课本答案---第三章
  18. 【如见】MMD动作+镜头数据下载
  19. 古代一些练外丹的资料
  20. 阿里云个人申请短信验证码申请总是失败

热门文章

  1. 阅文集团以人民币10.8亿元出售懒人听书股权给腾讯音乐
  2. 软件测试人员的职业晋升之路
  3. GetMessage和PeekMessage的区别及PostMessage(hWnd, WM_QUIT, 0, 0)消息
  4. 全国一级计算机基础及MSOffice应用模拟软件下载
  5. Isometric Tile Engine 的遮挡处理
  6. 【手绘漫画】图解LeetCode之相交链表(LeetCode 160)
  7. CF13A 最大公约数加进制转换
  8. SqlSession was not registered for synchronization because synchronization is not active
  9. 修改Switch开关按钮的颜色
  10. C语言除法”四舍五入“与“进一法”的实现