首页 > 其他分享 >实际工程项目中是怎么用卡尔曼滤波的

实际工程项目中是怎么用卡尔曼滤波的

时间:2024-09-03 15:50:20浏览次数:12  
标签:预测 模型 卡尔曼滤波 信息 工程项目 卡尔曼 中是 就是

实际工程项目中是怎么用卡尔曼滤波的

两大难题,一是运动学模型的建立,也就是预测方程。这个一方面可以通过比较细的系统辨识来做,这方面要结合具体的应用背景,不一而足,也是普遍做的比较差的地方。

另一方面可用某个传感器的输出来做预测,比较典型的就是用加速度计做预测,再用陀螺做更新。

另一大问题就是噪声的统计特性咯。因为建模误差不知道。观测方程到还可以测一下ZRO算一下均值和方差。然后下一步就是大家喜闻乐见的调参的阶段咯,据说是群魔乱舞花样百出。

我现实中只用过mems加速度计和陀螺的融合,还有就是无模型的跟踪咯。也就是预测方程是0,纯靠建模误差的那个方差来做预测,效果咋说呢,稳态下看噪声统计特性是好了些,但是动态特性明显滞后和变形了。应该是我经验不足吧。

附赠自动驾驶最全的学习资料和量产经验:链接

先啰嗦一下在工程中卡尔曼滤波要解决的问题是什么。

我们得到了2(或多个)个反馈同一件事的信息A和B,但不知道该相信哪个结果,所以简单的,将两个信息相加除以2(加权平均),得到一个结果0.5A+0.5B。但这个方法过于粗暴,不能反映出水平。现在知道了其中一个信息可靠度更好,而另一个可靠度不好,就要更相信好的信息,如,现在给可信度好的B更大的权重,得到0.2A+0.8B,这个结果会好于第一个。但仍然觉得low,因为A与B的参数是根据经验设置的,并不知道是否是最合理的,是否是最优化的。所以高级的,用优化的方法,根据A与B的高斯分布特征,去融合A和B信息,这个就是卡尔曼。

所以,我们看到,要利用卡尔曼,需要不同的信息源(大于等于2个)。最常见的信息源是什么?就是我们根据系统模型或动力学模型计算出来的结果,可以通过仿真的形式得到。第二个或第三个信息是什么?在飞行器姿态估计,导航定位,目标跟踪(几个问题的本质一样,都是状态估计)的问题中,这个信息一般来自惯导或GPS或雷达等。有了2个信息数据,就可以根据Kalman的公式进行融合。下面举一个机器人运动估计的例子,来自《Probabilistic Robotics》。

首先假设你的机器人长这样(一个圆,比较简单),在二维笛卡尔坐标系中运动。

image

根据这个图,可以得到它的运动学模型

image

经典的速度、角速度、角度模型,飞行器、轮式机器人、AUV都可以这样简单描述。

得到以上模型还不能直接用,这个模型有变量的乘积和三角函数,是个非线性模型,但要利用卡尔曼公式,需要满足EKF(实际工程应用中,我还没见过直接用KF的)的线性化条件。所以要将非线性的模型线性化。

image

标签:预测,模型,卡尔曼滤波,信息,工程项目,卡尔曼,中是,就是
From: https://blog.csdn.net/NEON7788/article/details/141864098

相关文章

  • MATLAB代码|中心差分卡尔曼滤波(CDKF)的滤波例程,无需下载,直接复制到MATLAB上面就能运行
    文章目录CDKF介绍代码运行结果各模块解析初始化系统模型设置CDKF循环绘图另有关于EKF和CDKF的对比程序:EKF+CDKF两个滤波的MATLAB程序,估计三轴位置,带中文注释——https://blog.csdn.net/callmeup/article/details/136610153。CDKF介绍中心差分卡尔......
  • 卡尔曼滤波算法的学习总结
    本文为作者学习卡尔曼滤波算法后的学习总结,如有错误请指正,万分感谢!前言本文学自B站up主华南小虎队,原视频讲得很好,推荐去观看。原视频卡尔曼滤波讲解一、简介(1)作用在学习卡尔曼滤波之前,我们首先要明白在使用该滤波器后,可以给我们带来什么好处?在此给读者举出一个例子,方......
  • 卡尔曼滤波算法(c语言代码)
    卡尔曼滤波器是一种用于估计动态系统状态的算法,常用于信号处理、控制系统、机器人和导航等领域。以下是一个简单的卡尔曼滤波器的C语言实现示例。这个示例展示了如何使用卡尔曼滤波器来估计一维系统的状态。1.卡尔曼滤波器算法概述卡尔曼滤波器由两部分组成:预测和更新。基......
  • 基于SpringBoot+Vue的建筑工程项目管理系统设计与实现(2024年最新,原创项目)
    文章目录1.前言2.系统演示录像3.论文参考4.代码运行展示图5.技术框架5.1SpringBoot技术介绍5.2Vue技术介绍6.可行性分析7.系统测试7.1系统测试的目的7.2系统功能测试8.数据库表设计9.代码参考10.数据库脚本11.找我做程序,有什么保障?12.联系我们1.前......
  • Android开发 - “效验和”效验数据在传输或存储过程中是否出错解析
    校验和的基本原理校验和的基本原理非常简单,就是把一组数据中的所有字节(或者其他单位)的数值相加,然后得到一个总和,这个总和就是所谓的“校验和”。在传输数据时,发送方会把数据和校验和一起发送出去;接收方收到数据后,也会计算一次校验和,然后与发送方提供的校验和进行比较。如果两个......
  • 通过 MATLAB 的 cylinder 函数生成圆柱体的表面坐标,生成表示一个具有非标准形状的圆柱
    MATLAB的机器人系统工具箱(RST)的官方例程PlanaReachingTrajectorywithMultipleKinematicConstraints规划具有多个运动学约束的到达轨迹%创建用于视觉化杯子的点[X,Y,Z]=cylinder(cupRadius*linspace(0,1,50).^0.125);%调整Z坐标的比例,使其符合杯子的高度Z......
  • java如何判断一个列表中是否存在大于1000的数字
    个人名片......
  • 平安城市/雪亮工程建设现状及需求分析:EasyCVR视频汇聚平台助力雪亮工程项目建设
    一、背景现状经过近几年的努力,平安城市雪亮工程建设取得了显著的成绩,完成了前端高清视频点位和高清卡口系统建设,建成了(视频监控类)、(卡口类)和(应用类)的平台。这些系统的建设在提高城市公共事业和社会治安动态管理方面发挥了积极作用,但在前期的建设中还存在着一些不足,制约了“平安城......
  • 卡尔曼滤波算法
    目录卡尔曼滤波基本原理卡尔曼滤波的数学模型卡尔曼滤波算法步骤1.初始化2.预测步骤3.更新步骤完整的卡尔曼滤波实现总结卡尔曼滤波是一种递归滤波器,广泛应用于信号处理和控制系统中,用于估计动态系统的状态。它通过结合预测和测量数据,在存在噪声的情况下对系统状......
  • “八股文”在实际工作中是助力、阻力还是空谈?
    “八股文”在实际工作中是助力、阻力还是空谈?作为现在各类大中小企业面试程序员时的必问内容,“八股文”似乎是很重要的存在。但“八股文”是否能在实际工作中发挥它“敲门砖”应有的作用呢?有IT人士不禁发出疑问:程序员面试考什么?是工作能力、工作经验还是背题能力?还有程序员吐......