close

各位同學,打給後

我們今天要做的主題是相機校正,現今很多相機所使用的鏡頭為魚眼鏡頭,而且現今世界是3D維度,因此當要轉換到2D的照片時,會產生相機失真,使照片扭曲。

而今天要做的就是相機的內部與外部參數修正

大家上禮拜的都做完了嗎?還沒得話,請略過此講義,先完成上禮拜的進度哦

 

-----------------今日主題開始-----------------

實驗3:Intrinsic Calibration 相機內部參數校正

 

在開始所有步驟以前

請先確認VM的網卡設定如下圖紅框一樣,選擇「橋接介面卡」

image

緊接著,確認小鴨車與虛擬機都是使用相同網域(ex.同wifi熱點),

再來用ifconfig確認裝置各自的IP,並記錄下來。

假設其IP如下表所示

裝置 HOSTNAME IP
小鴨車 duckpi 192.168.0.1
虛擬機 vm 192.168.0.2

而小鴨車會是本次作為「master」使用。

因此要先從小鴨車開始設定起。

 

注意:duckpi請一律換成小鴨車的hostname,而IP記得替換成自己的。

▲pi

$ cd ~/duckietown

$ source environment.sh

$ export ROS_MASTER_URI=http://192.168.0.1:11311

$ export ROS_IP=`hostname -I`

$ roslaunch duckietown camera.launch veh:=duckpi raw:=true

 

▼VM

$ cd ~/duckietown

$ source environment.sh

$ export ROS_MASTER_URL=http://192.168.0.1:11311

$ export ROS_IP=`hostname -I`

$ roslaunch duckietown intrinsic_calibration.launch veh:=duckpi

執行成功就會出現以下畫面

現在請移動攝像頭或者移動棋盤紙,來達成校正。

我們可以看到右邊有4條:X , Y , Size , Skew ,我們需要藉由移動棋盤紙來使相機取得更多的特徵值

當特徵值夠多時,Calibrate才會亮起,才能完成步驟

請大家開始動動稿紙,我是說棋盤,使X , Y , Size , Skew這4條盡量達到綠色滿血

其特徵值夠多時,結果如下

校正功效

 

實驗4:Extrinsics Calibrate 相機外部參數校正

首先先將小鴨車與邊線對齊

▲pi

$ cd ~/duckietown

$ source environment.sh

$ export ROS_IP=`hostname -I`

$ rosrun complete_image_pipeline calibrate_extrinsics

#duckpi請換成自己的hostname

 

自動儲存校正結果

▲pi

$ ~/duckietown/out-calibrate-extrinsics

即可去out-calibrate-extrinsics資料夾查看結果照片

 

★ rosrun complete_image_pipeline calibrate_extrinsics 執行遇到問題

#如果遇到PiCameraMMALError: Camera component couldn't be enabled: Out of resources

$ sudo raspi-config

select: Advanced options ->Memory split -> and set at least 128MB

參考資料網址: https://raspberrypi.stackexchange.com/questions/26829/picamera-not-working

 

#如果遇到Exception: findChessboardCorners failed,請移動一下棋盤,確定棋盤可以讓攝像頭完全看到,再重新跑一次

arrow
arrow
    全站熱搜

    ntougpslab 發表在 痞客邦 留言(0) 人氣()