部落格**自:
雷射雷達採集的資料,可能由於顛簸或者雷達安裝傾斜或者地面本身是有坡度的,造成地面在雷達座標系中不是水平的。不是水平的,會影響我們後續的對點雲的分割分類等處理,所以校準很有必要。
校準方法是(參考):用pcl中基於ransac的平面檢測方法檢測出平面,得到平面:ax+by+cz+d=0。對於乙個平面,上式中xyz的係數,就是它的法向量。然後,雷達座標系中的豎直向量是(0,0,1),計算出從平面法向量旋轉到豎直向量的旋轉矩陣,再把此旋轉矩陣應用到點雲,點雲即可得到旋轉。
1. 分割平面,得到平面的法向量
pcl::sacsegmentationplane_seg;pcl::pointindices::ptr plane_inliers ( new pcl::pointindices );
pcl::modelcoefficients::ptr plane_coefficients ( new pcl::modelcoefficients );
plane_seg.setoptimizecoefficients (true);
plane_seg.setmodeltype ( pcl::sacmodel_plane );
plane_seg.setmethodtype ( pcl::sac_ransac );
plane_seg.setdistancethreshold ( 0.3 );
plane_seg.setinputcloud ( cloud_in );
plane_seg.segment (*plane_inliers, *plane_coefficients);//得到平面係數,進而得到平面法向量
2.計算兩個向量之間的旋轉矩陣:
關於在已知兩個向量座標的情況下如何求兩者的旋轉矩陣的問題,可以看這個和這個。其中,會用到兩個向量的點乘和叉乘,什麼是點乘和叉乘,看這裡。怎麼實現點乘和叉乘,看這裡,用eigen庫非常方便,都已經封裝好了。
eigen::matrix4f createrotatematrix(vector3f before,vector3f after)
3. 利用旋轉矩陣,將點雲旋轉
pcl::transformpointcloud(*cloud_in, *cloud_final, rotation);
雷射雷達點雲地平面校準 地面分割
步驟 1.載入點雲,顯示,白色點雲 2.滑鼠選取地面部分點雲,作為校準標準 void pp callback const pcl visualization areapickingevent event,void args pcl visualization pointcloudcolorhandl...
LiDAR MEMS雷射雷達點雲實時顯示
mems雷射雷達出來後,為了不用leddartech的ide軟體,於是對其 進行了封裝,以供其他軟體呼叫。在研究的過程中,點雲的實時顯示以前還未做過,就寫了段測試 驗證一下 include stdafx.h include 標準輸入輸出流 include pcl的pcd格式檔案的輸入輸出標頭檔案 i...
雷射雷達點雲的特徵表達
點對點特徵 point wise feature 提取 特徵融合 雷射雷達是一種綜合的光探測與測量系統,通過發射接受雷射束,分析雷射遇到目標物件後的折返時間,計算出目標物件與車的相對距離。目前常見的有16線 32線 64線雷射雷達。雷射雷達線束越多,測量精度越高,安全性越高。多束雷射線同時發射,並配...