无迹卡尔曼滤波原理能不能输出标定的参数

原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。350被浏览<strong class="NumberBoard-itemValue" title="2分享邀请回答10添加评论分享收藏感谢收起卡尔曼滤波中的真实值,测量值,预测值,估计值怎么区分?
卡尔曼滤波中的真实值,测量值,预测值,估计值怎么区分?卡尔曼滤波中经常要求均方误差,就是真实值与估计值坐标的差的平方根,那么这个真实值一般是怎么得到的?如果是测量来的,不就是测量值了么?那么真实值和测量值又有什么区别?
真实值是不可接近的,只能依据最小均方误差使估计值尽可能的靠近真实值.下面这段文字对卡尔曼的解释很形象,看看吧. 为了可以更加容易的理解卡尔曼滤波器,这里应用形象的描述方法讲解,不像参考书那样罗列一大堆的数学公式和数学符号.但是,他的5条公式是其核心内容.结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式.假设我们要研究的对象是一个房间的温度.根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度.假设你对你的经验不是100%的相信,可能会有上下偏差几度.我们把这些偏差看成是高斯白噪声,也就是这些偏差跟前后时间是没有关系的而且符合高斯分配.另外,我们在房间里放一个温度计,但是这个温度计也是不准确的,测量值会比实际值有偏差.我们也把这些偏差看成是高斯白噪声.好了,现在对于某一分钟我们有两个有关该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值).下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值.假如我们要估算k时刻的实际温度值.首先你要根据k-1时刻的温度值,来预测k时刻的温度.因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假定是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5).然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度.度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的协方差(covariance)来判断.因为Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:23+0.78*(25-23)=24.56度.可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值.现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算.到现在为止,好像还没看到什么自回归的东西出现.对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.56度)的偏差.算法如下:((1-Kg)*5^2)^0.5=2.35.这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3).就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值.他运行的很快,而且它只保留了上一时刻的covariance.上面的Kg,就是卡尔曼增益(Kalman Gain).他可以随不同的时刻而改变他自己的值.Dr Kalman的卡尔曼滤波器.涉及一些基本的概念知识,包括概率(Probability),随机变量(Random Variable),高斯或正态分配(Gaussian Distribution)等.首先,要引入一个离散控制过程的系统.该系统可用一个线性随机微分方程来描述:X(k)=A X(k-1)+B U(k)+W(k)再加上系统的测量值:Z(k)=H X(k)+V(k)上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量.A和B是系统参数,对于多模型系统,他们为矩阵.Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵.W(k)和V(k)分别表示过程和测量的噪声.他们被假设成高斯白噪声,他们的协方差(covariance)分别是Q,R(这里我们假设他们不随系统状态变化而变化).对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器.下面我们来用他们结合他们的covariances来估算系统的最优化输出(类似上一节那个温度的例子).首先我们要利用系统的过程模型,来预测下一状态的系统.假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1)式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0.到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新.我们用P表示covariance:P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2)式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’表示A的转置矩阵,Q是系统过程的covariance.式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测.现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值.结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (3)其中Kg为卡尔曼增益(Kalman Gain):Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (4)到现在为止,我们已经得到了k状态下最优的估算值X(k|k).但是为了要另卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance:P(k|k)=(I-Kg(k) H)P(k|k-1)………(5)其中I为1的矩阵,对于单模型单测量,I=1.当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1).这样,算法就可以自回归的运算下去.卡尔曼滤波器的原理基本描述了,式子1,2,3,4和5就是他的5个基本公式.根据这5个公式,可以很容易的实现计算机的程序.这里举一个简单的例子来说明卡尔曼滤波器的工作过程.把房间看成一个系统,然后对这个系统建模.房间的温度是跟前一时刻的温度相同的,所以A=1.没有控制量,所以U(k)=0.因此得出:X(k|k-1)=X(k-1|k-1) ……….. (6)式子(2)可以改成:P(k|k-1)=P(k-1|k-1) +Q ……… (7)因为测量的值是温度计的,跟温度直接对应,所以H=1.式子3,4,5可以改成以下:X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1)) ……… (8)Kg(k)= P(k|k-1) / (P(k|k-1) + R) ……… (9)P(k|k)=(1-Kg(k))P(k|k-1)………(10)现在模拟一组测量值作为输入.假设房间的真实温度为25度,模拟200个测量值,这些测量值的平均值为25度,但是加入了标准偏差为几度的高斯白噪声.为了令卡尔曼滤波器开始工作,需要告诉卡尔曼两个零时刻的初始值,是X(0|0)和P(0|0).他们的值不用太在意,随便给一个就可以了,因为随着卡尔曼的工作,X会逐渐的收敛.但是对于P,一般不要取0,因为这样可能会令卡尔曼完全相信你给定的X(0|0)是系统最优的,从而使算法不能收敛.选取X(0|0)=1度,P(0|0)=10. 再问: 问一下,你的这段文字里面P是不是你说的均方误差?它不是协方差矩阵么~~~ 再答: P是误差协方差矩阵。我也是最近看的卡尔曼的,可能有些理解还是不太到位的。你拿kalman做什么?我通过kalman滤波对语音信号进行降噪的。有MATLAB的代码,需要的话可以发给你。再问: 我用它做目标跟踪,你上边的这个图是从哪里截的呀,可以给我发原文么,我的邮箱的,如果还有其他的kalman理论的资料也好,会追加金币的,谢谢啦~~ 再答: 那是篇硕士论文,《基于卡尔曼滤波的语音增强算法研究》。我没有pdf格式的,只有.kdh格式的,得去中国知网下个CAJViewer。先发给你吧。
我有更好的回答:
剩余:2000字
与《卡尔曼滤波中的真实值,测量值,预测值,估计值怎么区分?》相关的作业问题
不知道你要怎样比较预测值和真实值,比如计算一下残差值,或者计算一下均方误差之类?在Linear Regression对话框,点Save按钮,会出现Linear Regression:Save对话框,在Predicted Values(预测值)和Residuals(残差)栏都选Unstandardized,会在数据表中输
E=Ir+IRr=(E-IR)/I=E/I-R电流表常外接,I偏小,所以r的真实值〈 测量值
由于测量仪器、观测者和外部环境的影响,任何测量数据中不可避免都会含有误差.含有误差的观测数据就称为测量值或观测值.任何一个观测量,客观上总存在一个能代表其真正大小的数值,这个数值就是真值.
先测体积,体积是准确的,再测质量时候,因为石头中残留部分水分,所以石头测得的质量偏大,综上,密度=M/V,故而密度值偏大 再问: 也就是说选A、C? 再答: 对,是的,选AC
F1×L1=F2×L2m1g×L1=m2g×L2m2=m1×L1/L2=0.1kg×0.2m/0.05m=0.4kg由m1g×L1=m2g×L2可知,当m1、L1一定时,若m'2 因为秤砣有缺损时称砣质量减小,他的力臂就需要变长,表示的质量值就偏大了 应该就是这样了,杆秤所示质量值是大于真实值.
伏安法测电源电动势和内阻的主要误差是由于伏特表的分流作用,使安培表测得的电流稍小于通过电源的电流,由 E=U+Ir可得,所测得的电源电动势小于真实值,导致所测内阻也小于真实值.也可以从等效电源的角度去分析:将伏特表与电池并联为等效电源,则由于伏特表的并联,路端电压(电源电动势的测量值)小球电源电动势E,内阻 r测=rR
是这样的亲,两个电阻并联相当于增加了电阻的横截面积,横截面积越大,电阻越小,R<R1 R<R2 再答: 希望可以帮助到您
电阻R的测量值R测=UI,电阻的真实值R真=UIR,根据欧姆定律得:UI=3V4mA=750Ω=R真oRVR真+RV解得:R真=1000Ω故选C.
误差 物理实验离不开对物理量的测量,测量有直接的,也有间接的.由于仪器、实验条件、环境等因素的限制,测量不可能无限精确,物理量的测量值与客观存在的真实值之间总会存在着一定的差异,这种差异就是测量误差. 设被测量的真值(真正的大小)为a,测得值为x,误差为ε,则 x-a=ε 误差与错误不同,错误是应该而且可以避免的,而误
解题思路: 电流表与电压表的使用涉及到电流表的内接与外接问题,从而也就牵涉到电学实验的精确问题,分析不同电路、不同接法的情况,得出误差的结论。解题过程: 电学中的误差分析:电表导致的电路中测量值与真实值的差异,画坐标图时常见的问题。 伏安法测量实验中的误差分析 伏安法是高中物理电学实验中的一种非常重要的方法和实验思想。
会下降. 托里拆利实验中管内水银面上不是真空.在灌入水银时不小心混入了气泡,大气压不等于水银柱产生压力. 水银柱产生压力+混入气体的压力=大气压 大气压不变,所以水银柱产生压力变小,液面会下降.
由欧姆定律:R测=UI=100.1=100Ω,RX=R测-RA=100-0.2=99.8Ω&& 则测量值偏大.故答案为:大、99.8,
半偏法测量电流表内阻时,测量值小于真实值.当闭合S1时调节R使得电流表达到满偏,电流值设为I,I=E/(R1+Rg),当闭合S2后,调节与电流表并联的R1使得电流表半偏,这时我们记R1为电流表的内阻.但在实际情况中,当闭合S2后Rg与R1的合电阻为RgR1/(R1+Rg)这个合电阻要比Rg小,所以这时总电路的电流会大于
这要从操作原理步骤.1.先是使变阻箱电阻为0,调节滑动变阻器使电压表满偏.2.然后调节变阻箱,使电压表半偏;3.读出变阻箱的示数即为电压表的内阻.由于电源也有内阻(即不能看作是理想试验),所以当变阻箱电阻增大时,回路中总电阻增大,电流减小,路端电压增大,所以电压表与电阻箱上总电压比1步骤中电压表上电压大,因此当2步骤中
A会使测量数值偏大...B会使测量数值偏小...第一种情况属圆锥摆.圆锥摆的角速度w=根号(g/lcosa)周期为T=2pi根号(lcona/g)如果当作单摆来算g'=g/cosa > g所以测量值g'比真实值g大其中a是做圆锥摆的时候细线与竖直方向的夹角第二种情况实际上相当于摆长偏小,周期不变,所以g的测量值也应变小
欧姆表电池用久了,内阻就大了,而欧姆表测电阻时,实现测出电路中的电流,再利用公式R=(E/I)-r求得电阻,标在表盘上,如果r变大,那电流就会变小,而我们再利用原来的r去计算R,就把R测大了
天平就是左右平衡,左边砝码.假设显示是1kg,但由于砝码磨损实际上左右都小于1kg.测量值(1kg)>实际值
1,闭合电阻箱开关时电路结构改变,即并入电阻箱后并联电阻会较原来单个的Rg变小,只有当滑动变阻器远远大于电阻箱电阻时,这种改变对整个电路的总电流影响才可以忽略,否则总电阻变小,总电流变大,闭合电阻箱开关后虽然电流表示数半偏,但实际上电阻箱中的电流要大于电流表中的电流,结果就是错的了.2,测电压时是用的分压式接法,还是扣
1、半偏电流法 根据闭合电路欧姆定律和串并联的特点,当闭合开关S2,调整电流表半偏时,回路中的总电流增大(大于Ig),故流过R2的实际电流比流过电流表的电流大(大于Ig/2),因此,R2<rg,即测量值小于真实值.2、半偏电压法 根据闭合电路欧姆定律和串并联电路的特点,当调整电压表半偏时,R2和电压表上的电压之和增大(姿态解算(一般情况下的卡尔曼)原创
在论坛里潜水很久了,上周我的姿态解算经历了断断续续一个学期后终于有所成果了。贴出来和大家分享下。第一次发帖子估计不会很漂亮,见谅。不废话了进入正题:
& &&&首先从卡尔曼开始讲起,网上很多都是用的基本卡尔曼公式,但我觉得用一般情况下的卡尔曼,更容易建立状态方程。
一般离散线性系统的状态方程如下:
其对应的卡尔曼滤波迭代公式如下:
先给出初值P(0|0),然后迭代。
针对要滤波的四轴,分别对单轴建立状态方程,这样可以有效的减少矩阵运算,有没有带来其他的问题目前还没有发现。等下一步做优化的时候再做进一步的分析,大家觉得有问题也可以提出来,毕竟姿态这部分完全是自学的。状态方程如下:
其中X为状态变量,即加速度计测出的姿态角。Z为观测量。ω为角速度,即载体加速度,对应于一般离散线性系统的状态方程中的u。
将上式离散化有:
将其代入卡尔曼滤波的公式。过程中发现卡尔曼对个别参数并不敏感。尤其是w,v这两个干扰误差的协方差和均值。再迭代方程中我试着做了一定范围的改变,对结果没有明显的影响,可能是本身因为就是干扰量,他的值就是不确定的。
下一步,设航向角(Z轴旋转)为φ,俯仰角(Y轴旋转)为θ ,横滚角(X轴旋转)为γ。然后用欧拉角法,利用陀螺仪的角速度值换算到导航坐标,作为卡尔曼滤波的控制量u。
最后利用导航坐标和机体坐标之间的转换矩阵,用加速度计的值求出姿态角作为观测值。& &
用反三角函数得:
使用atan2函数的时候。Ax应带负号而不是Az。
加速度和角速度的值都需要先做标定,建立基准。由于加上电机后对加速度计的影响可谓相当的大。我这里取了80次的值取平均,再加上低通滤波器,对电机振动有了较好的克服。不过牺牲了不少速度,和灵敏度。我不知道大家用的是什么方法。倒是陀螺仪对电机的振动基本没什么响应。
地磁还没有弄好,不过准备调好这两个轴的控制后再去上地磁,做偏航角。
下面贴个视频,用手机拍的,大家将就了
本帖子中包含更多资源
才可以下载或查看,没有帐号?
传感器的初始化校准参考了这里的例子
不错,我的四轴硬件已经搭好了,就差软件了,希望楼主能将姿态解算部分代码上传下!谢谢
flyforyou85 发表于
不错,我的四轴硬件已经搭好了,就差软件了,希望楼主能将姿态解算部分代码上传下!谢谢
哦,我完全是按上面的想法做的,你参考就可以了。具体的程序还在实验阶段,可读性不强。等整体优化好,会贴出来共享的
加油,坛子里缺的就是这种理论帝。
aworker 发表于
谢谢鼓励。有什么问题和心得希望一起分享!
xaper 发表于
加油,坛子里缺的就是这种理论帝。
我之前也是在潜水,看了很多大家写的东西。但感觉不是很全面。
本帖最后由 jade0606 于
16:14 编辑
喔!整體上不錯,不過,對我而言,那是理論上正確,實際操作出大亂子的理論.
就我所知,歐拉角的姿態解算加上卡爾曼濾波會有協方差矩陣爆掉的問題.
不管是六軸(三軸陀螺儀+三軸加速度計)或九軸(三軸陀螺儀+三軸加速度計+三軸磁傳感器)或五軸(二軸陀螺儀+三軸加速度計),結果一樣...
我們曾試過壓制協方差矩陣,但是後來我們不敢使用那樣的算法...
不壓制的情形下,轉動角度大一點就爆了...很慘...
如果你試過後也相同,別氣餒,姿態解算還有很多方法,再研究研究吧....
brb2010 发表于
哦,我完全是按上面的想法做的,你参考就可以了。具体的程序还在实验阶段,可读性不强。等整体优化好,会 ...
thanks !&&i try it by myself!
jade0606 发表于
喔!整體上不錯,不過,對我而言,那是理論上正確,實際操作出大亂子的理論.
就我所知,歐拉角的姿態解算加上卡爾 ...
你只得转动角大一点就爆掉是什么意思呢?协方差爆掉又是只什么呢?我觉得只有噪声而没有其他扰动的话,这个协方差是可以给个常数的。没记错的话他只是表征两个相邻噪声的相关程度的。
flyforyou85 发表于
thanks !&&i try it by myself!
best wish to you
你的低通滤波器是怎么设计的,能介绍下吗
xaper 发表于
你的低通滤波器是怎么设计的,能介绍下吗
我直接用的mpu6050里的低通滤波器。低通滤波实际就是一个惯性环节。在频域分析中,超过转折频率后幅值开始衰减,从而达到了将高频信号滤掉。物理上典型的是rc电路。不知道我这么说说清楚没有。
谢谢LZ,本人要做课程设计,谢谢提出宝贵意见
好像有的开源的UAV飞控用的就是这个模型,说实话这个模型真不咋样,不过优点也非常明显,计算量小
楼主,你的上位机调试软件用的是什么?wmc自带的的还是你自己写的?我也在学做四轴,刚刚接触。
asha 发表于
好像有的开源的UAV飞控用的就是这个模型,说实话这个模型真不咋样,不过优点也非常明显,计算量小 ...
看过些其他的,比较难,没有用。接下来可以看看。你有什么好的意见吗
wkong501 发表于
楼主,你的上位机调试软件用的是什么?wmc自带的的还是你自己写的?我也在学做四轴,刚刚接触。 ...
是lisn3188在“miniIMU AHRS 姿态板首试 动如脱兔 静若处子”&&这篇里提供的。一直在出新版本。现在这版已经很好用了。你可以去看
brb2010 发表于
看过些其他的,比较难,没有用。接下来可以看看。你有什么好的意见吗
可以用四元数为状态量,或者误差四元数的都可以。
支持 理论帝& && && && && && & & && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &
asha 发表于
可以用四元数为状态量,或者误差四元数的都可以。
我看有的姿态解算速度可以达到很快的。主要的差别在哪里呢?是因为三角函数会占用时间,还是使用矩阵计算呢
brb2010 发表于
我看有的姿态解算速度可以达到很快的。主要的差别在哪里呢?是因为三角函数会占用时间,还是使用矩阵计算 ...
都挺费时间的,不过三角函数你可以用三阶近似,我试过,精度基本不会损失。矩阵运算那个是很费时间,不过还好
跟上,确实是好贴
先标记 以后慢慢研习
asha 发表于
都挺费时间的,不过三角函数你可以用三阶近似,我试过,精度基本不会损失。矩阵运算那个是很费时间,不过 ...
那我看有的可以做到很快有几百hz的,是哪里做了优化呢。还有电机的震动是怎么处理的呢?
Name_006 发表于
支持 理论帝& && && && && && && && && && && && && && && && && && && && && && && && && && && &&&...
互相学习了
brb2010 发表于
那我看有的可以做到很快有几百hz的,是哪里做了优化呢。还有电机的震动是怎么处理的呢? ...
我用互补滤波,电机震动用滑动均值滤波处理,没2ms读一次数据做一次结算,解算频率是500Hz
MARKMARKMARK
zywei_09 发表于
我用互补滤波,电机震动用滑动均值滤波处理,没2ms读一次数据做一次结算,解算频率是500Hz ...
那你传感器采样周期是多长时间,我的采集一次加速度计和陀螺仪的就已经快 2ms了。按你的说法就没办法做什么均值滤波处理了。是差在哪里了呢
brb2010 发表于
那你传感器采样周期是多长时间,我的采集一次加速度计和陀螺仪的就已经快 2ms了。按你的说法就没办法做什 ...
每2ms做一次采样
zywei_09 发表于
每2ms做一次采样
你是如何保证在pwm(控制电调的信号周期2.5ms)的一个周期里做完所有这些运算的,用中断吗,还是延时?而且是输出4路的pwm以哪一路为准呢?
brb2010 发表于
你是如何保证在pwm(控制电调的信号周期2.5ms)的一个周期里做完所有这些运算的,用中断吗,还是延时?而 ...
PWM用STM32的一个通用定时器的PWM输出模式生成,改这个定时器寄存器值即可,其他的由芯片自己完成,貌似和一个周期里做完没什么联系。
好贴子&&mark
对振动有作用不是卡尔曼的贡献,是低通滤波的贡献。
以前上课学过,但是基本上都忘了,好好学习一下~
asha 发表于
对振动有作用不是卡尔曼的贡献,是低通滤波的贡献。
我不这样认为,你看下这两张仿真图就知道了。可以看出,振动作为一种噪声,卡尔曼也是可以有一定效果的。只是振动产生的噪声太大话,基本没有效果了。我这样觉得。
& &实际值取s(t)=sin(10*t);观测量取z(t)=sin(10*t)+v(t),v(t)为噪声;u(t)=10*cos(10)+w(t),w(t)为噪声。模型为帖子里的模型
这是仿真时加了噪声的观测值和控制量u,
这是没有加滤波的实际值和观测值
这是滤波后的和实际值。
这是观测量的噪声加大后的效果
本帖子中包含更多资源
才可以下载或查看,没有帐号?
zywei_09 发表于
PWM用STM32的一个通用定时器的PWM输出模式生成,改这个定时器寄存器值即可,其他的由芯片自己完成,貌似 ...
恩,电调是有响应时间的吧,就是是2.5ms,400hz的。那么单片机应该是每2.5ms改变一次占空比啊,所以说你的采样和运算都应该在此期间完成的。我这样理解的。你是怎么理解的呢?
brb2010 发表于
我不这样认为,你看下这两张仿真图就知道了。可以看出,振动作为一种噪声,卡尔曼也是可以有一定效果的。 ...
有效果是因为你仿真的加速度传感器的振动还基本满足R阵,当振动太大,这时候观测量是完全错误的,这个时候Z-Z~就是个错误值,然而R矩阵在卡尔曼里面是不变的,这个时候一切的估计就错了。 只能是提前的低通滤波把错误的数据滤掉&&。 你的仿真有效是因为振动是你自己加上去的,R这个也是你根据这个得到的,没有效果才怪了,真实情况可不会这样,振动方差是不可获得了。&&
brb2010 发表于
哦,我完全是按上面的想法做的,你参考就可以了。具体的程序还在实验阶段,可读性不强。等整体优化好,会 ...
支持啊!多造福大众啊!
asha 发表于
有效果是因为你仿真的加速度传感器的振动还基本满足R阵,当振动太大,这时候观测量是完全错误的,这个时 ...
最后那张图就是你说的情况
期待LZ解析代码示例
楼主,用这个算法是否可以计算出运行轨迹。用这个算法做个鼠标是否可行?
brb2010 发表于
最后那张图就是你说的情况
这个代码不用自己敲&&PPZ上就有,这个模型我见过很多次&&不过我一点都不推荐,为何?因为本身观测量,也就是通过加速度传感器获得的角度有时候就是错误的,那么反馈就直接到了惯性系统中,如果振动一直有,那么你得到的结果会一直是错误的,到头来一看可能还不如不用滤波。就因为这样,因此我才说实际滤波效果都是低通贡献的。 我建立的模型是四元数为状态量,加速度传感器为状态量,中间估计外部加速度的方差,
恩,灰常的详细。工作中有用到这个东东,lz分析的灰常的好,先Mark一下
asha 发表于
这个代码不用自己敲&&PPZ上就有,这个模型我见过很多次&&不过我一点都不推荐,为何?因为本身观测量,也 ...
对啊 这个加速度方差估计有没有什么好方法,这个R我是自己分段判断的,震动过大,直接把R设得非常大(比如100),震动小的话,就是简单的对静止的R翻个倍。
效果感觉还可以,但是还是有欠缺的,R的估计可以提供一个思路么(但我感觉这玩意就是不可预估的啊)?谢谢啦
brb2010 发表于
恩,电调是有响应时间的吧,就是是2.5ms,400hz的。那么单片机应该是每2.5ms改变一次占空比啊,所以说你 ...
额。。。好吧,我不知道电调有响应时间。我是用定时器产生任务的时钟信号,没2ms做一次姿态解算任务,和一次控制电机任务。感觉裸机跑确实有不便,准备加操作系统了。
MARKMARKMARK
没有看懂。。。数学没学好。。
楼主大哥,Heading = arctan(Yh / Xh ),Yh= X sinRollsinPitch +Y cosRoll+ Z sinRollcosPitch,Xh =X cosPitch+ Z sinPitch
这个公式好像只在静态的时候有效吧,动态的时候磁力计的数据和倾角的变化不同步,用这个公式不能得出好的航向角,
我用陀螺仪解算航向角和它做互补滤波也不行。。。
请问你有好的求教航向角的方法吗?
可以用四元数为状态量,或者误差四元数的都可以。
你好,我学习飞控不久 ,请问你是说用四元数参与卡尔曼滤波的计算吗?四元数法不是可以直接进行姿态解算吗?我最近在看姿态解算,感觉概念太多 ,有点糊涂了
你好,我学习飞控不久 ,请问你是说用四元数参与卡尔曼滤波的计算吗?四元数法不是可以直接进行姿态解算 ...
现在讨论的是数据融合,是四元数计算后面的校正部分
我看看,学习学习。
非常好!!学习了
第一条公式的意思是,加速度计的姿态角估计值等于角速度加噪声?0*X是什么意思?
我之前也是在潜水,看了很多大家写的东西。但感觉不是很全面。
我怎么感觉 一楼是 高级黑 呢
加计每次读一个数据丢掉最早的一个数据再取平均值,实时性好些
还有这个系统不是线性的,用经典卡尔曼会不好。
之前看到的都是大概,今天终于看到了一个讲解详细的了,谢谢!
谢谢分享!
希望楼主出一个&&姿态解算的教程& &普度纵生……
写得不错,赞一个
asha果然是大神。进行卡尔曼滤波的时候要确保你的观测值是正确的,要明确加速度计在什么时候是准确的,如果用一个错误观测值去校正陀螺仪输出,这个结果可想而知吧。
希望楼主能将姿态解算部分代码上传下!
都挺费时间的,不过三角函数你可以用三阶近似,我试过,精度基本不会损失。矩阵运算那个是很费时间,不过 ...
请问三阶是指泰勒展开式的三阶吗
请问, 姿态算法实际应用的时候, 还需要注意哪些方面?
mark& && && && && && && &
阿莫电子论坛, 原"中国电子开发网"
, 原www.ourdev.cn, 原www.ouravr.com

我要回帖

更多关于 无迹卡尔曼滤波原理 的文章

 

随机推荐