MCPTAM標定部分 執行結果

2021-09-24 05:01:56 字數 2760 閱讀 4921

這裡主要記錄下mcptam的標定結果(執行該專案主要是希望能用它標定出相機的內外參檔案)

mcptam的安裝過程參考:

1. 重疊區域一定要有,甚至是越大越好;

2.盡可能在紋理比較豐富的場景中,更方便標定成功。

1. camera intrinsic calibration 部分

原始碼中的launc**件夾裡面有乙個camera_calibrator.launc**件,裡面只給出了camera_calibrator節點的使用方式,標定的話需要額外地新增uvc_node開啟ui介面進行影象的捕捉等,gettingstarted.pdf中有相關的節點使用,可以直接複製過來,如果執行的時候提醒launc**件某一行無效,全部刪除,新建乙個檔案,自己手動錄入一遍即可;

捕捉影象大概為11張左右,如果希望標定結果比較準確,盡量讓棋盤格能夠鋪滿一點,並且出現在影象的各個方位,而不僅僅是只有中間的影象;

標定結果:

image_width: 640

image_height: 480

camera_name: camera

camera_matrix:

rows: 3

cols: 3

data: [1.0005351573176, -0.00191943575754414, 321.517641212176, -0.0007109109945881, 1, 245.572365752173, 0, 0, 0]

distortion_model: taylor

distortion_coefficients:

rows: 1

cols: 4

data: [374.391967784045, -0.000234296822387193, 5.68557569053981e-07, -5.2792558246302e-10]

rectification_matrix:

rows: 3

cols: 3

data: [1, 0, 0, 0, 1, 0, 0, 0, 1]

projection_matrix:

rows: 3

cols: 4

data: [0, 0, 0, -0, 0, 0, 0, -0, 0, 0, 0, -0]

由於這裡使用的是scaramuzza的ocamcalib模型,所以distortion coefficient主要是採用的多項式模型,

這裡a0 為 374.39, 其他依次類推;camera matrix引數依次為[1,0, cx,0,1,cy,0,0,0] 主要引數就是計算出的影象中心cx,cy;標定的結果會自動儲存在calibration檔案下的camera*.yaml檔案中,這裡的*表示的是在camera_name引數傳入的名字,這個名字也需要與多相機標定時的group檔案下group name傳入.yaml檔案中的相機的名字一致;

這裡標定的兩個相機分別叫做camera1, camera2;

4. camera extrinsic calibration

這部分在pdf中只給出了pose calibrator node的使用情況,沒有給出具體的節點使用,這裡如果標定兩個相機的相對位姿,也是需要呼叫兩次uvc node,將兩個相機分布在不同的namespace下,然後進行呼叫,具體的launc**件如下:

這裡camera_info_url 引數需要協商,主要用於後面讀取外參標定時讀取該檔案中的引數,因此路徑也一定要指定正確;

執行lanc**件後會開啟兩個uvc 視窗,顯示兩個攝像頭的捕捉影象,這裡的處理狀態主要分為四種:

checkerboard_init checkerboard_first_stage checkerboard_second_stage checkerboard_running, 四種狀態在執行的時候通過視窗的外邊框顯示出來:

1. 最開始為深藍色,表示初始狀態,按下空格鍵表示開始捕捉keyframe,camera1進入second stage,外邊框為淺藍色,緩慢移動標定板,給足夠的時間建立camera1的地圖,這個過程第一次一般要花費幾分鐘,一定要耐心等待;

2. camera1的地圖構建完成之後外邊框會變成綠色,同時自動開始標定camera2, camera2的外邊框變成藍色;

3. 按下空格鍵開始標定camera2,這個過程一般很快,兩個相機外邊框都變成綠色後,可以在此移動標定板,移動的時候盡量保證角點都被檢測到,移動的範圍稍微大一點,過程緩慢一點,兩個相機的共同點越多,後期優化的mean square下降的越快;

pose calibrator的結果如下所示:

camera1

1 0 0 -0

0 1 0 -0

0 0 1 -0

camera2

0.99806 -0.0592349 0.0191656 -0.0544484

0.0597737 0.997794 -0.0288826 -0.00878772

-0.0174124 0.0299722 0.999399 1.44874e-05

以第乙個相機的座標為世界座標,計算第二個相機的旋轉和平移,camera2的3x4矩陣,最後一列為平移向量;

相機標定之棋盤標定

該文章主要學習如何進行相機標定,原理部分只是比較多,不多贅述。首先,相機標定主要是去求解內參k和外參 r t 以下為相機標定過程中常用的opencv自帶的幾個重要函式。1.opencv 提供的函式projectpoints2 投影三維點到影象二維點。函式引數如下 void cvprojectpoin...

手眼標定 九點標定

手眼標定 就是建立影象座標系和 機械人座標系之間的轉化關係 換矩陣 機械人座標系 通俗的說就是機械手上的座標點 二維平面,為什麼是二維平面,讀者們可以自己考慮一下 22.40 開始.23.52 其實沒有講 得到九個點的 影象座標 和 機械手位置座標怎麼 求 轉換矩陣的。25.12 開始講原理 如果 ...

標定板 大尺寸陶瓷標定板

陶瓷材料的標定板和光學玻璃的材質的標定板的不同處,估計也有好多的朋友不是很清楚,首先,我們陶瓷材料的標定板,反光率可以減少80 具有優良的耐高溫 耐磨損 耐化學腐蝕的特點,而且密度小,所以在光學效能上不管是 白度 透光度 還是光澤度效果都是很好的。我司 巨集誠光學 現推出大尺寸的陶瓷標定板,在一次次...