【轉】SLAM 論文閱讀和分類整理

需要時不時膜拜一下大神,激發一下原動力!!!

前言:以前讀論文,都是靠腦子硬記,哪個實驗室,誰,哪一年在什麼會議上發了一篇關於什麼的論文。當需要回溯的時候,每篇論文能給出個大概,不具體,找起來也麻煩,以後就在這個 List 裏分類整理已經讀過的論文。之前讀的,以及後續的一些新的有意義的論文都會慢慢補充進來 (汗, 感覺會是一個非常長的 list)。

基礎知識材料
2018年, joan sola 大神, A micro Lie theory for state estimation in robotics. 系統講述李代數,非常棒。點擊可以進他的主頁,他寫過非常多的筆記材料以及代碼,ekf slam 工具箱啥的,各類筆記材料值得入門者反覆讀。科研也有非常棒的論文,TRO, IROS, ICRA 不勝枚舉,我輩楷模。
2017年, joan sola 大神, Quaternion kinematics for the error-state Kalman filter. 四元數和 error state ekf 系統百科全書,當初學 vio 就靠他入門。
2000年,book, 矩陣分析,Matrix Analysis and Applied Linear Algebra. 越到 SLAM 後期,數學基礎知識越需要。這本書是研一那會老師上矩陣分析課的教材,非常非常棒,跟 MIT 那個有得一拼。再次看到這個書名,是在預積分的參考文獻裏,SVO 那個預積分用到矩陣零空間的基等一些性質就是引用的這本書。
VIO 系統
VIO 初始化和外參數標定
該部分主要是 VIO系統中初始參數的確定,如相機尺度,系統初始速度,重力方向,imu bias,甚至相機和 imu 之間的外參數等等。

首先是閉式求解的方法,三篇論文一脈相承,Martinelli 作爲二作和一作。

2011 年 ICRA ,Closed-Form Solution for Absolute Scale Velocity Determination Combining Inertial Measurements and a Single Feature Correspondence. 閉式求解相機尺度,只需要三幀和一個特徵點。
2014 年 IJCV,closed-form solution of visual-inertial structure from motion,也是閉式求解,但是求解過程中忽略了 gyro bias 和 acc bias 的影響,因此,該方法不太實用,在實際系統中也沒被採用過(17年該作者作爲二作的一篇RAL說的)。
2017 年 RAL,Simultaneous State Initialization and Gyroscope Bias Calibration in Visual Inertial Aided Navigation,作者對上篇論文所述方法受 bias 的影響進行了分析,發現 acc bias 對系統影響不那麼大,但是 gyro bias 影響較大,所以在 14 年論文的基礎上提出了加入了標定 gyro bias 的方法。
優化迭代求解的方法

2017 年 RAL,Visual-Inertial Monocular SLAM with Map Reuse. ORBSLAM VIO 論文,主要是利用 IMU 預積分和單目 ORBSLAM 估計的姿態之間構建約束,從而迭代求解 IMU 初始狀態所有參數(甚至包括acc bias),不包括外參數的標定。
2017 年 TASE,Monocular Visual–Inertial State Estimation With Online Initialization and Camera–IMU Extrinsic Calibration. 沈老師組論文,sfm 求解相機姿態和 gyro 積分構建rotation約束,從而求解相機imu之間的旋轉外參數,然後固定rotation,求解其他參數,如重力方向,速度,外參數平移,特徵深度等。論文中直接構建一個最小二乘對上述參數進行優化求解。
2017 年 IROS,Robust Initialization of Monocular Visual-Inertial Estimation on Aerial Robots. 這篇大家比較熟悉,相對於上篇直接丟到誤差函數進行優化求解的方法,沈老師他們借鑑了 ORBSLAM VIO 的做法,分步求解gyro bias, 尺度,速度,重力方向等參數。這篇論文和 ORBSLAM VIO 不同之處在於,它在初始化過程中不考慮 acc bias 的影響,因爲通常 acc bias 相對於重力加速度不太可觀,作者在論文中用實驗表明,初始化過程中,只有當系統有足夠的旋轉時(超過30度),acc bias 才能收斂的比較好。反過來,如果初始化過程中忽略 acc bias, 通常 acc bias 對單目相機尺度的估計影響是在一個可接受範圍內。
2018 年 ICRA,Online Initialization and Automatic Camera-IMU Extrinsic Calibration for Monocular Visual-Inertial SLAM. 求解VIO初始化過程中所有的參數,該論文在 ORBSLAM VIO 的框架下加入了外參數的標定。外參數旋轉和平移的計算則參考沈老師的他們的做法。
2018年 ISMAR, Visual-inertial slam initialization: a general linear formulation and a gravity-observing non-linear optimization
2017 年 IROS, Inertial-Based Scale Estimation for Structure from Motion on Mobile Devices. 上面幾篇都是基於 IMU 預積分的, 把短時間內的加速度什麼的積分起來, 然後和視覺算的姿態構建誤差, 優化出那些變量. 這篇論文不一樣, 它是將相機姿態轉換成角速度和加速度,和 imu 測量值去構建誤差. 並且提出了頻域對齊的方法, 值得一讀.
時間戳標定
2018 年 ECCV, Modeling Varying Camera-IMU Time Offset in Optimization-Based Visual-Inertial Odometry 沈老師組博士 yongen lin 的論文. 基於VINS-Mono的論文. 該論文認爲imu 和 cam之間不是時間同步的, 時間延遲 td t_dt 
d
​    
  也不是常數, 而是一個時變的變量. 可以認爲作者把這個時間延遲當做了一個 imu 的 bias, 每次迭代優化出時間 td t_dt 
