四轴飞行玩具的姿态解算的原理1.转动和姿态
前言:
曾经试图自己做四轴无人机。这里是一些相关的笔记。
无人机的几大难点:
1.电机控制(无刷直流电机PWM控制)
2.姿态获取(三轴加速度,陀螺仪,气压,超声,姿态融合,姿态解算)
3.姿态控制(PID )
4.遥控
5.运行逻辑
本文是关于第二点“姿态获取”中, 姿态计算的基本原理。
所谓姿态解算,就是将陀螺仪的数据 ,经过一些数学运算后,得到机体姿态的过程,如图一:
《图一》
姿态(坐标)的定义:
在最基本的导航学中,我们定义了两个坐标:1.地球坐标 ;2.机体坐标。
1. 地球坐标定义如下:X轴指向北方,Y轴指向西方获得东方,Z轴指向地心,如图二所示:
《图二》
显然,在整个地球的表面,地球坐标是不断变化的,绕着地心向北旋转,所以地球坐标有时也被叫做指北坐标,如图三 。
《图三》
当然,在航程很小的无人机系统中(航程不过10公里以内),我们可以认为地球坐标在宏观上是相对不变的。
2.机体坐标: 飞机上的陀螺仪,是固定在机体上的,跟随机体运动。它所探知的,是机体角度的瞬时变化。机体坐标的表述如下图4所示:
《图四》
那么,怎么描述机体的姿态呢?我们将机体坐标和地球坐标结合在一起,通过对机体坐标在地球坐标中的三维夹角,来标识机体的姿态:
《图五》
如果,测得机体与地球坐标之间的对应夹角,就可以得到姿态的表述了。但是很可惜,我们没有仪表可以直接测得机体坐标三个轴和地球坐标三个轴之间的夹角。
我们能得到的,是通过陀螺仪/加速度计,采集的一小段时间内,机体坐标角度的变化值。 所以我们需要一些数学工具,将机体坐标变化值,累加到之前的姿态值上,得到下一刻的姿态。其概念图如下:
这个算法绝对不是对姿态角的积分累加。所以不要试图通过简单的积分器来获得新姿态。
那么,从一个姿态,变化到另一个姿态,是如何描述的呢? 这就涉及到“转动“的概念。
转动:
转动,就是指物体从一个姿态,变化到另一个姿态的过程。
转动的方式分为两类,一类是无限转动,一类是由限转动。
假设我们手里有一个飞机模型,我们把它从姿态A,转到姿态B时,可以采用两种转动策略
1. 无限转动: 从姿态A开始,我们可以让飞机模型在三个轴上同时转动,最终转动到姿态B。例如,MPU6050每个采样周期内,采集到的转动轴变化值,就是无限转动 。
2.有限转动: 从姿态A开始,我们让飞机模型先绕X轴转动角度a度,再绕Y轴转动b度 ,最后绕Z轴转动c度, 完成后,机体达到姿态B。 这就是有限转动。
大多数情况下,我们是没有办法直接观测到无限转动的,所以,我们常用的描述方式是有限转动。
下表是对于他们的描述:
属性 | 无限转动 | 有限转动 |
有序 | 无序,三个轴同时转动 | 必须按照一定次序,依次转动是三个轴 |
角度 | 小角度转动 | 小角度,大角度都适用 |
场合 | MOU6050输出值 | 状态值 |
表现用途 | 表示瞬间变化 | 表示两个状态之间的变化 |
有限转动,起始就是欧拉角表示。欧拉角的详细描述,可以参看网上的其他资料。
我们根据转动的轴的先后次序,有ZXZ' ; ZXY; XYZ等 12种有限转动。
注意,ZXZ'代表先绕Z轴,再绕X轴,最后还是绕Z轴,这样也是可以转动到指定位置的, 所以有限转动并不是一定要XYZ三个轴都要使用。
下图是ZXY的有效转动示意图:
我们在毫秒级别的时间间隔内,采集到的MPU6050转动值,就是无限转动,但是要标识机体的夹角和地球坐标之间的夹角,即姿态,则需要使用有限转动。所以,姿态解算就是把无限转动,换算累加到某一个指定的有限转动序(欧拉角)上。
今天就写到这里。下次介绍四轴飞行玩具的姿态解算的原理2.姿态矩阵。
转载于:https://www.cnblogs.com/stonenox/p/10330567.html
四轴飞行玩具的姿态解算的原理1.转动和姿态相关推荐
- 飞行器控制笔记(二)——姿态解算之坐标变换与欧拉角更新姿态
飞行器控制笔记(二)--姿态解算之坐标变换与欧拉角更新姿态 飞行器控制笔记(二)--姿态解算之坐标变换与欧拉角更新姿态 一.基本假定 二.坐标变换矩阵 2.1绕z轴旋转 2.2绕y轴旋转 2.3绕x轴 ...
- 基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)
前言:本文为手把手教学飞控核心知识点之一的姿态解算--MPU6050 姿态解算(飞控专栏第2篇).项目中飞行器使用 MPU6050 传感器对飞行器的姿态进行解算(四元数方法),搭配设计的卡尔曼滤波器与 ...
- 四轴飞行玩具的姿态解算的原理2.欧拉角及其表示
回顾: 前面讲了,飞行器坐标与地球坐标之间的夹角,就是我们要求的姿态. 姿态的表示方法有两类:无限转动法, 和有限转动法. 用于表示机体瞬间小角度变化的,是无限转动法. 其中常用于导航,工程计算的,表 ...
- matlab 四元数叉乘,四轴飞行玩具的姿态解算的原理3. 点乘与叉乘;四元数
在讲四元数之前,先讲下向量的点乘和叉乘. 我们先假设有两个向量 : a = [Xa Ya Za] b=[Xb Yb Zb] 一 . 点乘(·): 点乘又叫内积,他是两个向量的各项乘积之和,其值为一个 ...
- 学习四旋翼(三):DMP姿态解算和串级PID控制姿态
暑假期间,对于四旋翼有一点兴趣,没有亲手做,但是看了一些资料.这个系列文章只是对自己看的东西的记录,对于想要学习了解相关知识的同学没有任何参考价值! 本篇是系列第三篇,介绍了我对于MPU9250 DM ...
- Pixhawk学习6.1——姿态解算
19年12月份写完传感器标定之后停了得有两个半月了,主要是因为年底试验事情比较多,个人也比较心烦,所以就停滞了.过完年疫情严重,在家里隔离办公,整好有心思整理和学习了一些pix的内容,今天一并发出来. ...
- Pixhawk之姿态解算篇(5)_ECF/EKF/GD介绍
一.开篇 很久没更新blog了, 最近研究的东西比较杂乱,也整理了很多东西,没有来的及更新,最近发现很多小伙伴都开始写blog了,在不更新就要"被落后了".兄弟们,等等我啊~~~ ...
- 四旋翼姿态解算——梯度下降法理论推导
转载请注明出处:http://blog.csdn.net/hongbin_xu 或 http://hongbin96.com/ 文章链接:http://blog.csdn.net/hongbin_xu ...
- Pixhawk代码分析-姿态解算篇B
姿态解算篇B 前言 本篇博文主要是以mahony的算法为基础理解姿态解算的过程,主要参考的论文就是William Premerlani and Paul Bizard的关于DCM的一篇经典论文< ...
最新文章
- 基于点云的3D深度学习主干网络进展综述
- Rainbow的相关资料
- Openstack组件实现原理 — OpenVswitch/Gre/vlan
- mysql 踩过的坑_MySQL数据库踩过的一些坑
- [转]run for a girl
- 利用Guava的Suppliers.memoize实现单例
- 通用职责分配软件原则之3-低耦合原则
- word制作电子签名
- 漫画算法:5 分钟搞明白红黑树到底是什么?
- 万事达卡:公共与私营部门通力合作对于创建智慧城市有重要意义
- 最大表示法--环形字符串最大字典序(HDU 5442)
- java入门、常量和变量
- win11使用excel卡顿怎么办 Windows11使用excel卡死的解决方法
- CleanCode-函数
- 免费linux脚本下载地址,shell脚本 下载|Linux shell脚本 v免费版下载 - D9下载站
- jq动态改变路径_在react中使用jQuery动态更改图片路径遇到的问题
- uni-app安卓禁止截屏,一行代码
- POJ - 1637 Sightseeing tour(混合图欧拉回路的求解--建图跑最大流)
- 怎么让Win10不显示快速访问记录
- BeautifulSoup安装
热门文章
- 简单几个步骤,轻松完成短视频配音工作|别惊讶,让我手把手教你
- 方舟编译器java代码_华为方舟编译器编译工具正式发布
- 和大家聊聊什么是小程序?
- [架构之路-43]:目标系统 - 系统软件 - Linux下的网络通信-3-TCP/IP协议族:IP、TCP/UDP/SCTP、Socket、应用层协议
- matebook x pro 2020,显卡nvidia mx250,处理器intel i5-10210ou安装win7系统步骤
- 我的世界服务器无限装备指令2020,我的世界2020命令方块代码
- 高德地图自定义地图样式失效
- pdfptable 设置行间距_[转载]CoreText 轻松设置字体大小,间距,行间距,段间距,算高度...
- 免root ADB命令卸载系统预装应用
- 一场环球AI大赛,献给青春的最好礼物