调试 Mahony 滤波算法的思考 10

news2024/11/25 12:40:17

调试 Mahony 滤波算法的思考

    • 1. 说在前面的
    • 2.Mahony滤波算法的核心思想
    • 3. 易懂的理解 Mahony 滤波算法的过程
    • 4. 其他的一些思考
    • 5. 民间 9轴评估板

1. 说在前面的

之前调试基于QMI8658 6轴姿态解算的时候,我对Mahony滤波的认识还比较浅薄。初次的学习和代码的移植让我对四元数、欧拉角、旋转余弦矩阵有了一定的接触。然而,直到我将地磁传感器加入到我的硬件,进行9轴姿态解算时,我深深地感受到对四元数与姿态阵之间关系的理解是非常重要的。在此之前,我检索了网络文章,并记录了《MEMS_惯性传感器09 - Mahony姿态解算算法详解》、《MEMS_惯性传感器14 - Mahony滤波算法的代码分析》两篇文章。可能对于大佬、资深工程师来说,这些文章的严谨性不够,可能会误导别人。但我必须承认,我仍然没有扎实的数学计算研究背后更深层次的理论。即使如此,我依然希望通过自己的努力在惯性导航算法上学习得更深入一些。同时,我也想多记录一些学到的知识,多记录一些自己的理解和思考。希望这些记录能帮助到一些初学者。如果我的文章有错误的引导,我非常希望大佬们能够指正,因为这对我来说是最大的收获,我非常乐意倾听和学习。

我愿意自我突围,向着理想前进!

这次学习检索时发现了一个博文内容硬核、有理有据的博主1路痴导航员。 她的博文 《AHRS互补滤波(Mahony)算法及开源代码》对我帮助很大。

2.Mahony滤波算法的核心思想

Mahony滤波算法的核心思想是通过将角速度角度的测量值与历史估计值进行加权平均,从而得到更加准确的姿态估计结果。同时,滤波算法还利用加速度计的测量值来纠正姿态角度的漂移。
该算法也存在一些缺点,例如对于快速旋转和加速度变化较大的情况,其姿态估计结果可能会出现较大的误差。

3. 易懂的理解 Mahony 滤波算法的过程

为了更好的理解,表达是先不用矩阵的思想,在算法的实现的过程中,需要将表达是转换成矩阵形式。

① 根据陀螺仪的测量数据计算出角速度的增量,即:
         Δθ = 0.5 * (gyro + bias) * Δt

其中,gyro表示陀螺仪的测量值,bias表示陀螺仪的零偏误差,Δt表示时间间隔。

② 根据加速度计的测量数据计算出重力方向的估计值,即:
         g_est = q * (0, 0, -1) * q^-1

其中,q表示四元数的姿态估计值。

③ 根据加速度计的测量数据和重力方向的估计值,计算出加速度计的误差,即:
         acc_err = acc_meas - g_est

其中,acc_meas表示加速度计的测量值。

④ 根据角速度的增量和加速度计的误差,更新四元数的姿态估计值,即:
         q = q * exp(Δθ - K * acc_err)

其中,K为控制增益。

4. 其他的一些思考

  • 传感器EVB板的测量数据以载体坐标系(b-框架)表示。 欧拉角的直观表示描述了地理坐标系中的角度,其中包括重力的影响。 地理坐标系中的重力矢量为[0,0,1]g,磁传感器将地球磁场中的强度表示为[cos(θ),0,sin(θ)]guess。因此,在算法中,加速度和磁数据被归一化,确保它们的模是一定大小的。

  • 四元数从地理坐标系(东北天)转换到载体坐标系,就得到了旋转矩阵Cnb。
    在这里插入图片描述
    Cnb的最后一列取负,即将其转换为载体坐标系中的值。在理想情况下,如果没有误差,这个矢量应该与测量值相等。然而,由于这两者总会存在差异,因此我们需要利用它们之间的差值来修正陀螺仪更新的不准确性。

  • 在修正的过程中,我们认为加速度计测量的可信度较高,还需要使用地磁传感来修正加速度传感的Z轴。磁力计的模的长度是确定的,但是两个分量的具体大小无法像重力加速度一样确定。因此,我们使用上一次的四元数得到的Cbn(从载体到地理坐标系的旋转矩阵)来计算测量的磁场强度。理论上,此刻的Cbn应该在东向上的分量是零[cos(θ),0,sin(θ)],而北向和地向会有分量。然而,由于此刻的Cbn尚未得到,我们使用的是上一次的Cbn,并加上一些测量误差,导致东向上仍会有分量存在。为了处理这种情况,我们将xy平面的分量合成到一个方向上,使得y轴上的分量为0。这样,处理后的地磁信息的地位就与重力加速度(0,0,-1)相似了。

  • 根据余弦矩阵和欧拉角的定义,我们可以将地理坐标系的重力向量转换到载体坐标系中。具体而言,将四元数转换成方向余弦矩阵后,我们可以得到方向余弦矩阵的第三列的三个元素,即vx、vy和vz。这三个元素实际上表示了当前欧拉角(即四元数)在载体坐标系上换算得到的重力单位向量。

