精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

LINS算法的框架與代碼分析

3D視覺(jué)工坊 ? 來(lái)源:ICRA 2020 ? 作者:ICRA 2020 ? 2022-10-09 14:57 ? 次閱讀

作者:Chao Qin1 Haoyang Ye Christian E. Pranata, Jun Han, Shuyang Zhang, and Ming Liu

來(lái)源:ICRA 2020

摘要

LINS是以濾波為主的IMU、激光雷達(dá)緊耦合的激光SLAM算法。該算法的主要?jiǎng)?chuàng)新點(diǎn)就是用以 IESKF(即迭代誤差卡爾曼)為框架,融合 IMU 與激光雷達(dá)。該算法于發(fā)表于 2020 年 ICRA, 由于網(wǎng)上已經(jīng)有些同學(xué)對(duì)算法做了介紹,一些基礎(chǔ)的知識(shí)本文不再贅述,本文將詳細(xì)圍繞以下兩個(gè)問(wèn)題介紹,希望對(duì)讀者理解算法有所幫助: 1、LINS 是如何將激光觀測(cè)融入濾波框架的? 2、濾波框架與優(yōu)化框架有何不同?

算法框架

為了講述通暢還是先介紹下 LINS 算法的主要框架,算法流程圖如下:

38aeaae8-4335-11ed-96c9-dac502259ad0.png

結(jié)合代碼不難發(fā)現(xiàn),算法的特征提取、以及 Mapping 部分都是直接沿用了 Lego-Loam 算法的,不再贅述。算法的核心創(chuàng)新點(diǎn)為前端激光里程計(jì)部分,對(duì)應(yīng)代碼的 lins_fusion_node 節(jié)點(diǎn)。

39014780-4335-11ed-96c9-dac502259ad0.png

理論與代碼分析

(一)LINS 是如何將激光觀測(cè)引入濾波框架的?1、從代碼中可以看出,LINS只是前端里程計(jì)部分采用了濾波框架(即 scan-to-scan 估計(jì)幀間位姿),而后端 scan-to-map部分仍然采用優(yōu)化方式求解(即用 LM 方法求解位姿)。2、將點(diǎn)線/點(diǎn)面距離殘差作為觀測(cè)方程引入到代價(jià)函數(shù)中。根據(jù)論文公式 12,可以看到代價(jià)函數(shù)分為兩個(gè)部分,前面是最小化誤差狀態(tài)(即最小化后驗(yàn)與后先驗(yàn)狀態(tài)之差),后面的復(fù)合函數(shù) f(x)表示點(diǎn)線/面距離,即最小化點(diǎn)線/面距離。也就是說(shuō)把點(diǎn)線/面距離殘差作為觀測(cè)方程,有了觀測(cè)方程,然后帶入卡爾曼濾波相關(guān)公式即可求解。不過(guò),作為一個(gè)創(chuàng)新點(diǎn),作者采用了 IESKF,即迭代誤差卡爾曼作為濾波框架。

394c56b2-4335-11ed-96c9-dac502259ad0.png

IESKF 與 ESKF 最大的區(qū)別就是,在做狀態(tài)更新時(shí)是采用迭代求解的方式計(jì)算的,類似高斯牛頓等優(yōu)化方法求解時(shí)需要多次迭代直到收斂。通過(guò)迭代的求解的方式,與 ESKF 相比可以得到更精確的解。對(duì)應(yīng)論文公式 16。

396339a4-4335-11ed-96c9-dac502259ad0.png

3、LINS 代碼實(shí)現(xiàn)。LINS 中濾波相關(guān)的核心部分在 include/StateEstimator.hpp 中的 performIESKF()函數(shù)中實(shí)現(xiàn)。

3986d54e-4335-11ed-96c9-dac502259ad0.png

代碼中基本是按照論文中的公式 12-18 實(shí)現(xiàn)的,比較好讀懂。代碼中的 findCorrespondingSurfFeatures(), findCorrespondingCornerFeatures() 函數(shù)即為 costfunction 中的點(diǎn)面/線距離殘差計(jì)算函數(shù),基本沿用了loam的實(shí)現(xiàn)方式,其中jacobianCoffSurfs, jacobianCoffCorns 變量為點(diǎn)面/線距離殘差關(guān)于點(diǎn)的雅可比矩陣,該過(guò)程在之前推送的文章《泡泡點(diǎn)云時(shí)空 LOAM 專題-3】LOAM 代價(jià)函數(shù)設(shè)計(jì)與雅可比求解詳細(xì)推導(dǎo)(上)》有詳細(xì)的推導(dǎo),感興趣的可以去看下。

39b20566-4335-11ed-96c9-dac502259ad0.png

