飞控学习笔记-姿态角解算(MPU6050 加速度计加陀螺仪)

2023-11-09

本文持续更新…
I2C通信
AHRS是自动航向基准系统(Automatic Heading Reference System)的简称。目前,使用四元数来进行AHRS姿态解算的算法被广泛采用于四轴飞行器上。

IMU部分:
IMU是惯性测量装置(Inertial Measurement Unit)的简称,通常包含陀螺仪和加速度计

1.陀螺仪:测量的是角速度,即物体转动的速度,把速度和时间相乘,即可以得到某一时间段内物体转过的角度。(但是积分运算得来的角度本身就存在误差,随着时间的累加,误差会加剧,此时就需要加速度计辅助计算出姿态角度)
2.加速度计:测量的是物体的加速度,我们知道,重力加速度是一个物体受重力作用的情况下所具有的加速度。当物体处于静止状态时,加速度计测量出来的值就等于重力加速度1g, 约等于9.8米每平方秒。重力加速度g的方向总是竖直向下的,通过获得重力加速度在其X轴,Y轴上的分量,我们可以计算出物体相对于水平面的倾斜角度。典型的IMU惯性测量芯片为MPU6050,它被广泛采用在四轴飞行器上。
mpu6050便是这两种传感器结合测出姿态角,通常运用卡尔曼滤波得出最终角度

根据加速度计和地磁计的数据,转换到地理坐标系后,与对应参考的重力向量和地磁向量进行求误差,这个误差用来校正陀螺仪的输出,然后用陀螺仪数据进行四元数更新,再转换到欧拉角

陀螺仪的角速度测量:假如他的速度是1度没秒,那么通过速度乘以时间,我们就可以知道他距离起点走了多少度。

加速度计来测量倾角:一个简单的例子如下: 一个单轴的加速计位于重力水平面上的时候,它在垂直方向上受到的加速度为1g,在水平方向上受到的加速度为0。当我们把它旋转一个角度的时候,就会在水平轴上产生一个加速度分量。通过它们的关系,就可以计算出该单轴加速计的倾角。

1.通过陀螺仪的积分来获得四轴的旋转角度
2.然后通过加速度计的比例和积分运算来修正陀螺仪的积分结果。
下面代码中的gx,gy,gz分别代表陀螺仪在X轴,Y轴和Z轴三个轴上的分量
ax,ay,az分别代表加速度计在在X轴,Y轴和Z轴三个轴上的分量。

MPU6050(陀螺仪 加速度计)

MPU6050只包含陀螺仪和加速计共六个轴,
而MPU9150还包含磁力计,共九个轴。

陀螺仪

陀螺仪是测试角速度的传感器,也有人把角速度说成角速率,说的是一样的物理量。拿电 机做例子,当我们说一个电机10转每秒。一转是360度,那么它的主轴在一秒内转过3600 度。也就是说这个电机在转动时的角速度是3600dps.dps 就是dergee per second 度每秒 (或者写成 deg/s).
MPU6050 集成了三轴的陀螺仪.角速度全格感测范围为±250、±500、±1000与± 2000°/sec (dps)(度/秒).当选择量程为±250dps(度/秒)的时候,将会得到分辩率为131LSB/(º/s).也就 是当载体在X+轴转动1dps时,ADC将输出131.
在这里插入图片描述
上述的说明,已经知道
陀螺仪测量角度的变化率
.为了解释这一点,
让我们假设,我们已经测量围绕Y轴的旋转角(这将是Axz角)在时刻t0,我们将其定义为Axz0,接下来,我们测量这个角度是在稍后的时间t1是Axz1。
变化率将被计算如下: RateAxz =(Axz1 - Axz0)/(t1 - t0)
如果Axz单位是度,并以秒为时间单位,那么RateAxz将以度 / s表示。 MPU6050并不会以 度/ s 单位输出,我们需要在读完后进行转换。先来看看各个量程对 应的灵敏度

在这里插入图片描述在这里插入图片描述

从ADC值到 dps
通过I2C接口读出来的转换结果ADC值,并不是以度每秒为单位。一般按以下公式进行转 换:Anglerate = ADCrate /灵敏度 以量程为±1000º/s为例,说明如何转换。假设读取x轴的ADC值为200,从上表中得知在 ±1000º/s下的灵敏度为32.8LSB/(º/s) 。根据上面的公式: Anglerate = 200/32.8 = 6.09756º/s 这就是说,MPU6050检测到模块正在以约6度每秒的速度绕X轴(或者叫在YZ平面上)旋转.
ADC值并不都是正的,请注意,当出现负数时,意味着该设备从现有的正方向相反的方向旋转.
如下:=顺时针为正

在这里插入图片描述
最后,还要将角度换算成弧度制,便于计算

在这里插入图片描述综上做个陀螺仪的总结:
首先 传感器测量出当前姿态角,并且将数据寄存在一个16位的寄存器中
其次我们要选择精度,便于将16位的数据换算成角度
最终将角度转化为弧度制
输出姿态角=寄存器ADC的值/(灵敏度+2PI/360)