vx = 2*(q1q3 - q0q2);
vy = 2*(q0q1 + q2q3);
vz = q0q0 - q1q1 - q2q2 + q3q3;
  • ax\ay\az是载体坐标参照系上,加速度计测出来的重力向量。vx\vy\vz是陀螺积分后的姿态推算出的重力向量。它们之间的误差向量ex\ey\ez是陀螺积分后的姿态和加计测出来的姿态之间的误差。误差向量可以用向量叉积来表示。叉积向量ex\ey\ez位于载体坐标系上,且其大小与陀螺积分误差成正比,可用于纠正陀螺。由于陀螺是对机体直接积分,所以对陀螺的纠正量会直接体现在对载体坐标系的纠正。
exInt = exInt + ex * Ki * halfT;
eyInt = eyInt + ey * Ki * halfT;    
ezInt = ezInt + ez * Ki * halfT;
// 用叉积误差来做PI修正陀螺零偏
gx = gx + Kpex + exInt;gy = gy + Kpey + eyInt;
gz = gz + Kp*ez + ezInt;

矢量之间的叉乘公式为err = A × B = |A| × |B| × sin(β)。当两个矢量重合时,误差为零,表示没有差异。当两个矢量之间夹角为90°时,误差达到最大值,表示差异最大。然而,在夹角为90°附近的区间内,误差的变化是非线性的,这可能导致一些准确性问题。

5. 民间 9轴评估板

QMI8658+QMC5883L 链接

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


  1. 路痴导航员: ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1189069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EMNLP2023 | 让模型学会将提示插入到合适的中间层

深度学习自然语言处理 原创作者:cola 现有的提示微调方法基本是人工选择提示层,而人工选择将提示插入到哪些层次并非一定合理,这导致了很大程度上限制提示微调发挥潜能。我们的模型(SPT)可以让模型自己学习应该在哪些中间层插入提示&#xff…

强化您的应用安全,从app加固开始

强化您的应用安全,从app加固开始 目录 强化您的应用安全,从app加固开始 摘要 引言 1. 加密和数据保护 2. 代码混淆 3. 防止反编译 4. 安全测试 5. 更新和补丁 6. 权限控制 7. 输入验证和输出过滤 8. 日志记录和监控 9. 安全设计和架构 10.…

【Python】AppUI自动化—appium自动化开发环境部署、APP测试案例(17)上

文章目录 一.appium简介1.什么是appium2.appium 的工作原理3.APP类型4.APP页面布局 二,appium开发环境部署(python环境)1.下载安装环境1.1.下载安装所需环境1.2.Appium-desktop( Appium-Server-GUI )配置1.3.Appium-Inspector 配置…

【Delphi】Android 开发HTTP请求出错解决方案

