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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

智行者提出全新基于ivox激光雷達算法

智行者科技 ? 來源:智行者科技 ? 作者:智行者科技 ? 2022-02-25 18:17 ? 次閱讀

近日,智行者高翔博士帶領的定位團隊撰寫的論文《Faster-LIO: Lightweight Tightly Coupled Lidar-inertial Odometry using Parallel Sparse Incremental Voxels》被國際公認的自動駕駛領域TOP級期刊IEEE Robotics and Automation Letters收錄刊登。

該文章主要對激光雷達算法進行了深入探討,本文提出了一種基于iVox(incremental voxels)的算法,以快速跟蹤旋轉的激光雷達-慣性里程計(LIO)方法固態(tài)激光雷達掃描。在該算法中,智行者定位團隊使用iVox作為點云空間數(shù)據(jù)結構,即從傳統(tǒng)的體素修改,支持增量插入和并行近似k-NN查詢。該算法可以有效的降低點云配準時的耗時,也不會影響LIO的精度表現(xiàn)。

干貨內(nèi)容如下:

前言

眾所周知SLAM現(xiàn)在越來越卷了。卷來卷去,大概有幾種卷的方向:

一是卷精度。然而同樣傳感器做成的數(shù)據(jù)集大體來說不會有數(shù)量級上的精度差異,大部分論文都會說在某個數(shù)據(jù)集上得到了百分之幾的精度提升,然而原因比較玄學,不好歸因,實際當中也不一定看的出來。

二是卷魯棒性。魯棒性倒是非常實在,別人跑丟了的數(shù)據(jù)我跑成功了,魯棒性自然就好。不過開源的數(shù)據(jù)集相比真實數(shù)據(jù)來說九牛一毛。開源數(shù)據(jù)集有十來個數(shù)據(jù)就顯得不錯了,實際當中往往是幾百幾千的車輛和機器人在跑,數(shù)據(jù)集那幾個包才哪到哪,能體現(xiàn)的魯棒性指標很有限。

三是卷效率。效率也是實打實能看到的。別人算100ms,我算50ms,那效率就實實在在地快了一倍。別人要工控機,我用嵌入式;別人占滿CPU,我跑一半的CPU,那整個系統(tǒng)就更流暢絲滑。而且卷效率沒那么玄學,哪哪算的快了都可以找到原因,和數(shù)據(jù)集關系也不大。這就是我們這次選擇卷效率的一個理由。

Lidar-inertial odometry (LIO)是SLAM這邊卷的還不那么厲害的方向之一。純Lidar的SLAM已經(jīng)比較穩(wěn)定了,幾個開源方案(cartographer, Loam系列)跑得也挺順,雖然大體上要慢一些。不過到了LIO,你會發(fā)現(xiàn)一些神奇的現(xiàn)象:開源的LIO大部分只能在自己的數(shù)據(jù)集上跑,換一個數(shù)據(jù)集就很容易飛或者掛。前期的方案考慮的東西太少,在后出的數(shù)據(jù)集上通常會出問題。近期的方案則相對要穩(wěn)定一些,但依然沒有純Lidar方案那么穩(wěn)定,各種指標也有一定的提升空間。

本文要談的Faster-LIO是基于FastLIO2開發(fā)的。FastLIO2是開源LIO中比較優(yōu)秀的一個,前端用了增量的kdtree(ikd-tree),后端用了迭代ESKF(IEKF),流程短,計算快。Faster-LIO則把ikd-tree替換成了iVox(后文介紹),順帶優(yōu)化了一些代碼邏輯,實現(xiàn)了更快的LIO。我們在典型的32線激光雷達中可以取得100-200Hz左右的計算頻率,在固態(tài)雷達中甚至可以達到1000-2000Hz,能夠達到FastLIO2的1.5-2倍左右的速度。當然具體數(shù)值和計算平臺相關。讀者也可以用自己的平臺測試一下Faster-LIO在你機器上的表現(xiàn)。

介紹

我們就不聊LIO在什么自動駕駛或者無人機上的應用背景之類的話題了,直接切入主題。

大體來講,LIO系統(tǒng)的整個計算流程是比較固定的:它們從IMU中得到一個粗略的估計,然后把雷達的數(shù)據(jù)與一些歷史數(shù)據(jù)做配準,最后用某種狀態(tài)估計算法進行濾波或者優(yōu)化。IMU部分的處理差別不大,所以LIO系統(tǒng)的計算效率主要與點云算法和后端算法相關,我們大致分三個方面:

點云最近鄰的數(shù)據(jù)結構。點云配準的基本問題是計算給定點與歷史點云的最近鄰,通常需要依賴一些最近鄰的數(shù)據(jù)結構。這些數(shù)據(jù)結構又大體分為樹類的(tree like)和體素類(voxel like)的。廣義的,高維的最近鄰問題是一個比較復雜的問題,但LIO里的最近鄰則是低維的、增量式的問題。于是,像R*樹、B* 樹等靜態(tài)的數(shù)據(jù)結構并不是非常適合LIO。FastLIO2里提出使用增量式的kdtree來處理最近鄰,我們則認為增量的體素更適合LIO系統(tǒng)。

點云殘差的計算方式。自動駕駛里普遍偏向不直接使用點到點的殘差,而是使用點到線或點到面的殘差。點到點的殘差形式雖然簡單,但雷達點云和RGBD點云相比,更加稀疏,在車輛運動過程中不見得都能打到同一個點,而且點云也往往會被降采樣后再進行處理,所以并不太適合在自動駕駛中使用。LOAM系列會計算點云特征,實際當中特征提取要花的時間是不可忽略的,甚至是主要計算部分。

狀態(tài)估計算法的選型。LIO和VIO中普遍會使用介于單幀EKF和批量優(yōu)化之間的方案,例如IEKF、MSCKF、Sliding Window Filter等等。這其中又以IEKF算是最簡單有效的一類,既有迭代來保證精度,又不需要像預積分系統(tǒng)那樣算一堆雅可比矩陣。

所以這樣一看,能進一步挖掘的地方主要是LIO的近鄰結構。Kd樹類結構的優(yōu)勢在于,可以嚴格地查詢K近鄰,不會多也不會少;也可以以范圍或盒子形式來查詢最近鄰(range search/box search)。查詢過程中也以設置附加條件比如最大距離,實現(xiàn)快速的近似最近鄰查找(Aproximate Nearest Neighbor, ANN)。然而傳統(tǒng)的Kd樹是不帶增量結構的。像ikd-tree這種帶增量加點的結構,雖然不用完全重新構建,但也需要花額外的時間去維護這個樹的結構。我們不禁要問:LIO里真的需要嚴格的K近鄰搜索嗎?能不能放寬一點,使用更簡單的結構?

實際上點云配準往往不需要嚴格的K近鄰。如果K近鄰找到了一個很遠的點,拿這個點過來做點面殘差也是不合理的,這部分計算就是無效的。我們不妨讓近鄰結構本身就具有這種查找范圍限制,而kd樹即使帶了范圍限制,也需要一個節(jié)點一個節(jié)點地來遍歷,這種遍歷顯然也是會耗時的。于是我們來考慮一種基于體素的近鄰結構??紤]到點云的稀疏性,我們希望體素也能夠以稀疏的形式存儲。體素具備一些天然的優(yōu)點:一是天然具有K近鄰時的范圍限制;二是增量構建的時候不需要額外的操作,刪除的時候也很方便;三是最近鄰的范圍也可預先定義,想多搜點就多搜點,想快點就少搜點,豐儉由人;四是很容易并行化或者GPU化。

于是FasterLIO使用了一種基于稀疏體素的近鄰結構iVox(incremental voxels)。我們會發(fā)現(xiàn)這種結構用來做LIO更加合適,可以有效的降低點云配準時的耗時,也不會影響LIO的精度表現(xiàn)。我們使用兩個版本的iVox:一種是線性的,一種是基于空間填充曲線的(偽希爾伯特空間曲線,pseudo-Hilbert curve, PHC),下面來說明其原理。

iVox

iVox由空間中稀疏分布的體素組成。每個體素內(nèi)部可以存在多個點,體素自身的網(wǎng)格坐標由空間哈希函數(shù)映射到哈希鍵值上,再組成哈希表。

智行者提出全新基于ivox激光雷達算法

哈希函數(shù)可以取一些典型形式。由于實際存儲的是三維點,我們使用簡單的空間哈希即可:

智行者提出全新基于ivox激光雷達算法

其中p為三維點,v為體素網(wǎng)絡,id是它的哈希鍵值,xor表示異或。

iVox內(nèi)部點的存儲方式稱為它的底層結構。最簡單的底層結構是線性的,我們稱為線性的iVox;如果要存的點很多,我們利用空間填充曲線來存,稱為iVox-PHC。當然在LIO算法流程上,我們會避免在同一個體素中大量插入點而影響計算效率,所以兩種算法實際用起來差異不大。

K近鄰的查找

iVox里的K近鄰相對簡單。我們首先定義一個體素的近鄰范圍,典型的有0,6,18,26這幾種。實際當中主要用18和26.

智行者提出全新基于ivox激光雷達算法

在查找K近鄰時,先計算被查找的點落在哪個體素中,然后看預定義的范圍內(nèi)是否存在有效的iVox。如果有,就把這些iVox內(nèi)部的點也考慮進來。我們在每個iVox內(nèi)部查找至多K個最近鄰,再進行合并即可。線性的iVox只須遍歷內(nèi)部點,然后進行部分排序,再進行匯總。PHC的iVox則可以根據(jù)空間填充曲線上的索引值來查找最近鄰。

PHC是一種建立高維數(shù)據(jù)與低維數(shù)據(jù)映射的方法。離散的PHC可以看成把空間分成許多小格子,然后給每個格子找一個id的過程。于是,在查找某個點的最近鄰時,可以先看它在這個iVox里的曲線上ID,然后在這個ID周邊找到若干個近鄰,再返回其結果即可。在點數(shù)較多時,PHC的查找會比線性查找的復雜度更低一些。

智行者提出全新基于ivox激光雷達算法

增量地圖更新

iVox的增量地圖更新比kd樹簡單很多。簡而言之,算出增加點對應的體素網(wǎng)格,直接往里添加即可。如果是PHC的,則還需要算一下PHC的曲線位置。除此之外沒有其他操作了。

在FastLIO2中,系統(tǒng)會刪除一部分歷史點云,讓局部地圖跟隨車輛前進。在iVox里,由于遍歷整個iVox局部地圖是比較慢的,我們讓這個過程變?yōu)楸粍觿h除,而不是主動地在每幀計算后進行刪除。于是我們給局部地圖添加一個LRU緩存(least recently used),在進行近鄰搜索時,記錄哪些體素是最近使用過的,那么不怎么使用的體素自然被移動到隊尾。我們會設置一個局部地圖的容量,超過最大容量時,就刪除那些很久未使用的體素。刪除操作是針對整個體素的,內(nèi)部的點會被全部刪除。這種局部地圖緩存策略也會讓局部地圖跟隨車輛運動,而實際操作的地方更少。

智行者提出全新基于ivox激光雷達算法

iVox的具體參數(shù)和復雜度等細節(jié)見論文和代碼,這里不再描述。

實驗

實驗部分主要包含仿真實驗和數(shù)據(jù)集實驗。

仿真實驗

仿真實驗是在一個隨機生成的點云里進行K近鄰查找以及新增地圖點的實驗。我們對比了Kdtree flann, ikd-tree, nanoflann R-tree, faiss-IVF, nmslib幾個庫。耗時與地圖點數(shù)的關系圖如下:

智行者提出全新基于ivox激光雷達算法

可以看到iVox在K近鄰查找和新增的耗時都是很少的,但它們隨地圖點數(shù)的增長會更快,畢竟單個iVox里的點會變多。順便說一句,PCL Kdtree的查詢速度(這里寫的flann)也是杠杠的,只是沒有增量接口

我們也比較了iVox的K近鄰質(zhì)量問題。大部分時候iVox的K近鄰不是嚴格的,因為天然的有范圍限制。我們把K近鄰的結果與暴力搜索的結果進行比對,可以得到它的召回率(recall)。各算法的召回率與時間曲線如下:

智行者提出全新基于ivox激光雷達算法

如果要求iVox有很高的召回,那就不得不設置很大的體素尺寸或者很大的搜索近鄰,這時候iVox的查找時間會增長很快。不過LIO系統(tǒng)在70%左右的召回率下就能很好地工作,所以實際也沒啥大不了的。

數(shù)據(jù)集實驗

數(shù)據(jù)集實驗主要比較整個LIO系統(tǒng)的耗時和計算精度。由于Faster-LIO框架與FastLIO2基本相同,我們時間上對標的也主要是FastLIO2,其他系統(tǒng)主要是用來做個參考。32線雷達的詳細步驟算法耗時如下圖所示:

智行者提出全新基于ivox激光雷達算法

可見主要的耗時在IEKF+ICP的迭代過程。使用iVox替代iKd-tree時,我們縮短的也主要是這個過程。UTBM數(shù)據(jù)集要明顯一些,我們可以把差不多20ms的IEKF迭代降到5-8ms左右,整個流程可以從30ms左右降到10ms左右,實現(xiàn)明顯的效率提升。

我們也繪制了時間軸上的耗時曲線,如下:

智行者提出全新基于ivox激光雷達算法

兩個版本的LIO的運算效率不會隨著時間有明顯變化,而FasterLIO要明顯用時更低一些。對LIO-SAM、LiLi-OM的一些計算用時指標可以參考論文的表格。

在精度方面,考慮到LIO默認不帶回環(huán)檢測,所以我們主要評價每百米的漂移誤差指標(百分比形式),見下表。

智行者提出全新基于ivox激光雷達算法

實際上,只要不漂,LIO精度都是差不多的,天下哪有改改算法就提升精度的事情(逃)。

iVox也可以被集成到其他LO或LIO里,但是大部分方案里,最近鄰并不是主要的計算瓶頸,gtsam/ceres什么的耗時相比最近鄰那可太多了。我們也嘗試了把iVox集成到Lego-LOAM里,發(fā)現(xiàn)主要只是省了增量地圖構建那部分時間,優(yōu)化方面沒什么變化(點少)。所以iVox與FastLIO倒是相性更好一些。

結論與聲明

本文提出了一種更快速的LIO方法,使用iVox作為最近鄰方案,在同等精度指標下可以明顯提升LIO計算速度。

我們也歡迎讀者自己測試Faster-LIO的計算性能。祝大家科研愉快。

同時,智行者還提供了開源代碼以更方便社區(qū)使用。

原文標題:頂刊收錄!智行者提出全新基于ivox激光雷達算法

文章出處:【微信公眾號:智行者科技】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

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

    關注

    23

    文章

    4592

    瀏覽量

    92538
  • 激光雷達
    +關注

    關注

    967

    文章

    3929

    瀏覽量

    189470
  • 自動駕駛
    +關注

    關注

    782

    文章

    13633

    瀏覽量

    165994

原文標題:頂刊收錄!智行者提出全新基于ivox激光雷達算法

文章出處:【微信號:idriverplus,微信公眾號:智行者科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    激光雷達在SLAM算法中的應用綜述

    SLAM算法運行的重要傳感器?;?b class='flag-5'>激光雷達的SLAM算法,對激光雷達SLAM總體框架進行介紹,詳細闡述前端里程計、后端優(yōu)化、回環(huán)檢測、地圖構建模塊的作用并總結所使用的
    的頭像 發(fā)表于 11-12 10:30 ?87次閱讀
    <b class='flag-5'>激光雷達</b>在SLAM<b class='flag-5'>算法</b>中的應用綜述

    激光雷達會傷害眼睛嗎?

    隨著激光雷達日益普及,人們開始擔憂:這種發(fā)射激光的設備,對人眼的安全性如何?了解這個問題前,我們首先需要知道激光雷達和它發(fā)射的激光,到底是什么。
    的頭像 發(fā)表于 11-07 10:47 ?134次閱讀
    <b class='flag-5'>激光雷達</b>會傷害眼睛嗎?

    激光雷達的維護與故障排查技巧

    激光雷達(LiDAR,Light Detection and Ranging)是一種利用激光進行距離測量和目標識別的技術。它廣泛應用于無人駕駛汽車、地理信息系統(tǒng)(GIS)、環(huán)境監(jiān)測、航空航天等領域
    的頭像 發(fā)表于 10-27 11:04 ?375次閱讀

    激光雷達技術的基于深度學習的進步

    一、激光雷達技術概述 激光雷達技術是一種基于激光的遙感技術,通過發(fā)射激光脈沖并接收反射回來的光來測量物體的距離和速度。與傳統(tǒng)的雷達技術相比,
    的頭像 發(fā)表于 10-27 10:57 ?264次閱讀

    光學雷達激光雷達的區(qū)別是什么

    光學雷達激光雷達是兩種不同的遙感技術,它們在原理、應用、優(yōu)缺點等方面都存在一定的差異。以下是對光學雷達激光雷達的比較: 定義和原理 光學雷達
    的頭像 發(fā)表于 08-29 17:20 ?942次閱讀

    一文看懂激光雷達

    ? ? 文章大綱 城市 NOA 成競爭高地,政策助力高階智能駕駛加速落地 成本下探+智駕升級,2030年激光雷達市場規(guī)模有望超萬億 ? ????·城市 NOA面臨工況復雜問題,激光雷達為“優(yōu)選
    的頭像 發(fā)表于 06-27 08:42 ?536次閱讀
    一文看懂<b class='flag-5'>激光雷達</b>

    硅基片上激光雷達的測距原理

    硅基光電子技術的發(fā)展可以將激光雷達系統(tǒng)發(fā)射模塊和接收模塊中分立的有源和無源器件集成在芯片上,使激光雷達體積更小、穩(wěn)定性更強、成本更低,推動激光雷達在自動駕駛等領域的應用。
    發(fā)表于 04-08 10:23 ?480次閱讀
    硅基片上<b class='flag-5'>激光雷達</b>的測距原理

    激光雷達的探測技術介紹 機載激光雷達發(fā)展歷程

    機載激光雷達是指安裝在飛行器(如飛機、直升機、無人機等)上的激光雷達系統(tǒng),用于從空中對地面或其他目標進行測量、成像和監(jiān)測。
    的頭像 發(fā)表于 03-21 16:49 ?2754次閱讀
    <b class='flag-5'>激光雷達</b>的探測技術介紹 機載<b class='flag-5'>激光雷達</b>發(fā)展歷程

    亮道智能:發(fā)布全新一代激光雷達,未來主攻固態(tài)激光雷達低價市場

    亮道智能官方透露該公司已為眾多行業(yè)客戶提供全面的激光雷達感知解決方案,包括車規(guī)級激光雷達硬件及其感知功能開發(fā)、測試驗證及數(shù)據(jù)服務。
    的頭像 發(fā)表于 03-06 15:22 ?639次閱讀

    華為激光雷達參數(shù)怎么設置

    華為激光雷達是一種常用的傳感器技術,可用于距離測量和感應。它的參數(shù)設置對于確保其性能和功能至關重要。在本文中,我們將詳細介紹華為激光雷達的參數(shù)設置以及其影響和應用。 首先,我們需要了解激光雷達
    的頭像 發(fā)表于 01-19 14:17 ?1632次閱讀

    一徑科技發(fā)布一款全新SPAD激光雷達—ZVISION EZ6

    在2024 CES上,一徑科技于1月2日發(fā)布的全新SPAD激光雷達——ZVISION EZ6,首次與公眾見面。
    的頭像 發(fā)表于 01-11 09:54 ?905次閱讀

    什么是激光雷達激光雷達的構成與分類

    所謂雷達,就是用電磁波探測目標的電子設備。激光雷達(LightDetectionAndRanging,簡稱"LiDAR"),顧名思義就是以激光來探測目標的雷達。
    的頭像 發(fā)表于 12-18 17:18 ?9367次閱讀
    什么是<b class='flag-5'>激光雷達</b>?<b class='flag-5'>激光雷達</b>的構成與分類

    激光雷達測量技術與應用

    激光雷達是一種利用激光束來探測和測量目標物體的雷達技術。它具有測量距離遠、分辨率高、速度快、抗干擾能力強等優(yōu)點,在國防、航天科技、地質(zhì)勘探、智能駕駛等領域有著廣泛的應用。 一、激光雷達
    的頭像 發(fā)表于 12-15 11:03 ?1074次閱讀

    單線激光雷達和多線激光雷達區(qū)別

    單線激光雷達和多線激光雷達區(qū)別? 單線激光雷達和多線激光雷達是兩種常用的激光雷達技術。它們在激光
    的頭像 發(fā)表于 12-07 15:48 ?4166次閱讀

    解析應用實時激光雷達全景分割的中心聚焦網(wǎng)絡

    本文提出了一種新的中心對焦網(wǎng)絡(CFNet)。具體來說,本文提出了一種中心對焦特征編碼(CFFE)模塊,它通過移動激光雷達點并填充中心點,顯式地建模了原始激光雷達點與虛擬實例中心之間的
    發(fā)表于 11-30 10:30 ?450次閱讀
    解析應用實時<b class='flag-5'>激光雷達</b>全景分割的中心聚焦網(wǎng)絡