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

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

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

SLAM領(lǐng)域中的VIO(視覺慣性里程計(jì))

新機(jī)器視覺 ? 來源:ZjuerBooster ? 2023-09-07 16:57 ? 次閱讀

筆者在閑暇之余學(xué)習(xí)了SLAM相關(guān)的內(nèi)容,深感機(jī)器人狀態(tài)估計(jì)領(lǐng)域的博大精深。今天,筆者就拋磚引玉,談?wù)凷LAM領(lǐng)域中的VIO(視覺慣性里程計(jì))。

初始SLAM

SLAM(Simultaneous Localization and Mapping),是指搭載特定傳感器的主體,在沒有環(huán)境先驗(yàn)信息的情況下,于運(yùn)動(dòng)過程中建立環(huán)境的模型,同時(shí)估計(jì)自己的運(yùn)動(dòng)。SLAM可以解決自主運(yùn)動(dòng)的兩大基本問題:

我在什么地方?——定位

周圍環(huán)境是什么樣子?——建圖

定位與建圖=內(nèi)外兼修,定位側(cè)重對(duì)自身的了解,建圖側(cè)重對(duì)外在的了解。

為什么用VIO?

單目視覺SLAM無法解決尺度問題,而將IMU估計(jì)的位姿序列與相機(jī)估計(jì)的位姿序列進(jìn)行對(duì)齊可以恢復(fù)出相機(jī)軌跡的真實(shí)尺度;

視覺SLAM一般取第一幀作為世界坐標(biāo)系,而IMU中的加速度計(jì)測(cè)量值包括重力向量,可以根據(jù)其將估計(jì)的位姿轉(zhuǎn)換到垂直于地面的世界坐標(biāo)系中;

IMU幀間積分得到的位姿可以預(yù)測(cè)出圖像幀在下一時(shí)刻的位姿以及特征點(diǎn)在下一幀圖像上的位置,并將其作為初值帶入非線性優(yōu)化中,減少優(yōu)化迭代次數(shù);

IMU測(cè)量可以提高視覺SLAM在某些復(fù)雜場(chǎng)景的魯棒性,在于相機(jī)快速運(yùn)動(dòng)、動(dòng)態(tài)障礙物、光線明暗變化明顯、環(huán)境中紋理缺失等導(dǎo)致圖像信息質(zhì)量較差的情況下,利用IMU信息仍能得到有效的定位結(jié)果。

耦合的VIO

686ed1dc-4d5b-11ee-a25d-92fbcf53809c.png

根據(jù)狀態(tài)向量中是否加入圖像特征信息來判斷是否為松緊耦合,如圖所示,在VIO中將圖像特征以及IMU的位置、方向、速度作為狀態(tài),構(gòu)建非線性優(yōu)化問題進(jìn)行求解,采用梯度下降的方法同時(shí)對(duì)圖像特征以及位置、方向、速度進(jìn)行優(yōu)化,從而得到對(duì)機(jī)器人狀態(tài)的最優(yōu)估計(jì)。

VIO的框架

68a2c00a-4d5b-11ee-a25d-92fbcf53809c.png

VIO過程可以用上圖進(jìn)行表示,其中,為路標(biāo)點(diǎn),,,為三個(gè)時(shí)刻相機(jī)的位置點(diǎn),,,為三個(gè)時(shí)刻IMU的位置點(diǎn)。由于IMU存在著高斯白噪聲以及導(dǎo)數(shù)服從高斯分布的偏置,相機(jī)也存在著光學(xué)畸變誤差、機(jī)械誤差等,因此無論是相機(jī)觀測(cè)到的數(shù)據(jù)還是IMU測(cè)量的數(shù)據(jù)都不可靠。因?yàn)橄鄼C(jī)觀測(cè)的數(shù)據(jù)以及IMU測(cè)量的數(shù)據(jù)具有一定的關(guān)聯(lián)性,基于此構(gòu)建優(yōu)化問題,便可以得到對(duì)真實(shí)路標(biāo)點(diǎn)的最優(yōu)估計(jì),同時(shí)也可以得到對(duì)IMU或者相機(jī)(機(jī)器人本體)的最優(yōu)估計(jì)。

基于以上原理,VIO的優(yōu)化問題可以表示為:

68c45a30-4d5b-11ee-a25d-92fbcf53809c.png

以上三項(xiàng)分別為邊緣化的先驗(yàn)信息、IMU的測(cè)量殘差、視覺的重投影誤差。其中,視覺的重投影誤差是指像素坐標(biāo)(觀測(cè)到的投影位置)與3D點(diǎn)按照當(dāng)前估計(jì)的位姿進(jìn)行第二次投影得到的位置相比較得到的誤差。邊緣化的先驗(yàn)信息是指邊緣化后的剩余變量更新后的殘差,具體的會(huì)在邊緣化一節(jié)進(jìn)行分析。

邊緣化

要講邊緣化,首先大家要知道實(shí)際使用中SLAM的優(yōu)化方法,它并不是對(duì)所有的觀測(cè)進(jìn)行優(yōu)化,而是會(huì)構(gòu)建一個(gè)窗口,只對(duì)窗口內(nèi)觀測(cè)到的狀態(tài)值進(jìn)行優(yōu)化,這樣可以大大的減少計(jì)算量以及優(yōu)化的時(shí)間。但是由于在移動(dòng)過程中,會(huì)不斷的觀測(cè)到新的狀態(tài),因此需要讓構(gòu)建的窗口滑動(dòng)起來,從而能夠包換最新觀測(cè)到的狀態(tài),并且扔掉最早觀測(cè)到的狀態(tài),這種優(yōu)化方法叫做基于滑動(dòng)窗口的優(yōu)化方法。

但是,由于在連續(xù)的一些時(shí)刻中,相機(jī)可能會(huì)觀測(cè)到用一個(gè)路標(biāo)點(diǎn),所以不能簡(jiǎn)單的扔掉之前觀測(cè)到的狀態(tài)值,需要其信息全部傳遞到之后的狀態(tài)中。簡(jiǎn)單的說,這是一個(gè)求邊際概率的問題,形如:

68e1c516-4d5b-11ee-a25d-92fbcf53809c.png

b可以指代為需要扔掉的最早觀測(cè)到的狀態(tài)。通過求解邊際概率,最早觀測(cè)到狀態(tài)量信息便傳遞到了該滑動(dòng)窗口剩余的狀態(tài)量中。此后,我們通過講最新觀測(cè)到的狀態(tài)量加入到滑動(dòng)窗口中,便可以進(jìn)行新一輪的非線性優(yōu)化。

講到了這里,我想大家已經(jīng)能夠理解邊緣化的先驗(yàn)誤差是什么了吧,沒錯(cuò),他就是通過上述求解邊際概率方式更新后的誤差,該誤差加上最新觀測(cè)到的狀態(tài)量的誤差,也就是IMU的測(cè)量誤差以及相機(jī)的觀測(cè)誤差即可構(gòu)建出上一節(jié)等式的優(yōu)化問題。

寫到最后

VIO不僅包含上述的非線性優(yōu)化問題,還有其他的一些問題:

首先是VIO的初始化,初始化的目的是為了恢復(fù)單目相機(jī)的尺度信息,求解IMU的偏置,IMU與相機(jī)之間的轉(zhuǎn)換關(guān)系,并將優(yōu)化的坐標(biāo)系轉(zhuǎn)換到世界坐標(biāo)系下(可根據(jù)重力加速度為g得到z軸)。

除了初始化,還有回環(huán)檢測(cè)問題,基于優(yōu)化的方法依舊會(huì)有誤差,尤其是長(zhǎng)時(shí)間運(yùn)轉(zhuǎn)后,因此可以通過檢測(cè)觀測(cè)到路標(biāo)點(diǎn)是否之前已經(jīng)觀測(cè)到,構(gòu)建回環(huán),從而增強(qiáng)優(yōu)化問題的約束,避免陷入局部極小值點(diǎn),保證結(jié)果的最優(yōu)性。

