无人机运动学控制中的坐标系,及惯性坐标系与机体坐标系之间的矩阵转换 欧拉角

2023-05-16

一、无人机控制中的坐标系

  无人机运动学中,有三种需要了解的坐标系  

1.1、地球中心坐标系(ECEF)

 

 

地球中心坐标系,即坐标系原点位于地心。X轴通过格林尼治线和赤道线的交点,正方向为原点指向交点方向。 Z轴通过原点指向北极。 Y轴与X,Z轴构成右手坐标系。   而将该坐标系下的点,用GPS坐标表示出来即为WGS-84坐标系,其中在WGS-84坐标系中,X轴指向BIH(国际时间服务机构)1984.0定义的零子午面(Greenwich)和协议地球极(CTP)赤道的交点。Z轴指向CTP方向。Y轴与X,Z轴构成右手坐标系GPS可以获得在WGS-84中的速度向量,为了方便使用速度向量进行无人机控制,我们要把它转换在无人机所在位置的“平面坐标系”。  

1.2、NED坐标系

  由于地心坐标系建立产生的GPS信号是以前面的形式存在,而现实无人机控制中需要在平面,因此引入了NED坐标系,如图绿色部分即为NED坐标系。通常我们以NED为确定无人机位姿的参考坐标系,惯性系。  

  NED坐标系是在导航计算时使用的坐标系。向量分别指向北,东,地,因此NED坐标系也经常称为北东地坐标系。也就是NED坐标系的三个方向是不变的。   当无人机搜星满足起飞条件1,则该点所确定  

1.3、机体坐标系

 

  机体坐标系与飞行器固联,坐标系符合右手法则,原点在飞行器重心处,x轴指向飞行器机头前进方向,y轴由原点指向飞行器右侧,z轴方向通过x,y由右手法则确定。机体坐标系是无人机惯性导航的基础坐标系,IMU中获得的加速度状态信息就是该坐标系下的数值。当我们获取IMU输出的x轴加速度信息时不能直接应用在NED坐标系下。 无人机中的坐标转换,即为NED坐标系(惯性系)与机体坐标系之间的转换。  

二、无人机IMU单元

  IMU单元,惯性测量单元,用于测量物体三轴姿态角(角速率)以及加速度的装置。 IMU由陀螺仪和加速度计组成,其中: 陀螺仪:检测载体相对于导航坐标系的角速度信号; 加速度计:三个单轴的加速度计检测物体在坐标系独立三轴的加速度信号 其精度直接影响到惯性系统的精度。  

三、无人机中矩阵的确定与变换

 

3.1、无人机的姿态

 

  一个空间中的无人机可通过给定位置和方向而完全描述,令O-xyz为标准正交坐标系,xyz为其单位向量。在上图中,设无人机为O^{'},其在空间中的位置可表述为  

  O^{'}的坐标可简洁的写为  

  通过坐标系

O-xyz

以及可以约束无人机的位置,但无人机的方向仍没有约束,接下来大幅篇章将开始角度坐标系的描述。 为了确定无人机的方向,简便的方法即为加入一个附在无人机机身上的坐标系,

O^{'}-x^{'}y^{'}z^{'}

,其中

x^{'}y^{'}z^{'}

为坐标系中的单位向量,与

O-xyz

的转换关系为  

 

3.2、旋转矩阵(注:3.2中的旋转矩阵与3.1上式各分量定义不一致,可对比根据式子定义来理解)

  将描述无人机方向的x^{'}y^{'}z^{'}用矩阵表示为  

  这里第三个矩阵中,由于x为单位向量(1,0,0),故与向量x^{'}的装置相乘,即为x_{x}^{'}的值。 上诉矩阵R被称为旋转矩阵。 由于x^{'}y^{'}z^{'}是正交坐标系下的单位向量,所以他们之间彼此正交,且向量模为1  

  R是一个正交矩阵,故  

  如果坐标系是右手法则则det(R)=1,若为左手法则确定则det(R)=-1。  

3.2.1、基本旋转(旋转回原坐标系下所需要相乘的矩阵,也可以理解为旋转量)

  坐标系

O^{'}-x^{'}y^{'}z^{'}

可被视为由坐标系

O-xyz

通过基本旋转而成。这些旋转如果是逆时针的,则其旋转值为正。 假定坐标系

O-xyz

绕z轴旋转一定角度a,如图其单位向量可表述为:    

  因此,绕z轴旋转的矩阵可表述为  

  同样,按此方法可表述按x轴和按y轴旋转时的旋转矩阵  

  对于描述空间中容易一个旋转,这些矩阵将会是非常有用的。 通过上诉的矩阵,可很容易的证明,旋转矩阵有  

 

3.2.2、一个向量的旋转表述

  为了进一步理解旋转矩阵的几何意义,将两坐标系原点重合,即o^{'}=0,其中0表示为0向量。点P能够表述为:  

 

 

  其中,pp^{'}分别对应于相同的点P在坐标系

O-xyz

O^{'}-x^{'}y^{'}z^{'}

的坐标。根据之前对于

o^{'}

下坐标转换至o,可得  

  即  

  旋转矩阵R表述了向量从矩阵

O^{'}-x^{'}y^{'}z^{'}

转换至

O-xyz

,回顾R^{T}R=I,可得    

例3.1:

  设两坐标系具有相同原点,且通过按z轴旋转a而得,如图,由几何关系可得  

 

 

  由此可见,其坐标转换即为p=Rp^{'},旋转矩阵不仅仅描述了一个坐标系的方向,还描述了基于同一个原点的一个向量从一个坐标系到另一个坐标系的转换。  

3.2.3 一个向量的旋转

  上一节中,利用旋转矩阵实现了向量从O^{'}-x^{'}y^{'}z^{'}坐标系转换到O-xyz坐标系下,旋转矩阵还可以表示为向量在同一个坐标系下的旋转。令p^{'}是坐标系O-xyz下的一个向量,Rp^{'}产生一个与p^{'}相同模的向量p,相同的模可以被证明由p^{T}p=p^{'T}R^{T}Rp^{'}。  

例3.2:

  在下图坐标系下,令位于xy平面的向量p^{'}绕z轴旋转a角。(p_{x}^{'},p_{y}^{'},p_{z}^{'})为向量p^{'}坐标,则向量p可表示为:  

  即可以简单的用旋转矩阵表示为  

  可以得到一个旋转矩阵,首先描述两个坐标系之间的转换和两个坐标系向量之间的转换,此外还可以实现在同一坐标系下向量的旋转。  

3.3、旋转矩阵的组合

  为了得到旋转矩阵的组合规则,思考一个向量在不同坐标系下的表述是有用的。令O-x_{0}y_{0}z_{0},O-x_{1}y_{1}z_{1},O-x_{2}y_{2}z_{2}为共同原点O所对应的三个坐标系。p^{0}p^{1}p^{2}为向量p在三个坐标系下的表述。   首先,思考坐标系2下p^{2}与坐标系1下p^{1}之间的关系。如果R_{i}^{j}表示坐标系i转换至坐标系j的旋转矩阵,则  

  相似地,有  

  上诉三式中,将第一和第三代入第二式,可得关系  

  上一关系式可以表述为连续旋转的组合。思考一个坐标系最初为O-x_{0}y_{0}z_{0},通过R_{2}^{0}旋转能够被视为包含以下两步:   (1)基于现有坐标系根据R_{1}^{0}旋转,以便与坐标系O-x_{1}y_{1}z_{1}相联系 (2)经过第一步的旋转,已于O-x_{1}y_{1}z_{1}联系,根据R_{2}^{1},以便与坐标系O-x_{2}y_{2}z_{2}进行联系   (这里这样表述可能大家感到不甚理解,不是由O-x_{1}y_{1}z_{1}的坐标乘上R_{1}^{0}转换至O-x_{0}y_{0}z_{0}么,这样表述是为了在以后无人机坐标系转换理解更加便捷,如将之后的一个坐标系转换至最初的一个坐标系)   可注意到所有的旋转可表示为一系列微小旋转的组合。每一个旋转定义为基于之前的一个坐标系,将要发生转换的坐标系称为当前坐标系。连续旋转的组合是通过旋转矩阵自右乘来实现的,回顾

可得:  

  连续的旋转也能够详述为不断的参考他们至最初的坐标系,在这种情况下,旋转可以被发生基于一个固定的坐标系。令R_{1}^{0}O-x_{1}y_{1}z_{1}基于固定坐标系O-x_{0}y_{0}z_{0}的旋转矩阵。令\bar{R}_{2}^{0}表示坐标系O-x_{2}y_{2}z_{2}基于坐标系O-x_{0}y_{0}z_{0}的旋转矩阵,这其中包含了坐标系1基于矩阵\bar{R}_{2}^{1}的旋转。  

  其中\bar{R}_{2}^{0}是不同于R_{2}^{0}的,\bar{R}_{2}^{0}可表述为基于一个固定坐标系连续旋转的组合,其由单个旋转矩阵自左乘得到的。 旋转组合的一个重要问题是矩阵的产生是不可交换的。鉴于这一点,能够推断两个旋转矩阵一般是不能交换的并且它的组成取决于单个旋转的顺序。  

例3.3:

  思考在一个物体上系有坐标系,下图展示了该物体对于当前坐标系改变旋转次序的两次旋转变化,可以明显的注意在两种情形到最后物体的方向是不同的。  

 

4、欧拉角

  旋转矩阵对于坐标系的方向给予了一个过多的描述;事实上,由于正交矩阵的性质,所具有的九个特征元素收到六个约束,彼此之间并非独立的。这意味着对于描述一个刚性物体的方向有三个参数即是足够的。   (六个约束详解地址:https://blog.csdn.net/qq_35379989/article/details/102761195)   依据三个参数组成的方向描述为一个最小表示,一个最小表示能够被获得通过使用一个三个角度的集合\phi =\left [ \varphi ,\upsilon ,\psi \right ]^{T}。一个坐标系表述基本旋转的旋转矩阵(三种基本旋转矩阵)作为一个单个角度的功能且要保证两次连续的旋转,这意味着共有27种不同的组合共有12种符合,即第一次旋转有三个轴可以选择,第二次旋转要排除第一个轴已转的有两种选择,第三次旋转要排除第二次旋转的轴有两次旋转,共有12种可能。这12种每一种都为欧拉角的一种。接下来主要简绍的是ZYX(Roll-Pitch-Yaw)(滚转-俯仰-偏航)。  

4.1、RPY角

  RPY(最初起源于航海领域,他们属于(ZYX)角,也被称为Roll-Pitch-Yaw(滚转-俯仰-偏航),它能表述一个飞行器在空中姿态的变化。角\phi =\left [ \varphi ,\upsilon ,\psi \right ]^{T}可表示固定在飞行器质点上的坐标系。   翻滚-俯仰-偏航角度的获取可包括以下:  

  该图只为了让大家有一个具体空间角度变化的了解,将坐标系轴线位置设置不同则滚仰偏定义对应的轴线可能不同,如以下,定义中,设置绕x轴旋转为偏航,绕y轴旋转为俯仰,绕z轴旋转为翻滚,结合坐标系,判断一下坐标系在飞机上怎么固定呢?   机头方向指向z,x正方向为机身向上方向,如下图:  

  (1)绕x轴旋转角度\psi,即偏航角,通过矩阵R_{x}(\psi )来表示  

  (2)绕y轴旋转角度\upsilon,即俯仰角,通过矩阵R_{y}(\psi )来表示  

  (3)绕z轴旋转角度\varphi,即滚转角,通过矩阵R_{z}(\psi )来表示  

  坐标系旋转的结果可由基于固定坐标系旋转的组合获得,能够通过基本旋转矩(上3.2.1)阵自左乘获得。 R(\phi )=R_{z}(\varphi )R_{y}(\upsilon )R_{x}(\psi )   即  

  由以上R(\phi )对应给予一个旋转矩阵R,使得R为:  

R=\begin{bmatrix} r_{11} & r_{12} &r_{13} \\ r_{21}&r_{22} &r_{23} \\ r_{31}&r_{32} & r_{33} \end{bmatrix}

  通过比较R(\phi )能够获得角度为:   若\upsilon角度范围在(-\pi/2,\pi /2 ),则  

  若\upsilon角度范围在(\pi/2,3\pi /2 ),则  

  其中Atan2(y,x)为计算y/x反正切,即arctan(y/x),可通过y与x的正负来判别角度所在象限,从而判别在2\pi范围内的角。  

4.2、无人机中的欧拉角

  经过上诉的部分已经将旋转矩阵方面的知识描述完毕,接下来为具体在无人机运用上的矩阵变换。 无人机中我们选择旋转z轴产生的为偏航角,旋转y轴产生的为俯仰角,旋转x轴为滚转角。  

  上文3.2.1中讲述了三种基本旋转矩阵,上述的旋转矩阵R可将变换后的位移、速度、力转换为变换前原坐标系下的位置、速度、力,由此我们如果获得无人机相对于惯性系(NED坐标系)的角度,即可得到在惯性系下的运动。当然我们也可以设定无人机的机体坐标系为原始坐标系,这时如果想要获得在惯性系下的相关量,则需要乘上旋转矩阵的逆,上面我们有旋转矩阵的装置为旋转矩阵的逆,固有如下:  

  R_{b/nv}表示为以机体坐标系为原坐标系,机体坐标系下相关量想要转换至惯性系下坐标量所需乘的旋转矩阵  

4.3、无人机中的万向锁

  陀螺仪的结构为一根轴线穿过一个圆盘,且圆盘处于高速旋转状态,为陀螺仪的转子。根据陀螺的定轴性,陀螺的自转轴即竖轴在惯性空间内的方向保持不变

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无人机运动学控制中的坐标系,及惯性坐标系与机体坐标系之间的矩阵转换 欧拉角 的相关文章

  • rosdep init 错误解决方法

    遇到的错误如下 mo 64 mo span class token operator span ThundeRobot span class token operator span span class token operator spa
  • stm32+TB6612驱动直流电机

    因为单片机的不可以直接的驱动电机 xff0c 所以需要在他们之间加上一个电机的驱动模块 xff0c 之前的文章里面用过L298N电机驱动模块 xff0c 现在再给大家推荐一个新的电机驱动模块 xff0c 他比L298N好用许多 xff0c
  • 1-范数、2-范数、∞-范数、F-范数,向量范数与矩阵范数

    目录 向量范数1 范数2 范数 范数 矩阵范数1 范数 xff08 列范数 xff09 范数 xff08 行范数 xff09 2 范数 xff08 谱范数 xff09 F范数Frobenius 向量范数 1 范数 2 范数 范数 矩阵范数
  • MATLAB中删除矩阵的某些列或某些行

    MATLAB中删除矩阵的某一列或某一行 删除某一行例子 删除某一列例子 删除多行例子 删除多列例子 删除某一行 span class token function b span span class token punctuation sp
  • 向量叉乘计算公式

    二维向量叉乘 A 61 a1 a2 B 61 b1 b2 A B 61 a1 a2 b1 b2 61 a1b2 a2b1 三维向量叉乘 A 61 a1 a2 a3 B 61 b1 b2 b3 A B 61 a1 a2 a3 b1 b2 b3
  • VINS-Fusion代码按执行顺序阅读(二)

    main 函数的最后一句 xff0c std thread sync thread sync process 可以看出 xff0c 只有time0在time1前后0 03s内的两幅图片 xff0c 才会被发布estimator inputI
  • 将Origin Pro设置成中文显示

    Origin Pro设置成中文显示 在键盘上同时按 win 43 R 键 xff0c 输入 regedit xff0c 点击 确定 找到路径 HKEY CURRENT USER SOFTWARE OriginLab Origin xff0c
  • 严重性代码说明项目文件行 禁止显示状态错误C4996 ‘scanf‘: This function or variable may be unsafe.最全解决方法

    方法一 xff1a 在程序最前面加 span class token macro property span class token directive keyword define span CRT SECURE NO DEPRECATE
  • 指针加1的含义、指针减法运算

    指针加1的含义 一 p 43 1实例运行结果 二 p 43 1 与 p 43 1实例运行结果 三 p 43 43 实例运行结果 四 指针减法运算实例运行结果 五 void 六 指针用来做什么 xff1f 一 p 43 1 p 43 1 表示
  • VMware从零配置安装CentOS 7

    不跳步图文详细安装教程 一 VMware的下载二 VMware的安装三 CentOS7的下载第一步 xff1a 根据自己电脑操作系统的位数点击选择 xff08 大多数都是64位操作系统 xff09 第二步 xff1a 任意挑选一个镜像源进入
  • VMware虚拟机CentOS 7系统:图形模式与文字命令行模式的切换快捷键

    切换快捷键 图形模式切换到文字命令行模式Ctrl 43 Alt 43 F2 F6 文字命令行模式切换到图形模式Ctrl 43 Alt 43 F1 图形模式切换到文字命令行模式 Ctrl 43 Alt 43 F2 F6 文字命令行模式切换到图
  • Linux 常用快捷键与指令总结(不断更新ing)

    命令快捷键含义Tab命令补全 文件补全Ctrl 43 C停掉错误的指令或参数Ctrl 43 D结束离开文字接口Shift 43 Page Up往前翻页Shift 43 Page Down往后翻页 61 61 61 61 61 61 61 6
  • Pytorch关于卷积核(Conv2d)的简单操作与模型修剪

    在使用Pytorch搭建深度学习算法时 xff0c torch nn Conv2d是用得最多的函数之一 Conv2d函数主要是对输入数据做卷积运算 输入参数如下图 xff1a torch nn Conv2d函数所生成的卷积核主要包括weig
  • 小觅相机运行VINS-Fusion(一)

    写在前面的话 xff1a 1 本文基于自己的另一篇博文win10 43 ubuntu16 04 43 ROS Kinetic 2 参考 4 是一篇非常好的帖子 xff0c 但由于小觅托管在github的代码在不断更新 xff0c 故需在某些
  • 正点原子stm32F407学习笔记3——蜂鸣器实验

    一 硬件设计 蜂鸣器为有源蜂鸣器 xff0c 当 PF 8 输出高电平的时候 xff0c 蜂鸣器将发声 xff0c 当 PF 8 输出低电平的时候 xff0c 蜂鸣器停止发声 xff0c 硬件原理图如下 二 软件设计 1 新建beep c文
  • Ubuntu 安装Cmake

    1 安装Cmake 1 Cmake与makefile xff1a Cmake好处是 1 可以自动化生成makefile xff0c 不需要手动编写 2 跨平台 可生成 native 编译配置文件 在 Linux Unix 平台 生成 mak
  • 什么是字节序?

    字节序 字节序 xff0c 顾名思义 xff0c 就是字节组织的顺序 我们可以将其根据其存储时从低位开始还是从高位开始分为两种 xff0c 具体如下 xff1a 类型简写本质大端BE big endian 将高序字节存储在起始地址小端LE
  • PX4开发基础

    文章目录 一 与无人机的缘分二 开发前三 背景知识硬件PIXHAWKpixhawkV1 xff1a pixhawkV2 xff1a pixhawkV3x xff1a PX4 xff08 推荐 xff09 地面站 xff08 GCS xff0
  • 利用蜂鸣器播放音乐

    我们知道 xff0c 蜂鸣器可分为有源蜂鸣器和无源蜂鸣器 xff0c 有源蜂鸣器内置了频率发生电路 xff0c 因此其通电就能够发出声音 xff0c 但是其频率是固定的 xff0c 而无源蜂鸣器内部没有频率发生电路 xff0c 需要外界给予
  • 51单片机之智能小车(避障、跟随、循迹)

    目录 基本概述 硬件组成 功能 关键字 模块介绍 电机模块L9110S 循迹模块 xff08 TCRT5000传感器 xff09 红外避障模块 测速模块 小车 移动小车 xff08 控制电机转动 xff0c 使小车前进 后退 左转 右转 x

随机推荐