——

该模块工作原理较为复杂,且涉及到数字信号处理,本文只是简单的描述其工作原理,并捎带上一些基础理论。

JY61(MPU6050)简介

MPU6050由四部分组成:加速度计、陀螺仪、DMP、温度传感器(检测温度,通过算法优化来减少温漂)。

JY61和MPU6050为从属关系。六轴模块jy61自带稳压电路,包含陀螺仪加速度计MPU6050和STM8单片机,STM8通过IIC读取 MPU6050 中DMP的测量数据然后通过串口输出,免去了用户自己去开发 MPU6050 复杂的 IIC 协议;同时保留了 MPU6050 的 IIC 接口,以满足用户访问底层测量数据(加速度、角速度)的需求。
在大部分情况下二者名称可以混用,因为通常MPU6050不会单独进行应用。实际上使用MPU6050作为搜索关键词能找到的资料更多。

jy61通过串口与外部单片机进行通信。

轴向说明


如上图所示,模块的轴向在上图标示出来,向上为 X 轴,向左为 Y 轴,垂直模块向外为 Z 轴。
旋转的方向按右手法则定义,即右手大拇指指向轴向,四指弯曲的方向即为绕该轴旋转的方向
X 轴角度(滚转角 Roll)即为绕 X 轴旋转方向的角度,Y 轴角度(俯仰角 Pitch)即为绕 Y 轴旋转方向的角度,Z 轴角度(偏航角 Yaw)即为绕 Z 轴旋转方向的角度, 三者合称姿态角/欧拉角(Euler angles)。

对于导航和控制问题,姿态角等同于欧拉角,这是因为旋转顺序是按ZYX提供坐标,二者实际有所不同
详情:https://zhuanlan.zhihu.com/p/28514084 欧拉角与姿态角,旋转矩阵和四元数的一些思考

姿态融合

MPU6050的正式名称为六轴运动姿态陀螺仪传感器,可测量三维加速度,三维角速度和三维角度,之所以称其为“六轴”,是因为MPU6050是一个6轴运动处理组件,包含了3轴加速度计和3轴陀螺仪,可分别输出三轴加速度和三轴角速度,然后再根据以上原始数据在DMP(Digital Motion Processor,数字运动处理器)中使用算法进行姿态融合解算出三轴的角度数据。
常用的姿态融合算法有四元数法 、一阶互补算法和卡尔曼滤波算法,其中第三者最为常用。

卡尔曼滤波算法简述:对于姿态传感器模块来说,角度解算来源与两种类型的数据,第一种是通过加速度和磁场数据进行运动学解算可以求出三轴的姿态角,优点是没有长期漂移和误差累计,但缺点是精度差,而且仅在静态时能保证精度。第二种时通过陀螺仪测量出来的角速度进行积分运算,可以得出三轴姿态角,优点是精度高,可以进行动态测量,对加速度不敏感,缺点是有累积误差和漂移,时间越长累积误差越大。卡尔曼滤波就是一种数据融合算法,结合加速度计和陀螺仪的信息,共同来解算姿态,集合二者的优点获得在动态环境下可以准确测量姿态的方法[^1]。

JY61工作的总体过程为:将模块的姿态用四元素表示,作为系统的状态量,模块的姿态运动学方程作为滤波的状态转移方程,加速度信息作为滤波的观察量信息,然后利用卡尔曼滤波的计算方法迭代计算更新[^2]。

由于没有参考量,所以无法求出当前的Yaw角的绝对角度(另外两个角可得出),因此Z轴角度通过角速度积分运算得来,会有累积误差。如果必须要获得绝对的Yaw角,那么应当选用MPU9250(九轴,jy901内置),它相比较前者自带一个三轴电子罗盘,从而根据地球磁场方向计算Z轴角度,避免漂移现象。(当 901 使用环境有磁场干扰时,可以在上位机中配置算法转换,尝试用 6 轴算法检测角度)

  1. https://zhuanlan.zhihu.com/p/77494866 维特智能JY61姿态陀螺仪模块的使用测评
  2. https://blog.csdn.net/a752109494/article/details/52387786 关于MPU6050陀螺仪模块的测量误差分析

数据校准

由于MPU6050输出的各项数据有偏移现象(零点漂移,静态时),且具有较大噪音,因此需要先对数据偏移进行矫正,再进行滤波

数据偏移处理
传感器在出厂时都会有不同程度的零偏误差,需要手动进行校准后,测量才会准确。
角速度:可通过统计求平均的方法来获得。
加速度:通常只进行单独校准读数偏移。
以上二者皆可通过上位机程序进行校正,详询厂商说明书。

数据滤波
即卡尔曼滤波算法。一个卡尔曼滤波器接受一个轴上的角度值、角速度值以及时间增量,估计出一个消除噪音的角度值。
这一过程实际上被包含在姿态融合过程中

https://zhuanlan.zhihu.com/p/20082486 Arduino教程:MPU6050的数据获取、分析与处理

提高输出精度的方法