加速度计:

加速度计

全球首例整合性6轴运动处理组件
3轴陀螺仪+3轴加速度计
IIC接口,可用于扩展外部传感器
数据格式:旋转矩阵、四元数(quaternion)、欧拉角格式
体积小

在这里插入图片描述

无人机传感器
MPU6050:3轴陀螺仪+3轴加速度(姿态)
HMC5883:3轴数字罗盘(精确方向控制)
MS5611:气压计(高度计)

Pitch:俯仰角(抬头低头)
Roll:滚转角(翻身)
Yaw:偏航角(转弯)

三个角度组合,可唯一确定一个姿态
(MPU6050带有三个陀螺仪,每个陀螺仪各自负责检测相应轴的转动速度,也就是检测围绕 各个轴转动的速度。像三轴的陀螺仪将同时检测 X Y Z轴的旋转。 由上面这个模型图,首先我们定义:
Rxz - 是R向量在XZ平面上的投影
Ryz - 是R向量在XY平面上的投影
Rxz和Rz所形成的直角三角形,
利用勾股定理,我们得到: Rxz ^ 2 = RX ^ 2 + RZ ^ 2,
和同样: Ryz ^ 2 = RY ^ 2 + RZ ^ 2
还要注意的是:
R ^ 2 = RXZ ^ 2 + Ry^ 2,这可以来自从公式1和上面的等式,或它可以是来自于由R和Ryz
R ^ 2 = Ryz ^ 2 + Rx^ 2 形成的直角三角 我们不会在本文中使用这些公式,只是让读者认识到所有值之间的关系。 同时我们将定义Z轴和Rxz 、RyZ之间的夹角。 Axz - Rxz和Z轴间的夹角 Ayz - Ryz和Z轴间的夹角 现在看看,从这个模型中,陀螺仪测量什么?)

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

飞控学习笔记-姿态角解算(MPU6050 加速度计加陀螺仪) 的相关文章

  • L3-005 垃圾箱分布 (30 分)

    题目 题目链接 题解 对每个垃圾箱进行一次队列优化的Dijskra 每算出一个垃圾箱到其余各个居民点的最短距离后 计算这些距离中的最大距离 最短距离 如果最大距离大于要求的距离则直接忽略这个位置放垃圾桶的情况 否则 如果最短距离小于已经记录
  • opencv——颜色识别

    颜色识别 文章目录 颜色识别 前言 一 颜色识别是什么 二 图像处理中对颜色的转换 三 HSV的相关函数和应用流程 步骤展示 实例操作 总结 前言 这段时间一直在弄有关机器视觉识别的问题 在比赛中用到了很多关于颜色识别的视觉算法 感觉在开始
  • java通过poi模板导出excel

    java通过poi来读写excel目前很方便 支持xls和xlsx格式 目前代码支持按照sheet模板导出 并且支持sheet页级的模板复制功能 附上poi的maven配置 Java代码
  • mysql group by失效

    在MySQL5 7之后 sql mode中默认存在ONLY FULL GROUP BY SQL语句未通过ONLY FULL GROUP BY语义检查所以报错 检查代码也都是正确无误那么可以用any value函数解决 例子 select a
  • 图神经网络(1):图卷积神经网络GCN ICLR 2017

    图卷积神经网络GCN ICLR 2017 是曾经在美国加州大学UCI教授 现在荷兰阿姆斯特丹大学教授 Max Welling团队的大作 Max是图灵奖获得者Hinton的弟子 第一作者T N Kipf已经成为这个领域有名的学者和工程师 如果

