1. 程式人生 > >ros學習之camera calibration 單目攝像頭標定

ros學習之camera calibration 單目攝像頭標定

環境:ubuntu16.04 ros版本 kinetic 標定筆記本單目攝像頭 需要的準備:1、標定圖:下面這張列印到a4紙上。

標定圖 2、攝像機驅動,我使用的是usb_cam,下載地址:https://github.com/ros-drivers/usb_cam 下載後放到ros的src目錄下(catkin_ws/src) ,編譯一下: 開啟終端

$cd
$ cd catkin_ws
$ catkin_make

3、標定用的camera calibration包。下載地址:https://github.com/ros-perception/image_pipeline 現在還沒有kinrtic版本的,這個一樣可以的,下載後解壓,只要camera_calibration這個包。將camera_calibration放到catkin_ws/src下,編譯:

$cd
$ cd catkin_ws
$ catkin_make

在這裡插入圖片描述

開始標定 步驟: 1、執行攝像頭驅動

$cd
$cd catkin_ws/src/usb-cam/launch
$roslaunch usb_cam-test.launch

攝像頭一般有指示燈,亮了就可以了,沒有影象也沒關係。

2、執行標定程式camera_calibration: 新開啟一個終端;

rosrun camera_calibration cameracalibrator.py --size 7x5 --square 0.018 image:=/usb_cam/image_raw camera:=/usb_cam

注意:這裡有幾個引數需要根據自己設定 size 7x5的7x5標定棋盤的內角點數,不是色塊數; square 0.018 是色塊的大小,單位是米; image:=/usb_cam/image_raw camera:=/usb_cam,可以使用rostopic list檢視:

rostopic list

在這裡插入圖片描述 執行命令之後會出現一個灰色的攝像頭視窗; 3、 引用官方:

將列印的標定圖在相機框架中移動: 要出現攝像頭的各個位置 要求: 相機的左側,右側,頂部和底部的棋盤格 X欄 - 在視野中左/右 Y欄 - 視野中的頂部/底部 尺寸欄 - 朝向/離開並從相機傾斜 棋盤填滿整個視野 棋盤向左,向右,向上和向下傾斜(歪斜) 在每個步驟中,保持棋盤靜止,直到影象在校準視窗中突出顯示。 在這裡插入圖片描述

當您移動棋盤時,您會看到校準側欄上的三個條的長度增加。當CALIBRATE按鈕亮起時,您有足夠的資料進行校準,可以單擊CALIBRATE檢視結果。

校準可能需要大約一分鐘。窗戶可能是灰色的,但只是等待,它正在工作。

4、結果處理 可以在終端找到資料儲存位置 解壓。 找到 .yaml 檔案(a)。 找到usb_cam/camera_info裡的 .yaml檔案(b)。 將a的名字改為b的,將a中的camera_name:<引數>改為b中的引數。 用a替換掉b。

重新啟動攝像頭

標定完成。