看完这个,让你分分钟搞定罗盘与加计校准!

article/2025/11/11 10:22:21

看完这个,让你分分钟搞定罗盘与加计校准!

 

罗盘和加计的校准是日常开发中最基础的工作,特邀Echo老师对罗盘和加速度计校准的工程方法进行总结,为小伙伴你们解惑,是有此文。

作者信息

Echo,本名邹佳池,从事嵌入式软件开发。

联系方式:QQ529380360

 

超详细讲解:罗盘和加速度计校正方法

(附C源代码)

1.为什么要校正

我们都知道,罗盘是测量周围的磁场强度,若不存在外在磁场的干扰,只存在地磁的话,理论上罗盘旋转测得的磁场是一个圆球。

可是现实空间中,除了地磁场外,还存在其他的磁场干扰,这里我索性将它分为两大类。

第一类:地球空间中的磁场,这类磁场有个特点,就是随着罗盘坐标系的转动,磁场方向不变,类似地磁场。

第二类:罗盘坐标空间中的磁场,这类磁场源一般是固定在飞机上的,所以随着罗盘坐标系的转动,磁场方向也跟着转动。但是对于罗盘坐标系来说,却是一个恒定值。

对于第一类的磁场,目前我了解到的还没有什么好的方式可以进行校正(如果哪位大神知道,还请告知)。而我后面要介绍的校正方法,即是滤除第二类磁场的干扰,校正的思想即是基于最小二乘法的椭球拟合算法。

注:这个只能校正磁场强度固定不变的磁场,而对于电机这种变化的磁场,我没有测验过,不知道电机产生磁场的强度大小跟电机转速的关系怎样,如果谁有研究过的,还请告知,谢谢。

2.椭球拟合校正理论推导

网络上有许多关于椭球拟合校正的论文,我都没有细看,因为那些公式都写得晦涩难懂,没有那个耐心,我这里尽量用最简洁的语言介绍校正方法的理论基础。

首先建立数值模型,设测量值为:

,校正后的值为:,

平移参数为:

缩放参数为:

他们之间的关系如下所示:

我们校正后的目标就是使得校正值近似分布在一个圆球上,而圆球的公式大家都知道:x2+y2+z2=R2,故我们将校正后的值带入圆球公式,与理论的圆球半径平方做差,构建误差u:

将校正值用测量值替换,变为:

可以看到,这分明就是个椭圆公式嘛~

记:

则我们的误差u可以写为如下形式:

下面就是校正的核心思想了:假设我们有许多组数据,我们要求得一组参数,使得所有数据的误差和最小,即∑u最小,但是由于u有正有负,所以符号相反的误差有可能相互抵消。那么加绝对值呢?这个也不可取,因为对绝对值函数求极小值十分复杂。那么我们自然就想到对u求平方和,即:

U=∑u^2

我们把u看成一个未知数,这个函数是一个二次函数,其有极小值点。而为了求得这个极小值点,我们对其做偏导即可:

记:

则我们可以将偏导写成如下形式:

B是已知的,P是我们待求的参数矩阵,故可以通过求齐次线性方程组,来求得P的各个参数的解。

齐次线性方程组求解的过程我这里就不详细解释了,我算法中使用的方法是经典的高斯消元法,有兴趣的可以仔细看看。

当我们求得P的各个未知数a,b,c,d,e,f,g后,需要通过这几个参数反求出我们的偏移量(ox,oy,oz)和缩放量(gx,gy,gz)。

在反求解之前,我们先回到上一个式子,BxP=0。其实满足这个式子的解P有无数组,我们可以将式子改写成BxCP=0,C是一个任意常数,即

我们通过解线性方程组求得的只是这个解系中的一个基本解,所以我们首先要求出这个基本解的C。

其算式经推导如下,带入a,b,c,d,e,f,g即可求解:

C=(d2/a + e2/b + f2/c - 4g)/4R2  (R为理论圆球半径)

