<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 基于LOAM框架的激光SLAM開(kāi)源程序匯總

基于LOAM框架的激光SLAM開(kāi)源程序匯總

發(fā)布人:計算機視覺(jué)工坊 時(shí)間:2021-07-11 來(lái)源:工程師 發(fā)布文章

1 前言

LOAM, 即Lidar Odometry and Mapping,是 Ji Zhang 博士于2014年提出的使用激光雷達完成定位與三維建圖的算法。其算法流程如下:

1.png

LOAM算法中主要包含兩個(gè)模塊,一個(gè)是Lidar Odometry:基于輸入點(diǎn)云提取出角點(diǎn)與平面點(diǎn)作為特征點(diǎn)進(jìn)行關(guān)聯(lián)匹配,計算出兩次掃描之間的位姿變換,計算頻率為10HZ;

為了減緩單幀點(diǎn)云位姿變換產(chǎn)生的累計誤差,設計了Lidar Mapping 的部分。即將與前一幀配準后的點(diǎn)云與生成的地圖進(jìn)行二次配準,消除漂移。

由于作者編寫(xiě)的LOAM代碼已經(jīng)閉源,目前網(wǎng)上存在著(zhù)一些代碼的復現版本,本文對這些復現版本進(jìn)行了匯總,并概括說(shuō)明了各個(gè)版本代碼的特點(diǎn),供正在學(xué)習LOAM相關(guān)算法的同學(xué)進(jìn)行參考。

2 基于LOAM框架的開(kāi)源激光SLAM算法

(1) loam_velodyne

代碼鏈接如下:

laboshinl/loam_velodyne: Laser Odometry and Mapping (Loam) is a realtime method for state estimation and mapping using a 3D lidar. (github.com):https://github.com/laboshinl/loam_velodyne

該代碼程序為按照LOAM論文復現的原生代碼,特點(diǎn)是 基于ROS框架,可直接適用于velodyne-16線(xiàn)激光雷達的建圖。對于想學(xué)習ROS使用的同學(xué),可以從中了解到如何利用ROS進(jìn)行消息的接收與發(fā)布,如何通過(guò)ROS中的tf完成坐標系之間的轉換。

算法中涉及到的數學(xué)公式如非線(xiàn)性?xún)?yōu)化,并未采用已有的開(kāi)源庫,而是手工一步步推導,需要一定數學(xué)基礎理解代碼。,但通過(guò)代碼的學(xué)習可以加深對公式的理解。

對于上述代碼,網(wǎng)上也存在含有中文注釋的版本,代碼鏈接如下:

cuitaixiang/LOAM_NOTED: loam code noted in Chinese(loam中文注解版) (github.com):https://github.com/cuitaixiang/LOAM_NOTED

(2) A-LOAM

代碼鏈接如下:

HKUST-Aerial-Robotics/A-LOAM: Advanced implementation of LOAM (github.com):https://github.com/HKUST-Aerial-Robotics/A-LOAM

利用了Ceres庫提供的非線(xiàn)性?xún)?yōu)化函數,完成了L-M算法中雅克比的推導,去除了IMU數據的引入。整體代碼更加規范整潔,非常適合學(xué)習LOAM思想,也適合新手入門(mén)3D激光SLAM。

(3)oh_my_loam

代碼鏈接如下:

feixyz10/oh_my_loam: ROS-free implementation of LOAM (github.com):https://github.com/feixyz10/oh_my_loam

脫離了ROS環(huán)境實(shí)現了LOAM,數據通過(guò)函數參數進(jìn)行傳入傳出,整體代碼設計十分整潔,適合想要搭建屬于自己的激光SLAM程序的同學(xué)進(jìn)行借鑒。

(4) loam_livox

代碼鏈接如下:

hku-mars/loam_livox: A robust LiDAR Odometry and Mapping (LOAM) package for Livox-LiDAR (github.com):https://github.com/hku-mars/loam_livox

利用livox固態(tài)激光雷達,基于LOAM的思想,設計出的算法。因此同樣地,基于livox數據進(jìn)行了特征點(diǎn)提取,特征點(diǎn)的匹配和殘差計算與LOAM一致。同時(shí)利用Ceres庫優(yōu)化了殘差。

(5) LEGO-LOAM

代碼鏈接如下:

irapkaist/SC-LeGO-LOAM: LiDAR SLAM: Scan Context + LeGO-LOAM (github.com):https://github.com/irapkaist/SC-LeGO-LOAM

在LOAM的基礎上,做了很大的優(yōu)化。其算法流程為:

2.png

整個(gè)算法分為五個(gè)模塊。首先對單幀點(diǎn)云進(jìn)行Segmentation:將其投影為一副1800*16的圖像上,每一個(gè)收到的點(diǎn)代表一個(gè)像素。提取出地面點(diǎn)聚類(lèi),并將非地面點(diǎn)分組為多個(gè)聚類(lèi),每個(gè)聚類(lèi)的點(diǎn)云具有一致的標簽。

與LOAM近似的方式提取出角點(diǎn)和平面點(diǎn)。在Lidar Odometry的環(huán)節中,選取具有一致標簽的點(diǎn)云進(jìn)行匹配。例如平面點(diǎn)只考慮標記為地面點(diǎn)的點(diǎn),邊緣點(diǎn)只考慮其他標記大物體的點(diǎn),以此提升匹配速度。采用兩步L-M優(yōu)化得到前后幀點(diǎn)云的位姿變換。通過(guò)配準平面點(diǎn)得到[tz, roll, pitch], 通過(guò)配準角點(diǎn)來(lái)估計[tx, ty, yaw]。在Lidar Mapping 環(huán)節,將特征點(diǎn)與周?chē)c(diǎn)云圖配準,同時(shí)增添了圖優(yōu)化和回環(huán)檢測,進(jìn)一步優(yōu)化位姿變換,減少漂移。

相應的,網(wǎng)上也存在著(zhù)其中文注釋版本

wykxwyc/LeGO-LOAM_NOTED: LeGO-LOAM代碼注釋與學(xué)習 (github.com):https://github.com/wykxwyc/LeGO-LOAM_NOTED

(6) SC-LEGO-LOAM

代碼鏈接如下:

irapkaist/SC-LeGO-LOAM: LiDAR SLAM: Scan Context + LeGO-LOAM (github.com):https://github.com/irapkaist/SC-LeGO-LOAM

SC-LEGO-LOAM 融合了ScanContext 與 LEGO-LOAM,其中ScanContext是一種點(diǎn)云數據的全局描述符,其提取方法如下:

3.jpg

由于回環(huán)檢測(場(chǎng)景識別)= 場(chǎng)景描述 + 搜索, Scan context 的作用是作為描述符來(lái)描述點(diǎn)云數據,其搜索算法可以保證回環(huán)能夠被快速檢測出來(lái)。因此將ScanContext應用到LEGO-LOAM的回環(huán)檢測部分,提高回環(huán)的速度和準確性。

3 一些學(xué)習建議

對于初學(xué)者而言,為了掌握LOAM的框架算法,可以在閱讀論文了解原理后,優(yōu)先對A-LOAM代碼進(jìn)行閱讀和理解,快速掌握算法實(shí)現的流程。在熟悉LOAM算法框架后,工程實(shí)踐中,LEGO-LOAM在自動(dòng)駕駛領(lǐng)域的建圖中應用較多,因此可以重點(diǎn)對LEGO-LOAM進(jìn)行學(xué)習,并再此基礎上提出自己的改進(jìn)并進(jìn)行實(shí)驗。

*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: 激光雷達

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>