手眼标定最简单的方法:九点标定
九点标定的目的:
建立Mark点的图像坐标与其在机械手坐标系下的仿射变换矩阵,利用求得的仿射变换矩阵,可以把Mark点的图像坐标转成物理坐标,进而控制机械手完成定点抓取任务。
halcon九点标定算子
%Mark点像素坐标
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是Mark点像素坐标和机械手坐标之间的关系
affine_trans_point_2d(HomMat2D,Row2,Column2,Qx,Qy)
%由像素坐标和HomMat2D矩阵求出机械手坐标系中的坐标