d
​    
 , 都會將 camera 的姿態進行補償, 從而把時間因此耦合到誤差項進行優化. 這是在騰訊 AI Lab 的工作, 代碼沒有開源.
2018 年 IROS, Online Temporal Calibration for Monocular Visual-Inertial Systems. 沈老師他們最新 VINS-Mono 代碼裏已經集成了這個時間戳標定的代碼, 算法假設 imu 和 cam 之間的延遲是常數的, 和以往將相機姿態利用速度和角速度乘以時間差進行補償不同, 沈老師他們設計的非常巧妙 (比上一篇感覺更優雅). 將 imu 和相機之間的時間延遲, 變成圖像平面特徵檢測的位置的延遲, 這樣就簡化了整個誤差函數.
自監督在線標定
2013 年 IVS,Self-supervised Calibration for Robotic Systems. 標定工具 Kalibr 對應的論文。這篇論文非常值得一讀,將傳感器內外參數和機器人狀態一起在線估計,並詳細推導和描述了什麼時候用測量數據自動更新估計的傳感器參數。論文從最小二乘出發,描述了高斯牛頓估計所有參數的過程,並指出了數值計算不穩定會影響信息矩陣可觀性的解決方法(即對特徵值小於一定閾值的維度不進行更新)。最後提出了使用信息熵來判斷新的測量數據是否用來更新內外參數的算法流程(直觀理解:判斷在新數據條件下待估計參數的協方差的秩相比之前數據條件下待估計參數的協方差的秩是否下降了一定閾值)。這篇論文中提到的可觀性,信息矩陣,以及他的在線更新方法都很值得一讀。同時,作者在ETH的碩士論文以及truncated_svd代碼都在github上開放了。
2017 年 ICRA, Visual-inertial Self-calibration on Informative Motion Segments. 李名揚二作,思路和上篇差不錯,也是判斷信息熵協方差之類的決定參數是否更新。2019 年 IEEE Sensors Journal, Observability-aware Self-Calibration of Visual and Inertial Sensors for Ego-Motion Estimation. 他們把 17 年的論文進行了擴充。
可觀性,一致性,不變性
2012 年 ICRA, Consistency Analysis for Sliding-Window Visual Odometry. 其實sliding window VO早期的論文應該是2006年G.Sibley,但是個人感覺沒Dong-Si 的論文寫得好。Dong-Si 12 年的這篇論文把滑動窗口BA中雅克比不一致導致的可觀性消失講的清晰易懂,很容易就理解了FEJ的來頭。八卦一下,Dong-Si 的個人主頁,工作簡歷可以看出12年畢業後就沒做 SLAM 了,搞數據庫SQL啥的去了,聯想到2012年在TRO上首次提出預積分的作者也做玩具去了,估計那會SLAM不好找工作吧。
2006 年,Observability and fisher information matrix in nonlinear regression. 說了什麼是可觀不可觀, 以及和信息矩陣的聯繫。不是從濾波那個狀態方程去推導的。
2012 年, msckf 那個實驗室的技術報告,Observability-constrained Vision-aided Inertial Navigation. 之前的操作是 FEJ, 帶來的問題是線性化點的誤差比較大,這篇論文直接對可觀性矩陣進行強制零空間約束,也就是強制使得傳遞矩陣的零空間維數不會減小。論文中對這個約束對雅克比矩陣的影響進行了推導,得到了一個閉式解,賓大的開源代碼 mskcf_mono 對這個進行了實現。
2016 年 arxv,Barrau,An EKF-SLAM algorithm with consistency properties. 不變性理論:當給定數據和系統,作者認爲系統每個時刻的協方差(不確定度)應該就確定了,和我們估計的各時刻狀態量沒關係。上面那些認爲線性化點不同而造成協方差估計出現問題的論文並不本質,因此作者提出了不變性 EKF. 這篇論文從 2d ekf 這個簡單的例子進行闡述,對理解該算法很有幫助,該算法確實找到了問題本質。作者的其他論文都較理論,下面那篇是他的 15 年的博士論文,感興趣的可以繼續深入。
2015 年 phd thesis, Non-linear state error based extended Kalman filters with applications to navigation. 作者Axel Barrau 和他導師一直沿着 invariant ekf 的路在走,發了很多關於不變性的文章。
2018 年 IROS,Invariant Smoothing on Lie Groups. Barrau 的小師弟把不變性做從 ekf 擴展到了優化的框架。
2018 年 Phd Thesis,Improving Visual-Inertial Navigation Using Stationary Environmental Magnetic Disturbances. 該作者也去過Cremers組,發了一篇魚眼 LSDSLAM。不過博士論文跟那個沒關係,他的第七章對一致性的幾種方法(EFJ,OC-EKF, condition, robocent, invariant)進行了大致算法分類和梳理,並在自己系統中採用了 invariant ekf 。
其他
2018 年 IROS, zhichao zhang, A Tutorial on Quantitative Trajectory Evaluation for Visual(-Inertial) Odometry. 軌跡評測的論文,Scaramuzza 組做的工作都非常紮實,細緻。
2018 年 RAL, zhichao zhang, On the Comparison of Gauge Freedom Handling in Optimization-based Visual-Inertial State Estimation . VIO 有四個不可觀的自由度,優化的時候需要特別處理這四個自由度,通常有三種方法,是固定這四個自由度,還是給這四個自由度加先驗,還是像 vins-mono 那樣任意優化這四個自由度最後reset? 這篇論文就這個問題進行了詳細討論。結論是三種方式精度都差不多,但是任意優化然後reset的操作會收斂的快一點。不過任意優化的不好之處在於他沒有一個參考系,信息矩陣的逆得到的協方差沒有太多的意義,作者參考引用14中的方法給出瞭解決方案。最後,作者給出了協方差的變換那部分的代碼。
2013 年 BMVC, Steven Lovegrove ,Spline Fusion: A continuous-timerepresentation for visual-inertial fusion withapplication to rolling shutter cameras. 這篇論文三作是sliding widow filter 作者 Sibley, 用樣條差值的方法來解決 rolling shutter 的問題,另外樣條插值的方法也用到了 imu 數據的仿真中,給定特定時刻的姿態,他能從姿態插值生成線速度,加速度等數據。
2018 年 IROS, Arno Solin, VIO 數據集,用 iPhone 等設備採集的,對標 ARkit, ARcore, ADVIO: An Authentic Dataset for Visual-Inertial Odometry. 除了數據集貢獻,作者也寫過 VIO 論文, 18 年的 wacv 論文,PIVO: Probabilistic Inertial-Visual Odometry for Occlusion-Robust Navigation,17 年的 Inertial Odometry on Handheld Smartphones.
2017 年,msckf 組,Edge-based visual-inertial odometry. (佔坑)
2010 年,Zero-Velocity Detection—An Algorithm Evaluation. 2013 年 Tutorial: Implementing a Pedestrian Tracker Using Inertial Sensors.
2013 年,Computing Velocities and Accelerations from a Pose Time Sequence in Three-dimensional Space. 弗萊堡大學的一個技術報告,從 一系列 pose 生成速度加速度。
VO 前端
光照處理
2017 年 ICRA, Illumination Change Robustness in Direct Visual SLAM ETH的論文,針對直接法對光照不魯棒的問題,調研了十來種處理方法,有些參考意義。
2017 年 RA-L, P. Bergmann, Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM. Cremers 組的工作,對 DSO 光度標定算法進行了加強,變成了在線光度標定,並用於光流跟蹤,看上他們的光流對光照變化比較適應,效果不錯。
2017 年 ICRA,Zichao Zhang, Active Exposure Control for Robust Visual Odometry in HDR Environments 光照相應模型講的比較清楚,也在直接法的 VO 裏應用了。
特徵匹配
2018 年 IROS, Geometric-based Line Segment Tracking for HDR Stereo Sequences. PL-SLAM 作者做的一個關於雙目序列圖像的直線匹配工作. 傳統的直線匹配都是提取描述子之類的, 但是對於序列圖像, 圖像之間的運動變化比較小, 可以利用直線在圖像裏的幾何性質來完成匹配(如直線在圖像裏的角度). 作者提出的方法不依賴圖像特徵, 匹配速度也比 LBD 有所提高. 直線長度差不多, 直線角度差不錯, 對於直線中心點也加了一個極線條件. 將這些條件組合在一起構建了一個誤差函數, 進行L1優化, 每個直線只找到一個對應的匹配項,使得匹配誤差最小.
VO 後端
2009 年,SBA: A Software Package for Generic Sparse Bundle Adjustment. g2o 裏的 LM 算法流程參考的就是這篇論文的實現方法,老的經典論文還是值得反覆讀。
PCG代碼實現參考資料:1. 2018 年 master thesis,Efficient Optimization For Robust Bundle Adjustment. TUM 的碩士論文,裏面有 PCG 等算法的僞代碼流程。2. The Preconditioned Conjugate Gradient Method 這是一個課程的note, 僞代碼流程非常的清晰,如果想自己實現代碼,可以照着這個復現。對應的在網上找了別人寫的 PCG 函數,點這裏。
2009 年,A Brief Introduction to The Conjugate Gradient Method. 如果你對 CG 方法原理不是很熟,可以看看這個 8 頁的pdf, 就能該方法的思想和出發點瞭解個大概。
1994 年, An Introduction to the Conjugate Gradient Method Without the Agonizing Pain. 當然如果你想進一步知道 CG 和 PCG,這篇白話就非常值得一讀。
2004 年 book, Iterative methods for sparse linear systems. 第九章講了PCG,這本書引用上萬,估計也是聖經。
2014 年 ECCV, Christopher Zach, Robust Bundle Adjustment Revisited. 這篇論文主要講了 robust cost function 在代碼裏實現的四種方式。這篇論文是參加 ECCV 2018 的 workshop 時,谷歌的大佬們推薦的,論文中提到的 Triggs Correction 方法正是 ceres 採用的。同時,我也在網上找到了這篇論文對應的代碼(github鏈接).
對於帶約束的凸優化問題,可以使用半正定規劃( Semi-definite Programming, SDP)或者SDR (Semi-definite Relaxation) 來求解。對於這類問題的初步瞭解可以先看看知乎大佬的回答:SDP (半正定規劃) 有什麼形象的實例?怎麼理解?,然後系統看看 Introduction to Semidefinite Programming 和 Semidefinite Relaxation of Quadratic Optimization Problems.
激光 SLAM
基礎知識
推薦兩個課程: 2013年,弗萊堡大學 Cyrill Stachniss 教授的 SLAM Course, youtube 有課程視頻,網上pdf 也有。Coursera 上 Robotics: Estimation and Learning, 這個課就比較簡短一些,但是非常適合新手快速入門。
Occupancy Grid Map. 地圖是激光 slam 系統的核心,通常激光 slam 都採用 logodds 算法對柵格地圖進行概率更新。知乎上有個人對 Coursera 上課筆記進行了總結,寫得非常好,對公式的推導很簡潔,完整詳細的推導得看 Stachniss 教授的課視頻,課件。
2D SLAM
2015 年 master thesis. Precise indoor localization for mobile laser scanner. 這篇碩士論文整理了比較了 hector, gmapping, karto 三種激光 slam 方法,論文實驗比較的非常詳細。各自優缺點以及存在的問題都大致總結了。
2009 年 ICRA, Edwin olson. Real-Time Correlative Scan Matching. 這篇 Scan Matching 的論文是 catographer, karto 等基於圖優化的 SLAM 算相對 pose 的基礎。另外,AprilTag 也是作者Prof. Olson 2011 年的論文。
2011 年 SSRR , Stefan Kohlbrecher. A Flexible and Scalable SLAM System with Full 3D Motion Estimation. 這篇論文是 hector slam 的 scan match 方法,hector 代碼裏有對應的代碼實現,很清晰簡潔,如果你熟悉高斯牛頓的話,能很快上手。cartographer 裏的real time scan match 就是採用的這篇論文的計算方法。
2012 年 IROS,大佬 Wolfram Burgard 加持,On the Position Accuracy of Mobile Robot Localization based on Particle Filters Combined with Scan Matching. 採用 amcl + pl-icp。
2008 年 IROS,Andrea Censi,csm, 以及 icp 的協方差估計。
推薦幾篇動態環境的 2d laser slam,思路都差不多,定位過程中會構建局部 local map 用來去除動態點雲。2018 年 IROS, gmapping 作者加持,Efficient Long-term Mapping in Dynamic Environments, 論文開放了代碼. 2008 年 IJRR, Experimental Analysis of Sample-BasedMaps for Long-Term SLAM. 2012 年 IROS, DynamicPose GraphSLAM:Long-termMappingin Low DynamicEnvironments, 這篇論文幾個大佬加持,論文 III-A 部分介紹了怎麼計算 local map,大致思路是拿一小段歷史軌跡組合成的 grid map 和當前幀的點雲做比較,得到動態物體的點雲。
碼盤內參數以及激光外參數標定
2013 年 TRO,Andrea Censi,Simultaneous calibration of odometry and sensor parameters for mobile robots. 這篇論文將碼盤的內外參數一起標定了,作者提供了代碼。論文方法簡單,讀論文就可以,這裏想隆重介紹下作者,Censi,做啥都牛,喜歡各種開源自己的代碼,激光 icp 方面出了csm。 優化方面也和 gtsam 那些大佬有諸多合作,也和木吒(Scaramuzza)合作挺多,總之,論文和工程都貢獻不少, 感興趣的看一下他的簡歷,能發現不少好工作。
激光相機外參數標定
2004 年 Qilong Zhang, Extrinsic Calibration of a Camera and Laser Range Finder (improves camera calibration). 這是改領域較早且非常有名的一篇論文,開放了相應的 matlab 代碼。標定方法使用一個標定板,相機和激光都能看到這個標定板,相機能實時計算出到標定板的姿態,標定板的平面方程能事先假設,然後利用激光落到裏這個標定板平面(點在平面裏),構建約束激光到相機的外參數約束,從而求解外參數。這個方法每一次觀測實際上只能提供兩個自由度的約束(因爲平面裏的激光點共線了,相當於只利用了兩個激光端點構建約束),因此需要不同位置拍攝多組觀測,最後一起求解。代碼1, 代碼2.
2017 年 ICRA, Wenbo Dong, A Novel Method for the Extrinsic Calibration of a 2D Laser Rangefinder and a Camera. 這篇論文對歷年的經典外標定算法進行了簡單的點評,並提出了自己的單幀觀測就能計算外參的算法。該算法利用兩個相交平面(不需要是直角相交)來標定,雖然不要求直角,作者要求兩個平面是兩個三角形構建的(當然製作標定板的時候,打印邊框成三角形的形式,然後摺紙飛機一樣折一下就行了),這樣標定板和相機之間就有多個平面了(標定板本身的兩個平面,激光線和標定板三角邊也會相交這裏又提供了兩個平面)一共六個約束,所以單幀可解外參數。作者實驗也驗證了他的方法比04年的那個精度要高。當都採用20組觀測進行標定時,他的平移誤差4mm, 04年的那個12mm左右。雖然這個方法單幀可以出結果,但是他每次都依賴激光和標定板那幾條直線的交點,一旦交點不準,比如激光傳感器的噪聲比較大,如1cm時,單幀標定誤差好幾cm。作者也建議使用多幀一起標定。感覺和04年那篇差不多。
2015 年 ICRA, Ruben Gomez-Ojeda, Extrinsic Calibration of a 2D Laser-Rangefinder and a Camera based on Scene Corners. 這篇文章放在這主要是因爲作者是 PL-SLAM 作者,他也做過激光視覺標定。他的方法不需要標定板,直接利用三個垂直面的三條線的相交點確定三條直線(如果直接用 lsd 檢測,可能三條直線不會相交於一點,誤差較大),根據激光和直線的相交點構建點在平面上的方程。這個方法感覺比較複雜,容錯率比較低。論文開放了matlab源碼,在二作的github頁面上。
2018 年 IROS,Lipu Zhou, isam 作者 Kaess 的學生,Automatic Extrinsic Calibration of a Camera and a 3D LiDAR using Line and Plane Correspondences. 這篇是 3D 激光雷達和相機之間外參數。這篇也是利用多個線和平面約束,直接單次觀測可以出外參數,不需要把傳感器動來動去採集多組數據。
2017 年 ICCV,Zoltan Pusztai, Accurate Calibration of LiDAR-Camera Systems using Ordinary Boxes. 這篇還沒讀,先不評論。
--------------------- 
作者:白巧克力亦唯心 
來源:CSDN 
原文:https://blog.csdn.net/heyijia0327/article/details/82855443 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章