ox=d/2a

oy=e/2b

oz=f/2c

gx=sqrt(a/C)

gy=sqrt(b/C)

gz=sqrt(c/C)

最后,将这六个参数回调到之前的式子中去,即完成校正。

3.校正程序源码(C语言)

代码太长了 就不贴出来了,放在网盘种大家下载

罗盘与加计校准方法 C源代码

http://pan.baidu.com/s/1dFiB6z3

根据这个算法原理,针对一款高性能陀螺仪编写的校正程序:

陀螺仪:

ADIS陀螺仪

算法显示:

磁场校正显示

 


http://chatgpt.dhexx.cn/article/vKrCMwvv.shtml

相关文章

android 磁场传感器 罗盘,Android开发获取重力加速度和磁场强度的方法

本文实例讲述了Android开发获取重力加速度和磁场强度的方法。分享给大家供大家参考,具体如下: Android获取重力加速度和磁场强度主要依靠: Sensor.getRotationMatrix (float[] R, float[] I, float[] gravity, float[] geomagnetic) 输入数据: gravity为重力传感器测得的重…

一文读懂电子罗盘的原理、校准和应用

1 概述及应用 基本介绍 电子罗盘,也叫数字指南针,是利用地磁场来定北极的一种方法,作为导航仪器或姿态传感器已被广泛应用。古代称为罗经,现代利用先进加工工艺生产的磁阻传感器为罗盘的数字化提供了有力的帮助。现在一般由用磁阻…

C#Winform程序制作仿真地平仪,磁罗盘飞行仪表盘

因为项目需要做一个电子飞行仪表盘包括地平仪和磁罗盘,网上找了很久,没有找到一个合适的控件,就学习了一些图形处理的开源代码做一个简陋的仪表盘来使用,希望对其他人有帮助,如果有好的建议不妨留言 源程序代码https:…

不能解锁且地面站显示Preflight Fail:Compass Sensors inconsistent,就把传感器部分全部重新校准一遍就可以解锁了,单单只校准磁罗盘是不够的。

不能解锁且地面站显示Preflight Fail:Compass Sensors inconsistent,就把传感器部分全部重新校准一遍就可以解锁了(今天遇到两次都是这样解决的),单单只校准磁罗盘是不够的。今天在某院飞遇到的。 因为可能我不是第一次遇到这个报错&#xff…

基于RflySim平台的mahony(含磁罗盘)互补滤波在pixhawk仿真及实物实验(带实验数据)

写在前面 本案例实验采用RflySim平台,该平台可以高效快速编写代码,使用simulink模型搭建,可以见代码直接生成对应的C代码,并一键将代码烧录Pixhawk中,是一种快速开发平台,RflySim获取更多可以参考网站 开…

磁罗盘

地磁的北极在地理的南极的附近 地磁的南极在地理的北极的附近 磁体的同名磁极相斥,异名磁极相吸 所以指南针的北极总是指着地理的北极(地磁的南极) 1、红色指针指向北面,白色指针指向南面。在表盘上“北”用字母N表示,南用字母“S”表示。   2、指南针…

9轴电子罗盘工作原理,校准与应用

高精度9轴电子罗盘 目录1 概述及应用2 运用原理3 逻辑框架4 校准方法5 结语 目录 1 概述及应用 基本介绍 电子罗盘,也叫数字指南针,是利用地磁场来定北极的一种方法,作为导航仪器或姿态传感器已被广泛应用。古代称为罗经&#xff0c…

PX4 磁罗盘干扰分析

磁罗盘干扰分析 推力与磁场关系正常情况干扰情况与推力相关解决方法 与推力不相关 罗盘补偿操作流程获取用于分析的日志分析日志调整罗盘补偿参数 推力与磁场关系 无人机上的电机电流会干扰无人机上搭载的磁罗盘,PX4官方提供了一些方式,通过分析飞行日志…