目录 一、故障现象 二、原因及解决方案 一、故障现象 在android内建的WebBrowser浏览器中通过http访问一个网站(注意不是https),出现如下错误提示: 在使用ntfy的时候,访问http定义的服务器地址(注意不是…

通过postgis空间库导入sql格式的矢量数据到arcgis中

1、在postgis中创建数据库 命名为test3 2、创建空间扩展 3、导入sql矢量文件 进入psql.exe目录中 进入dos命令框中 输入命令,其中host输入自己的主机ip,database为自己的数据库名称,数据路径修改为自己电脑上的路径,注意反斜杠 psql

github官网打不开或访问慢的解决办法

对国内程序员而言,github官网经常面临打不开或访问慢的问题,今天教你一招非常简单且好用的小技巧,轻松访问github官网。 1、github官网打不开的原因 首选我们说下github官网打不开的原因到底是什么。细心的同学会发现,github偶尔…

SDL2 简单介绍以及Windows开发环境搭建

1.简介 SDL(Simple DirectMedia Layer)是一个跨平台的多媒体开发库,使用C语言写成,用于实现音频、图形、输入以及窗口功能的处理。它提供了一个简单、易用的API,可以帮助开发者快速构建跨平台的多媒体应用程序。 SDL…

国外访问学者/博士后留学人员反诈骗指南

访问学者/博士后/联合培养博士人员出国后,对当地环境及政策不熟悉,需要提高防范意识,为此,知识人网小编特整理这篇反诈骗指南,提醒留学人员防微杜渐、未雨绸缪。 近日,多国使馆发布相关提醒:不法…

kali linux系统选用gnome桌面安装完成后无法调节屏幕亮度踩坑过程( 2301_77564090)

方法一: 在终端通过xrandr命令查看当前显示屏名字 然后输入命令调节屏幕亮度,我调节的是原先的70%, xrandr --output eDP --brightness 0.7 方法一能成功调节,但每次开机屏幕亮度都自动回调到100%,每次都要手动打开终…

5G毫米波通信中的关键技术

随着5G技术的快速发展,毫米波通信作为其中的一项重要技术,在高速数据传输、低延迟通信和大规模连接等方面具有显著的优势。本文将探讨5G毫米波通信中的关键技术,包括毫米波频段的选择、信号处理技术和MIMO技术等。 一、毫米波频段的选择 毫米…

Node版本管理工具——Nvm

文章目录 前言基础常识彼此之间的关系 一、安装 nvm?查看是否安装成功 二、配置下载源三、nvm常用命令 前言 nvm 全名 node.js version management,顾名思义是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs。 基础常识 node&#x…

掌握互联网的未来:5G时代的新机遇

随着5G技术的快速发展,我们正步入一个全新的互联网时代。5G不仅仅是速度的飞跃,它还代表着无限的可能性和前所未有的创新机遇。本文将探讨5G如何重新定义互联网,并为您提供洞察如何抓住这波科技浪潮。 5G技术的核心优势 超高速度&#xff1a…

Git的安装和常用命令Git与SVN的区别Gitee远程仓库团队开发代码共享演示

目录 一、Git入门 1.1 Git简介 1.2 Git与SVN的区别 1.2.1 详解 1.2.2 图解 1.3 Git相较于SVN的优势与劣势 1.3.1 Git的优势与劣势 1.3.2 SVN的优势与劣势 1.4 Git的工作流程 1.4.1 图解 1.4.2 详解 二、Git的安装以及常用命令 2.1 Git官网链接 2.2 安装步骤 2.…

国产小体积超低成本电动车仪表智能刷卡解锁13.56M非接触式读写芯片CI522兼容替代RC522

Ci522电动车仪表一键启动芯片 Ci522是一个高度集成的,工作在13.56MHz的非接触式读写器芯片,阅读器支持ISO/IEC 14443 A/MIFARE。 无需外围其他电路,Ci522的内部发送器可驱动读写器天线与ISO/IEC 14443 A/MIFARE卡和应答机通信。接收器模块提…

基于【宝塔+NPS】内网穿透搭建教程

下载服务端 https://github.com/ehang-io/nps/releases 我这里选择linux_amd64_server.tar.gz 执行安装命令 sudo ./nps install安装后修改/etc/nps/conf下的文件不是解压里的 然后修改里面的4处内容 宝塔docker 安装 nps 运行 nps 容器,并设置开机自启动 docke…

基于springboot实现高校党务平台管理系统【项目源码】计算机毕业设计

基于springboot实现高校党务平台管理系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点,而且Java是开源的,拥有全世界最大的开发者专业社群&#x…

解决Jenkins执行git脚本时报错:No such device or address问题

问题现象: Jenkins执行BeanShell脚本时,报错:jenkins fatal: could not read Username for http://112.11.120.1: No such device or address 解决方案: 解决服务器拉取git仓库的代码权限,使用高级子模块克隆功能。…

TexGen简单模型对应inp文件简单梳理-1

模型 默认最简单的编织复材,编辑材料属性时发现基体属性设置正常,各向同性材料,但是纱线的材料属性却没有弹性性能的设置。 导出inp文件后,导入ABAQUS中其实可以看到有两种材料,纱线也是有属性的。 ABAQUS中修改属性的…

Git-Lab私域共享代码

1.导读 本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作。 - GitLab简介 - GitLab环境搭建 - GitLab基本使用(组、权限、用户、项目) 2.GitLab简介 Gi…

DTC商业模式研报 | 创新DTC策略利于提升业务灵活性和数字化体验

报告摘要 本报告由ADYEN制作。ADYEN是一家直营业务为支付的荷兰公司,通过整合包括银行卡、支付宝、Paypal在内的多种流行支付方式,它允许企业接受电子商务,移动和销售点付款,极大地简化了消费者支付的流程,目前该机构…