0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基礎(chǔ)卡爾曼濾波

jt_rfid5 ? 來(lái)源:新機(jī)器視覺(jué) ? 2023-05-08 10:11 ? 次閱讀

			

原理

卡爾曼濾波器是一種基礎(chǔ)預(yù)測(cè)定位算法。原理非常簡(jiǎn)單易懂。核心過(guò)程可以用一個(gè)圖說(shuō)明:

e2cb75de-ed43-11ed-90ce-dac502259ad0.jpg

本質(zhì)上就是這兩個(gè)狀態(tài)過(guò)程的迭代,來(lái)逐步的準(zhǔn)確定位。 預(yù)測(cè):當(dāng)前狀態(tài)環(huán)境下,對(duì)下一個(gè)時(shí)間段t的位置估計(jì)計(jì)算的值。 更新:更具傳感器獲取到比較準(zhǔn)確的位置信息后來(lái)更新當(dāng)前的預(yù)測(cè)問(wèn)位置,也就是糾正預(yù)測(cè)的錯(cuò)誤。 你可能要問(wèn)為什么有傳感器的數(shù)據(jù)了還要進(jìn)行更新?因?yàn)樵诂F(xiàn)實(shí)世界中傳感器是存在很多噪聲干擾的,所以也不能完全相信傳感器數(shù)據(jù)??柭惴ㄒ蕾?lài)于線(xiàn)性計(jì)算,高斯分布,我們以一維定位來(lái)介紹算法的實(shí)現(xiàn)。

e2df3f74-ed43-11ed-90ce-dac502259ad0.jpg

e2f9158e-ed43-11ed-90ce-dac502259ad0.png

接下來(lái)我們開(kāi)更新,預(yù)測(cè)后我們獲取到傳感器數(shù)據(jù),表示目前傳感器發(fā)現(xiàn)小車(chē)的位置應(yīng)該是在26這個(gè)位置,在這種情況下,我們肯定是覺(jué)得傳感器的準(zhǔn)確度比我之前的預(yù)測(cè)瞎猜要來(lái)的準(zhǔn)確。 所以方差自然會(huì)比較小,最終我們覺(jué)得真是的小車(chē)位置應(yīng)該是更靠近傳感器數(shù)據(jù)的,而且方差會(huì)縮小,以至于,想想也很清楚,我猜了一個(gè)預(yù)測(cè)值,現(xiàn)在有個(gè)專(zhuān)家告訴了我相對(duì)比較靠譜的數(shù)據(jù),那我對(duì)小車(chē)的位置的自信度肯定會(huì)上升啊。 最終小車(chē)的位置經(jīng)過(guò)這個(gè)時(shí)間段t的更新就是下圖紅色的高斯圖:

e30aeeda-ed43-11ed-90ce-dac502259ad0.jpg

就這樣不停的移動(dòng)更新,最終小車(chē)的位置就會(huì)越來(lái)越準(zhǔn)確。

一維模型下的Kalman公式:

預(yù)測(cè) e32564f4-ed43-11ed-90ce-dac502259ad0.jpg

更新e33d6978-ed43-11ed-90ce-dac502259ad0.jpg

e354c05a-ed43-11ed-90ce-dac502259ad0.jpg

參考代碼:

#include 
#include 
#include 


using namespace std;


double new_mean, new_var;


tuple<double, double> measurement_update(double mean1, double var1, double mean2, double var2)
{
  new_mean = (var2 * mean1 + var1 * mean2) / (var1 + var2);
  new_var = 1 / (1 / var1 + 1 / var2);
  return make_tuple(new_mean, new_var);
}


tuple<double, double> state_prediction(double mean1, double var1, double mean2, double var2)
{
  new_mean = mean1 + mean2;
  new_var = var1 + var2;
  return make_tuple(new_mean, new_var);
}