代碼中,Hk_為點(diǎn)面/線距離殘差關(guān)于誤差狀態(tài)的雅可比矩陣,作者是用 BCH 近似求解的,其實(shí)含義上與 LOAM 算法在 Odometry,Mapping 部分最終求解得到的是一樣的,都是點(diǎn)面/線距離關(guān)于誤差狀態(tài)的雅可比矩陣,只不過(guò)求解方式表達(dá)形式不同,LOAM 中姿態(tài)是用歐拉角表示的,LINS 是四元數(shù)。

3a028798-4335-11ed-96c9-dac502259ad0.png

performIESKF()函數(shù)的剩余部分就是論文中公式 15-18 的實(shí)現(xiàn),比較易懂就不贅述了。 (二)濾波與優(yōu)化有何不同 其實(shí),討論濾波框架與優(yōu)化框架的不同是一個(gè)相對(duì)比較大的問(wèn)題,為了更具體一些,我們僅就 LINS 算法使用的 IESKF 做的濾波的 LIO 前端與 LIO-SAM 等以高斯牛頓或LM優(yōu)化為框架的 LIO 前端做對(duì)比(當(dāng)然嚴(yán)格意義上來(lái)說(shuō),LIO-SAM 的前端其實(shí)只有預(yù)積分,省略了激光里程計(jì),使用 scan-to-map 匹配校正 imu 零偏,但是不影響我們的分析過(guò)程)。 1、框架差異。從框架上說(shuō),LINS 使用的 IESKF 是將所有的狀態(tài)一起放到濾波框架里估計(jì),而以 LIO-SAM 為代表的算法前端,是預(yù)積分+scan-to-map 算法,其中 scan-to-map 模塊使用 LM方法計(jì)算幀圖位姿,得到計(jì)算出的位姿后,輸入預(yù)積分模塊校正imu 零偏。也就是說(shuō) imu 零偏的估計(jì)與激光匹配位姿計(jì)算是分開(kāi)的,而 LINS 使用了 IESKF 將二者當(dāng)作狀態(tài)一起估計(jì)。 2、理論差異。其實(shí)在 1993 年的論文[2]中就已經(jīng)證明了 IKF 的更新方程與 Gauss-Newton 理論上是等價(jià)的。詳細(xì)的推導(dǎo)過(guò)程可以參考論文,為了方便理解,我們?cè)谶@里做一個(gè)簡(jiǎn)化的推導(dǎo)。 參照 LINS 論文中公式 15-17

3a390796-4335-11ed-96c9-dac502259ad0.png

當(dāng)我們使用 Gauss-Newton 求解待估狀態(tài)時(shí),通常用到的公式是:

3a941424-4335-11ed-96c9-dac502259ad0.png

其實(shí)從方程的形式上,怎么看這個(gè)方程也與 LINS 中的公式 16 差別挺大。下面我們嘗試盡量直白的解釋下 Gauss-Newton 與 IESKF 更新方程的等價(jià)性。 對(duì)于一些剛接觸SLAM的同學(xué)來(lái)說(shuō),可能有一個(gè)疑問(wèn)是Gauss-Newton 求解時(shí)很少用到協(xié)方差矩陣,但是卡爾曼的更新方程中的卡爾曼增益是需要計(jì)算協(xié)方差矩陣的,如何理解? 其實(shí) Gauss-Newton 只是一個(gè)公式,當(dāng)我們?cè)O(shè)計(jì)誤差函數(shù)時(shí)帶有協(xié)方差矩陣,那么 Gauss-Newton 求解過(guò)程中就會(huì)有協(xié)方差矩陣的計(jì)算,實(shí)際上論文[2]中也正是通過(guò)這種方式證明的等價(jià)性。由于我們實(shí)際在用 Gauss-Newton 求解時(shí)基本不考慮協(xié)方差矩陣(指點(diǎn)云匹配求解位姿時(shí)),為了更好的理解,我們假設(shè)噪聲相關(guān)的矩陣都為單位矩陣,那么 LINS 論文中的公式 15 變?yōu)?

3aa78b26-4335-11ed-96c9-dac502259ad0.png

那么公式 16 變?yōu)?/p>

3ac59b3e-4335-11ed-96c9-dac502259ad0.png

到這一步可以看到跟 Gauss-Newton 的方程不一致。這個(gè)時(shí)候要借助一個(gè)重要的公式實(shí)現(xiàn)轉(zhuǎn)換,即 matrix inversion lemma,即矩陣求逆引理,即如果 A,C 為非奇異矩陣,那么有

3add292a-4335-11ed-96c9-dac502259ad0.png

那么公式 16 可以變?yōu)?

3af0b9ea-4335-11ed-96c9-dac502259ad0.png

到這里,其實(shí)我們看這個(gè)形式跟優(yōu)化的方法已經(jīng)很像了,但是跟標(biāo)準(zhǔn)的高斯牛頓求解方程還是不一致?,F(xiàn)在我們定義如下觀測(cè)方程:

3b0c8080-4335-11ed-96c9-dac502259ad0.png

則其對(duì)應(yīng)的雅可比矩陣為,

3b231e6c-4335-11ed-96c9-dac502259ad0.png

因此,

3b3c0166-4335-11ed-96c9-dac502259ad0.png

可以看到此時(shí)方程出現(xiàn)了我們熟悉的高斯牛頓的公式。因?yàn)闉V波的框架里面其實(shí)是同時(shí)考慮狀態(tài)方程與觀測(cè)方程,因此使用最小二乘的框架構(gòu)建的時(shí)候需要構(gòu)建成如上形式。 個(gè)人的觀點(diǎn)是,如果單從最終的公式來(lái)看,使用高斯牛頓求解兩幀點(diǎn)云的相對(duì)位姿,與 LINS 中使用 IESKF 求解結(jié)果并不完全相等,因?yàn)榍蠼獬鰜?lái)的狀態(tài)更新方程并不是完全一樣,但是從理論上說(shuō),IESKF 的更新方程可以統(tǒng)一到最小二乘的框架里,因此效果上二者應(yīng)該是近似的。

算法效果

38774fe4-4335-11ed-96c9-dac502259ad0.png

3b7b9150-4335-11ed-96c9-dac502259ad0.png

根據(jù)論文提供的實(shí)驗(yàn)結(jié)果,如果考慮前端+后端的整體處理效果,算法在公園與林間場(chǎng)景表現(xiàn)較好,但是在城區(qū)以及港口效果不及 LIOM。如果只考慮前端激光里程計(jì),算法在除了港口場(chǎng)景外都是最優(yōu)的,畢竟論文的主要貢獻(xiàn)在前端。

總結(jié)

本文通過(guò)理論分析與代碼對(duì)比介紹了 LINS 算法,其中主要介紹了 LINS 如何使用濾波框架做激光 SLAM,以及優(yōu)化與濾波的區(qū)別。主要是把前端激光里程計(jì)部分改為了濾波框架,并且引入了 IMU 做緊耦合。同時(shí),我們也推導(dǎo)了濾波的更新方程其實(shí)可以由高斯牛頓法推導(dǎo)而來(lái)。希望對(duì)讀者有所幫助,如果錯(cuò)誤煩請(qǐng)指出。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    967

    文章

    3943

    瀏覽量

    189625

原文標(biāo)題:LINS算法與代碼解析

