【惯性导航姿态仪】 04 -Mini AHRS 姿态解算说明

  • 引言
  • 加速度计
    • 陀螺仪测量什么?
    • 从ADC值到 dps

参考链接:( MiniIMU AHRS 姿态板销售网址:) http://chiplab7.taobao.com/
第七实验室:
作者:lisn3188
本博客在原文档上有删改

引言

一直想写篇文章关于姿态解算原理的,使用尽量通俗的语句说明如何从加速度计和陀螺 仪的数据,融合得到载体的姿态角。无奈自己的水平有限,一直搁置。
淡泊以明志,宁静以致远.人总是要逼自己做些事,才过得心安理得。那就拿点时间把这
方面的资料整合一下吧。这篇文章的大部分内容都不是本人原创的,感谢网络上无私奉献的 人. 在此介绍一下实验的姿态板 ,新一代的mini AHRS,采用STM32F103单片机进行姿态解 算,板子上集成有

  • 1.MPU6050,三轴的加速度和陀螺仪
  • 2.HMC5883 三轴的磁力计
  • 3.BMP180 高精度气压高度计
    这些传感器都通过I2C接口连接到主控制器STM32.不需要额外的ADC电路,直接通过数字接 口就可以读取传感器的当前输出.

Mini AHRS是一个九轴的姿态仪模块,使用的都是数字器件,每一个传感器内部都集成有 ADC,只需要通过I2C总线,就可以读取传感器当前输出。 现在我们不着急了解如何读出这些数据,先来认识一下这些传感器都是做什么,它们 主要是测量哪些物理量,从加速度计开始

加速度计

加速度计顾名思义,就是测量加速度的.那么,我们如何认识这个加速度呢?在此用一个盒子形 状的立方体来做模型,认识加速度,如下,盒子内的图像

如果我们把盒子形状的立方体 放在一个没引力场的地方,球会保持在盒子的中间.你可以想 象,这个盒子是在外太空,远离任何天体,很难找到这样的地方,就想象飞船轨道围绕地球 飞,一切都是在失重状态下。那么六个壁面感受到的压力都是0. 如果我们突然将立方体向左侧移动(我们加快加速,1G =9.8米/ S ^ 2),皮球打在了 墙上X-。然后,我们测量球适用于在X轴上的壁和输出-1g值的压力。如下图

如果我们把这个小盒子拿来放在地球上,那么小球会落在Z-壁面上,并会为1G的底壁施加一 个力,在下面的图片所示


在这种情况下,框不动,但我们仍然可以得到Z轴的读数-1G。球在墙壁上的压力造成的引 力场。 到目前为止,我们已经分析了单个轴加速度计的输出,这是你会得到一个单轴加速度计。 三轴加速度计的真正价值,即是他们可以同时检测到所有三个轴的惯性力。让我们回到我 们的盒模型,并让旋转45度在右边的框中。球会触及两面墙:Z和X-在下面的图片所示:
x 和 z 轴受到值的0.71是不是任意的? 它们实际上是一个近似SQRT(1/2).要知道当盒子 只受重力场时,x^2+Y^2+z^2 =1g这将变得更加清晰,为大家介绍一下我们的下一个样 子的加速度计。 在之前的盒子模型中,我们有固定的引力场及旋转。在刚刚说明的两个例子中,我们分析
了2个不同的输出框位置,而力矢量保持不变。这更有利于了解加速度计如何与外部交互, 并显示当前读数


请看一下上面的模型,这是一个新的模型代替刚刚的盒子立方体。
试想一下,在新模型中 的每个轴是垂直于盒子的壁面。
向量R是加速度计测量(从上面的例子或这两者的组合,它 可以是引力场或惯性力)的力矢量。接收时,Ry,R Z与上的X,Y,Z轴的R矢量投影。

请注 意下面的关系式:
R ^ 2 = RX ^ 2 + RY ^ 2 + RZ ^ 2 (公式1)
请记住,早一点我告诉你,
SQRT(1/2)的值不是随机的〜0.71。如果您将上述公式中,
回顾我们的引力场为1 g后,我们可以验证:
1 ^ 2 =(-SQRT(1/2))^ 2 + 0 ^ 2 +(-SQRT(1/2))^ 2
简单地通过代以R = 1时,接收= SQRT(1/2)时,Ry = 0RZ = SQRT(1/2)
在方程 经过以上的理论分析我们越来越接近现实生活中的加速度计。

RXRYRZ实际上是呈线性关系对应到真正的现实加速度计的x轴 y轴 z轴.
在此提出一个问题, 加速度计如何将这些信息告诉我们? 目前市面上的加速度计从输出上区分为两种,一种是数字的,另一种是模拟的.miniAHRS 使用的是MPU6050三轴加速度计,是I2C接口的数字传感器.通过特定的命令 可以配置加速度的量程,并将内部ADC的转换结果读出来.

现在,我们有我们的加速度计的读数,以LSB为单位的,它仍然不是g(9.8米/秒^ 2),需要最后的转换,我们要知道加速度计灵敏度,通常表示为LSB /g。比方说当我们 选择2g的量程时,对应的灵敏度= 16384 LSB/ G 。为了得到最终的力值,单位为g,我们 用下面的公式:RX = ADCRx /灵敏度 也就是说 当x轴的计数为ADCRx时,那么对应的加速度值就是 (ADCRx/16384)g.

回到加速度向量模型,将相关角度符号补上,如下图

