首頁  技術文章  基於Opencv開發的手眼標定工具

基於Opencv開發的手眼標定工具

發布時間:2021-05-25 17:35:49 瀏覽量:5383 作者:Cricket

摘要

3D視覺引導機器人的重要前提條件是建立起相機與(yu) 機器人之間的坐標關(guan) 係,即手眼標定。為(wei) 便於(yu) 將市麵上任意3d結構光相機與(yu) 國內(nei) 外

工業(ye) 機器人結合做手眼標定,基於(yu) Opencv開發了此腳本工具,用於(yu) 離線手眼標定,代碼開源,操作簡單,適用性廣泛。

正文


器材準備 

1. 3D結構光相機一個(ge)  

2. Opencv專(zhuan) 用的棋盤格標定板,規格為(wei) 9*6 ,10mm使用教程 

3. 工業(ye) 機器人一台 

4. PC一台(帶usb3.0接口) 

5. 手眼標定工具軟件包解壓至本地  


數據準備 

1. 離線標定 

2. 手眼標定,分眼在手上eih和眼在手外eth。基礎知識請自行了解 

3. 旋轉類型一般分2種,常見進口機器人都為(wei) abg,例如abb,ur,fanuc,kuka等;國產(chan) 機器人大部分為(wei) gba

4. 其他文件路徑默認在當前目錄下 

5. 在當前目錄下新建robotpose.txt 和caldata文件夾 

(一)標定板采樣至少10組RGB數據,格式為(wei) png即可

(二)機器人pose也相應采樣同等組數,打開robotpose.txt -> 每行記錄一組笛卡爾(x,y,z,rx,ry,rz)-> 每個(ge) 浮點數之間用半角逗號

間隔


執行標定 

1. 下載到本地後,打開手眼標定工具 

2. 標定工具選擇Opencv,標定類型視情況選,旋轉類型視情況選(大多情況是abg) 

3. 點擊標定按鈕,標定結果和殘差的.yaml文件都生成在當前目錄下


Opencv手眼標定求解原理概述:

1. 坐標係之間的關(guan) 係可以用齊次矩陣表示H = [R t],其中H為(wei) 4*4方陣,R為(wei) 3*3旋轉方陣,t代表3*1平移向量,任意坐標係之間位置的轉換,都可以用齊次矩陣(旋轉和平移)來描述,下麵將簡述手眼標定中各坐標係之間的關(guan) 係,以及如何通過Opencv算子解出目標手眼矩陣。先交代一個(ge) 前提(齊次矩陣的文字表達)。例 A_H_B = [R t] , 把A坐標係先經過R旋轉,再經過t平移,可到達B坐標係,也可以理解成B坐標係下的某個(ge) 點在A坐標係下的位姿.


2. 手眼標定涉及以下幾個(ge) 坐標係

    Pixel_H_Image 圖像平麵坐標係在像素平麵坐標係下的位姿

    Image_H_Camera 相機光心坐標係在圖像坐標係下的投影位姿

    Camera_H_World 世界坐標係(人為(wei) 定) 在相機坐標係下的位姿

    Base_H_Tool 機器人末端工具坐標係在機器人基坐標係下的位姿,機器人正運動學計算得到,即可在示教器上直接查看

    Tool_H_Camera | | Base_H_Camera  手眼矩陣二選一,根據相機固定方式來定,即相機坐標係在工具坐標係下的位姿 或 相機坐標

係在機器人基坐標係下的位姿

    Base_H_Obj 物體(ti) 在基坐標係下的位姿

    World_H_Obj 物體(ti) 在世界坐標係下的位姿

    Pixel_H_Obj 物體(ti) 在像素平麵坐標係下的位姿


3. 通過cv::calibrateCamera()求內(nei) 參

輸入參數:Pixel_H_Obj (從(cong) 多副含有標定板的圖像中通過cv::findChessboardCornersSB()得到),World_H_Obj (通過vector容

器和棋盤格規格得到)

輸出參數:Pixel_H_Camera = Pixel_H_Image*Image_H_Camera


4. 通過cv::solvePnP()計算得到相機外參,並得到最終要的標定板在相機下的位姿

輸入參數:Pixel_H_Camera,Pixel_H_Obj ,World_H_Obj(均通過上述過程得到)

輸出參數:Camera_H_Obj (每張圖片一個(ge) 位姿,放入vector容器)


5. 通過cv::calibrateHandeye()求出手眼矩陣

眼在手上時:

輸入參數:Base_H_Tool(多組位姿,放入vector容器),Camera_H_World

輸出參數:Tool_H_Camera


眼在手外時:

輸入參數:Tool_H_Base(多組位姿,放入vector容器),Camera_H_World

輸出參數:Base_H_Camera


6. 驗算手眼標定精度

眼在手上時,理論上每組的Base_H_Obj相同,因此:

Base_H_Obj(待求) = Base_H_Tool(已知) * Tool_H_Camera(手眼矩陣) * Camera_H_Obj(已知),求多組Base_H_Obj,估算誤差


眼在手外時,理論上每組的Tool_H_Obj相同,因此:

Tool_H_Obj (待求)= Tool_H_Base(已知) * Base_H_Camera(手眼矩陣),求多組Tool_H_Obj,估算誤差


您可以通過我們(men) 的官方網站了解更多的国产欧美在线信息,或直接來電谘詢4006-888-532