最后,就是建圖模塊了,根據(jù)優(yōu)化后的狀態(tài)量(機(jī)器人本體的位姿以及路標(biāo)點(diǎn)的位置)可以構(gòu)建出地圖,從而用于機(jī)器人的導(dǎo)航。

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

    關(guān)注

    23

    文章

    428

    瀏覽量

    32016
  • VIO
    VIO
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    10227
  • IMU
    IMU
    +關(guān)注

    關(guān)注

    6

    文章

    330

    瀏覽量

    46108

原文標(biāo)題:VIO從入門到精通(放棄)

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何去提高汽車里程計(jì)電路的抗干擾能力?

    里程計(jì)工作原理是什么?汽車里程計(jì)的受擾現(xiàn)象有哪些?
    發(fā)表于 05-19 07:26

    如何理解SLAM用到的傳感器輪式里程計(jì)IMU、雷達(dá)、相機(jī)的工作原理與使用場(chǎng)景?精選資料分享

    視覺慣性里程計(jì) 綜述 VIO Visual Inertial Odometry msckf ROVIO ssf msf okvis ORB-VINS VINS-Mono gtsam目錄
    發(fā)表于 07-27 07:21

    請(qǐng)問如何理解SLAM用到的傳感器輪式里程計(jì)IMU、雷達(dá)、相機(jī)的工作原理?

    請(qǐng)問如何理解SLAM用到的傳感器輪式里程計(jì)IMU、雷達(dá)、相機(jī)的工作原理?
    發(fā)表于 10-09 08:52

    視覺里程計(jì)的詳細(xì)介紹和算法過程

    在導(dǎo)航系統(tǒng)中,里程計(jì)(odometry)是一種利用致動(dòng)器的移動(dòng)數(shù)據(jù)來估算機(jī)器人位置隨時(shí)間改變量的方法。例如,測(cè)量輪子轉(zhuǎn)動(dòng)的旋轉(zhuǎn)編碼器設(shè)備。里程計(jì)總是會(huì)遇到精度問題,例如輪子的打滑就會(huì)導(dǎo)致產(chǎn)生機(jī)器人移動(dòng)的距離與輪子的旋轉(zhuǎn)圈數(shù)不一致的問題。
    的頭像 發(fā)表于 08-08 14:21 ?2.7w次閱讀
    <b class='flag-5'>視覺</b><b class='flag-5'>里程計(jì)</b>的詳細(xì)介紹和算法過程

    視覺語義里程計(jì)的詳細(xì)資料說明

    魯棒數(shù)據(jù)關(guān)聯(lián)是視覺里程計(jì)的核心問題,圖像間的對(duì)應(yīng)關(guān)系為攝像機(jī)姿態(tài)和地圖估計(jì)提供了約束條件。目前最先進(jìn)的直接和間接方法使用短期跟蹤來獲得連續(xù)的幀到幀約束,而長(zhǎng)期約束則使用循環(huán)閉包來建立。在這篇論文
    發(fā)表于 10-28 08:00 ?0次下載
    <b class='flag-5'>視覺</b>語義<b class='flag-5'>里程計(jì)</b>的詳細(xì)資料說明

    VIL-SLAM系統(tǒng)可實(shí)現(xiàn)獲得更好的回環(huán)約束

    本文提出的立體視覺+慣導(dǎo)+激光雷達(dá)的SLAM系統(tǒng),在比如隧道一些復(fù)雜場(chǎng)景下能夠?qū)崿F(xiàn)良好性能。VIL-SLAM通過將緊密耦合的立體視覺慣性
    發(fā)表于 02-18 17:59 ?2414次閱讀
    VIL-<b class='flag-5'>SLAM</b>系統(tǒng)可實(shí)現(xiàn)獲得更好的回環(huán)約束

    計(jì)算機(jī)視覺方向簡(jiǎn)介之視覺慣性里程計(jì)

    VIO-SLAM Visual-Inertial Odometry(VIO)即視覺慣性里程計(jì),有時(shí)也叫
    的頭像 發(fā)表于 04-07 16:57 ?2727次閱讀
    計(jì)算機(jī)<b class='flag-5'>視覺</b>方向簡(jiǎn)介之<b class='flag-5'>視覺</b><b class='flag-5'>慣性</b><b class='flag-5'>里程計(jì)</b>

    一種R3LIVE++的LiDAR慣性視覺融合框架

    R3LIVE++ 由實(shí)時(shí)運(yùn)行的 LiDAR 慣性里程計(jì) (LIO) 和視覺慣性里程計(jì) (VIO)
    的頭像 發(fā)表于 10-17 09:34 ?2485次閱讀

    基于單個(gè)全景相機(jī)的視覺里程計(jì)

    本文提出了一種新的直接視覺里程計(jì)算法,利用360度相機(jī)實(shí)現(xiàn)魯棒的定位和建圖。本系統(tǒng)使用球面相機(jī)模型來處理無需校正的等距柱狀圖像,擴(kuò)展稀疏直接法視覺里程計(jì)(DSO,direct spar
    的頭像 發(fā)表于 12-14 14:53 ?947次閱讀

    OV2SLAM(高速視覺slam)簡(jiǎn)析

    視覺里程計(jì)最近幾年越來越受到學(xué)術(shù)界以及工業(yè)界的認(rèn)可,以O(shè)RB和VINS為代表的視覺SLAM已經(jīng)可以滿足絕大多數(shù)場(chǎng)景,而OV2SLAM在其他V
    的頭像 發(fā)表于 03-21 17:16 ?1863次閱讀

    輪式移動(dòng)機(jī)器人里程計(jì)分析

    但凡涉及到可移動(dòng)的機(jī)器人的導(dǎo)航系統(tǒng),大概率會(huì)涉及到里程計(jì)的計(jì)算,比如輪式移動(dòng)機(jī)器人、無人機(jī)、無人艇,以及多足機(jī)器人等,而計(jì)算里程計(jì)的方案也有很多種,比如基于編碼器合成里程計(jì)的方案、基于視覺
    的頭像 發(fā)表于 04-19 10:17 ?2103次閱讀

    介紹一種新的全景視覺里程計(jì)框架PVO

    論文提出了PVO,這是一種新的全景視覺里程計(jì)框架,用于實(shí)現(xiàn)場(chǎng)景運(yùn)動(dòng)、幾何和全景分割信息的更全面建模。
    的頭像 發(fā)表于 05-09 16:51 ?1982次閱讀
    介紹一種新的全景<b class='flag-5'>視覺</b><b class='flag-5'>里程計(jì)</b>框架PVO

    在城市地區(qū)使用低等級(jí)IMU的單目視覺慣性車輪里程計(jì)

    受簡(jiǎn)化慣性傳感器系統(tǒng)(RISS)[23]的啟發(fā),我們開發(fā)了視覺慣性車輪里程計(jì)(VIWO)。具體而言,我們將MSCKF中的系統(tǒng)模型重新設(shè)計(jì)為3DRISS,而不是INS,使用
    的頭像 發(fā)表于 06-06 14:30 ?1793次閱讀
    在城市地區(qū)使用低等級(jí)IMU的單目<b class='flag-5'>視覺</b><b class='flag-5'>慣性</b>車輪<b class='flag-5'>里程計(jì)</b>

    基于旋轉(zhuǎn)平移解耦框架的視覺慣性初始化方法

    精確和魯棒的初始化對(duì)于視覺慣性里程計(jì)(VIO)至關(guān)重要,因?yàn)椴涣嫉某跏蓟瘯?huì)嚴(yán)重降低姿態(tài)精度。
    的頭像 發(fā)表于 11-01 10:16 ?566次閱讀
    基于旋轉(zhuǎn)平移解耦框架的<b class='flag-5'>視覺</b><b class='flag-5'>慣性</b>初始化方法

    用于任意排列多相機(jī)的通用視覺里程計(jì)系統(tǒng)

    如何讓多相機(jī)視覺SLAM系統(tǒng)更易于部署且對(duì)環(huán)境更具魯棒性?本文提出了一種適用于任意排列多相機(jī)的通用視覺里程計(jì)系統(tǒng)。在KITTI-360和MultiCamData數(shù)據(jù)集上驗(yàn)證了該方法對(duì)于
    的頭像 發(fā)表于 12-13 11:22 ?442次閱讀
    用于任意排列多相機(jī)的通用<b class='flag-5'>視覺</b><b class='flag-5'>里程計(jì)</b>系統(tǒng)