聲明:本文轉載自公衆号AmazingRobo+
分享一個可任意移動,任意旋轉的J4關節移動相機标定算法。隻需标定一次,相機就可以在任意位置且相機可以帶旋轉的進行拍照。簡單友善。
— Edited By Hugo
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CM1EmZ0kTZmRGOxMDNiZ2YkJDNlBzNiZjZihjZkVzN48CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
前言:
說起SCARA手眼标定,這是第四篇了。已經基本覆寫常用平面手眼标定的方式。
這些都是基于第三方實作的算法,可适用于所有的SCARA機器人。
标定步驟如下:
移動相機需要按機器人未端安裝校準治具,并在相機工作視野平面上,找一個視覺容易識别且唯一的特征點。
STEP1: 求教校準治具未端的工具坐标Tool 1
STEP2: 将治具未端對準标定圓,在Tool 1下儲存該位置為ref_pos
*參考點位置 用目前工具Tool1去對準标定圓
ref_pos:=[-2.5760,381.149,224.404]
STEP3: 機器人管理器中,将Tool切換到Tool 0
STEP4: 将相機移動到特征點上方,讓特征點按照九宮圖順序,即視野的上左->上中->上右->中右->中中->中左->下左->下中->下右位置。
Tool 0下記錄每個位置的機器人坐标。(注意整個過程不要旋轉U軸)
robot_x:=[-10.427,-32.830,-19.948,-4.683,-26.218]
robot_y:=[312.182,320.876,323.668,326.091,334.909]
STEP5: 同時每走一個位置時,視覺抓取該特征點的中心像素值,依次記錄如下:
image_x:=[622.904,2389.383,1573.035,583.063,2294.077]
image_y:=[406.118,427.244,951.266,1512.772,1564.933]
STEP6: 代入如下算子執行标定
scara_J4_calib(robot_x,robot_y,ref_pos,image_x,image_y,HomMat2D)
到此标定就完成了。
标定轉換步驟如下:
STEP1: 拍攝一個特征點,求得像素位置(img_x,img_y)
img_x:2402.432
img_y:1304.998
STEP2: 擷取機器人Tool 0下目前位置(X,Y,U)
cur_pos:=[215.588,268.285,326.067]
STEP3: 取得第一個拍照點
cali_pos:=[robot_x[0],robot_y[0]]
STEP4. 執行标定轉換
scara_j4_calib_trans(HomMat2D,img_x,img_y,cur_pos,ref_pos,cali_pos,final_Posx,final_Posy)
到此标定轉換結束了。
代碼如下:*
*---------------------第一步 執行手眼标定------------------
*參考點位置 用目前工具Tool1 去對準标定圓(注意整個過程不要旋轉U軸)
ref_pos:=[-2.5760,381.149,224.404]
*Tool0 下移動機器人9個拍照位置
robot_x:=[-10.427,-32.830,-19.948,-4.683,-26.218]
robot_y:=[312.182,320.876,323.668,326.091,334.909]
*圖像上9個位置
image_x:=[622.904,2389.383,1573.035,583.063,2294.077]
image_y:=[406.118,427.244,951.266,1512.772,1564.933]
*
scara_J4_calib (robot_x, robot_y, ref_pos, image_x, image_y, HomMat2D)
*----------------------第二步 标定轉換--------------------
*取第一個拍照點
cali_pos:=[robot_x[0],robot_y[0]]
*标定完成後,拍攝一個特征點的,求得像素位置(img_x,img_y)
img_x:=2402.432
img_y:=1304.998
*擷取機器人目前位置(X,Y ,U) Tool0 下
cur_pos:=[215.588,268.285,326.067]
*
scara_J4_calib_trans (HomMat2D, img_x, img_y, cur_pos, ref_pos, cali_pos, final_Posx, final_Posy)
勇哥注:
作者沒有提供完全的代碼,幾個外部函數可用,但不可以檢視代碼。
是以,本貼是授人以魚,并沒有授人以漁,不過還是感謝作者的代碼。
#轉載請注明出處 www.skcircle.com 《少有人走的路》勇哥的工業自動化技術網站。如果需要本貼圖檔源碼等資源,請向勇哥索取。
收藏 | 0點贊 | 0打賞作者