PCL 兩兩點雲獲取裝置自動標定

2021-10-02 06:28:34 字數 1438 閱讀 2828

還沒有自己測試,在郭浩老師的書中看見了這個例程,先記下來。

應用ransac演算法實現基於球型靶標的自動標定方法,連個深度攝像頭獲取的點雲資料中檢測並識別出各個圓球,檢測識別出3個圓球後,擁有兩組對應的3個座標點,根據變換矩陣求解方程,估計出變換矩陣,實現雙深度攝像頭的標定。

包括資料獲取模組、直通濾波模組、平面檢測及刪除模組、圓球檢測模組、剛體變換矩陣估計模組。

(1)資料獲取模組

從不同方向採集3個小球的場景點雲,使用grabber介面。

(2)直通濾波模組

採集到的點雲通常包含z軸方向2m以外的點雲,可以使用直通濾波的方式濾除z軸方向的點雲資料。

(3)平面檢測及刪除模組

直通濾波後的點雲有近似於平面形狀的地面點雲,利用sacsegmentation類檢測地面所在平面點雲,並刪除,其中setmodeltype()函式設定模型型別為平面,setmethodtype()函式設定為隨機取樣一致性。

pcl::sacsegmentationseg;

seg.

setmodeltype

(pcl::sanmodel_plane)

;//平面模型

seg.

setmethodtype

(pcl::sac_ransac)

;

(4)刪除場景地面點雲資料後,建立sacsegmentation物件檢測圓球,設定檢測形狀及相關引數;

pcl::sacsegmentationseg2;

seg2.

setoptimizecoefficients

(true);

seg2.

setmodeltype

(pcl::sacmodel_sphere)

;//球模型

seg2.

setmethodtype

(pcl::sac_ransac)

;seg2.

setmaxiterations

(100);

//迭代次數

seg2.

setdistancethreshold

(0.01

);

迴圈檢測,直到把3個球表面點雲都檢測到,並記錄三個圓球的球心

for(int i =

0;i <

3; i++)

(5)剛體變換矩陣估計

基於3對對應點,利用transformationfromcorrespondences類估計變換矩陣,利用transformationformcorr類的add函式新增對應點,利用gettransformation函式獲取變換矩陣,實現雙深度攝像頭標定。

點雲配準 一 兩兩配準

由於一直對雙目視覺較為感興趣,無論是傳統的雙目立體視覺,還是面陣的結構光3d相機,亦或是日漸流行的vslam中流行的rgb d相機,都會涉及到點雲資料.由於點雲的不完整,旋轉到完整點雲就需要對區域性點雲進行配準.那麼這便帶來了如下幾個問題 1 什麼是點雲的配準呢?為了得到被測物體的完整資料模型,需要...

用pcl將兩不同型別點雲轉換

pointcloud和pointcloud之間相互裝換 使用pcl函式直接轉換 pointcloudcloud xyz pointcloudcloud xyzrgb copypointcloud cloud xyz,cloud xyzrgb 通過賦值來裝換 cloud xyzrgb.points.r...

PCL庫學習筆記 連線兩個點雲

本篇將展示如何串聯兩個不同點雲的點。此處強加的約束是兩個資料集中的字段型別和數量必須相等。後面還將展示如何連線兩個不同點雲的字段 例如,維度 此處強加的約束是兩個資料集中的點數必須相等。include include include int main int argc,char argv 定義三個輸...