陀螺仪测量什么?

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轴间的夹角
现在看看,从这个模型中,陀螺仪测量什么?

上述的说明,已经知道陀螺仪测量角度的变化率.为了解释这一点,让我们假设,我们已经 测量围绕Y轴的旋转角(这将是Axz角)在时刻t0,我们将其定义为Axz0,接下来,我们测 量这个角度是在稍后的时间t1是Axz1。变化率将被计算如下:
RateAxz =(Axz1 - Axz0)/(t1 - t0)
如果Axz单位是度,并以秒为时间单位,那么RateAxz将以deg / s表示。MPU6050并不会以 deg / 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值并不都是正的,请注意,当出现负数时,意味着该设备从现有的正方向相反的方向旋转

【惯性导航姿态仪】 04 -Mini AHRS 姿态解算说明相关推荐

  1. SBG Ellipse2-A替代产品,XNA100C姿态航向参考系统AHRS详解

    XNA100C是一个姿态航向参考系统(AHRS),内部包含三轴MEMS陀螺仪.MEMS加速度计和MEMS磁强计.它提供了一种由EKF补偿的姿态数据.此外XNA100C还采用温度补偿技术提供精确的IMU ...

  2. 树莓派采集MPU9250运行AHRS进行姿态解算

    文章目录 1.几种概念的区分 2.消费级IMU的AHRS 3.树莓派玩转MPU9250 3.1树莓派配置 3.2在树莓派中移植MPU9250库 3.3使用MPU9250库 4.校准 4.1IMU误差模 ...

  3. 六轴传感器基础知识学习:MPU6050特性,四元数,姿态解算,卡尔曼滤波

    实际上,只要说到多少轴的传感器一般是就是指加速度传感器(即加速计).角速度传感器(即陀螺仪).磁感应传感器(即电子罗盘).这三类传感器测量的数据在空间坐标系中都可以被分解为X,Y,Z三个方向轴的力,因 ...

  4. 基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)

    前言:本文为手把手教学飞控核心知识点之一的姿态解算--MPU6050 姿态解算(飞控专栏第2篇).项目中飞行器使用 MPU6050 传感器对飞行器的姿态进行解算(四元数方法),搭配设计的卡尔曼滤波器与 ...

  5. Pixhawk-姿态解算-互补滤波

     版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 位置型PID的C语言实现 增量型PID的C语言实现 积分分离的PID控制算法C语言实现 变积分的PID控制算法C语言实现 ...

  6. AHRS姿态解算说明(加速度+陀螺仪+磁力计原理及原始数据分析)

    转载链接:http://www.51hei.com/bbs/dpj-92911-1.html AHRS俗称航姿参考系统,AHRS由加速度计,磁场计,陀螺仪构成,AHRS的真正参考来自于地球的重力场和地 ...

  7. 四元数AHRS姿态解算和IMU姿态解算分析

    ref:https://blog.csdn.net/xiaoxie613520/article/details/78227170 AHRS是自动航向基准系统(Automatic Heading Ref ...

  8. 第三讲 AHRS姿态解算

    AHRS是自动航向基准系统(Automatic Heading Reference System)的简称.目前,使用四元数来进行AHRS姿态解算的算法被广泛采用于四轴飞行器上.该算法源自英国Brist ...

  9. 【惯性导航姿态仪】02 磁传感器的简易标定说明

    [惯性导航姿态仪]02 磁传感器的简易标定说明 磁传感器的简易标定说明 1.为什么要标定磁传感器? 2.标定公式 3.标定过程 磁传感器的简易标定说明 此说明适用于所有磁传感器的简易标定. 1.为什么 ...

最新文章

  1. 查看自己的ip和采用什么方式上网(网通/电信)
  2. javascript判断输入的值是不是正整数
  3. C-二维数组,多维数组
  4. 从C语言的角度重构数据结构系列(十二)-C语言判断语法详解(ifswitch)
  5. 读写锁的由奢入俭“易”
  6. 眉骨高者为大贵之相_什么样才算富贵相?曾国藩的识人秘诀(组图)
  7. 华三云:不做开源的投机者
  8. Boost智能指针——scoped_ptr
  9. SSM:web目录下有的jsp和图片不能显示,有的可以显示的解决方法
  10. Hive 导数据到本地(2种方式)
  11. MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解
  12. qzone.class.php,PHP QQ登录接口应用_PHP教程 - str_repeat
  13. 强烈推荐 | 百度、阿里、腾讯 40 道面试题超全面总结
  14. php基本语法的几点备忘
  15. INVENTOR结构件生成器,新建型材
  16. 诚之和:太平鸟难渡“抄袭劫”?
  17. java for循环
  18. java课程设计 考试系统,java课程设计考试系统.
  19. 程序员专用表情包_拿走不谢
  20. idea 一直不停的updating indices 卡进度条问题

热门文章

  1. python+cv2+pyzbar 二维码画框、角度
  2. tableSizeFor的理解
  3. 欧洲游记之—— 路过荷兰
  4. 一个网站做渗透测试对企业的安全性建议
  5. 色彩空间(RGB, HSV, LAB, YUV)
  6. 【Three.js】简单地3D工具-Three.js建模入门基础教程
  7. 企业网上下单订货管理软件源码搭建功能介绍|移讯云订货通订单管理系统
  8. java计算机毕业设计基于微信小程序的校园外卖订餐系统APP
  9. C# 添加Word页眉、页脚和页码
  10. 保险初识经验汇总(重疾、医疗、寿险、意外)