本文主要使用了kalibr工具標定zed2雙目相機+imu,並執行vins-fusion。闡述了標定板的選擇方法,以及標定中的注意事項。
zed2相機標定及執行vins-mono
用imu_utils標定imu,之後用於kalibr中相機和imu的聯合標定
ubuntu16.04利用kalibr工具進行zed2相機的標定
1、使用kalibr工具標定zed2雙目相機,按照上述部落格安裝kalibr工具。我最開始用的eigen版本為3.3.9,發現這個版本編譯kalibr總是報錯,換成eigen3.3.7之後就沒有問題了。
2、用imu_utils標定imu,依次安裝編譯code_utils、imu_utils。
注意,不要同時把imu_utils和code_utils一起放到src下進行編譯。
由於imu_utils 依賴 code_utils,所以先把code_utils放在工作空間的src下面,進行編譯。然後再將imu_utils放到src下面,再編譯。
關於標定板的選擇,checkerboard和aprilgrid這兩種是比較常用的。相機需要距離標定板1-2m,標定板佔據視野60%以上。
**注意:**標定過程中,標定板不要離開相機視野範圍,開始和結束要平穩進行,盡量使標定板出現在視野所有角落。
checkerboard:
注意,targetcols、targetrows數的是內角點數目
target_type: 'checkerboard'
#gridtype
targetcols: 6 #number of internal chessboard corners
targetrows: 8 #number of internal chessboard corners
rowspacingmeters: 0.17 #size of one chessboard square [m]
colspacingmeters: 0.17 #size of one chessboard square [m]
aprilgrid:
tagspacing=小方格邊長/大方格邊長
target_type: 'aprilgrid'
#gridtype
tagcols: 6 #number of apriltags
tagrows: 6 #number of apriltags
tagsize: 0.088 #size of apriltag, edge to edge [m]
tagspacing: 0.3 #ratio of space between tags to tagsize
也可以使用命令生成pdf檔案:
kalibr_create_target_pdf --
type checkerboard --nx 6 --ny 6 --csx 0.03 --csy 0.03
kalibr_create_target_pdf --
type apriltag --nx 6 --ny 6 --tsize 0.08 --tspace 0.03
首先,啟動zed2的ros節點:
roscore
檢視topic,開啟視覺化影象,確保標定板處於左右目影象中:
rostopic list
rosrun image_view image_view image:=/zed2/zed_node/left/image_rect_gray
rosrun image_view image_view image:=/zed2/zed_node/right/image_rect_gray
降低影象頻率,檢視當前頻率:
rosrun topic_tools throttle messages /zed2/zed_node/imu/
data 280 /imu/
data
rosrun topic_tools throttle messages /zed2/zed_node/left/image_rect_gray 4.0 /left/gray
rosrun topic_tools throttle messages /zed2/zed_node/right/image_rect_gray 4.0 /right/gray
rostopic hz /left/gray
rostopic hz /right/gray
開始錄製乙個bag檔案:
rosbag record -o kalib_data_vga.bag /imu/
data
/left/gray /right/gray
標定相機引數:
kalibr_calibrate_cameras --bag kalibr_data.bag \
--topics /left/gray /right/gray \
--models pinhole-radtan pinhole-radtan
--target april_6x6_80x80cm.yaml
把相機靜止放置,錄製兩小時imu資料,修改launc**件。
rosbag record -o imu_calibration /imu/
data
"imu_utils"
type="imu_an" name="imu_an" output="screen">
type="string" value= "/zed2/zed_node/imu/data_raw"
/>
type="string" value= "zed2"
/>
type="string" value= "$(find imu_utils)
/data/"
/>
type="int" value= "120"
/>
type="int" value= "200"
/>
roslaunch imu_utils zed2_calibration.launch
rosbag play -r 200 imu_calibration.bag
聯合標定主要是為了獲得相機和imu軸系的轉換關係
kalibr_calibrate_imu_camera --bag kalibr_data.bag \
--cam camchain-kalibr_data.yaml \
--imu imu-params.yaml \
--target target april_6x6_80x80cm.yaml
到這裡就大功告成啦! ZED2 IMU聯合標定
接下來標定imu。同樣,先錄製資料報。rosbag record o imu cyx calibration zed2 zed node imu data raw將imu utils資料夾下的a3.launch改寫為zed2的啟動檔案zed2 calibration.launch。同時要看下是否修改...
單目相機 雙目相機 雷射雷達 IMU聯合標定集合
ros camera calibration tools slam之相機標定 lidar camera calibration lidar camera calibration專案 雷射雷達和相機聯合標定 相機雷達聯合標定 無人駕駛 雷射雷達與相機聯合校準 lidar camera calibrat...
opencv相機標定 2 單目相機標定流程
常用的標定函式和流程,網上一大堆,這裡就不想詳細寫了 這裡說一下標定後常見的問題和我自己的一些做法。畸變校正後,邊緣處出現一些黑色畫素區域,其實也算是正常的,去畸變後補充的畫素 比例係數 newcameramatrix.at double 0 0 newcameramatrix.at double ...