jy61在日常实验应用中会时而表现出较大的角度输出误差,鉴于硬件(陀螺仪和加速度计)本身精度尚可,推测为:

  1. 姿态融合算法具有缺陷。由于对算法的更新需要极强的数学思维,对于学生来说,对算法更新的难度过大。
  2. Z轴角度的积分累计误差。此为硬件缺陷,可通过升级硬件进行修改。

综上,选用精度更高的传感器如jy901等从成本上来看显得更为划算。

详情可参考:
MPU6050 /jy61帮助文档 二者内容相似
MPU9250 /jy901帮助文档 二者内容相似

陀螺仪加速度计 JY61(MPU6050) 原理简述及缺陷分析相关推荐

  1. 陀螺仪、加速度计与MPU6050的关系

    文章目录 一.引言 二.陀螺仪 三.加速度计 四.MPU6050 一.引言 要开始做俩轮平衡小车了,所以需要补充一些关于平衡小车的知识,首先就是如何让小车保持平衡,这是要依据小车当前的三轴角度和平衡位 ...

  2. 陀螺仪器件选型MPU6050、BMX055、icm20602

    陀螺仪器件选型MPU6050.BMX055.icm20602 一.共同点 二.区别 MPU6050排除 BMX055 icm20602 三.总结建议 四.展望+提升 陀螺仪串联磁力计 一.共同点 三款 ...

  3. Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述

    - title: Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述 - date: 2021/8/14 文章目录 CAS全称 Compare And Swap,是一种 ...

  4. 电容三点式LC振荡器电路组成及工作原理简述

    电容三点式LC振荡器电路组成及工作原理简述 [复制链接]     husk2012 116 主题 21 好友 3550 积分 VIP会员 发消息 电梯直达 1#  发表于 2012-10-22 20: ...

  5. 石英加速度计的工作原理

    石英加速度计的工作原理 加速度是一种用来反映物体在运动过程中的速度变化状态的物理量,其无法直接测量,当前的加速度传感器(加速度计)采用间接测量以及力的平衡等技术来获取物体的加速度.加速度传感器的工作原 ...

  6. ELF PLT Hook 原理简述

    [无线平台]ELF PLT Hook 原理简述 简述 Android 是基于Linux的操作系统,因此在Android开发平台上,ELF是原生支持的可执行文件格式:ELF文件格式除了作为可执行文件,还 ...

  7. Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld...

    Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述---- 隐鹤  /  HelloWorld 1. 引言 自本人第一篇博文"Excel阅读模式/单元格行列指示/聚光灯 ...

  8. P型半导体,N型半导体,PN结原理简述

    前置知识: 半导体器件是构成各种电子电路的基础.而半导体的器件主要是由半导体材料制成的:如硅和锗. 为什么要使用半导体材料作为器件? 这就跟半导体的特性相关,需要一些初高中的化学基础:在元素表中,元素 ...

  9. Vue响应式原理简述

    Vue响应式原理简述 依赖技术 图解过程 依赖技术 问题:Vue如何监听data的改变? => 技术:Object.defineProperty函数.在其中的set方法中监听对象属性的改变. 问 ...

最新文章

  1. hive 在kettle 作业return code 2 的问题 Unexpected exception: Unexpected exception: Unexpected exception:
  2. Linux的DNS配置2-主从服务器
  3. 校验数字签名防止apkP二次打包
  4. linux hive创建数据库失败,Hive本地模式安装及遇到的问题和解决方案
  5. Boost:bind绑定全局占位符的测试程序
  6. free技术详解 lock_lock free的理解
  7. 第六十八期:程序员与医生
  8. 【牛客 - 157E】青蛙(floyd最短路,建图)
  9. (转)MySQL命令行--导入导出数据库
  10. python 检测列表中是否有空值,检查python列表中是否已经存在数字
  11. 不懂什么是锁?看看这篇你就明白了
  12. python绘图在图中添加标记
  13. Triple Flips CodeForces - 1072E
  14. element中el-select实现拼音搜索(el-autocomplete等下拉框搜索都可添加)
  15. Android编程制作漫画,画出自己的漫画 Android漫画风制作所
  16. php获取两个时间戳之间相隔多少天多少小时多少分多少秒
  17. 浏览器内核、渲染引擎、x86与RAM架构等基本概念
  18. ChinaRAP中国道路(路网)风险评估系统研究与应用
  19. 机器学习中样本的样本量的估计(VC维)
  20. PayPal PHP接口 paypal在线支付

热门文章

  1. Android应用开发获取手机电池电量的简单方法
  2. 解决UDP出现的10054错误
  3. fsck的介绍和应用
  4. Word或者Excel中怎么把 空格 替换成 换行
  5. C++实现降低一幅图像的空间分辨率
  6. postgresql常用操作指令
  7. Linux下网络流量实时监控
  8. Mac OS X下Adware/malware 的简单手动排除方法
  9. 网站本地化翻译、建设助力企业拓展全球市场 安睿杰翻译
  10. pc端和移动端集成第三方快捷登录 --- 微博为例