一種視覺慣性+鐳射感測器的SLAM系統
一種視覺慣性+鐳射感測器的SLAM系統
這篇部落格
這篇論文“Robust High Accuracy Visual-Inertial-Laser SLAM System”發表於2019年的 IROS 會議上。它提出了一個融合了相機、慣性元件、鐳射這三種感測器的系統。通過不同感測器之間的互補作用,該系統,較之於視覺慣性系統和鐳射系統,具有更好的魯棒性。
論文摘要
純視覺SLAM在光照變化明顯、紋理較少的環境中容易跟蹤丟失,因此研究者將慣性測量元件(IMU)加入到視覺SLAM中,組成 VI-SLAM (視覺慣性SLAM)。但作者發現, IMU 只能在短期內解決純視覺SLAM 所面對的問題,如果機器長期工作在光照變化明顯、紋理缺失的環境中,系統仍會跟蹤丟失(因為IMU的偏差是隨機變化的,長時間不修正會直接影響位姿估計)。此外,作者還指出了鐳射SLAM的不足:在結構性特徵缺失的環境中((比如在走廊))會跟蹤丟失。所以作者將視覺慣性、鐳射兩類SLAM相結合,搭建了基於三種感測器工作的更加魯棒的系統。該系統可大致分為視覺慣性和鐳射兩大位姿估計模組。它先通過視覺慣性模組估計出位姿的初值,再根據鐳射掃描的結果完成位姿的優化。兩個模組可以來聯合工作,也可以各自獨立工作。這也是該系統魯棒的原因:當一個模組跟丟了,系統也可以只通過剩餘模組完成定位和建圖。
一些假設和標註
1、假設相機內參
K
K
K已知,同時三個感測器(相機、IMU、鐳射)之間的外參矩陣(相對位姿變換關係)也已知;
2、預設這三個感測器在時間上是同步的!!(這點很重要);
3、三個感測器都有各自的座標系,依次記為相機:
C
C
C,IMU:
I
I
I,鐳射:
L
L
L。此外將世界座標系記為
W
W
W 。在初始化後,將
L
L
L 座標系作為主要觀測座標系(系統主要記錄3D點在
L
L
L 上的座標);
4、使用
S
i
S_{i}
Si 表示
i
i
i 時刻的某個座標系。並用
T
b
a
T^{a}_{b}
Tba 表示從 b 到 a 的位姿變換矩陣;
5、用
X
j
S
X^{S}_{j}
XjS 表示地圖點
j
j
j 在
S
S
S 座標系上的三維齊次座標;
6、為了方便,下文用 VI 代表 “視覺慣性” 。
系統總覽
系統先通過一個緊耦合的 VI 方法估計位姿,再通過鐳射掃描的結果來優化該估計值,最後再完成建圖。整個過程的框圖如下所示:
下面介紹每個模組。
VI 里程計
該系統的 VI 前端是基於 VINS-Mono 系統實現的,主要細節可檢視 VINS-Mono 的論文。
掃描匹配(scan matching)優化
(這部分主要涉及鐳射定位,主要是 LOAM系統中的知識)掃描匹配(scan matching)模組的工作流程框圖如下所示:
鐳射雷達會連續檢測到地圖點,並獲得其在對應時刻
L
t
i
L_{t_{i}}
Lti 座標系下的座標。以第
k
k
k 次鐳射掃描為例, 記
t
k
t_{k}
tk 為這次掃描的開始時間,
t
k
+
1
t_{k+1}
tk+1 為結束時間。令
P
k
~
\widetilde{P_{k}}
Pk
為第
k
k
k 次掃描過程中檢測到的所有 3D 點的集合。因為所有感測器是時間同步的,同時
t
k
t_{k}
tk、
t
k
+
1
t_{k+1}
tk+1 時刻機器的位姿已由 VI 里程計估計出,所以可通過 IMU 與鐳射感測器間的外參矩陣估計出
L
k
L_{k}
Lk、
L
k
+
1
L_{k+1}
Lk+1 間的位姿關係,如下式:
式中
T
I
L
T^{L}_{I}
TIL 是 IMU 與鐳射感測器間的外參矩陣,
T
I
k
+
1
I
k
~
\widetilde{T^{I_{k}}_{I_{k+1}}}
TIk+1Ik
是 VI 里程計估計的結果。
此時要引入一個假設:在 t k t_{k} tk、 t k + 1 t_{k+1} tk+1間,機器以恆定的速度運動。此假設使得我們能通過線性插值的方法獲得 t i ∈ [ t k , t k + 1 ] t_{i}\in [t_{k},t_{k+1}] ti∈[tk,tk+1] 時刻, L i L_{i} Li 與 L k L_{k} Lk間的位姿關係,如下所示:
通過上式計算的位姿,可以將任意
t
i
t_{i}
ti 時刻檢測到的點都轉換到
L
k
+
1
L_{k+1}
Lk+1 座標系上表示:
此時,將轉換後所有在
L
k
+
1
L_{k+1}
Lk+1 座標系中的點的集合記為
P
k
{P_{k}}
Pk。
根據
P
k
P_{k}
Pk 中各點區域性表面的平滑程度,決定某點屬於邊緣特徵點或平面特徵點。將提取出來的特徵點的集合記為
F
k
F_{k}
Fk 。此時,再根據已經通過優化得出的
L
k
L_{k}
Lk 與世界座標系的相對位姿結果
T
L
k
W
T^{W}_{L_{k}}
TLkW 和 公式 (1) ,推出
L
k
+
1
L_{k+1}
Lk+1 與世界座標系之間的相對位姿估計值
T
L
k
+
1
W
~
\widetilde{T^{W}_{L_{k+1}}}
TLk+1W
:
通過 公式(4) 求得的
T
L
k
+
1
W
~
\widetilde{T^{W}_{L_{k+1}}}
TLk+1W
將
F
k
F_{k}
Fk 包含的所有特徵點都投影到世界座標系中,併為它們在已構建好的地圖中尋找相匹配的線邊緣、平面塊等結構特徵(由此就建立了
L
k
+
1
L_{k+1}
Lk+1 與地圖的聯絡。根據這個聯絡就能構建出圖優化的邊)。然後計算
F
k
F_{k}
Fk 中特徵點到相匹配的線邊緣或平面塊的距離
d
d
d 。這個過程可以用下面的函式
f
f
f 表示:
(PS:特徵點尋找匹配的邊緣線和平面塊的方法,以及距離的計算方法可在 “LOAM: Lidar odometry and mapping in real time” 論文中檢視)
將所有
d
i
d_{i}
di 相加,即為需要優化的變數:
由此,鐳射的掃描匹配(scan matching)的結果建模出了一個非線性優化問題。通過牛頓梯度下降的方法使
d
d
d 的值趨近於 0 (因為理論上特徵點到與其匹配的線或面的距離應該為 0)。如果結果能夠收斂,則能獲得一個關於鐳射感測器的優化後位姿:
T
L
k
+
1
W
T^{W}_{L_{k+1}}
TLk+1W。最後通過
T
L
k
+
1
W
T^{W}_{L_{k+1}}
TLk+1W 將第
k
k
k 次鐳射掃描獲得的點雲圖轉換到世界座標系中,更新地圖。
(個人想法:從系統的流程可以看出,系統對於 VI 模組和鐳射掃描匹配模組採用的是鬆耦合的方式(先 VI 估計再掃描匹配優化)。因此鐳射模組優化的效果比較依賴於 VI 的估計初值。這或許能通過緊耦合的方式來改善,但會提高系統的複雜度且降低各模組的靈活性)
提高系統魯棒性的措施
如最初在摘要中所說的,視覺慣性SLAM 和鐳射SLAM 在某些環境下都會存在跟蹤丟失的風險。所以作者構建的這個系統主要是由兩個獨立性較強的模組(VI 位姿估計模組和鐳射掃描匹配模組)組成的。在某個模組失效後,另一個能夠獨立工作,以保證系統的正常執行。這就是該系統具有較高魯棒性的原因。
根據系統工作時所使用的模組的不同,可分成以下三種工作模式:
(1)正常工作模式:
此時 VI 和鐳射 模組都正常工作,系統按照前幾節描述的流程完成定位和建圖;
(2)scan to scan matching 工作模式:
此時 VI 模組跟蹤丟失,啟動 “兩次鐳射掃描間的匹配(scan to scan matching)” 定位模組(自己取的名字,見笑見笑)。這個模組是基於 LOAM 系統構造的,它的大致工作過程和上一小節中的 “掃描匹配(scan matching)優化” 相似,只是這裡估計的是
L
k
L_{k}
Lk 和
L
k
−
1
L_{k-1}
Lk−1 之間的位姿
T
L
k
−
1
L
k
T^{L_{k}}_{L_{k-1}}
TLk−1Lk ,而不是
T
L
k
W
T^{W}_{L_{k}}
TLkW。此模式下系統的工作流程圖如下所示:
(PS:當發生以下幾種情況時,系統會認定 VI 模組失效:當前跟蹤到的特徵點很少、IMU 偏差變化較大、VI 滑動視窗中的位姿估計值與先前估計的結果偏差較大)
(3)僅使用 VI 工作模式:
此時系統僅使用 VI 模組完成定位和建圖,流程圖如下所示:
(PS:此模式主要是在結構資訊缺失的環境中使用)
這三種工作模式使得系統能在多種不同的、難度較高的環境下繼續工作。同時,當環境條件變好後,系統仍會重新啟用之前失效的模組,變回正常的工作模式。
(疑惑:以第三個模式為例,當鐳射模組重新工作時,由 VI 模組構建的地圖作為鐳射模組的初始地圖,還是鐳射模組會重新構建新的地圖?即 VI 和鐳射模組兩者所構建的地圖是否能夠互相使用。)
閉環檢測和臨近檢測
老規矩,為了消除累積誤差,系統需要有閉環檢測的能力。因為當前系統搭載了視覺、鐳射感測器,所以它實現閉環檢測的方式有兩種:
1、基於視覺和詞袋向量的閉環檢測,也就是最經典的視覺閉環檢測方法;
2、基於鐳射雷達的臨近檢測。
作者指出,第一種方法存在一定缺點:必須觀測到相同物體,才能檢測到閉環(對機器的觀測視角有要求)。而第二種方法則沒有這個限制,因為鐳射雷達是 360° 掃描的。為了避免過多的約束和計算,某個關鍵幀( KF )在實現視覺閉環檢測後,將不再進行臨近檢測。
閉環檢測想必大家都較為了解,所以這裡主要介紹一下臨近檢測(這部分內容也是第一次看,理解不對之處望諒解和指出),它的過程圖如下:
首先在 KF 資料庫中計算各 KF 與當前關鍵幀(
K
F
c
KF_{c}
KFc)在世界座標系下的相對距離(即二者三維座標的距離)。記所有與
K
F
c
KF_{c}
KFc 距離小於
R
1
R_{1}
R1 關鍵幀的集合為
K
F
s
l
o
o
p
KFs_{loop}
KFsloop 。以
K
F
s
l
o
o
p
KFs_{loop}
KFsloop 中的一個關鍵幀(
K
F
a
KF_{a}
KFa)為例:
在
K
F
c
KF_{c}
KFc 和
K
F
a
KF_{a}
KFa 已有的估計位姿基礎上,求出兩者間的相對位姿
T
K
F
c
K
F
c
T^{KF_{c}}_{KF_{c}}
TKFcKFc ,再根據先前提到的 “兩次鐳射掃描間的匹配方法” ,優化
T
K
F
c
K
F
c
T^{KF_{c}}_{KF_{c}}
TKFcKFc 。此時如果
K
F
c
KF_{c}
KFc 和
K
F
a
KF_{a}
KFa 之間的相對距離小於
R
2
R_{2}
R2,則兩幀滿足臨近檢測要求。
(PS:每個關鍵幀包含機器的位姿、對應圖片的特徵點和從鐳射掃描中獲得的幾何特徵點資訊)
對
K
F
c
KF_{c}
KFc 和
K
F
s
l
o
o
p
KFs_{loop}
KFsloop 中每個 KFs 都進行如上操作。如果有多個 KFs 滿足臨近檢測要求,則只選擇產生時間最早的那個 KF 與
K
F
c
KF_{c}
KFc 構成閉環(因為這樣可以獲得較大的閉環,有利於消除更多的累積誤差)。此外,假設
K
F
c
KF_{c}
KFc 的編號為
k
k
k ,那麼編號為
k
−
e
,
.
.
.
,
k
−
1
k-e,...,k-1
k−e,...,k−1的 KF 不會參與臨近檢測的判定( e 的值根據經驗設定)。這樣可以降低計算量。
(個人理解:從論文的實驗結果來看,同時使用視覺閉環和臨近檢測與只使用其中之一相比,最終精度的差距不是很大。但是為了保證系統的兩個模組的獨立性,這兩個檢測方法需要要同時存在。)
全域性位姿圖優化
當完成閉環產生後,系統將執行全域性位姿圖優化。圖中 KF 作為頂點,它包含三種邊:
1、相鄰 KF 之間的連續邊,這個邊計算的是相鄰 KF 間的相對平移和旋轉變換:
2、閉環檢測邊。這個邊計算的是閉環 KF 之間的相對平移和旋轉變換,使用的是 PnP方法。
3、臨近檢測邊。和閉環邊類似,只不過採用的是 “兩次鐳射掃描間的匹配方法”。
所以,圖中頂點
i
i
i 和
j
j
j 之間的誤差可表示為:
(個人理解:式中減號左邊的項可能由 IMU 預積分獲得,因為 IMU 測量值的預積分結果可能更接近於真值)
整個優化圖中的總誤差為:
式中
A
、
B
、
C
A、B、C
A、B、C 分別對應上述 1、2、3 類邊。這個非線性優化問題通過 Ceres Solver解決。為了降低計算量,系統會限制 KF 資料庫中關鍵幀的數量。構成閉環的 KFs 會被保留,而那些與自己鄰近 KFs 距離較近的關鍵幀將被剔除。
總結
這個系統應該是多感測器融合 SLAM 中較簡單的一個實現方法。它將視覺慣性和鐳射匹配兩種位姿估計方法進行鬆耦合(先 VI 估計,再鐳射匹配優化),讓兩個不同、相對獨立的模組共同完成機器的位姿估計。這使得系統的工作流程更為清晰,降低了複雜度,同時也保證系統能夠靈活地對切換工作模式,以應對不同的環境條件。此外,系統在閉環檢測時採用的兩種不同方法,也能提高整體精度。
相關文章
- CMOS鐳射感測器GV系列
- 通用數字鐳射感測器LV-NEO系列
- 鐳射or視覺,誰將成為機器人行業主流?視覺機器人行業
- 深入瞭解基於鐳射雷達的機器人定位感測器機器人
- SCHNOKA:視覺感測器的好處視覺
- 自動駕駛感知系統路線之爭:純視覺or鐳射雷達自動駕駛視覺
- 從零開始搭二維鐳射SLAM --- 基於PL-ICP的鐳射雷達里程計SLAM
- 基於因子圖優化的鐳射IMU融合SLAM學習優化SLAM
- 視覺SLAM綜述視覺SLAM
- 基於各種感測器的空調系統監控
- 2.2 視覺SLAM 實踐:Eigen視覺SLAM
- 視覺SLAM技術綜述視覺SLAM
- 一種新的UI測試方法:視覺感知測試UI視覺
- 機器人與觸覺感測技術的碰撞,一文初探人類與機器人的觸覺感測機器人
- 淺談機器視覺系統和攝影測量視覺
- bzoj1121: [POI2008]鐳射發射器SZK
- 【機器視覺】機器人及視覺檢測系統在螺絲檢測包裝生產線上的應用視覺機器人
- 簡單明瞭,一文入門視覺SLAM視覺SLAM
- 道路病害AI視覺檢測系統AI視覺
- Flutter:嘗試擼一個具有慣性跟阻力的旋轉控制元件或用感測器控制其旋轉Flutter控制元件
- 機器人視覺引導系統機器人視覺
- 機器視覺系統的一般構架與組成視覺
- 汽車智聯網實驗二:視覺感測器標定視覺
- 機器視覺系統設計的基本結構視覺
- 視覺 SLAM 十四講-基礎數學篇視覺SLAM
- qt鐳射加工軟體開發(一)QT
- 由iphone12說說鐳射雷達 FMCW鐳射雷達iPhone
- 鐳射雷達線數 單線與多線鐳射雷達的區別
- 機器視覺(12)淺說機器視覺系統概述及其國內外的現狀視覺
- 鏡頭品牌加入,鐳射電視迎來質變?
- 谷歌的8K螢幕+3D視覺系統Starline:讓你感覺與真人在一起谷歌3D視覺
- 特斯拉依舊頭鐵堅持視覺路線,鐳射雷達會笑到最後嗎?視覺
- 機器視覺系統的典型結構之照明解析視覺
- 200幀高速採集,INDEMIND雙目視覺慣性模組助力立體視覺應用升級視覺
- 【機器視覺】基於機器視覺的工業機器人定位系統;機器視覺技術在印刷包裝行業中的應用視覺機器人行業
- 工業測量儀表儀器核心-----輻射感測控制器 RGI Barcon 21
- 感測器-雨滴感測器(雨刷)
- 「GAN優化」從動力學視角看GAN是一種什麼感覺?優化