jjzjj

基于Matlab构建适用于无人机或四轴飞行器的IMU+GPS融合算法(附源码)

珞瑜· 2023-12-22 原文

此示例演示如何构建适用于无人机 (UAV) 或四轴飞行器的 IMU + GPS 融合算法。此示例使用加速度计、陀螺仪、磁力计和 GPS 来确定无人机的方向和位置。

一、模拟设置

设置采样率。在典型系统中,加速度计和陀螺仪以相对较高的采样率运行。在融合算法中处理来自这些传感器的数据的复杂性相对较低。相反,GPS以及在某些情况下的磁力计以相对较低的采样率运行,并且与处理它们相关的复杂性很高。在该融合算法中,磁力计和GPS样本以相同的低速率一起处理,加速度计和陀螺仪样本以相同的高速率一起处理。

为了模拟此配置,IMU(加速度计、陀螺仪和磁力计)以 160 Hz 采样,GPS 以 1 Hz 采样。磁力计的每 160 个样本中只有一个被提供给融合算法,因此在实际系统中,磁力计的采样率要低得多。

二、融合过滤器

创建过滤器以融合 IMU + GPS 测量值。融合滤波器使用扩展的卡尔曼滤波器来跟踪方向(作为四元数)、速度、位置、传感器偏差和地磁矢量。

这有几种处理传感器数据的方法,包括,和。该方法将来自IMU的加速度计和陀螺仪样本作为输入。每次对加速度计和陀螺仪进行采样时调用该方法。此方法根据加速度计和陀螺仪提前一个时间步预测状态。扩展卡尔曼滤波器的误差协方差在此处更新。

该方法以GPS样本作为输入。该方法通过计算卡尔曼增益来更新基于 GPS 样本的滤波器状态,该增益根据各种传感器输入的不确定性对其进行加权。此处还更新了误差协方差,这次也使用卡尔曼增益。该方法类似,但根据磁力计样本更新状态、卡尔曼增益和误差协方差。虽然将加速度计和陀螺仪样本作为输入,但它们被集成以分别计算增量速度和三角角。滤波器跟踪磁力计和这些积分信号的偏置。

三、无人机轨迹

此示例使用从无人机记录的保存轨迹作为地面实况。该轨迹被馈送到多个传感器模拟器,以计算模拟加速度计、陀螺仪、磁力计和 GPS 数据流。

四、全球定位系统传感器

以指定的采样率和参考位置设置 GPS。其他参数控制输出信号中噪声的性质。

五、IMU 传感器

通常,无人机使用集成的MARG传感器(磁性,角速率,重力)进行姿态估计。要对 MARG 传感器进行建模,请定义包含加速度计、陀螺仪和磁力计的 IMU 传感器模型。在实际应用中,三个传感器可能来自单个集成电路或单独的集成电路。此处设置的属性值是低成本MEMS传感器的典型值。

六、初始化

6.1 初始化的状态向量insfilterMARG

跟踪 22 元素向量中的姿势状态。

 6.2 初始化insfilterMARG

测量噪声描述了有多少噪声破坏了传感器读数。这些值基于与参数。过程噪声描述了滤波器方程对状态演变的描述程度。过程噪声是使用参数扫描根据经验确定的,以共同优化滤波器的位置和方向估计值。

6.3 初始化作用域

示波器可以绘制变量随时间的变化。它在这里用于跟踪姿势错误。示波器允许滤波器估计和地面实况姿势的 3D 可视化。示波器可能会减慢模拟速度。

七、模拟循环

主模拟循环是一个带有嵌套 for 循环的 while 循环。while 循环以 GPS 采样率执行。嵌套的 for 循环以 IMU 采样率执行。示波器以 IMU 采样率更新。

 

 八、程序

使用Matlab R2022b版本,点击打开。

 打开下面的“IMUandGPSFusionExample.mlx”文件,点击运行,就可以看到上述效果。

程序源码链接:https://download.csdn.net/download/weixin_45770896/87429193

有关基于Matlab构建适用于无人机或四轴飞行器的IMU+GPS融合算法(附源码)的更多相关文章

  1. ruby - 在 Ruby 中构建长字符串的简洁方法 - 2

    在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo

  2. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  3. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  4. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  5. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  6. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  7. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  8. ruby - 使用 rbenv 和 ruby​​-build 构建 ruby​​ 失败,出现 undefined symbol : SSLv2_method - 2

    我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby​​2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby​​-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm

  9. ruby-on-rails - (Ruby,Rails) 基于角色的身份验证和用户管理...? - 2

    我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源

  10. ruby-on-rails - 如何构建复杂的 Rails 系统 - 2

    关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion我们有以下(以及更多)系统,我们将数据从一个应用推送/拉取到另一个:托管CRM(InsideSales.com)Asterisk电话系统(内部)横幅广告系统(openx,我们托管)潜在客户生成系统(自行开发)电子商务商店(spree,我们托管)工作板(本土)一些工作网站抓取+入站工作提要电子邮件传送系统(如Mailchimp,自主开发)事件管理系统(如eventbrite,自主开发)仪表板系统(大量图表和

随机推荐