int main()
{
  //Measurements and measurement variance
  double measurements[5] = { 5, 6, 7, 9, 10 };
  double measurement_sig = 4;
  
  //Motions and motion variance
  double motion[5] = { 1, 1, 2, 1, 1 };
  double motion_sig = 2;
  
  //Initial state
  double mu = 0;
  double sig = 1000;


  for (int i = 0; i < sizeof(measurements) / sizeof(measurements[0]); i++) {
    tie(mu, sig) = measurement_update(mu, sig, measurements[i], measurement_sig);
    printf("update: [%f, %f]
", mu, sig);
    tie(mu, sig) = state_prediction(mu, sig, motion[i], motion_sig);
    printf("predict: [%f, %f]
", mu, sig);
  }


  return 0;
}

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2541

    文章

    49945

    瀏覽量

    747465
  • 定位算法
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    14949
  • 卡爾曼濾波器
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    12153
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    詳解卡爾濾波原理

    我不得不說(shuō)說(shuō)卡爾濾波,因?yàn)樗茏龅降氖虑楹?jiǎn)直讓人驚嘆!意外的是很少有軟件工程師和科學(xué)家對(duì)對(duì)它有所了解,這讓我感到沮喪,因?yàn)?b class='flag-5'>卡爾
    的頭像 發(fā)表于 07-13 16:20 ?2700次閱讀
    詳解<b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>原理

    卡爾濾波

    卡爾濾波的估計(jì)值能很好的逼近真實(shí)值,我的疑惑是,這和濾波有什么關(guān)系,請(qǐng)高手介紹下卡爾算法是如
    發(fā)表于 07-04 22:57

    卡爾濾波

    卡爾濾波的噪聲協(xié)方差怎么配置???
    發(fā)表于 08-01 10:05

    卡爾濾波的原理及如何實(shí)現(xiàn)

    卡爾濾波的原理和實(shí)現(xiàn)
    發(fā)表于 06-01 17:28

    卡爾濾波有哪些應(yīng)用

    卡爾濾波風(fēng)力發(fā)電機(jī)中的風(fēng)速估計(jì),轉(zhuǎn)速估計(jì)甚至扭矩估計(jì)都設(shè)計(jì)到卡爾濾波,如果只是單一傳感變量的
    發(fā)表于 07-12 06:00

    卡爾濾波簡(jiǎn)介

    在這里我就不介紹卡爾的數(shù)學(xué)推算了,網(wǎng)上的數(shù)學(xué)推導(dǎo)一抓一大把,如果想了解推導(dǎo)過(guò)程的小伙伴可以去大佬的博客。如果你是想直接簡(jiǎn)單運(yùn)用卡爾濾波來(lái)
    發(fā)表于 02-28 14:24

    卡爾濾波的解釋

    用溫度控制的例子介紹卡爾濾波的原理,很通俗,同意理解
    發(fā)表于 01-15 15:44 ?6次下載

    卡爾濾波學(xué)習(xí)及應(yīng)用

    卡爾濾波的學(xué)習(xí)與應(yīng)用。
    發(fā)表于 04-13 15:15 ?7次下載

    卡爾濾波講解

    卡爾濾波講解,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 08-23 17:56 ?14次下載

    卡爾濾波算法

    卡爾濾波算法
    發(fā)表于 12-17 17:22 ?52次下載

    一文看懂mpu6050卡爾濾波程序

    本文開(kāi)始闡述了卡爾濾波的概念,其次闡述了卡爾濾波的性質(zhì)與
    發(fā)表于 03-09 08:57 ?7.3w次閱讀
    一文看懂mpu6050<b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>程序

    卡爾濾波原理及應(yīng)用

    卡爾濾波原理及應(yīng)用-黃小平
    發(fā)表于 06-09 14:37 ?0次下載

    淺析卡爾濾波

    在 飛行器姿態(tài)計(jì)算 中,卡爾濾波是最常用的姿態(tài)計(jì)算方法之一。今天就以目前的理解講以下卡爾濾波
    的頭像 發(fā)表于 06-14 10:44 ?1839次閱讀

    什么是卡爾濾波?卡爾濾波的作用是什么

    一、什么是卡爾濾波? 你可以在任何含有不確定信息的動(dòng)態(tài)系統(tǒng)中使用卡爾濾波,對(duì)系統(tǒng)下一步的走向
    的頭像 發(fā)表于 08-08 09:39 ?6568次閱讀
    什么是<b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>?<b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>的作用是什么

    卡爾濾波家族

    本文對(duì)于擴(kuò)展卡爾濾波、無(wú)跡卡爾濾波僅僅做了一些簡(jiǎn)要介紹,不再想上次的文章那樣做詳細(xì)地推導(dǎo)了。
    的頭像 發(fā)表于 01-14 14:29 ?731次閱讀
    <b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>家族