陀螺仪加速度计磁罗盘的校准

一、校准加速度计 加速度计有零偏和尺度误差。还有其他误差,这里只讨论这两种误差。 六面校准法:目的是让输出的数据在9.8mss左右(可以将Xmax 9.44, Xmin -10.24代进去感受一下) 公式:以X轴为例 操作:六个面朝上的时候&…

四轴无人机那些事 番外篇 3 磁罗盘

地磁的北极在地理的南极的附近 地磁的南极在地理的北极的附近 磁体的同名磁极相斥,异名磁极相吸 所以指南针的北极总是指着地理的北极(地磁的南极) 1、红色指针指向北面,白色指针指向南面。在表盘上“北”用字母N表示,南用字母“S”表示。 2、指南针又称…

Datax-异构数据源离线同步

目录 一、介绍 1、Datax介绍 2、DataX 的设计 3、支持的数据源 4、框架设计 5、运行原理 六、优势 二、使用 1、从stream读取数据并打印到控制台 2、mysql同步到mysql 3、读取 DB2 的数据导入 MySQL 4、读取 SQLServer 的数据导入 MySQL 5、读取 MongoDB 的数据导入 …

数仓之异构数据源同步

本小结介绍下数仓数据同步常用的开源组件,具体组件如下 datax :离线数据同步工具,由阿里开源。github地址 kettle:离线ETL工具,由Pentaho公司开源。中文站点。下载地址 canal:实时binlog订阅工具&#x…

如何进行异构数据库同步

1、简介 最近一阵子笔者在进行完成同样功能的两套异构数据库系统的同步工作,有一些心得体会分享给大家,欢迎技术同仁拍砖。 该项目有一个运行若干年(5~10年)的旧系统,采用的是SQL Server数据库,…

什么是异构数据源和分布式数据库

2019独角兽企业重金招聘Python工程师标准>>> 异构数据源(disparate data source)广义上讲是指数据结构、存取方式、形式不一样的多个数据源。如,在一个系统中,同时包含由关系型数据库Oracle/SQL SERVER/MYSQL、EXCEL文…

异构数据库传输工具

异构数据库传输工具 一、国产1 QMatrix - 沃趣科技2 SuperSync - DSG3 DataX - 淘宝4 DMHS - 武汉达梦 二、国外1 OGG - Oracle2 DBSync 三、工具对比 一、国产 1 QMatrix - 沃趣科技 企业多云数据流计算平台。 相关资料链接 数随心动QMatrix产品QMatrix与传统的ETL&#xf…

异构数据比对

1 概述 BeeDI提供任意数据库间(Oracle、SQL Server、MySQL、PostgreSQL、DB2、Elasticsearch、Cassandra、MongoDB、Solr、HBase等)表的数据一致性比对校验功能,支持异构表(不同表名,目标表字段可多于源表&#xff09…

数据异构方案

1、定义 何谓数据异构,上周交易部门商品的同事过来做分享,又看到这个词,他的PPT里面是 数据库异构。其实我们以前做的事情,也是可以成为数据异构。比如我们将DB里面的数据持久化到REDIS里面去,就是一种数据异构的方式。…

数据异构的武器-BINLOG+MQ

2019独角兽企业重金招聘Python工程师标准>>> 1、定义 何谓数据异构,上周交易部门商品的同事过来做分享,又看到这个词,他的PPT里面是 数据库异构。其实我们以前做的事情,也是可以成为数据异构。比如我们将DB里面的数据持…

LVDS差分信号深度详解

博主福利:100G电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__bizMzU3OTczMzk5Mg&hid7&snad5d5d0f15df84f4a92ebf72f88d4ee8&scene18#wechat_redirect -------------------------------------------------------------------…

lvds接口_LVDS,接口,时序讲解,非常好的文章

欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群 1.1.1 LVDS接口分类 1.1.1.1 单路6bit LVDS 这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit…