卡尔曼滤波器推导与解析 - 案例与图片
隨筆- 5? 文章- 2? 評(píng)論- 13? </div><div id="mylinks">
博客園??首頁(yè)??新隨筆??新文章??聯(lián)系??管理??訂閱?
????? 在SLAM的后端優(yōu)化中有存在這兩大類優(yōu)化方法:濾波器優(yōu)化和非線性優(yōu)化.目前大多數(shù)基于視覺(jué)的SLAM算法都是采用的非線性優(yōu)化的相關(guān)方法(如應(yīng)用較多的G2O圖優(yōu)化框架).但是濾波器的方法仍然在某些情況下有應(yīng)用,且以前不少論文都是基于濾波器優(yōu)化的方法設(shè)計(jì)的SLAM算法.因此學(xué)習(xí)濾波器優(yōu)化的方法對(duì)于做SLAM算法相關(guān)的研究還是有很大的意義的.
????? 卡爾曼濾波(KF)和擴(kuò)展卡爾曼濾波(EKF)是一類常用的濾波器優(yōu)化方法.本文主要翻譯一片國(guó)外的博客,以較為易懂的方式介紹卡爾曼濾波器的結(jié)構(gòu)以及背后的數(shù)學(xué)原理.如果各位英文不錯(cuò)還是比較推薦直接看英文原文,博客的原地址為:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/#mathybits
????? 除了這篇文章以外個(gè)人認(rèn)為以下這幾篇文章也寫的非常好,推薦閱讀:
????? 1. The Extended Kalman Filter: An Interactive Tutorial for Non-Experts
????????? 這篇文章通俗易懂,還配有大量的交互式圖形小程序幫助大家理解各個(gè)參數(shù)對(duì)整個(gè)系統(tǒng)的影響,非常適合入門.同時(shí)該文章還配有matlab代碼和C++代碼.
????? 2. Tutorial: The Kalman Filter - MIT
????????? 這是一篇MIT課程上的tutorial.比較深入的講解了KF濾波器背后的一些原理.
? ? ? 3.?KF, EKF and SLAM course in MATLAB?
? ? ? ? ?該課程授課教師為MATLAB SLAM TOOLBOX的作者。在該課程上詳細(xì)講解了KF和EKF的相關(guān)理論以及EKF-SLAM的實(shí)現(xiàn)方法,對(duì)于大家深入了解EKF以及EKFSLAM相關(guān)理論(稀疏矩陣,反向深度,反向模型)都有很大幫助(附帶KF、EKF以及EKFSLAM Matlab代碼以及對(duì)應(yīng)視頻)。
? ? ? 4. Probabilistic Robotics - Chpter 3
???????? 最后強(qiáng)烈推薦一下概率機(jī)器人,里面的卡爾曼濾波這一章講的非常的好,如果各位有時(shí)間強(qiáng)烈建議讀一下.
?
以下為翻譯內(nèi)容(略有更改) - How a Kalman filter works, in picture
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 使用卡爾曼濾波器的目的
????? 我們假設(shè)你建造了一個(gè)可以在樹(shù)林里行走的小機(jī)器人,為了精準(zhǔn)的進(jìn)行導(dǎo)航,機(jī)器人需要每時(shí)每刻都知道它自己的位置
????? 我們用符號(hào)來(lái)表示機(jī)器人的狀態(tài)變量,在此處我們假設(shè)狀態(tài)變量只包含機(jī)器人的位置和速度:
????? 需要注意的是,狀態(tài)只是一列和你系統(tǒng)有關(guān)的變量,它可以是任何的變量,不僅限于位置和速度(例如可以將引擎的溫度,操作人員的手指在觸摸板上的位置等變量作為系統(tǒng)的狀態(tài)變量,只要這些變量的狀態(tài)是可跟蹤的).
????? 在制造這個(gè)機(jī)器人的時(shí)候,我們?cè)谒厦嬉舶惭b了一些傳感器,其中就包括GPS.機(jī)器人上的GPSD定位精度為10m,但是由于樹(shù)林中存在一些障礙物以及洼地,懸崖我們需求更高精度的定位能力,否則機(jī)器人就有可能撞到障礙物或者是跌落.
????? 同時(shí),我們也知道一些與機(jī)器人運(yùn)動(dòng)相關(guān)的信息(變量):知道控制端口發(fā)送至機(jī)器人驅(qū)動(dòng)輪上的命令,知道機(jī)器人的正方向朝向以及前方有無(wú)障礙物等.但是很明顯,我們無(wú)法獲取到有關(guān)機(jī)器人運(yùn)動(dòng)的所有信息(變量):機(jī)器人有可能收到強(qiáng)風(fēng)影響,驅(qū)動(dòng)輪可能打滑等.因此僅僅是通過(guò)計(jì)量驅(qū)動(dòng)輪轉(zhuǎn)動(dòng)圈數(shù)無(wú)法準(zhǔn)確的計(jì)算出機(jī)器人走了有多遠(yuǎn).
????? 同理,GPS能夠非直接的告訴我們一些機(jī)器人的狀態(tài),但是GPS所提供的信息也是帶有誤差和不確定行的.因此如果只是依據(jù)GPS做出的預(yù)測(cè)也是不夠精確的.
????? 雖然單一的依靠某一種信息無(wú)法給我們提供一個(gè)具有足夠置信度的結(jié)果,但是如果我們將所有有用的信息結(jié)合在一起,我們能否在不依賴機(jī)器人自身以外的傳感器得到一個(gè)比較的預(yù)測(cè)結(jié)果呢?答案當(dāng)然是肯定的,這就是卡爾曼濾波器的設(shè)計(jì)目的.
?2. 卡爾曼濾波器
????? 同上,我們將繼續(xù)用位置和速度來(lái)代表機(jī)器人的狀態(tài):
????? 由于不確定性的存在,機(jī)器人當(dāng)前時(shí)刻的位置和速度值存在很多可能的可能性,我們無(wú)法知道準(zhǔn)確的值.但是某中可能性的概率相較于其他會(huì)更大,如下圖所示:
?
????? 卡爾曼濾波器假設(shè)所有變量(在此例中為位置和速度)都滿足隨機(jī)的高斯分布.每一個(gè)變量都有均值u來(lái)代表隨機(jī)分布的中心點(diǎn),符號(hào)代表了不確定性.關(guān)于這兩個(gè)變量的解釋如下圖所示:
????? 在該示意圖中,位置和速度是不具有關(guān)聯(lián)性的,也就是說(shuō)我們無(wú)法通過(guò)位置推斷得到和與速度有關(guān)的信息,反之亦然.
????? 當(dāng)位置和速度變量具有關(guān)聯(lián)性時(shí),其示意圖如下所示.如圖所示,觀察到某一個(gè)特定位置的可能性(概率)受當(dāng)前機(jī)器人的速度影響.
????? 上圖所述這種情形可能在這種情況下發(fā)生.例如,當(dāng)前我們依據(jù)上一時(shí)刻的位置去預(yù)測(cè)機(jī)器人下一時(shí)刻的位置.如果機(jī)器人的運(yùn)行速度較高,其移動(dòng)距離也可能變的更大,從而導(dǎo)致計(jì)算的位置也發(fā)生較大的距離變化.反之亦然.
????? 這種關(guān)系是十分重要的,因?yàn)樗鼤?huì)告訴我們更多的有關(guān)信息:一個(gè)變量的狀態(tài)將會(huì)反應(yīng)出其他變量量的一些狀態(tài).這也是卡爾曼濾波器的目的,即我們希望盡量的從具有不確定性的信息中獲取盡可能多的有用信息.
????? 在之后計(jì)算過(guò)程中我們用協(xié)方差矩陣(covariance matrix)來(lái)代表和描述這種關(guān)聯(lián)關(guān)系.即Σij描述了第i個(gè)狀態(tài)變量與第j個(gè)狀態(tài)變量之間的關(guān)聯(lián)性.協(xié)方差矩陣通常用符號(hào)Σ表示,其中的元素表示為Σij.
?3. 用矩陣方式表述問(wèn)題
????? 現(xiàn)在我們運(yùn)用高斯來(lái)表述狀態(tài)量(位置與速度)的情況,因此對(duì)于當(dāng)前時(shí)刻k機(jī)器人的狀態(tài)我們需要通過(guò)兩個(gè)變量進(jìn)行定義:
??????????? 1. 估計(jì)值 - 各狀態(tài)量的均值,也可以用符號(hào)u進(jìn)行表示;
??????????? 2. 協(xié)方差矩陣Pk;
????? 在此處我們僅僅只使用了機(jī)器人的位置和速度來(lái)表示狀態(tài)量,但是在實(shí)際操作和運(yùn)算中,狀態(tài)矩陣的定義可以包括其他任何有用的變量.
????? 現(xiàn)在,我們需要了解一下當(dāng)前狀態(tài)(t = k-1)和下一時(shí)刻的預(yù)測(cè)狀態(tài)(t = k)的情況.我們需要注意的是,雖然我們無(wú)法明確指出當(dāng)前分布中的哪一種情況是當(dāng)前真實(shí)的狀態(tài),但是我們?nèi)匀豢梢酝ㄟ^(guò)預(yù)測(cè)方程得到新時(shí)刻的分布情況.因?yàn)轭A(yù)測(cè)方程并非只作用于某一個(gè)具體的狀態(tài)量,而是作用與當(dāng)前分布中所包含的所有情況.
????? 在下圖中我們用矩陣Fk來(lái)表示預(yù)測(cè)步驟:
????? 現(xiàn)在思考一下,我們?nèi)绾芜\(yùn)用一個(gè)矩陣來(lái)預(yù)測(cè)下一時(shí)刻機(jī)器人的位置和速度呢?在此,我們將會(huì)運(yùn)用如下所示的運(yùn)動(dòng)學(xué)方程進(jìn)行預(yù)測(cè):
????? 轉(zhuǎn)化為矩陣形式有:
? ? ? 很明顯,這是一個(gè)勻速運(yùn)動(dòng)模型,新時(shí)刻的位置P_new = P_previous + time*v .現(xiàn)在我們已經(jīng)求得了預(yù)測(cè)矩陣(或稱為狀態(tài)轉(zhuǎn)移矩陣),但是我們?nèi)匀徊恢廊绾稳ジ聟f(xié)方差矩陣.
????? 為了更新協(xié)方差矩陣,我們需要一個(gè)新的公式即:
????? 該公式表示,將當(dāng)前分布中所包含的所有情形(點(diǎn))乘以預(yù)測(cè)矩陣就能夠得到更新或的協(xié)方差矩陣了.
????? 以上所屬內(nèi)容,可以總結(jié)為以下兩個(gè)公式:
4. 外部影響
????? 即使計(jì)算到了現(xiàn)在,我們也仍未囊括所有信息.因?yàn)樵谙到y(tǒng)中存在這一些不隨狀態(tài)量變化而發(fā)生變化的變量 - 外部世界的一些因素也能對(duì)系統(tǒng)產(chǎn)生影響.
????? 以火車運(yùn)行為例,火車的操作員可能會(huì)控制運(yùn)行開(kāi)關(guān)使得火車加速.類似的,在此機(jī)器人的案例中,機(jī)器人導(dǎo)航系統(tǒng)可能會(huì)發(fā)出指令使得機(jī)器人驅(qū)動(dòng)輪轉(zhuǎn)向或停止.因此,在計(jì)算中我們需要考慮到這類變量對(duì)系統(tǒng)的影響.通常來(lái)說(shuō)我們將這類變量稱作為系統(tǒng)的控制變量,用符號(hào)進(jìn)行表示.
????? 現(xiàn)在我們假設(shè)對(duì)于機(jī)器人這個(gè)案例,已知其外部控制量為加速度a(由運(yùn)動(dòng)開(kāi)關(guān)或控制命令進(jìn)行控制),則之前所述的運(yùn)行方程可更新為:
????? 矩陣形式為:
????? 其中Bk為控制矩陣,而為控制變量所組成的矩陣(n x 1).系統(tǒng)中的控制量只有在其已知或可獲取時(shí)才加入到方程中,并不是必不可少的.
????? 現(xiàn)在在讓我們思考另外一個(gè)問(wèn)題,如果我們預(yù)測(cè)并不是一個(gè)100%精準(zhǔn)的模型,那么將會(huì)發(fā)生什么?
5. 外部不確定性
????? 假如我們的變量是通過(guò)系統(tǒng)本身的屬性以及已知的外部影響而計(jì)算得到的,那么狀態(tài)計(jì)算將不會(huì)有太大問(wèn)題.但假如影響系統(tǒng)的量我們無(wú)法明確獲取到他們的值呢?
????? 仍然以我們的機(jī)器人為例,在運(yùn)動(dòng)過(guò)程中其驅(qū)動(dòng)輪可能打滑,機(jī)器人也有可能撞到地面上的隆起物(地面凹凸不平)使速度變慢.我們很難表示或追蹤這些因素所產(chǎn)生的影響.一旦這些情況發(fā)生,我們的預(yù)測(cè)結(jié)果就很有可能與實(shí)際結(jié)果產(chǎn)生很大的偏差,因?yàn)槲覀儾⑽丛跀?shù)學(xué)模型中考慮到這些因素.
????? 但是不用擔(dān)心,在數(shù)學(xué)上對(duì)于這種情況是有解決辦法的.我們?cè)诿恳淮蔚念A(yù)測(cè)步驟中加入新的不確定性來(lái)表示這些世界中存在但是我們無(wú)法明確表示的變量所帶來(lái)的影響.
????? 原始估計(jì)中的每個(gè)狀態(tài)都會(huì)通過(guò)變換方程運(yùn)動(dòng)到一個(gè)新的狀態(tài)范圍中.
????? 如圖下所示,上一時(shí)刻狀態(tài)中的每一個(gè)狀態(tài)點(diǎn)(藍(lán)色區(qū)域表示)都會(huì)移動(dòng)到一個(gè)新的區(qū)域范圍中(該范圍新加入了不確定性,用綠色圓表示).也就是說(shuō),我們將世界中無(wú)法表示且會(huì)對(duì)狀態(tài)變量帶來(lái)不確定性的影響視作噪聲(KF中通常為白噪聲,協(xié)方差用表示).
????? 由于加入了額外的噪聲協(xié)方差,因此很明顯相較與之前推導(dǎo)中所產(chǎn)生的分布區(qū)域,在在這種情況下的分布區(qū)域會(huì)明顯不一樣.??????
????? 現(xiàn)在,讓我們將新的噪聲協(xié)方差加入到之前所推導(dǎo)出來(lái)的公式中:
????? 這兩個(gè)公式代表了卡爾曼濾波器中的預(yù)測(cè)部分,是卡爾曼濾波器五個(gè)基礎(chǔ)公式中的前兩個(gè).其中估計(jì)值為根據(jù)上一時(shí)刻系統(tǒng)狀態(tài)和當(dāng)前時(shí)刻系統(tǒng)控制量所得到的系統(tǒng)估計(jì)值,該估計(jì)值又叫做先驗(yàn)估計(jì)值,為各變量高斯分布的均值.而為協(xié)方差矩陣,代表了不確定性,它是由上一時(shí)刻的協(xié)方差矩陣和外部噪聲的協(xié)方差一起計(jì)算得到的.
????? 好了,現(xiàn)在我們已經(jīng)得到了系統(tǒng)的預(yù)測(cè)(估計(jì))值了.但是在真是的系統(tǒng)中,我們往往還能通過(guò)傳感器得到一些能反映系統(tǒng)狀態(tài)的測(cè)量值.
6. 測(cè)量值(觀測(cè)值)
????? 通常我們會(huì)在機(jī)器人上安裝一些傳感器,這些傳感器的返回值(測(cè)量量)能夠讓我們了解更多與機(jī)器人當(dāng)前狀態(tài)有關(guān)的信息.例如,我們現(xiàn)在有兩個(gè)傳感器,一個(gè)返回位置信息另一個(gè)返回速度信息.這兩個(gè)傳感器都能夠間接的提供一些機(jī)器人運(yùn)動(dòng)狀態(tài)的信息(sensor operate on a state and produce a set of readings).
????? 需要注意的是,傳感器返回的信息其單位和尺度可能與我們?cè)陬A(yù)測(cè)步驟中所跟蹤的狀態(tài)量的單位和尺度有所不同.因此通常我們使用矩陣Hk來(lái)表示狀態(tài)量與傳感器所觀測(cè)的測(cè)量量之間的關(guān)系.
????? 通常,我們能夠計(jì)算出傳感器返回值的分布情況(通過(guò)傳感器出廠說(shuō)明中的參數(shù)等信息):
????? 需要注意的是卡爾曼濾波器之所以好用的一個(gè)原因就是它可以很好的處理傳感器的噪聲.也就是說(shuō),傳感器的觀測(cè)值(或測(cè)量值)是具有一定程度的不可靠性的(由噪聲引起),因此傳感器的讀數(shù)是并非是一個(gè)精確值,而是一個(gè)帶有不確定區(qū)域的范圍.
????? 通過(guò)傳感器的觀測(cè),我們可以猜測(cè)我們的機(jī)器人當(dāng)前所處的狀態(tài).但是因?yàn)椴淮_定性的存在,因此某些狀態(tài)比其他狀態(tài)有更大的可能行被視作傳感器的讀數(shù).
????? 在卡爾曼濾波器中我們用符號(hào)來(lái)表示傳感器因?yàn)樵肼曀鶐?lái)的不確定性的協(xié)方差.而傳感器觀測(cè)值的均值就等于傳感器讀數(shù)值,通常用來(lái)進(jìn)行表示.
????? 因此,現(xiàn)在我們有了兩個(gè)不同的高斯分布:一個(gè)代表預(yù)測(cè)步驟,一個(gè)代表傳感器的觀測(cè).
????? 我們現(xiàn)在需要根據(jù)預(yù)測(cè)步驟(粉色)和傳感器讀數(shù)(綠色)來(lái)調(diào)整傳感器讀數(shù)的分布(此處是在解釋后文將會(huì)提到的卡爾曼增益).
????? 那么現(xiàn)在哪一種才是當(dāng)前最有可能的狀態(tài)情況呢?對(duì)于某一組傳感器讀數(shù)(Z1,Z2),我們現(xiàn)在有兩種可能:
??????????? 1. 當(dāng)前的傳感器測(cè)量為錯(cuò)誤的,不可以很好的代表機(jī)器人的狀態(tài)(當(dāng)前機(jī)器人的狀態(tài)應(yīng)該完全與預(yù)測(cè)步驟的分布相同);
??????????? 2. 當(dāng)前的傳感器測(cè)量為正確的,可以很好的代表當(dāng)前機(jī)器人的狀態(tài)(當(dāng)前機(jī)器人的狀態(tài)應(yīng)該完全與傳感器觀測(cè)分布相同);
? ? ? 如果現(xiàn)在我們假設(shè)這兩種可能行都是正確的,我們將其分布相乘,就能得到一個(gè)新的如下所示的分布:
??????? 相乘后剩下的區(qū)域?yàn)楦吡坎糠?在此區(qū)域中兩種假設(shè)情況都是高量.這就意味這這個(gè)新生成的分布區(qū)域比之前任一一種假設(shè)都要精確(完全相信預(yù)測(cè)步驟和完全相信傳感器觀測(cè)),因此該區(qū)域?yàn)閷?duì)機(jī)器人當(dāng)前狀態(tài)的最好估計(jì)(可以用下圖表示).
????? 以上的表述證明了,當(dāng)你講兩個(gè)具有獨(dú)立的均值和協(xié)方差矩陣(seperate means and covariance matrics)的高斯分布相乘時(shí),就能夠得到一個(gè)具有新的均值和協(xié)方差矩陣的高斯分布.也許你能夠發(fā)現(xiàn):一定存在一個(gè)數(shù)學(xué)表達(dá)式能夠通過(guò)舊的參數(shù)值計(jì)算出來(lái)這個(gè)新的參數(shù)值.
7. 結(jié)合高斯
????? 現(xiàn)在我們一起來(lái)找到這個(gè)數(shù)學(xué)公公式.為了易于理解,我們首先從一維情況開(kāi)始推導(dǎo).一維的高斯分布可以表示為:
????? 現(xiàn)在我們想要知道,當(dāng)我們講兩個(gè)高斯曲線(分布)相乘時(shí)會(huì)發(fā)生什么.下圖中的藍(lán)色部分表示相乘后得到的新的高斯分布的結(jié)果.
????? 現(xiàn)在我們將一階高斯分布的公式帶入到上式中有:
????? 現(xiàn)在讓我們將上式改寫為矩陣形式的表達(dá)式,并令Σ為高斯分布的協(xié)方差矩陣:
????? K被成為卡爾曼增益,我們將會(huì)在后面用到它.
8. 整合
????? 我們有兩個(gè)分布:預(yù)測(cè)步驟的分布為,傳感器觀測(cè)值的分布為.我們將這兩個(gè)分布帶入到公式:
????? 能夠求解得到重疊區(qū)域:
????? 因此卡爾曼增益為:
????? 在以上的推導(dǎo)過(guò)程中我們可以發(fā)現(xiàn)每一個(gè)變量都乘上了變量,因此可以約掉,又發(fā)現(xiàn)在計(jì)算協(xié)方差矩陣時(shí)可以約掉.因此簡(jiǎn)化后的公式為:
????? 在卡爾曼濾波器中我們稱這三個(gè)公式為更新步驟,這也是卡爾曼濾波器五個(gè)基本公式中的最后三個(gè).
????? 此處的估計(jì)值才是當(dāng)前時(shí)刻機(jī)器人最后的最優(yōu)估計(jì)值,而為當(dāng)前時(shí)刻機(jī)器人最有估計(jì)的協(xié)方差矩陣.這兩個(gè)變量將會(huì)當(dāng)成是當(dāng)前時(shí)刻最后的輸出值進(jìn)入到下一次的卡爾曼濾波器計(jì)算過(guò)程中.
????? 卡爾曼濾波器工作流程示意圖大致如下:
9. 總結(jié)
????? 卡爾曼濾波器預(yù)算分為預(yù)測(cè)和更新兩步,切具有五個(gè)基本方程:
??????????? 1. 預(yù)測(cè)步驟:
??????????? 2. 更新步驟?????
????? 需要注意的是,卡爾曼濾波器只適用于線性系統(tǒng),在真實(shí)世界中我們所面對(duì)的系統(tǒng)通常為非線性系統(tǒng),因此工程更常用的是擴(kuò)展卡爾曼濾波.擴(kuò)展卡爾曼濾波與卡爾曼濾波十分相似,唯一不同點(diǎn)在與擴(kuò)展卡爾曼濾波需要對(duì)系統(tǒng)進(jìn)行線性化(雅克比矩陣).
標(biāo)簽: 基礎(chǔ)理論 好文要頂 關(guān)注我 收藏該文 李小銘關(guān)注 - 4
粉絲 - 15 +加關(guān)注 0 0 ? 上一篇:Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖
? 下一篇:SLAM中的優(yōu)化理論(一)—— 線性最小二乘
<div class="postDesc"><img src="/skins/gray/images/speech.gif" align="absmiddle"> posted on <span id="post-date">2017-05-14 18:48</span> <a href="https://www.cnblogs.com/leexiaoming/">李小銘</a> 閱讀(<span id="post_view_count">3748</span>) 評(píng)論(<span id="post_comment_count">1</span>) <a href="https://i.cnblogs.com/EditPosts.aspx?postid=6852483" rel="nofollow">編輯</a> <a href="#" onclick="AddToWz(6852483);return false;">收藏</a></div>
評(píng)論 <div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage"><span style="color:#006699"><a href="#4101306" class="layer">#1樓</a><a name="4101306" id="comment_anchor_4101306"></a><span id="comment-maxId" style="display:none;">4101306</span><span id="comment-maxDate" style="display:none;">2018/10/29 22:11:53</span></span> <span class="comment_actions"></span></div><div style="padding-left:30px;"><img src="/skins/gray/images/arrow.gif" align="absmiddle"> <a id="a_comment_author_4101306" class="feedbackmanagelink" href="https://www.cnblogs.com/ncuneugcj/" target="_blank">sabers</a> <a href="http://msg.cnblogs.com/send/sabers" title="發(fā)送站內(nèi)短消息" class="sendMsg2This"> </a><font style="color:gray;font-size:10px;font-weight:normal;"> | <span class="comment_date">2018-10-29 22:11</span></font></div></div><div class="feedbackCon"><div id="comment_body_4101306" class="blog_comment_body">請(qǐng)問(wèn)博主,類似這種關(guān)于 slam 的博客,你一般在哪里找? 或者搜索什么關(guān)鍵字才能找到國(guó)外的優(yōu)秀文章博客。謝謝!</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" onclick="return voteComment(4101306,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" onclick="return voteComment(4101306,'Bury',this)">反對(duì)(0)</a></div></div></div> <div id="comments_pager_bottom"></div></div><script type="text/javascript">var commentManager = new blogCommentManager();commentManager.renderComments(0);</script> 刷新評(píng)論刷新頁(yè)面返回頂部 注冊(cè)用戶登錄后才能發(fā)表評(píng)論,請(qǐng) 登錄 或 注冊(cè),訪問(wèn)網(wǎng)站首頁(yè)。 </div> </div> </div> <!-- left ends --> <!-- right starts --> <div id="right"><!-- 右側(cè)工具部分 --><div id="right_content">
公告
昵稱:李小銘園齡:1年9個(gè)月
粉絲:15
關(guān)注:4+加關(guān)注 <div id="calendar"><div id="blog-calendar" style=""><table id="blogCalendar" class="Cal" cellspacing="0" cellpadding="0" title="Calendar"> <tbody><tr><td colspan="7"><table class="CalTitle" cellspacing="0"><tbody><tr><td class="CalNextPrev"><a href="javascript:void(0);" onclick="loadBlogCalendar('2018/11/01');return false;"><</a></td><td align="center">2018年12月</td><td class="CalNextPrev" align="right"><a href="javascript:void(0);" onclick="loadBlogCalendar('2019/01/01');return false;">></a></td></tr> </tbody></table></td></tr><tr><th class="CalDayHeader" align="center" abbr="日" scope="col">日</th><th class="CalDayHeader" align="center" abbr="一" scope="col">一</th><th class="CalDayHeader" align="center" abbr="二" scope="col">二</th><th class="CalDayHeader" align="center" abbr="三" scope="col">三</th><th class="CalDayHeader" align="center" abbr="四" scope="col">四</th><th class="CalDayHeader" align="center" abbr="五" scope="col">五</th><th class="CalDayHeader" align="center" abbr="六" scope="col">六</th></tr><tr><td class="CalOtherMonthDay" align="center">25</td><td class="CalOtherMonthDay" align="center">26</td><td class="CalOtherMonthDay" align="center">27</td><td class="CalOtherMonthDay" align="center">28</td><td class="CalOtherMonthDay" align="center">29</td><td class="CalOtherMonthDay" align="center">30</td><td class="CalWeekendDay" align="center">1</td></tr><tr><td class="CalWeekendDay" align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td class="CalWeekendDay" align="center">8</td></tr><tr><td class="CalWeekendDay" align="center">9</td><td align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td class="CalWeekendDay" align="center">15</td></tr><tr><td class="CalWeekendDay" align="center">16</td><td align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td class="CalWeekendDay" align="center">22</td></tr><tr><td class="CalWeekendDay" align="center">23</td><td align="center">24</td><td align="center">25</td><td class="CalTodayDay" align="center">26</td><td align="center">27</td><td align="center">28</td><td class="CalWeekendDay" align="center">29</td></tr><tr><td class="CalWeekendDay" align="center">30</td><td align="center">31</td><td class="CalOtherMonthDay" align="center">1</td><td class="CalOtherMonthDay" align="center">2</td><td class="CalOtherMonthDay" align="center">3</td><td class="CalOtherMonthDay" align="center">4</td><td class="CalOtherMonthDay" align="center">5</td></tr> <div id="leftcontentcontainer"><div id="blog-sidecolumn"><div id="sidebar_search" class="sidebar-block">
搜索
常用鏈接
- 我的隨筆
- 我的評(píng)論
- 我的參與
- 最新評(píng)論
- 我的標(biāo)簽
最新隨筆
- 1. SLAM中的優(yōu)化理論(二)- 非線性最小二乘
- 2. SLAM中的優(yōu)化理論(一)—— 線性最小二乘
- 3. 卡爾曼濾波器推導(dǎo)與解析 - 案例與圖片
- 4. Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖
- 5. ZED 相機(jī) && ORB-SLAM2安裝環(huán)境配置與ROS下的調(diào)試
我的標(biāo)簽
- C++(2)
- SLAM中優(yōu)化理論(2)
- 編程-Python(1)
- 基礎(chǔ)理論(1)
- 實(shí)踐-環(huán)境配置(1)
積分與排名
- 積分 - 13598
- 排名 - 35458
最新評(píng)論
- 1. Re:Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖
- 請(qǐng)教博主,在繪制三維軌跡時(shí),如果Z軸設(shè)置為時(shí)間軸,如何讀取時(shí)間格式(h:mm)形式的數(shù)據(jù)?
- --cxqhpu
- 2. Re:Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖
- 兄弟。你的數(shù)據(jù)為啥不粘貼出來(lái)。。。。。。。》。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。......
- --最美代碼
- 3. Re:卡爾曼濾波器推導(dǎo)與解析 - 案例與圖片
- 請(qǐng)問(wèn)博主,類似這種關(guān)于 slam 的博客,你一般在哪里找? 或者搜索什么關(guān)鍵字才能找到國(guó)外的優(yōu)秀文章博客。謝謝!
- --南湘子
- 4. Re:Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖
- 已經(jīng)解決了,灰常謝謝這么細(xì)致的回復(fù)
- --mianduo
- 5. Re:Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖
- @mianduo 首先讀取的數(shù)據(jù)存儲(chǔ)成為一個(gè) array,當(dāng)成矩陣的形式即可,比如:4x4矩陣[1,2,3,4][3,4,5,6][5,6,7,8][6,7,8,9]這個(gè)矩陣在 txt 文件中就是按照......
- --南湘子
閱讀排行榜
- 1. ZED 相機(jī) && ORB-SLAM2安裝環(huán)境配置與ROS下的調(diào)試(7949)
- 2. Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖(7641)
- 3. SLAM中的優(yōu)化理論(二)- 非線性最小二乘(6678)
- 4. 卡爾曼濾波器推導(dǎo)與解析 - 案例與圖片(3749)
- 5. SLAM中的優(yōu)化理論(一)—— 線性最小二乘(1406)
評(píng)論排行榜
- 1. ZED 相機(jī) && ORB-SLAM2安裝環(huán)境配置與ROS下的調(diào)試(6)
- 2. Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖(5)
- 3. 卡爾曼濾波器推導(dǎo)與解析 - 案例與圖片(1)
- 4. SLAM中的優(yōu)化理論(二)- 非線性最小二乘(1)
推薦排行榜
- 1. SLAM中的優(yōu)化理論(一)—— 線性最小二乘(4)
- 2. SLAM中的優(yōu)化理論(二)- 非線性最小二乘(1)
- 3. Python學(xué)習(xí)(一) —— matplotlib繪制三維軌跡圖(1)
總結(jié)
以上是生活随笔為你收集整理的卡尔曼滤波器推导与解析 - 案例与图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 惯性传感器的卡尔曼滤波
- 下一篇: 简单常用滤波算法C语言实现