物体姿态

物体在三维空间中的姿态、旋转,用旋转矩阵、欧拉角、四元素来表示。

旋转矩阵

旋转矩阵定义

旋转矩阵(英语:Rotation matrix)是在乘以一个向量的时候有改变向量的方向但不改变大小的效果并保持了手性的矩阵。(手性:左/右手坐标系)

  • 二维旋转矩阵表达式:
  • 三维旋转矩阵表达式:

旋转矩阵优缺点

优点:旋转轴任意选择。
缺点:占用的内存空间大,计算量也大。

欧拉角

用来确定物体姿态,由章动角a、旋进角(即进动角)b和自转角r组成,如:(a,r,b)。

欧拉角定义

  • 静态定义
    对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。参考系又称为实验室参考系,是静止不动的。而坐标系则固定于刚体,随着刚体的旋转而旋转。
    参阅下图。设定xyz-轴为参考系的参考轴。称xy-平面与XY-平面的相交为交点线,用英文字母(N)代表。zxz顺规的欧拉角可以静态地这样定义:

    • a 是x-轴与交点线的夹角,
    • b是z-轴与Z-轴的夹角,
    • r是交点线与X-轴的夹角。
  • 动态定义
    我们也可以给予欧拉角两种不同的动态定义。一种是绕着固定于刚体的坐标轴的三个旋转的复合;另外一种是绕着实验室参考轴的三个旋转的复合。用动态的定义,我们能更了解,欧拉角在物理上的含义与应用。特别注意,以下的描述, XYZ坐标轴是旋转的刚体坐标轴;而xyz坐标轴是静止不动的实验室参考轴。
    A)绕着XYZ坐标轴旋转:最初,两个坐标系统xyz与XYZ的坐标轴都是重叠著的。开始先绕着Z-轴旋转\alpha ,角值。然后,绕着X-轴旋转\beta,角值。最后,绕着Z-轴作角值\gamma,的旋转。
    B)绕着xyz坐标轴旋转:最初,两个坐标系统xyz与XYZ的坐标轴都是重叠著的。开始先绕着z-轴旋转\gamma,角值。然后,绕着x-轴旋转\beta,角值。最后,绕着z-轴作角值\alpha ,的旋转。

欧拉角公式

  • 欧拉角转为旋转矩阵
  • 欧拉角转化为四元素

欧拉角优缺点

优点:直观、容易理解,可以表示超过180度角度的旋转。
缺点:存在万向锁(Gimbal Lock)的问题,关于万向锁这里有个视频说的很清楚。

四元素

四元素是一个高阶复数。(听起来就比较难理解,这里推荐一个链接,从容易理解的角度介绍四元素,其中2/3维平面的旋转解释的很清楚)。

四元素定义

a + bi + cj + dk

四元素公式

  • 四元素转化为欧拉角
  • 四元素转化为旋转矩阵

四元素优缺点

优点:不存在Gimbal Lock的问题
缺点:不容易理解,且单个四元素无法表示超过180度的旋转。

总结

目前最理想的表示姿态的方式是四元素,下面是Oculars对传感器的文章有提到:因为欧拉角存在Gimbal lock的问题,所以不使用欧拉角,而使用四元素来表示姿态

Now turn to the problem of tracking a human head, which has three rotational degrees of freedom. The orientation of a 3D rigid body is often described by yaw, pitch, and roll angles. They are convenient for making figures like the one on the left, but later cause a lot of trouble due to numerical singularities (see gimbal lock) and a huge variety of alternative, incompatible definitions (see Euler angles–pronounced by Americans as “oiler angles”). We therefore use quaternions internally for representing orientation.

参考链接:

  • wikipedia
  • unity官方文档
  • understanding-quaternions

