《論文閱讀14》FAST-LIO

?一、論文

  • 研究領域:激光雷達慣性測距框架
  • 論文:FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter
  • IEEE Robotics and Automation Letters, 2021

  • 香港大學火星實驗室

  • 論文鏈接
  • 論文github

二、論文概要

2.1 主要思路

2.2 具體實現

2.3 實驗設計

三、論文全文

FAST-LIO:一個快速、魯棒的緊耦合迭代卡爾曼濾波器LiDAR慣性里程計包

  • 摘要

本文提出了一種計算效率高且魯棒的激光雷達慣性測距框架。我們融合LiDAR特征點與IMU數據使用緊耦合迭代擴展卡爾曼濾波器,以允許在發生退化的快速運動,嘈雜或混亂的環境中進行魯棒導航。為了降低大量測量的存在下的計算負荷,我們提出了一個新的公式來計算卡爾曼增益。新公式的計算量取決于狀態維而不是測量維。所提出的方法及其實現在各種室內和室外環境中進行測試。在所有測試中,我們的方法實時產生可靠的導航結果:它在四旋翼機載計算機上運行,在一次掃描中融合了1,200多個有效特征點,并在25 ms內完成iEKF步驟的所有迭代。我們的代碼在Github 開源。

  • 提出了一個新的公式來計算卡爾曼增益。新公式的計算量取決于狀態維而不是測量維
  • 所提出的方法及其實現在各種室內和室外環境中進行測試

  • INTRODUCTION

同時定位和地圖繪制(SLAM)是移動的機器人(如無人機(UAV))的基本前提。視覺(慣性)里程計(VO),例如立體式VO [1]和單目鏡VO [2,3],由于其重量輕且成本低,通常用于移動的機器人。雖然提供豐富的RGB信息,視覺解決方案缺乏直接的深度測量,并且需要大量的計算資源來重建3D環境進行軌跡規劃。此外,它們對光照條件非常敏感。光探測和測距(LiDAR)傳感器可以克服所有這些困難,但對于小型移動的機器人來說成本太高(而且體積太大)。

固態LiDAR最近成為LiDAR發展的主要趨勢,例如基于微機電系統(MEMS)掃描[4]和旋轉棱鏡[5]的那些。這些LiDAR具有非常高的成本效益(在類似于全局快門相機的成本范圍內),重量輕(可以由小型無人機攜帶),并且具有高性能(產生主動和直接的遠程和高精度的3D測量)。這些特征使得此類LiDAR對于UAV(尤其是工業UAV)是可行的,其需要獲取環境的準確3D地圖(例如,空中測繪)或可在具有嚴重照明變化的雜亂環境中操作(例如,災后搜索和檢查)。

盡管潛力巨大,但固態LiDAR給SLAM帶來了新的挑戰:

1)LiDAR測量中的特征點通常是幾何結構(例如,邊緣和平面)。當UAV在沒有強特征的雜亂環境中操作時,基于LiDAR的解決方案容易退化。當LiDAR具有較小的FoV時,這個問題更加明顯。

?2)由于沿著掃描方向的高分辨率,LiDAR掃描通常包含許多特征點(例如,幾千)。雖然這些特征點不足以在退化的情況下可靠地確定姿態,但是將如此大量的特征點緊密地融合到IMU測量需要UAV機載計算機負擔不起的巨大計算資源

3)由于LiDAR使用幾個激光器/接收器對順序地采樣點,因此掃描中的激光點總是在不同時間采樣,導致運動失真,這將顯著降低掃描配準[6]。UAV螺旋槳和馬達的恒定旋轉也將顯著的噪聲引入IMU測量。

為了使激光雷達導航可行的小型移動的機器人,如無人機,我們提出了FAST-LIO,計算效率高,魯棒的激光雷達慣性測距包。具體而言,我們的貢獻如下:

1)為了科普快速運動,嘈雜或混亂的環境,退化發生,我們采用了一個緊耦合迭代卡爾曼濾波器融合LiDAR特征點與IMU測量。我們提出了一個正式的反向傳播過程來補償運動失真;

2)為了降低大量的LiDAR特征點所造成的計算負荷,我們提出了一個新的公式計算卡爾曼增益,并證明其等價于傳統的卡爾曼增益公式。新公式的計算復雜度取決于狀態維度而不是測量維度。

3)我們實現我們的配方到一個快速和強大的LiDAR慣性里程計軟件包。該系統能夠在小型四旋翼機載計算機上運行。

4)我們在各種室內和室外環境中進行實驗,并進行實際的無人機飛行測試(圖1)。1)驗證系統在快速運動或強烈振動噪聲存在時的魯棒性。

其余文件組織如下:在第節中。

第二部分,討論了相關的研究工作。

第三部分,我們在第節中給予了完整的系統管道和每個關鍵組件的詳細信息。

第四,實驗

第五部分是結論

  • RELATED WORKS

關于LiDAR SLAM的現有工作是廣泛的。在這里,我們將我們的評論限制在最相關的作品上:僅LiDAR測距和映射,松耦合和緊耦合LiDAR慣性融合方法。

?A. LiDAR Odometry and Mapping

Besl等人[6]提出了一種用于掃描配準迭代最近點(ICP)方法,該方法為LiDAR測距法奠定了基礎。ICP對于密集3D掃描表現良好。然而,對于稀疏點云的激光雷達測量,ICP所需的精確點匹配很少存在。為了科普這個問題,Segal et al.[7]提出了一種基于點到平面距離的廣義ICP。然后Zhang et al.[8]將這種ICP方法與點到邊緣距離相結合,并開發了LiDAR測距和映射(LOAM)框架。此后,開發了許多LOAM變體,例如LeGO-LOAM [9]和LOAM-Livox [10]。雖然這些方法適用于結構化環境和大FoV的LiDAR,但它們非常容易受到無特征環境或小FoV LiDAR的影響[10]。

FOV雷達是指視場角(Field of View)雷達,是一種用于探測目標的雷達系統。視場角是指雷達波束所能夠覆蓋到的區域大小,通常以角度來衡量。FOV雷達可以通過改變天線的位置和方向來控制其視場角,從而實現對特定區域的探測。

B. Loosely-coupled LiDAR-Inertial Odometry

IMU測量通常用于減輕無特征環境中的LiDAR退化問題。松散耦合的LiDAR-慣性測距(LIO)方法通常分別處理LiDAR和IMU測量結果,并在稍后融合它們的結果。例如,IMU輔助LOAM [8]將從IMU測量積分的姿態作為LiDAR掃描配準的初始估計。Zhen等人[11]使用誤差狀態EKF融合IMU測量結果和LiDAR測量結果的高斯粒子濾波器輸出。Balazadegan等人[12]添加IMU重力模型以估計6-DOF自我運動,以輔助LiDAR掃描配準。Zuo等人[13]使用多狀態約束卡爾曼濾波器(MSCKF)將掃描配準結果與IMU和視覺測量融合。松耦合方法的常見過程是通過配準新的掃描來獲得姿態測量,然后將姿態測量與IMU測量融合。掃描配準和數據融合之間的分離減少了計算負荷。然而,它忽略了系統的其他狀態(例如,速度)和新掃描的姿態。此外,在無特征環境的情況下,掃描配準可能在某些方向上退化,并且在后期階段導致不可靠的融合。

C. Tightly-coupled LiDAR-Inertial Odometry

與松耦合方法不同,緊耦合LiDAR-慣性測距方法通常將LiDAR的原始特征點(而不是掃描配準結果)與IMU數據融合。緊密耦合LIO有兩種主要方法:基于優化和基于過濾器。日內瓦等人[14]使用具有IMU預積分約束[15]和平面約束的圖形優化。最近,Ye et al.[17]提出了LIOM包,它使用類似的圖形優化,但基于邊緣和平面特征。對于基于濾波器的方法,Bry [18]使用高斯粒子濾波器(GPF)來融合IMU和平面2D LiDAR的數據。這種方法也被用于Boston Dynamics Atlas人形機器人。由于粒子濾波器的計算復雜度隨著特征點的數量和系統維度的增加而快速增長,因此卡爾曼濾波器及其變體通常更受歡迎,例如擴展卡爾曼濾波器[19],無跡卡爾曼濾波器[20]和迭代卡爾曼濾波器[21]。

我們的方法屬于緊密耦合方法。我們采用類似于[21]的迭代擴展卡爾曼濾波器來減輕線性化誤差。卡爾曼濾波器(及其變體)的時間復雜度為O (m^2),其中m是測量維度[22],當處理大量LiDAR測量時,這可能導致非常高的計算負載。樸素的下采樣將減少測量的數量,但以信息丟失為代價。[21]通過提取和擬合類似于[9]的地平面,減少了測量次數。然而,這不適用于地平面不總是存在的空中應用。

  • 緊密耦合方法
  • 采用類似于[21]的迭代擴展卡爾曼濾波器來減輕線性化誤差
  • 卡爾曼濾波器(及其變體)的時間復雜度為O (m^2),其中m是測量維度

  • METHODOLOGY

框架概述

本文將使用表I所示的符號。我們的工作流程概述如圖2.

LiDAR輸入被饋送到特征提取模塊中以獲得平面和邊緣特征。然后,提取的特征和IMU測量值被饋送到我們的狀態估計模塊中,以10Hz?50Hz進行狀態估計。然后,估計的姿勢將特征點配準到全局幀,并將它們與迄今為止構建的特征點圖合并。更新后的地圖最終用于在下一步驟中配準另外的新點。

1、LiDAR輸入被送到特征提取模塊中以獲得平面和邊緣特征;

  • lidar input --> 點積累 --> 特征提取 --> planar and edge?

2、提取的特征和IMU測量值被送到狀態估計模塊中,以10Hz?50Hz進行狀態估計;

3、估計的姿勢將特征點配準到全局幀,并將它們與迄今為止構建的特征點圖合并;

4、更新后的地圖最終用于在下一步驟中配準另外的新點。

System Description

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42333.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42333.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42333.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode49.字母異味詞分組

我一開始的思路就是用1個hashmap<Integer,List<String>>,Integer存的的是字符串所有字母ASCLL值的和&#xff0c;List里面放異位字符串&#xff0c;但是不是異位的字符串的ascll值也可能相同比如acd和abe&#xff0c;所以這個hashmap只能降低一點時間復雜度我還是要…

Vue--》打造個性化醫療服務的醫院預約系統(六)

今天開始使用 vue3 + ts 搭建一個醫院預約系統的前臺頁面,因為文章會將項目的每一個地方代碼的書寫都會講解到,所以本項目會分成好幾篇文章進行講解,我會在最后一篇文章中會將項目代碼開源到我的GithHub上,大家可以自行去進行下載運行,希望本文章對有幫助的朋友們能多多關…

Web APIs 第六天

正則表達式介紹語法元字符修飾符 一.正則表達式介紹 ① 簡介 用來匹配字符串中字符組合的模式在JavaScript中&#xff0c;正則表達式也是對象通常用來查找&#xff0c;替換那些符合正則表達式的文本&#xff0c;許多語言都支持正則表達式 ② 使用場景 驗證表單&#xff1a…

算法通關村第4關【白銀】| 棧的經典算法問題

1.括號匹配問題 思路&#xff1a;將左括號壓入棧中&#xff0c;遍歷字符串&#xff0c;當遇到右括號就出棧&#xff0c;判斷是否是匹配的一對&#xff0c;不是就返回false&#xff08;因為按照順序所以當遇到右括號出棧一定要是匹配的&#xff09;。使用Map來簡化ifelse clas…

編寫一套工具庫并上傳NPM

你的 工具箱 開箱即可用的 directive\utils&#xff0c; 說明&#xff1a;vue3-directive-tools 是一個方便在 Vue 3 Ts 項目中快速使用的 directive、tool 的 npm 插件。它允許您輕松地在項目中添加多種功能&#xff0c;它采用 Ts 方式開發&#xff0c;與 Vue3 更加搭配 npm&…

系統架構設計師---2017年上午試題1答案詳解

2017年上午試題1答案詳解 某計算機系統采用5級流水線結構執行指令,設每條指令的執行由取指令(2?t)、分析指令(1?t)、取操作數(3?t)、運算(1?t)和寫回結果(2?t)組成,并分別用5個子部完成,該流水線的最大吞吐率為(1);若連續向流水線輸入10條指令,則該流水線的加速比為(…

問道管理:放量打拐什么意思?常見的放量打拐三種形態?

成交量一直是股票交易中比較重要的目標&#xff0c;那么&#xff0c;放量打拐是什么意思&#xff1f;常見的放量打拐三種形狀是什么&#xff1f;下面問道管理為我們預備了相關內容&#xff0c;以供參閱。 放量打拐什么意思&#xff1f; 放量是指股票成交量與前幾個交易日比較顯…

安裝和配置 Ansible

安裝和配置 Ansible 按照下方所述&#xff0c;在控制節點 control.area12.example.com 上安裝和配置 Ansible&#xff1a; 安裝所需的軟件包 創建名為 /home/curtis/ansible/inventory 的靜態清單文件&#xff0c;以滿足以下要求&#xff1a; node1 是 dev 主機組的成員 node2 …

openGauss學習筆記-43 openGauss 高級數據管理-事件觸發器

文章目錄 openGauss學習筆記-43 openGauss 高級數據管理-事件觸發器43.1 語法格式43.2 參數說明43.3 示例 openGauss學習筆記-43 openGauss 高級數據管理-事件觸發器 觸發器會在指定的ddl事件發生時自動執行函數。目前事件觸發器僅在PG兼容模式下可用。 43.1 語法格式 創建事…

獨家!網絡機頂盒哪個好?測評員深度對比盤點網絡機頂盒排名

網絡機頂盒稱得上是家家戶戶必備&#xff0c;每年我都會進行網絡機頂盒的測評&#xff0c;今年已經測評過十幾款了&#xff0c;后臺收到很多私信不知道網絡機頂盒哪個好&#xff0c;我本期整理了網絡機頂盒排名&#xff0c;大家在選購時可以參考&#xff1a; ◆泰捷WEBOX 60Pro…

測試開發面試心得

百度測試開發實習生面試心得&#xff1a; 電話面試&#xff1a; 面試官&#xff1a;首先做一下自我介紹吧 我&#xff1a;我是***&#xff0c;來自什么大學&#xff0c;現在大三&#xff0c;在學校期間擔任過部長&#xff0c;副主席等職務&#xff0c; 組織舉辦了很多比賽&…

Keepalived + Nginx 實現高可用

一、簡介 浮動IP、漂移IP地址又叫做VIP&#xff0c;也就是虛擬IP。 Keepalived 是一種高性能的服務器高可用或熱備解決方案。 Keepalived 可以用來防止服務器單點故障的發生&#xff0c;通過配合 Nginx 可以實現 web 前端服務的高可用。 Keepalived 以 VRRP 協議為實現基礎&a…

使用 spaCy 增強 NLP 管道

介紹 spaCy 是一個用于自然語言處理 (NLP) 的 Python 庫。SpaCy 的 NLP 管道是免費且開源的。開發人員使用它來創建信息提取和自然語言理解系統,例如 Cython。使用該工具進行生產,擁有簡潔且用戶友好的 API。 如果您處理大量文本,您會想了解更多相關信息。例如,它是關于什…

HOT99-下一個排列

leetcode原題鏈接&#xff1a;下一個排列 題目描述 整數數組的一個 排列 就是將其所有成員以序列或線性順序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下這些都可以視作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整數數組的 下一個排列 是指其…

【C++】模板template

&#x1f525;&#x1f525; 歡迎來到小林的博客&#xff01;&#xff01; ??????&#x1f6f0;?博客主頁&#xff1a;??林 子 ??????&#x1f6f0;?博客專欄&#xff1a;?? C ??????&#x1f6f0;?社區 :?? 進步學堂 ??????&#x1f6f0;?歡…

Django之定時任務--apscheduler

Django--定時任務apscheduler的使用 apscheduler定時任務的使用1、安裝包2、配置settings.py3、在manage.py的文件同級目錄下創建文件scheduler.py4、在項目的urls.py中調用這個定時計劃5、然后啟動項目 python manage.py runserver,在admin中查看就能看到你的定時任務及執行的…

機器學習算法之-邏輯回歸(1)

什么是回歸 回歸樹&#xff0c;隨機森林的回歸&#xff0c;無一例外他們都是區別于分類算法們&#xff0c;用來處理和預測連續型標簽的算法。然而邏輯回歸&#xff0c;是一種名為“回歸”的線性分類器&#xff0c;其本質是由線性回歸變化而來的&#xff0c;一種廣泛使用于分類問…

Vue 引入 Element-UI 組件庫

Element-UI 官網地址&#xff1a;https://element.eleme.cn/#/zh-CN 完整引入&#xff1a;會將全部組件打包到項目中&#xff0c;導致項目過大&#xff0c;首次加載時間過長。 下載 Element-UI 一、打開項目&#xff0c;安裝 Element-UI 組件庫。 使用命令&#xff1a; npm …

ArcGIS Maps SDK for JavaScript系列之二:認識Map和MapView

目錄 Map創建一個 Map 對象的示例代碼&#xff1a;Map的常用屬性Map的常用方法 MapViewMapView的常用屬性MapView的常用方法 在 ArcGIS Maps SDK for JavaScript 中&#xff0c;Map 和 MapView 是兩個重要的概念&#xff0c;用于創建和展示地圖應用程序。 Map Map 表示一個地圖…

【Rust】Rust學習 第十三章Rust 中的函數式語言功能:迭代器與閉包

Rust 的設計靈感來源于很多現存的語言和技術。其中一個顯著的影響就是 函數式編程&#xff08;functional programming&#xff09;。函數式編程風格通常包含將函數作為參數值或其他函數的返回值、將函數賦值給變量以供之后執行等等。 更具體的&#xff0c;我們將要涉及&#…