機器人常用的標定方式——九點標定

機器人是如何標定的呢?與人一樣,機器人的標定方式離不開手眼系統的助力——通俗的說,就是當眼睛看到一個東西需要讓手去抓取或者做其他動作,這個時候大腦必須知道手與眼睛的座標關係。


如果把大腦比作B,把眼睛比作A,把手比作C,如果A和B的關係知道,B和C的關係知道,那麼C和A的關係就知道了,也就是手和眼的座標關係也就知道了。


機器人常用的標定方式——九點標定


相機知道的是像素座標,機械手是空間座標系,所以手眼標定就是得到像素座標系和空間機械手座標系的座標轉化關係。


在實際控制中,相機檢測到目標在圖像中的像素位置後,通過標定好的座標轉換矩陣將相機的像素座標變換到機械手的空間座標系中,然後根據機械手座標系計算出各個電機該如何運動,從而控制機械手到達指定位置。這個過程中涉及到了圖像標定,圖像處理,運動學正逆解,手眼標定等。


常用的標定方法有:九點標定


九點標定:

機器人常用的標定方式——九點標定

九點標定直接建立相機和機械手之間的座標變換關係。

讓機械手的末端去走這就9個點得到在機器人座標系中的座標,同時還要用相機識別9個點得到像素座標。這樣就得到了9組對應的座標。

由下面的式子可知至少需要3個點才能求出標定的矩陣。


機器人常用的標定方式——九點標定


(1)、標定,Halcon中進行9點標定的算子


C#

%前面求出圖像座標

area_center(SortedRegions,Area,Row,Column) %

Column_robot := [275,225,170,280,230,180,295,240,190]

%機器人末端運動到9點的列座標

Row_robot := [55,50,45,5,0,-5,-50,-50,-50]

%機器人末端運動到9點的行座標

vector_to_hom_mat2d(Row,Column,Row_robot,Column_robot,HomMat2D)

%求解變換矩陣,HomMat2D是圖像座標和機械手座標之間的關係


(2)、求解


C#

affine_trans_point_2d(HomMat2D,Row2,Column2,Qx,Qy)

%由像素座標和標定矩陣求出機器人基礎座標系中的座標

一些特殊情況的解釋:


有些情況中我們看到相機固定在一個地方,然後拍照找到目標,控制機械手去抓取,這種就很好理解。我們也叫做eye-to-hand


還有一種情況是相機固定在機械手上面,這種情況的標定過程實際上和相機和機械手分離的標定方法是一樣的,因為相機拍照時,機械手會運動到相機標定的時候的位置,然後相機拍照,得到目標的座標,再控制機械手,所以簡單的相機固定在末端的手眼系統很多都是採用這種方法,標定的過程和手眼分離系統的標定是可以相同對待的。我們也叫做eye-in-hand

機器人常用的標定方式——九點標定

機器人常用的標定方式——九點標定


分享到:


相關文章: