1. 程式人生 > >手眼標定(九點法)

手眼標定(九點法)

所謂手眼系統,就是人眼鏡看到一個東西的時候要讓手去抓取,就需要大腦知道眼鏡和手的座標關係。如果把大腦比作B,把眼睛比作A,把手比作C,如果A和B的關係知道,B和C的關係知道,那麼C和A的關係就知道了,也就是手和眼的座標關係也就知道了。 
這裡寫圖片描述
相機知道的是畫素座標,機械手是空間座標系,所以手眼標定就是得到畫素座標系和空間機械手座標系的座標轉化關係。 
在實際控制中,相機檢測到目標在影象中的畫素位置後,通過標定好的座標轉換矩陣將相機的畫素座標變換到機械手的空間座標系中,然後根據機械手座標系計算出各個電機該如何運動,從而控制機械手到達指定位置。這個過程中涉及到了影象標定,影象處理,運動學正逆解,手眼標定等。

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

九點標定:

這裡寫圖片描述
九點標定直接建立相機和機械手之間的座標變換關係。 
讓機械手的末端去走這就9個點得到在機器人座標系中的座標,同時還要用相機識別9個點得到畫素座標。這樣就得到了9組對應的座標。 
由下面的式子可知至少需要3個點才能求出標定的矩陣。 
這裡寫圖片描述

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

%前面求出影象座標
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)、求解

affine_trans_point_2d(HomMat2D,Row2,Column2,Qx,Qy)
%由畫素座標和標定矩陣求出機器人基礎座標系中的座標
  • 一些特殊情況的解釋:

有些情況中我們看到相機固定在一個地方,然後拍照找到目標,控制機械手去抓取,這種就很好理解。我們也叫做eye-to-hand 
還有一種情況是相機固定在機械手上面,這種情況的標定過程實際上和相機和機械手分離的標定方法是一樣的,因為相機拍照時,機械手會運動到相機標定的時候的位置,然後相機拍照,得到目標的座標,再控制機械手,所以簡單的相機固定在末端的手眼系統很多都是採用這種方法,標定的過程和手眼分離系統的標定是可以相同對待的。我們也叫做eye-in-hand 
這裡寫圖片描述

 
這裡寫圖片描述