随机推荐

  • DHCP协议详细解析

    一 DHCP定义 DHCP 动态主机配置协议 是一个应用层的网络协议 指的是由服务器控制一段IP地址范围 客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码 当我们将客户主机ip地址设置为动态获取方式时 DHCP服务器就会根据D
  • Java学习--- MySQL多表查询与自连接

    目录 一 多表查询 二 笛卡尔集 三 非等值连接 四 自连接 五 练习 一 多表查询 基于两个和两个以上的表查询 在实际应用中 单表查询不能满足需求 当在多表查询的条件不能少于表的个数 1 不然会出现笛卡尔集 二 笛卡尔集 多表查询 查询员
  • 在多个浏览器中添加IDM插件

    许多朋友下载了IDM Internet Download Manager 不知如何使用 把包含视频的链接放到软件新建任务 下载下来的的却是网页而不是视频 该软件下载视频的其中一个方法 需安装浏览器插件 通过插件抓取视频下载源 正常来说 我们
  • multicycle path的概念和用法

    通常情况下 两个同步的reg进行timing check时 组合逻辑的delay必须在一个时钟周期内到达 才能满足setup的时序 但是在某些情况下 从一个寄存器输出到另外一个寄存器的data端需要不止一个cycle的时间 而且又不影响逻辑
  • c++之Vector(动态 )

    原文 Vector 向量 C 中的一种数据结构 确切的说是一个类 它相当于一个动态的数组 当无法知道数组的规模有多大时 用来解决问题可以达到最大节约空间的目的 1 用法 include
  • 《结构化思维》读书笔记

    读书使人进步 每天进步一点点 本周小萌精心读的一本书是 结构化思维 主要是讲结构化思考 很棒的一本书 推荐读 麦肯锡金字塔原理 以及其他的麦肯锡结构化思考方法 第一章 初识思维 思维是我们解读事实的起点 是产生行为的源头 是决定结果的根本
  • honeyd路由拓扑

    create router 创建路由器模版 set router personality Cisco 7206 running IOS 11 1 24 指纹 add router tcp port 23 usr share honeyd s
  • python+unittest+ddt,从0到1搭建接口自动化框架

    最近在学习纯代码的接口自动化框架 在网上查阅大量资料后 结合了多个文章 最后使用python unittest ddt实现了一个简单的接口自动化工具 可以实现读取excel中的测试用例 生成测试报告 并发送邮件的功能 下图是项目的框架结构
  • Activiti7正式版- Activiti Cloud SR1

    2019年3月18版本 Activiti7正式版 Activiti Cloud SR1正式发布 我很高兴地宣布第一个服务版本的Activiti Cloud 和Activiti Core artefacts 在从我们的第一次GA迭代中获得大量
  • Andorid平台GB28181设备接入端如何生成黑帧并推送至国标平台

    我们在做Android平台GB28181设备接入模块的时候 遇到这样的需求 做移动对讲的时候 是不需要视频数据的 但是国标平台侧 没有视频的话 大多平台又无法播纯音频打包的数据 网页端大多基于http flv或webrtc实现 基于此 我们
  • python3 nonetype_“ NoneType”对象在python3中不可迭代

    TypeError Traceback most recent call last in 15 execute Align rsUnitedSpecPolicyDataFeed 16 gt 17 df pd read sql sql con
  • mpaas小程序如何实现摇一摇功能

    因为公司需要特意研究一下mpaas小程序框架 公司要实现摇一摇功能 如下 手机晃动调用其代码api 实现其功能 代码如下 axml片段
  • python-sklearn数据拆分与决策树的实现

    python sklearn数据拆分与决策树的实现 前言 一 数据拆分的sklearn实现 1 拆分为训练集与测试集 2 交叉验证法 1 留一交叉验证 2 验证集验证 3 k折交叉验证 4 s折交叉验证 s fold 3 sklearn交叉
  • .md即markdown文件的基本常用编写语法(图文并茂)

    序言 很久没有写博客了 感觉只要是不写博客 人就很变得很懒 学的知识点感觉还是记不住 渐渐地让我明白 看的越多 懂的越少 你这话不是有毛病吗 应该是看的越多 懂的越多才对 此话怎讲 当你在茫茫的前端知识库里面东看看 西看看的时候 很快就被海
  • 知乎热议:国家何时整治程序员的高薪现象?

    国家何时整治程序员的高薪现象 看到这个标题 可能大多数人的第一反应都是 提出这种问题的人 非蠢即坏 我当时看到突然吓了一跳 难道这是要拿程序员开刀 本身知乎平台上就有不少程序员群体活跃 马上就吸引来了很多人参与回答 其中 下面这位知友的回答
  • 最强自动化测试框架Playwright(35)-API测试

    playwright可以进行API测试 APIRequestContext可以通过网络发送各种HTTP S 请求 以下示例演示如何使用 Playwright 通过 GitHub API 测试问题创建 测试套件将执行以下操作 在运行测试之前创
  • Django图书商城系统实战开发 - 实现个人订单管理

    Django图书商城系统实战开发 实现个人订单管理 在实战开发Django图书商城系统中 实现个人订单管理是提供给用户的重要功能之一 以下是总结的要点 订单列表 创建一个订单列表页面 展示个人的订单历史 使用Django的模型和视图来获取和
  • Shopify商品列表页实现自动加载下一页产品功能Loading More

    找到你要编辑的主题 然后单击 Action gt Edit code 打开文件 theme liquid 或者在商品列表文件中 引用一个JS文件 在Assets中新增一个名为loadingmore的JS文件 添加如下代码 保存 loadin
  • Python 动态生成系统数据库设计到word文档

    背景 经常需要交付一些系统文档而且基本都是word的 其中又有系统数据库介绍模块 看着数据库里的几百张表于是我开始怀疑人生 所以咱手写一个 涉及知识 pymysql 操作数据库 tkinter GUI图形库 threading 线程 que
  • 飞控学习笔记-姿态角解算(MPU6050 加速度计加陀螺仪)

    本文持续更新 I2C通信 AHRS是自动航向基准系统 Automatic Heading Reference System 的简称 目前 使用四元数来进行AHRS姿态解算的算法被广泛采用于四轴飞行器上 IMU部分 IMU是惯性测量装置 In