姿态(Orientation)相关推荐

  1. gazebo 直接获取传感器数据_【ROS-Gazebo】IMU插件使用与数据采集——以四足机器人pigot为例...

    最近在琢磨别的事情,Gazebo探索上面进展不大,但也有一些收获,秉承慢慢写的佛系态度记录一下:pigot四足项目的步态改进,前行换成了摆线步态,加入了斜向步态 Gazebo-IMU(惯性测量单元)插 ...

  2. IMU定位/位姿跟踪(IMU_localization or IMU_pose_tracking)

    目录 1 前言 2 安装 3 代码解读 3.1 main函数 3.2 头文件 3.3 源文件 4 测试 5 总结 6 附录 1 前言 IMU位姿跟踪. 2 安装 首先安装ROS,然后安装Eigen: ...

  3. 机械臂-Part A:刚体位姿的描述

    位姿是由位置(Position)和姿态(Orientation)两个内容构成.如图所示,一个刚体的位姿变化包含了平移和旋转两个过程.我们可以通过向量P和姿态矩阵R来描述运动后的刚体在固定坐标系下的位姿 ...

  4. 机器人SLAM导航学习-All in one

    参考引用 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022. 本博客未详尽之处可自行查阅上述书籍 一.编程基础篇 1. ROS 入门必备知识 ROS学习笔记(文章链接汇总) 2 ...

  5. 姿态估计算法汇总|基于RGB、RGB-D以及点云数据

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Tom Hardy@知乎 来源丨https://zhuanlan.zhihu.com/p/305 ...

  6. 纹理对象的实时姿态估计

    如今,增强现实技术是计算机视觉和机器人领域的热门研究课题之一.The most elemental problem in augmented reality is the estimation of ...

  7. 四旋翼姿态解算——互补滤波算法及理论推导

    转载请注明出处:http://blog.csdn.net/hongbin_xu 或 http://hongbin96.com/ 文章链接:http://blog.csdn.net/hongbin_xu ...

  8. 深入浅出无人机姿态,欧拉角,四元数,指数表示及数据转换与程序实现

    很多朋友留言或私信问到书名和出版日期.先感谢这么多朋友的支持和信任,MR.城堡会努力为大家带来更多干货.另外,交稿日期是今年12月,出版要看机械工业出版社的安排,书名和出版情况确定后,会在专栏告知大家 ...

  9. Pixhawk代码分析-姿态解算篇B

    姿态解算篇B 前言 本篇博文主要是以mahony的算法为基础理解姿态解算的过程,主要参考的论文就是William Premerlani and Paul Bizard的关于DCM的一篇经典论文< ...

  10. Pixhawk之姿态解算篇(5)_ECF/EKF/GD介绍

    一.开篇 很久没更新blog了, 最近研究的东西比较杂乱,也整理了很多东西,没有来的及更新,最近发现很多小伙伴都开始写blog了,在不更新就要"被落后了".兄弟们,等等我啊~~~ ...

最新文章

  1. 添加service到SystemService硬件服务
  2. cve-2019-11076 Cribl UI 1.5.0 未授权命令执行漏洞分析
  3. struts2教程(8)--文件上传下载
  4. 关于JQ的点击事件在微信手机端无响应的解决方案
  5. CMS之promotion failedconcurrent mode failure
  6. json解析对象时指定解析_不解析,使用解析对象
  7. 2台电脑一根网线传文件_「教程」如何快速的在两台电脑间传输大文件?
  8. Python中IOBase详解
  9. 修改一个CGRect的值
  10. 重磅:向996开炮!携程带头居家办公。
  11. 干货 | 机器学习在web攻击检测中的应用实践
  12. VS C# string 字符查找 寻找指定字符
  13. ARMv8-A TrustZone概述
  14. 雷达威力图绘制matlab,科学网—matlab绘雷达图 - 张凌的博文
  15. 为什么最近iOS开发岗位那么多(第一篇)
  16. 彩色rgb图像拆分为rgb三个通道,并重新合并为彩色图像
  17. linux中的kill 终止进程
  18. 图像识别开源_看看开源图像识别技术
  19. K3+note+android+6.0,联想k3note升级Android 6.0教程[多图]
  20. linux amd显卡双屏,Ubuntu14.04安装AMD显卡驱动双屏显示器完全解决方案

热门文章

  1. 0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded解决方法
  2. vs2017更新出错:The entire Box execution exiting with result code: 0x0
  3. java常量 修改_Java 自定义常量
  4. 朱晔的互联网架构实践心得S2E3:品味Kubernetes的设计理念
  5. 传真SIP会话发起协议(SIP)
  6. Java课程设计之你画我猜
  7. 数据分析:某地PM2.5数据分析
  8. 网络研讨会|为什么在开发流程中应用静态代码分析工具?
  9. 360主机卫士linux安装软件,最新360主机卫士Linux专杀版下载 0.4.1 官方版(32位+64位)下载地址电脑版-CC软件...
  10. mapgis考试111