浅谈陀螺仪和加速度计的原理和误差模型
姿态解算笔记1-浅谈陀螺仪和加速度计的原理和误差模型加速度计原理和误差模型MEMS加速度计可以测量到他自身受到的加速度,包括重力加速度和线性加速度.他是通过悬挂在内部的质量块,连着一个微弹簧,惯性力会改变电容值,从而测量出加速度他的输出是m/s^2比如ICM-45686包含一个三轴的加速度计,这是他的技术指标:可见,他的最大量程有32个G,也就是最大可以测量32*9.81314m/s^2的加速度,但是实际上我们用不到这么高的量程,如果你配置成这么大的量程,会导致一个LSB代表的加速度太大,分辨率会大大降低,根据我的经验,一般在平衡车和无人机的应用中,选择4G或者2G即可.误差模型对这个MEMS加速度计的误差来源进行归纳总结,可以得到误差模型:a O a − 1 ( S a a m b m ) N a a O_a^{-1} (S_a a_m b_m) N_aaOa−1​(Sa​am​bm​)Na​其中,a aa是真实的加速度,为三维列向量,O a O_aOa​为非正交误差,S a S_aSa​为尺度因子误差,b m b_mbm​为偏置,N a N_aNa​为噪声由于这个器件的非线性误差很小,才0.01%,可以认为是完全线性的,这里不做讨论.偏置偏置就是说,如果运载体实际没有运动,由于结构和工艺限制,加速度计也会敏感到一个测量值,这个器件大概为0.01*9.810.1m/s^2,其实这个值很大了,如果直接使用加速度计去做二重积分得到位移,那么在静止下,10s内位移就会漂移5m的距离,所以如果你想只用这个加速度计去做位置估计,基本是不可能的,性能很差.偏置是最重要的误差来源,他对整个系统的误差影响可以占80%以上,所以他必须补偿.尺度因子误差由于工艺限制,一个轴测到的加速度是10,实际可能是11,这就是尺度因子误差,就相当于给实际加速度乘以了一个缩放系数,这个器件的尺度因子误差是0.2%这在低成本MEMS中,已经很小了,可以忽略不计.非正交误差其中非正交误差表示三个加速度计在设计时,他们是不是完全的正交的,由于工艺限制,他们之间可能不是精确的90度,此时,一个加速度计的测量的值可能反应到另外一个加速度计上,比如平放在桌面上按道理来说,没有误差的情况下,xy应该测量到0,z轴测量到9.81.但是由于非正交误差的存在,可能z轴测量到是9.76,x是0.02,y是-0.05(这里不太准确,实际应该对重力加速度分解才知道每个轴是多少).此时就是有些加速度的值耦合到其他轴上去了,这就是非正交误差,他可以用一个矩阵给缩放拉伸回来,数学好的朋友可能发现了,所谓的非正交误差,其实就是一个坐标系变换到另一个坐标系去了,所以可以用他的逆矩阵补偿回来,如果没有非正交误差,O a O_aOa​应该是这样的:O a [ 1 0 0 0 1 0 0 0 1 ] O_a \begin{bmatrix} 1 0 0 \\ 0 1 0 \\ 0 0 1 \end{bmatrix}Oa​​100​010​001​​这说明,每一个轴的数据都完全出去了,另外的轴不会影响他的输出结果.如果有一些非正交误差,他就可能长这样:O a [ 0.98 0.03 − 0.01 0.04 1.02 − 0.02 − 0.02 0.03 1.01 ] O_a \begin{bmatrix} 0.98 0.03 -0.01 \\ 0.04 1.02 -0.02 \\ -0.02 0.03 1.01 \end{bmatrix}Oa​​0.980.04−0.02​0.031.020.03​−0.01−0.021.01​​这说明,有一些数据跑到其他的轴上去了,但是大部分还是在对角线位置的.这就会带来误差,但是我们的这个芯片,非正交误差仅有0.2%,已经非常小了,可以忽略不计.直观展示很直观的展现各个误差项的影响(由于非正交误差涉及三个轴,这里不好展示):可见,如果实际测量是10,有偏置的话测出来是11,有尺度因子误差,测出来是9,要命的是,如果有偏置影响,实际是0,测量不会为0,这个影响是很大的.陀螺仪原理和误差模型陀螺仪是通过内部悬浮有 Proof-Mass 的振荡梁,旋转时出现科里奥利力,然后把电容值做差分,就能知道转动的角速度,他输出是deg/s.陀螺仪作为惯导的核心器件,ICM-45686的陀螺仪的精度相比于MPU6050这十几年前的产品好太多了可见,陀螺仪的性能指标非常好.非线性度只有0.05%,非正交误差只有0.2%,尺度因子误差也只有0.2%,在我使用时,这些都忽略不计了,只补偿零偏.可见,他的零偏是0.3deg/s,这是一个很好的指标,噪声功率谱密度很低,在我实际使用时,只要减掉零偏,他的性能就很好了.误差模型同样的,对这个MEMS陀螺仪的误差来源进行归纳总结,可以得到误差模型:g O g − 1 ( S g g m b m ) N g g O_g^{-1} (S_g g_m b_m) N_ggOg−1​(Sg​gm​bm​)Ng​其中,g gg是真实的角速度,为三维列向量,O g O_gOg​为非正交误差,S g S_gSg​为尺度因子误差,b m b_mbm​为偏置,N g N_gNg​为噪声.基本和加速度计的一样的误差模型,这里不多赘述,因为在使用中,对于加速度计和陀螺仪,我们都只会补偿零偏误差这一项.需要指出的是,温度会对零偏产生较大的影响,实测温度差超过3摄氏度时,误差就会比较大,所以建议对IMU进行温度查表补偿,或者恒温控制,也可以用EKF来估计零偏.零偏校准C代码这是我写的AHRS的校准静态偏置的代码,具体完整可以参考我的github:JackTang543/sGCARCv5其实就是一个取平均值的过程,然后在后续读取时减掉int AHRS::calcBias(uint16_t points,IMU_StaticBias imu_sbias){ float acc_x_accu 0; float acc_y_accu 0; float acc_z_accu 0; float gyro_x_accu 0; float gyro_y_accu 0; float gyro_z_accu 0; for(uint16_t i 0; i points; i){ acc_x_accu raw_data.acc_x; acc_y_accu raw_data.acc_y; acc_z_accu raw_data.acc_z; gyro_x_accu raw_data.gyr_x; gyro_y_accu raw_data.gyr_y; gyro_z_accu raw_data.gyr_z; vTaskDelay(5); } imu_sbias.acc_x acc_x_accu / points; imu_sbias.acc_y acc_y_accu / points; imu_sbias.acc_z acc_z_accu / points - M_GRAVITY; //重力加速度 NED坐标系 imu_sbias.gyr_x gyro_x_accu / points; imu_sbias.gyr_y gyro_y_accu / points; imu_sbias.gyr_z gyro_z_accu / points; return 0; }我写了一个MATLAB脚本,STM32端读取60s的陀螺仪和加速度数据,然后做噪声功率谱分析的结果:Estimated Fs 198.60 Hz (std 0.000228 s) Gyro X-axis: PSD platform 1.599e-06 (deg/s)^2/Hz Noise density 1.2645 mdps/√Hz ARW 0.076 deg/√h Q_g (EKF) 3.175e-04 (deg/s)^2 Gyro Y-axis: PSD platform 1.657e-06 (deg/s)^2/Hz Noise density 1.2871 mdps/√Hz ARW 0.077 deg/√h Q_g (EKF) 3.290e-04 (deg/s)^2 Gyro Z-axis: PSD platform 1.718e-06 (deg/s)^2/Hz Noise density 1.3108 mdps/√Hz ARW 0.079 deg/√h Q_g (EKF) 3.412e-04 (deg/s)^2具体代码:%% gyro_noise_spectrum.m% 计算静止状态下陀螺仪三轴的功率谱密度(PSD)检查噪声是否接近白噪声% by SIGHTSEER 2025-05%% 0. 读取/预处理数据gyr_xdat.gyr_x(:);gyr_ydat.gyr_y(:);gyr_zdat.gyr_z(:);t_msdat.ts_ms(:);% 时间戳 [ms]% 采样频率 -------------------------------------------------------------dtdiff(t_ms)/1000;% Δt [s]Fs1/mean(dt);% 采样频率 [Hz]fprintf(Estimated Fs %.2f Hz (std %.3g s)\n,Fs,std(dt));% 去掉直流分量静止时平均值------------------------------------------gyr_xgyr_x-mean(gyr_x);gyr_ygyr_y-mean(gyr_y);gyr_zgyr_z-mean(gyr_z);%% 1. 计算 FFT 并转换成单边功率谱密度axesCell{gyr_x,X;gyr_y,Y;gyr_z,Z};Nlength(gyr_x);% 样本点数假设三轴长度一致fFs*(0:floor(N/2))/N;% 频率轴 (0 ~ Nyquist)figure(Name,Gyro noise PSD);fork1:3xaxesCell{k,1};% 加窗汉宁窗降低频谱泄漏whann(N);Xffft(x.*w);% 功率谱密度 (单位: (deg/s)^2 / Hz)Pxx(abs(Xf)/sum(w)).^2/Fs;% 双边Pxx2*Pxx(1:length(f));% 单边去掉负频率并能量翻倍subplot(3,1,k);loglog(f,Pxx);grid on;title([Gyro ,axesCell{k,2},-axis PSD]);xlabel(Frequency (Hz));ylabel(PSD ((deg/s)^2/Hz));end%% --- 3. 计算噪声密度 / ARW / Q_g ------------------------------------% 使用 Welch 平均更稳健nFFT4096;windowhann(2048);noverlap1024;axesCell{gyr_x,X;gyr_y,Y;gyr_z,Z};fork1:3xaxesCell{k,1};[pxx,fWel]pwelch(x,window,noverlap,nFFT,Fs,onesided,power);% 取 1 Hz – Fs/4 之间的平坦段平均作为 PSD 平台idxfWel1fWelFs/4;Pxx_flatmean(pxx(idx));% (deg/s)^2 / Hzsigma_wsqrt(Pxx_flat);% deg/s / sqrt(Hz)ARW_degsigma_w*sqrt(3600);% deg / sqrt(h)Qgsigma_w^2*Fs;% (deg/s)^2fprintf(\nGyro %s-axis:\n,axesCell{k,2});fprintf( PSD platform %.3e (deg/s)^2/Hz\n,Pxx_flat);fprintf( Noise density %.4f mdps/√Hz\n,sigma_w*1e3);fprintf( ARW %.3f deg/√h\n,ARW_deg);fprintf( Q_g (EKF) %.3e (deg/s)^2\n,Qg);end下一节,我们将尝试使用RK4实时迭代四元数微分方程,利用来自三轴陀螺仪的数据求解当前姿态信息.bySightseer. inHNIP9607.250510

相关新闻

SPI从设备数据流控:中断与DMA机制详解及TX_UNDERFLOW/RX_OVERFLOW处理

SPI从设备数据流控:中断与DMA机制详解及TX_UNDERFLOW/RX_OVERFLOW处理

1. SPI接口中断与DMA机制的核心价值与挑战搞嵌入式开发,尤其是涉及到传感器、存储芯片或者显示屏驱动,SPI接口绝对是绕不开的一道坎。它简单、高效,一个时钟线加两根数据线就能搞定全双工通信,看起来比I2C那种要等应答的协议爽快多…

2026/7/28 14:51:57 阅读更多 →
AI视频日夜转换效果卡在SSIM 0.78再也上不去?3个反直觉训练技巧(逆光照增强、时序对抗掩码、HDR元标签注入)让指标跃升至0.92+

AI视频日夜转换效果卡在SSIM 0.78再也上不去?3个反直觉训练技巧(逆光照增强、时序对抗掩码、HDR元标签注入)让指标跃升至0.92+

更多请点击: https://kaifayun.com 第一章:AI视频日夜转换效果的评估瓶颈与指标困局 当前主流AI视频日夜转换模型(如CycleGAN、StarGAN-v2、TimeCycle等)在视觉保真度上取得显著进展,但其效果评估仍深陷方法论困境。…

2026/7/31 20:34:40 阅读更多 →
嵌入式USB通信:中断与DMA寄存器配置及Driverlib应用详解

嵌入式USB通信:中断与DMA寄存器配置及Driverlib应用详解

1. 项目概述:嵌入式通信的“神经”与“高速公路”在嵌入式系统的世界里,让芯片与外部世界高效、实时地“对话”,是每个开发者绕不开的核心课题。这就像构建一个精密的城市交通系统,CPU是市长,负责决策和调度&#xff0…

2026/7/29 19:32:40 阅读更多 →

最新新闻

可灵动态构图失控?揭秘镜头抖动、焦点漂移与延迟卡顿的3大底层硬件协同漏洞(2024固件级修复手册)

可灵动态构图失控?揭秘镜头抖动、焦点漂移与延迟卡顿的3大底层硬件协同漏洞(2024固件级修复手册)

更多请点击: https://codechina.net 第一章:可灵动态构图失控现象的系统性归因 可灵(Kling)动态构图在高复杂度提示驱动下常出现主体偏移、比例失衡与运动轨迹断裂等失控现象,其根源并非单一模块缺陷,而是…

2026/8/1 4:29:29 阅读更多 →
Navicat试用期重置终极指南:3种简单方法让你无限使用数据库神器

Navicat试用期重置终极指南:3种简单方法让你无限使用数据库神器

Navicat试用期重置终极指南:3种简单方法让你无限使用数据库神器 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 还…

2026/8/1 4:29:29 阅读更多 →
Codex额度节省实战:从计费原理到API优化技巧

Codex额度节省实战:从计费原理到API优化技巧

这次我们来看一个关于 Codex 额度节省的实际技巧。很多人在使用 Codex 时,由于不了解其计费机制和优化方法,导致额度消耗过快,实际使用成本远高于预期。本文将深入分析 Codex 的计费逻辑,并提供一套经过验证的额度节省方案。Codex…

2026/8/1 4:29:29 阅读更多 →
既然说 AI 像人,为什么不用人类几万年的组织智慧管它?

既然说 AI 像人,为什么不用人类几万年的组织智慧管它?

〇、一个行业级的矛盾 业界很乐意把 AI agent 说成"数字同事"“虚拟团队”“AI 员工”。多智能体系统几乎都被包装成一个组织:有角色、有分工、有协作。我们一直在把 AI 拟人化——这一点没人反对。 可一旦这些"团队"真的跑起来出事了——上下…

2026/8/1 4:29:29 阅读更多 →
硬盘SMART参数全解析:从HD Tune警告到数据抢救实战指南

硬盘SMART参数全解析:从HD Tune警告到数据抢救实战指南

1. 从一次硬盘“变红”的惊魂说起那天下午,我正在处理一个视频剪辑项目,渲染进度条卡在99%纹丝不动。电脑风扇狂转,硬盘灯却像死了一样,偶尔才闪烁一下。我预感不妙,随手打开了HD Tune,想看看硬盘的实时温度…

2026/8/1 4:29:29 阅读更多 →
新发传染病分子开关研究:从比较基因组学到宿主互作网络的全流程解析

新发传染病分子开关研究:从比较基因组学到宿主互作网络的全流程解析

1. 项目概述:解码新发传染病的分子“开关” 在传染病研究领域,每一次新发或突发疫情的到来,都像是一场没有预告的“闪电战”。从SARS、MERS到近年来的COVID-19,再到不断出现的禽流感变异株、未知病原体,我们总是在追赶…

2026/8/1 4:28:29 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →