天天看點

國内外LiDAR SLAM實驗室總結☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

知乎上有一個關于視覺的SLAM實驗室以及20年前的視覺SLAM開源算法的彙總SLAM 領域國内外優秀實驗室彙總,非常詳細,但是偏視覺一點,本文主要關注LiDAR SLAM。

這篇文章一開始是非常簡短的,單純的介紹了我認為十分重要、開源且值得花時間去讀源碼的LIO工作,但是仔細一想,這本身就是一個不符合邏輯的事。已經對LIO有一定了解的人肯定已經知道了這些工作,而對于剛入門的來說,最重要的先建立一個宏觀的概念,對國内外所有的工作有一個自己的了解,推公式、看代碼是後來的事。

實際上不論是知乎還是CSDN,github,油管,b站還是微信公衆号,随着現在資訊接觸的越來越多,大量備援的資訊也讓人的精力無法集中。在本文中,我會把那些必看的工作以及源碼着重強調,對于其他,正如上文所說,隻是單純讓你有個宏觀的了解,如果某部分工作讓你找到了靈感或者感興趣,再去深入了解也不遲。

食用方法

本部分僅是我對新手入門的一個建議。對于以下github的連結,直接點進去先follow一下再說,做到 哦~,這個實驗室出名的工作是這個啊就行了。實際上目前最先接觸到某個最新的工作進展一般都是github,建議養成每天打開電腦的第一件事就是去重新整理一下github的習慣,也可以把github的daily update打開,每天随機看看相關進展。再次強調一遍,這僅是用來增加宏觀了解,不要因為一開始什麼都不懂但是又什麼都想學,最後導緻不收斂了。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

此部分為主流LIO實驗室以及軟體架構

HKU MARS

zhangfu老師的團隊涉及到的主要工作有LIO、multi-sensor-fusion、傳感器标定。主要工作有fast lio、r3live、多傳感器标定等等。他們實驗室風格較為鮮明,有自己的特色,很多工作都是基于開發的ikdtree、自适應體素、改進的疊代誤差卡爾曼濾波上演化來的。大佬的工作幾乎都開源,把SLAM已經卷上天了。推薦fastlio源碼,推薦fastlio源碼,推薦fastlio源碼,事實上fastlio1.0的代碼可能對更友好一點,2.0版本在調用ikdtree和ikfom庫後雖然顯得十分簡潔,但是想把這整個工程看懂也就很難了。loam-livox是針對livox系列設計的slam算法,如果有時間的話可以再看看吧,優先級不是很高。如果是做關于标定的工作,他們組的工作也可以關注,并且也推薦在下面連結裡面找到lidar_camera_calib讀一下源碼。另外r2live,r3live,fastlivo是目前為止運作效果T0級别的視覺雷達融合了,新手就啃融合可能還是早了一點,等看完fastlio和vins或者orbslam再來看這個吧。HKU-MARS

HKUST Aerial Robotics

qintong大佬和shenshaojie老師。主要工作:vins、aloam。他們組LIO做的不多,但是aloam也是比較經典的了,推薦aloam源碼,推薦aloam源碼,推薦aloam源碼,aloam的代碼很簡潔,把loam裡面那些迷惑的旋轉關系和位姿關于歐拉角的雅克比用eigen和ceres進行了大量的化簡,讀完這個代碼ceres的自動求導也就差不多有個了解了。

HKUST RAM Lab

liu ming老師。主要工作:lio mapping,lins,m-loam,在精力有限的情況下這些代碼可以不用看了,看看論文了解其中的思想,知道個是以然就行了。可以留意一下lio mapping源碼,lio-mapping是在vins的架構上改成了适配LiDAR的,寫的相對來說比較亂,但是可以跟floam一起當做學習ceres手動求導的方法以及SO3上點線殘差關于位姿的雅克布推導,可以留意一下lins的論文,fastlio的疊代誤差卡爾曼公式跟lins是一樣的,但是lins更加直覺。

新加坡南洋理工大學

xie lihua老師,wanghan等;主要工作:floam、intensity slam、ssl-loam、vir-slam、viral。這個實驗室做的方向比較多,有lidar、uwb、多機和回環等。這個實驗室的話主要也是看看論文,了解一下思想。推薦floam源碼,推薦floam源碼,推薦floam源碼,如果想看ceres的手動求導,floam算是最佳選擇了吧,寫的很友好,适合人類閱讀,和lio mapping搭配更佳。

MIT

TI xiaoshan大佬。fast lio沒出來之前做項目就靠這個大佬了。lego loam、lio sam、lvi-sam、還有一篇用intensity做回環的。推薦lio sam源碼,推薦liosam源碼,推薦liosam源碼,說實話lego-loam的代碼跟lio sam幾乎沒啥差別,但是論文中的思路也是有一定啟發意義的。如果可以準确的識别地面并且地面較為平整,那麼就是可以把roll、pitch和z單獨分離出來讓地面點進行限制。那舉一反三一下,就想zhangji的那篇判退化的文章一樣,如果可以準确識别機器人在目前場景哪些位姿可以限制住,那麼就用單獨一個傳感器限制部分位姿,最簡單的松耦合就是最好的方法,效果也不會差,最直覺的了解就是在空曠場景下用毫米波雷達對無人機的高度單獨限制,RTK僅限制x和y。這種限制規則是預先确定的,如果可以實時線上找到每個傳感器對位姿的限制貢獻值,那麼效果應該會很好吧(僅是猜測)。做視覺雷達融合的lvi-sam還是比較容易上手的,可以留意一下lvi-sam源碼。關于多機方面,有個可以留意一下disco slam,至于disco slam和disco的差別,那我就不是很清楚了。

CMU

zhangji loam 現在的loam是根據别人複現過來,原本的loam沒有開源了,其實對于純小白來說,看懂loam已經需要很大功夫,但是我還是推薦loam源碼,推薦loam源碼,推薦loam源碼 。但是不建議死腦筋花過多時間去把loam裡面所有的旋轉關系和位姿關于歐拉角的雅克比搞的完全明白,我覺得能把這寫全部搞懂已經不算是入門了,等後面對整個系統有了整體的認知再回來看吧,但是前端特征提取以及地圖維護那裡還是需要了解的。還有一個判退化的論文也值得一看。(On Degeneracy of Optimization-based State Estimation Problems)。另外,有一版本非常工程化的loam,可以留意一下,這版代碼,faster-lio和LIMO-velocity算是LIO裡面用的C++文法特性,最工程化的代碼了。暫時沒必要對這方面的工作投入太多精力,畢竟之前推薦的必看代碼已經夠多了,但是還是記住這幾個工作的存在吧,入門了之後看看還是能學到一些東西的。

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

此部分為值得持續關注的實驗室及相關工作,由于精力有限,這部分的代碼實在沒時間去看了,但是相關論文以及實驗室的近年進展還是有一個了解的,是以僅供大家參考。這些工作還是比較重要甚至可能比上面更值得你關注的,如果在閱讀某篇論文的時候能找到自己的idea,這個時候能回想起,好像某某實驗室做過這個工作,這樣能少走很多彎路。

SUBT challenge

這個比賽還是很出名的,一般在這個比賽拿到名次也就證明了自己的實力屬于T0了,但是可惜的是這個比賽一般都是比較工程化的,沒什麼創新,就是是找點子的話這個就沒啥用了,但是就作為一種了解來說,還是很酷的。這裡是2021SUBT冠軍的首頁,裡面CERBERUS、CSIRO Data61和CoSTAR好像出鏡率比較高。costar的LAMP剛剛開源了,其實我對這種工程化的代碼還是比較感興趣的,奈何沒時間看了,希望以後有時間可以看看吧。

特拉華大學 RPNG

huangguoquan老師;他們組做理論比較多,很多關于系統能觀性的分析的論文,恕我愚鈍,我是看不懂,如果沒有讀博的打算和踏實的數學基礎,不建議去深讀論文,或者隻需要知道他說的是個什麼概念就行了,比如一個平面對機器人的狀态産生哪些不足的限制等等。主要工作有:open vins、lic-fusion。我們實驗室之前在280軸距上的無人機用的realsense d435跑的open vins,代碼我沒看過,應該還是比較好用的吧。還有一個rvio也可以關注一下,好像也是他們組的一個代表性工作。

德國 bonn大學

主要工作:suma、suma++,如果是做語義lidar slam,這個工作可能可以了解一下,還有參考文獻中一篇imls-slam也很經典,實際上,我經常會在一些經典的論文下面去找參考文獻,有的時候一找就會找出來十幾篇覺得可能有用的,然後就會花很長時間去看,結果可能也隻能看個大概,然後就“發散了”。但是我不覺得這是浪費時間,這種浪費時間是有必要的,但是得适當,畢竟時間有限,能力有限,可以選擇一些近年來發表的論文去看,并且那種不開源的就看個大概就行了,知道個想法,然後有這個概念,說不定哪天就有靈感然後就基于這種想法有了改進。

ETH

ETH有一個開源的 MULLS,這個老哥的github天天都star,另一個就是這位。自從follow這兩位之後,我也是了解了很多之前不知道的工作,雖然了解的不深,但是正如之前所說的,我有了一個宏觀概念,這種概念是需要長時間積累才能得到的。在剛步入實驗室的時候,師兄經常會在實驗室群裡發一些連結,我對此都是很懵的狀态,完全不知道這些是什麼,但是我總是很好奇師兄為什麼知道這個工作,或者說,是怎麼發現這個工作的,如果不是師兄,我可能一直都不會知道這個工作。現在我研二下了,也能做到在群裡面分享一些我第一手知道的資訊了,無他,唯有積累。遇到CSDN、知乎那種精品回答,我就去看這個部落客的所有文章裡面有沒有别的好文章。關注了微信公衆号就會去B站找相應的部落客,刷到這種slam的視訊就點贊,就算是自己不感興趣的也點進去再退出來,讓背景算法多推薦更多相關工作。對于github和油管也是如此,每天早上打開電腦第一件事就算重新整理github和油管,前期就不停follow,不斷的去擴充自己所能接觸到的資源。

南方科技大學

這個學校目前已經有兩個開源項目了,這在中國來說,已經算是LIO裡面比較靠前的水準了,值得後續關注,第一次知道這個學校是因為camvox這個工作。代碼沒看,論文的話說實話好像沒啥讓人眼前一亮的創新點,但是就開源這一點也就足夠了,目前來說,絕大多數不敢開源的項目都是對自己的代碼不自信。By the way,JPL是實驗室的LAMP都開源了。

KIT 卡爾斯魯厄理工學院

這個學院是我在看完LILIOM這篇文章之後才知道的,目前來說,如果準備發跟livox相關的paper,能比較的和能使用公開資料集的隻有fastlio,fasterlio,liliom了吧。liosam最近好像适配livox了,但是也隻是一個簡單的讓livox可以在liosam上跑起來,然後livox mapping也有點老了,沒啥對比意義了。

MIT SPARK

MIT SPARK實驗室的kimera,語義slam似乎我隻知道suam++和kimera了,psf-lo沒開源,并且我覺得也不是很語義。另外SPARK實驗室的On-Manifold Preintegration for Real-Time Visual-Inertial Odometry在推預積分的時候是個很好的參考材料。另外objectSLAM也是一個開源的語義slam。做語義的還是視覺比較多,另外強烈建議去看一下文章開頭的那個連結,就算是做LIO的也可以看一下,擴充一下對目前國内外SLAM最近進展的了解吧。

其他

浙江大學的高飛老師做規劃比較多,SLAM用的似乎是自己魔改的vins;浙江大學的章國鋒老師偏向于做SLAM,但是我也隻是有這麼個印象。牛津大學做視覺的比較多,但是之前在油管上看過好像有個 Hilti SLAM Challenge,裡面有很多資料集,其中有幾個包看起來很有挑戰性,可以關注一下,要是參加了這個比賽,拿到了名次也就起飛了。賓夕法尼亞大學的vijay kumur團隊、德國慕尼黑工業大學、蘇黎世大學也是偏向視覺的或者規劃的。kumur有一個開源的msckf_vio,這裡面關于以疊代誤差卡爾曼濾波作為位姿更新寫的比較清晰,相對于fastlio2.0裡面IMU predict那裡要友好一點。

總結

其實上面的文字不多,工作确實夠花一段時間去了解了。對于那些不開源的工作我并沒有做太多的介紹,其他的等你看完論文和代碼,應該也有自己的主見和研究方向了吧,如果沒有不行就多讀讀論文發散發散吧(doge)。最後,我想建立一個群,目前來說我加了很多群,但是一直沒有找到一個學術氛圍十分濃厚的群,有時候一個公式或者代碼問題困擾很久想找人讨論都找不到,真的很痛苦。建群的目的是想建立一個從代碼編譯、論文閱讀、代碼了解、公式推導都可以互助的小社群。希望有大佬可以參與進來,對于大佬來說,這可能就是純粹的為愛發電了。對于已經入門的,其實在各種提問中也能鞏固自己的知識點,甚至會發現,為什麼别人問的問題我咋都不會。。。對于新手來說,建議不要遇到什麼點問題就去問,有什麼問題第一反應不是去提問,而是自己解決,解決不了問師兄師姐,然後去谷歌搜,查文獻,這個痛苦的思考過程尤為重要,這個痛苦的思考過程尤為重要,這個痛苦的思考過程尤為重要。All in all, 我隻是把我所知道的都以一種近似聊天的方式表達出來了,希望對你們有所幫助,至于群,如果真的有人看到這個部落格且看到了這裡,等湊夠了再考慮吧。Go for it!

繼續閱讀