文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    瑞芯微rv1126 SDK代碼基礎(chǔ)分析---rkmedia框架分析

    瑞芯微rv1126 SDK代碼基礎(chǔ)分析---rkmedia框架分析誰(shuí)知道啊?能否告知一下呢http://blgxb.qiuyi.cn/gxb/http://blgxb.qiuyi.cn
    發(fā)表于 07-16 15:49

    VxWorks BSP框架代碼包含頭文件和驅(qū)動(dòng)

    VxWorks BSP框架代碼包含頭文件和驅(qū)動(dòng)
    發(fā)表于 03-26 15:58 ?114次下載

    MapReduce框架下的Skyline結(jié)果優(yōu)化算法_馬學(xué)森

    MapReduce框架下的Skyline結(jié)果優(yōu)化算法_馬學(xué)森
    發(fā)表于 03-19 11:41 ?0次下載

    基于元學(xué)習(xí)推薦的優(yōu)化算法自動(dòng)選擇框架

    算法選擇的目的是從眾多可用優(yōu)化算法中自動(dòng)地選出最適用于當(dāng)前問(wèn)題的算法。針對(duì)算法選擇問(wèn)題提出了基于元學(xué)習(xí)推薦的優(yōu)化算法自動(dòng)選擇
    發(fā)表于 12-04 15:28 ?0次下載
    基于元學(xué)習(xí)推薦的優(yōu)化<b class='flag-5'>算法</b>自動(dòng)選擇<b class='flag-5'>框架</b>

    基于等角緊框架的稀疏信號(hào)重構(gòu)算法

    在1993年,Mallat和Zhang在研究了小波分析后,提出將信號(hào)在過(guò)完備原子庫(kù)上進(jìn)行分解,然后根據(jù)信號(hào)本身特點(diǎn)自適應(yīng)的選取,從而得到信號(hào)的稀疏表示。但與之發(fā)展起來(lái)的重構(gòu)算法具有的高計(jì)算復(fù)雜度使其
    發(fā)表于 12-12 11:00 ?0次下載
    基于等角緊<b class='flag-5'>框架</b>的稀疏信號(hào)重構(gòu)<b class='flag-5'>算法</b>

    WIFI指紋定位算法的基本框架

    的基本框架,并將K均值算法、近鄰傳播算法、自適應(yīng)傳播算法應(yīng)用到Wi-Fi指紋定位;然后以一個(gè)實(shí)驗(yàn)室為例,分析室內(nèi)POI劃分與空間區(qū)域的關(guān)系,
    發(fā)表于 12-23 09:43 ?0次下載
    WIFI指紋定位<b class='flag-5'>算法</b>的基本<b class='flag-5'>框架</b>

    多項(xiàng)式插值算法框架

    多項(xiàng)式近似理論為圖像的多項(xiàng)式插值算法提出一個(gè)統(tǒng)一的理論框架。密切多項(xiàng)式近似的理論框架包括采樣點(diǎn)數(shù)目、密切階數(shù)和導(dǎo)數(shù)近似規(guī)則三個(gè)部分,它既可以用于分析現(xiàn)有的多項(xiàng)式插值
    發(fā)表于 01-05 13:55 ?0次下載

    SHARC音頻模塊:裸機(jī)框架代碼的結(jié)構(gòu)及功能

    概述裸機(jī)框架代碼的結(jié)構(gòu)以及框架各部分的整體功能
    的頭像 發(fā)表于 06-27 06:05 ?2878次閱讀
    SHARC音頻模塊:裸機(jī)<b class='flag-5'>框架</b>源<b class='flag-5'>代碼</b>的結(jié)構(gòu)及功能

    TouchGFX代碼框架以及如何添加用戶代碼

    1. 摘要 本文檔主要介紹,TouchGFX代碼框架以及如何添加用戶代碼。 2. 準(zhǔn)備工作 可以正常運(yùn)行的TouchGFX工程 3. 代碼結(jié)構(gòu) TouchGFX的
    的頭像 發(fā)表于 01-18 11:28 ?2637次閱讀
    TouchGFX<b class='flag-5'>代碼</b><b class='flag-5'>框架</b>以及如何添加用戶<b class='flag-5'>代碼</b>

    在單片機(jī)中使用的RTOS代碼框架

    在這次開(kāi)發(fā)中,也是遇到了很多的問(wèn)題,主要的感想是關(guān)于代碼框架。在單片機(jī)開(kāi)發(fā)中,特別是使用了RTOS的時(shí)候,一個(gè)良好的代碼框架真的是相當(dāng)?shù)谋匾摹?/div>
    的頭像 發(fā)表于 02-10 14:21 ?1089次閱讀

    大學(xué)課程 數(shù)據(jù)分析 實(shí)戰(zhàn)之K-means算法(2)算法代碼

    分組成! %% 尋找聚類中心 while 1 ? ? count = zeros(2,1); 原文標(biāo)題:大學(xué)課程 數(shù)據(jù)分析 實(shí)戰(zhàn)之K-means算法(2)算法代碼 文章出處:【微信公眾
    的頭像 發(fā)表于 02-11 07:20 ?433次閱讀

    AVM系統(tǒng)算法框架搭建的方法

    框架,有一些效果還不錯(cuò)的demo。本文主要是想將AVM算法框架中每個(gè)算子講述清楚,與大家共同進(jìn)步。本博文的風(fēng)格為理論與實(shí)踐結(jié)合,含有部分代碼,適合有一些計(jì)算機(jī)視覺(jué)基礎(chǔ)的同學(xué)。 作者仿真
    的頭像 發(fā)表于 05-15 15:24 ?813次閱讀
    AVM系統(tǒng)<b class='flag-5'>算法</b><b class='flag-5'>框架</b>搭建的方法

    [源代碼]Python算法詳解

    [源代碼]Python算法詳解[源代碼]Python算法詳解
    發(fā)表于 06-06 17:50 ?0次下載

    Linux Led子系統(tǒng)代碼框架分析

    代碼框架分析 led-class.c (led 子系統(tǒng)框架的入口) 維護(hù) LED 子系統(tǒng)的所有 LED 設(shè)備,為 LED 設(shè)備提供注冊(cè)操作函數(shù): led_classdev_regist
    的頭像 發(fā)表于 07-20 10:36 ?729次閱讀

    深度學(xué)習(xí)算法庫(kù)框架學(xué)習(xí)

    深度學(xué)習(xí)算法庫(kù)框架學(xué)習(xí) 深度學(xué)習(xí)是一種非常強(qiáng)大的機(jī)器學(xué)習(xí)方法,它可以用于許多不同的應(yīng)用程序,例如計(jì)算機(jī)視覺(jué)、語(yǔ)言處理和自然語(yǔ)言處理。然而,實(shí)現(xiàn)深度學(xué)習(xí)技術(shù)需要使用一些算法庫(kù)框架。在本文
    的頭像 發(fā)表于 08-17 16:11 ?670次閱讀