ICP 算法


ICP 算法是一種點雲到點雲的3D-3D配准方法。

在SLAM中通過空間點雲的配准(可以通過相機或者3D激光雷達獲取點雲數據),可以估計相機運動(機器人運動,旋轉矩陣R與平移向量t),累積配准,並不斷回環檢測,可以保證機器人定位的精度。

想象三維空間中兩組點雲PL(參考點雲,固定不動) 以及 PR(目標點雲,需要調整):

1. 3D點匹配:在PL和PR中尋找一一對應的最近匹配點(對於稀疏點雲的微小運動,尋找歐拉空間最近點;對於密集點雲或者較大運動,可能需要尋找描述子之間二進制漢明距離的最近點)注意理解:這里最近點的意思是在各自點雲坐標系中的坐標距離最近,而不是同一個坐標系下的空間距離!這一步,不一定需要配准所有的點;

2. 優化初值:通過初始配准的兩個點集,計算各自點集質心的三維坐標 L0 與 R0, 通過這兩個點的三維運動計算出相機運動初值;

  // 或者尋找R,t,使得目標點集和參考點集之間距離的最小二乘(二范數)最小;

3. 迭代優化:由於初值匹配比較粗糙,通過初值變換獲取的 PR‘ 與真實的 PR點集之間存在誤差。迭代的目的就是減小這個最小二乘的誤差,直到小於閾值或者達到一定迭代次數。

 

其目的是通過測量數據,獲取機器人三維位姿變換的准確值。其中數學核心是奇異值分解,在常見的PCL庫中有實現。並且ICP有不同的具體實現方法,例如利用kd樹實現subset與subset之間的配准,提高效率。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM