陀螺仪加速度计磁罗盘的校准
一、校准加速度计
加速度计有零偏和尺度误差。还有其他误差,这里只讨论这两种误差。
六面校准法:目的是让输出的数据在9.8mss左右(可以将Xmax = 9.44, Xmin = -10.24代进去感受一下)
公式:以X轴为例
操作:六个面朝上的时候,可以获取每个轴的最大值和最小值。首先,如下图,此面朝上,加速度计的Z轴是9.44。此面朝下,测量的值是-10.24.这样Z轴的最大值和最小值就计算出来了。同理可以获取X,Y轴的最大值最小值(可多测量几次求平均)。如下表:
根据公式:bx = 0.32, kx = 1.00823; by = 0.245, ky = 1.001533; bz = -0.465, kz = 0.993411;
二、校准陀螺仪
陀螺仪的校准只校正零偏误差。其操作是:在上电后,水平静止一段时间,获取陀螺仪N组数据,然后求平均值,该平均值作为初始零偏,最终校准的结果是陀螺仪原始测量值减去初始零偏。
初始零偏 = N组陀螺仪数据的和 / N 陀螺仪校准值 = 陀螺仪测量值 - 初始零偏
三、 磁罗盘的校准
磁罗盘的校准使用椭球拟合的方式进行校准。
理论上,如果将磁力计绕一个点,做各个方向的旋转,绘制出来的三维图像是一个圆的球面,然而,因为磁力计容易受周遭环境的影响,实际绘制出来的三维图像是一个椭球面,且球心不在[0,0,0]。而椭球拟合就可以解决球心不在[0,0,0],三维图像不是一个椭球面。(至于为什么椭球拟合能做到,我暂时还是不懂。大家可以参考一下这个博主的https://blog.csdn.net/shenshikexmu/article/details/70143455?spm=1001.2014.3001.5501)
椭球拟合的流程:
椭球方程
x0,y0,z0表示球心的位置;A,B,C分别表示沿着x轴的赤道半径,沿着y轴的赤道半径,极半径。
x,y,z在磁罗盘校准中表示磁罗盘的x, y, z轴的观测值,也即磁罗盘测量到的值。将椭球方程展开成一般式
其中:a,b,c,d,e,f 是最小二乘法中待求的未知数,a,b,c,d,e,f 与 x0,y0,z0,A,B,C的关系如下:
最后通过 a,b,c,d,e,f 再求出磁罗盘椭球方程中的 x0,y0,z0,A,B,C。
3. 定义误差方程:
xi,yi,zi表示第i次磁罗盘测量的结果。
将ei写成Ax-b的形式方便进行最小二乘法计算。
最小二乘法的通解如下:
x^* 里面就是 a,b,c,d,e,f 的值,然后通过a,b,c,d,e,f 与 x0,y0,z0,A,B,C的关系求出x0,y0,z0,A,B,C。
最终的校准结果如下:
magx,magy,magz 分别是磁罗盘x,y,z轴观测到的值。
通过MATLAB展示校准的结果
校准的数据获取的方式是,晃动磁罗盘,让每个轴的数据都能获取到,例如进行各个方向的绕圈。从我下面的图可以看出我绕的不够好,因为我是直接甩的。
【注意:晃动磁罗盘的时候,要远离磁铁,电机或金属材质的东西,因为磁罗盘很容易受此类物品干扰。】
5.1 校准之前
可以看出没有校准的时候,原始数据的球心不在(0,0)的位置上。
5.2 校准之后
基本都在(0,0)附近了。
后续整理好MATLAB和C代码会开源出来。希望能和大家多多交流。
陀螺仪加速度计磁罗盘的校准相关推荐
- IMU(陀螺仪、加速度计)Magnetometer(磁力计)校准方法和流程
一.何为校准: 校准的目的是因为厂商在生产器件时,由于工艺.技术等原因,致使器件存在缺陷,导致实际应用时,存在误差! 一般器件在出厂时,都会做一些校准处理,比如以Sensonor公司的Stim300为 ...
- 陀螺仪加速度计 JY61(MPU6050) 原理简述及缺陷分析
-- 该模块工作原理较为复杂,且涉及到数字信号处理,本文只是简单的描述其工作原理,并捎带上一些基础理论. JY61(MPU6050)简介 MPU6050由四部分组成:加速度计.陀螺仪.DMP.温度传感 ...
- MPU6050 6轴陀螺仪的使用与校准
1 MPU6050初始化 ①初始化IIC接口. ②初始化MPU6050.由电源管理寄存器1(0X6B)控制. ③设置角速度传感器和加速度传感器的满量程范围.由陀螺仪配置寄存器(0X1B)和加速度传感器 ...
- ardupilot 加速度计六面校准
目录 文章目录 目录 摘要 1.地面站如何触发加速度校准 2.校准所用到的核心算法: 3.接受校准结果 摘要 本节主要梳理ardupilot的加速度计六面校准,重点理清楚: 1.地面站如何触发加速度校 ...
- ESP32设备驱动-MPU-9250 3轴陀螺仪/加速度计/磁力计驱动
MPU-9250 3轴陀螺仪/加速度计/磁力计驱动 1.MPU9250介绍 MPU-9250 是面向智能手机.平板电脑.可穿戴传感器和其他消费市场的第二代 9 轴运动处理单元™(Motion Proc ...
- 陀螺仪加速度计MPU6050程序与校准方法
文章目录 前言 一.陀螺仪与加速度计简介 二.程序使用 1.初始化 2.读取数据 三.误差校准 1.陀螺仪校准 2.加速度计校准 3.校准后的输出 四.源码获取 前言 本文将介绍陀螺仪和加速度计的使用 ...
- Raspberry Pi和Python校准惯性测量单元-陀螺仪-加速度计-磁力计
惯性测量单元校准 惯性测量单元(IMU)可以由单个传感器或传感器集合组成,这些传感器或传感器集合捕获旨在测量给定参考系中的惯性运动的数据. 加速度,旋转速度和磁场强度是IMU中包含的传感器的示例. I ...
- n维椭球体积公式_加速度计 椭球校准 (最小二乘法 椭球拟合)
在搞自动控制中,很少有人能不和陀螺仪,加速度计这些打交道,当然还有些人还不免和地磁计打交道, 这类三轴传感器都有一个特性,三个轴的零飘不一样,三个轴的比例尺不一样,随机游走我们暂且不考虑, 那么这时候 ...
- 姿态解算知识(三)-陀螺仪加速度计6轴数据融合
这么久的惯导总算是没白看,加上一篇博客的指点,这两天把Mahony的九轴数据融合算法看懂了.可惜第二版硬件还没到,磁力计用不了,没法验证效果~今天先总结下陀螺仪和加速度计的六轴数据融合. 版权声明 原 ...
最新文章
- 每天学一点flash(71)折纸
- getopt的用法与optarg
- oracle节点1关闭节点2的集群,[Oracle] Oracle两个节点分裂,识别不到对方节点的状态...
- ORA-01756: quoted string not properly terminated
- 分布电容和杂散电容_什么是“寄生电容”?
- 第十一届蓝桥杯省赛 C++组试题 第2题 求完数
- 30.课时30.【Django模板】autoescape标签使用详解(Av61533158,P30)
- python函数定义时参数相当于占位符_python中函数的参数
- 关于word中插入知网e-study插件问题
- git push 失败出现error: src refspec master does not match any.解决方案
- React传递参数的多种方式
- 部分拆解笔记本电脑(联想y580)
- php100视频教程html,PHP100视频教程48:Ajax+PHP快速上手及应用
- 第12篇:给任意java程序挂Socks5代理方法
- Matplotlib:Legend 图例
- Composer中的ThingWorx模型定义—可视化
- 用STM32CubeIDE速攻FreeRTOS
- python len()函数的用法
- A股日内回转交易意义何在?
- 正确的学习思路(上)、
热门文章
- java cpu_java获得CPU使用率,系统内存,虚拟机内存等情况
- 短视频内容审核标准细则:不得未经授权自行剪切电影、电视剧
- python psutil模块_python之psutil模块(获取系统性能数据)
- 计算广告基础知识(一)
- 服务器主板性能与家用,服务器主板和普通PC主板的区别
- lga775服务器cpu系列,详细告诉你lga775接口的cpu有哪些
- c#退出窗口跳转_编写Qt多窗口程序
- python中if verbose是啥意思呀讲解
- 会计基础工作规范E卷
- 公交实时位置查询APP