Halcon (基于镜头中心)协同机械手进行自动标定

英乐

关注

阅读 38

2023-12-25


流程

  1. 使用相机捕捉初始标定点位,记录世界坐标
  2. Halcon (基于镜头中心)协同机械手进行自动标定_计算机视觉

  3. 在机器人示教器上基于基准点位进行其余8个点位设置,每次x轴偏移+4 或 Y轴偏移+4
  4. Halcon (基于镜头中心)协同机械手进行自动标定_世界坐标_02


  5. Halcon (基于镜头中心)协同机械手进行自动标定_ci_03


  6. Halcon (基于镜头中心)协同机械手进行自动标定_ci_04


  7. Halcon (基于镜头中心)协同机械手进行自动标定_Halcon_05


  8. Halcon (基于镜头中心)协同机械手进行自动标定_世界坐标_06


  9. Halcon (基于镜头中心)协同机械手进行自动标定_计算机视觉_07


  10. Halcon (基于镜头中心)协同机械手进行自动标定_Halcon_08


  11. Halcon (基于镜头中心)协同机械手进行自动标定_Halcon_09

  12. 对每个点位进行图像获取
  13. 编写Halcon脚本,获取9幅图像中点位中心的像素坐标,以及对应算出的机械手世界坐标,导入标定demo获取换算关系。
  14. 在图像中模拟位置进行验证,
  15. 此时得到的为以相机为中心的标定关系,后续需要根据每个孔位(工具末端)的世界坐标来确定偏移关系。

dev_set_color('red')

PicRows:=[]
PicCols:=[]

for Index := 1 to 9 by 1

read_image (Image, 'G:/自动标定/0'+Index+'.bmp')

rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 13, 71)

*填充缺失
fill_up_shape (Regions, WiresFilled, 'area', 1, 100)

*开操作 腐蚀和膨胀的结合,即先腐蚀后膨胀
opening_circle (WiresFilled, Balls, 15.5)

connection (Balls, SingleBalls)

*找到具有目标特征的形状,这边填写的参数是 ‘circularity’ ,就是类圆的图形;
select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.5, 1.0)

*确定这些圆形区域的最小外接圆,并将输出的坐标和半径做处理后输出
smallest_circle (SingleBalls, Row, Column, Radius)

PicRows[Index-1]:=Row
PicCols[Index-1]:=Column

endfor

WorldRows:=[143.6,147.6,151.6,143.6,147.6,151.6,143.6,147.6,151.6]
WorldCols:=[-665,-665,-665,-661,-661,-661,-657,-657,-657]

*生成标定
vector_to_hom_mat2d (PicRows, PicCols, WorldRows, WorldCols, HomMat2D1)

*坐标转换  (Row3,Column3)像素坐标点位, (Qx,Qy)转换后的世界坐标
affine_trans_point_2d (HomMat2D1, 437.157, 389.399, Qx, Qy)
read_image (Image, 'G:/自动标定/01.bmp')
dev_set_color('green')
gen_circle (Circle, 437.157,389.399, 300)

Halcon (基于镜头中心)协同机械手进行自动标定_计算机视觉_10


精彩评论(0)

0 0 举报