登龍git
這是個人第 128 篇原創github
1、安裝 Autoware & ZED 內參標定 & 外參標定準備
以前的這篇文章:Autoware 進行 Robosense-16 線雷達與 ZED 雙目相機聯合標定!記錄了我用 Autoware 標定相機和雷達的過程,雖然用的不是 Calibration Tool Kit 工具,可是博客裏面的如下章節也適用本次的 Calibration Tool Kit :web
-
1、編譯安裝 Autoware-1.10.0 -
2、標定 ZED 相機內參 -
3.1 聯合標定準備
若是你是第一次看這篇 Calibration Tool Kit 聯合標定的博客,建議先按照以前的博客安裝 Autoware、標定 ZED 內參和作好外參標定的準備(標定板,錄製標定包等),最好用上篇博客的方法標定一次。算法
這篇博客我就直接開始介紹使用 Calibration Tool Kit 標定雷達和相機外參的過程!編程
2、Calibration Tool Kit 聯合標定雷達和 ZED 相機
2.1 啓動 Autoware
先啓動 Autoware-1.10.0,啓動過程當中可能須要輸入 root 密碼:bash
# 1. 進入 autoware 的 ros 目錄下
cd autoware-1.10.0/ros
# 2. source 環境,zsh 或 bash
source devel/setup.zsh[.bash]
# 3. 啓動主界面
./run
切換到 Sensing 選項卡:微信
2.2 回放雷達相機 Bag
這裏回放時須要更改雷達的話題爲 /points_raw
,由於這個工具訂閱的雷達主題是固定的:編輯器
rosbag play --pause xxx.bag /rslidar_points:=/points_raw
我用的 Robosense 雷達,發佈的話題是 rslidar_points
,這個回放默認暫停,防止跑掉數據,按空格繼續或暫停。ide
2.3 啓動 Calibration Tool Kit
點擊 Calibration Tool Kit 啓動標定工具:工具
選擇圖像輸入話題,我只用的 ZED 的左圖像話題,若是沒有相機話題,確保前面你已經回放了 bag,選擇好了點擊 OK 肯定:
選擇標定類型爲相機到 velodyne 雷達的標定(對 Robosense 雷達也適用,只不過須要更改點雲的發佈話題),點擊 OK 肯定:
進入標定主界面 MainWindow:
配置標定板棋盤格參數:
-
Pattern Size (m):標定板中每一個格子的邊長,單位 m,個人標定板每一個格子長 0.025 m -
Pattern Number:標定板長 X 寬的單元格數量 - 1,個人標定板是長有 12 個格子,寬有 9 個,因此填 11x8,減一是由於標定檢測的是內部角點
設置好了後,重啓 Calibration Tool Kit,點擊左上角 Load 導入第一步標定的相機內參 YAML 文件,可是這個工具只能導入 YML 格式的文件:
所以須要把前面的內參標定文件拷貝一份,修改格式爲 yml 便可,YAML 和 YML 實際上是同樣的:
修改好了以後,再點擊 Load 加載 yml 格式的內參文件便可:
選擇不加載相機和雷達的標定數據,由於我是直接回放 Bag 標定:
到這裏都設置好了,下面開始外參標定過程!
2.4 標定過程
打開回放 bag 終端,按空格繼續回放數據,主界面會顯示相機圖像:
可是右邊的點雲窗口沒有顯示數據,須要咱們調整視角才能夠,視角的調整方法以下(文末有個 pdf 專門介紹):
簡單解釋下,建議直接操做,很容易:
-
移動點雲:上下左右方向鍵、PgUp、PgDn -
旋轉點雲:a、d、w、s、q、e -
切換模式:數字 1 和數字 2 -
視角縮放:減號縮小、加號放大 -
點雲大小:o 鍵使用小點雲、p 使用大點雲 -
改變點雲窗口背景顏色:b
我使用的使用直接按數字 2 切換模式就能看到點雲了,其實這些模式我也不是很懂。。。:
若是須要更換背景,按 b 鍵改變爲大體灰色便可:
我這裏就不改背景了,黑色也挺好看出點雲的,而後使用上面的視角操做方法,把點雲中的標定板放大到中心位置:
以後點擊右上角的 Grab 捕獲當前幀的圖像和點雲,使用 -
和 +
縮放視角:
若是你點擊 grab 沒反應很正常,多是棋盤格離得太遠或者模糊了,你多試幾個位置應該就能捕獲到,我回放一個 Bag 也就捕獲了 9 張左右。
而後把鼠標放到右下角捕獲的點雲窗口,選擇一個棋盤格的中心位置區域,關於這個區域的選擇,我是參考這個標定工具的文檔例子(文末有連接)選擇的,大概就是標定板的中心位置選擇一個圓形的區域,儘可能保證向外側的平面法向量垂直於標定板平面:
鼠標左鍵點擊選擇,右鍵點擊取消,個人選擇以下,能夠參考:
而後重複以上步驟,不斷回放暫停,Grab 捕獲單幀圖像和點雲(多選一些),選擇點雲區域,直到回放結束,接着就能夠點擊右上角的「Calibrate」按鈕計算外參矩陣(左上角顯示),而後再點擊「Project」查看標定效果:
切換左下方的單幀圖片和點雲窗口,捕獲的每一幀圖像和點雲均可以看到對齊效果,另外左邊也能看到標定的偏差,固然是越小越好,我目前的標定效果通常般,後續打算再標幾回。
標定好以後,點擊左上角「save」保存外參矩陣便可,文件名建議帶上時間戳方便識別:
最後的外參數文件以下,這個文件包含了相機內參和相機到雷達的外參:
以上就是個人雷達相機聯合標定過程!但願能幫助正在標定雷達和相機的同窗 ^_^!
3、標定結果測試
能夠直接用以前博客 Autoware 進行 Robosense-16 線雷達與 ZED 雙目相機聯合標定!中的「4、標定結果測試」一節介紹的步驟來測試融合效果:
前幾天我把 ROS 的點雲和圖像的融合節點也調試好了,因此直接在程序裏面加載了外參矩陣,而後作了個初步的融合,效果以下:
我也錄了個融合視頻,能夠看看:B 站:Robosense-16 雷達與 ZED 相機數據融合
https://www.bilibili.com/video/BV1Sp4y1S74w
5、標定資源
如下是我標定過程當中收集的一些好的資料,這裏也分享給你們:
-
標定工具的使用文檔在這裏:CalibrationToolkit_Manual.pdf
https://github.com/DLonng/AI-Notes/tree/master/SensorFusion/fusion_ws/src/calibration_publisher/docs
-
這裏還有個視頻,有條件的同窗能夠看看:Yutobe:Autoware 標定相機和雷達
https://www.youtube.com/watch?v=pfBmfgHf6zg
另外 ROS 融合節點的程序我還在完善中,建議關注個人 Github 項目,後續會上傳節點代碼:AI-Notes: lidar_camera_fusion
https://github.com/DLonng/AI-Notes/tree/master/SensorFusion/fusion_ws/src/lidar_camera_fusion
若是標定遇到問題,能夠公衆號後臺給我發消息,或者直接在博客平臺留言,我看到會盡快回復的,不過公衆號應該回復的快些,哈哈 :)
推薦閱讀:
廈大研一同窗,與你分享編程,AI 算法等技術乾貨!精品文章創做不易,謝謝關注,歡迎在看。
點擊閱讀原文,查看更多精彩文章!
本文分享自微信公衆號 - 登龍(DLonngv)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。