首页 > 其他分享 >Halcon (基于镜头中心)协同机械手进行自动标定

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

时间:2023-12-25 21:06:30浏览次数:32  
标签:Index 点位 665 世界坐标 661 标定 机械手 Halcon


流程

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

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


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


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


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


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


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


  10. 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 (基于镜头中心)协同机械手进行自动标定_Halcon_10


标签:Index,点位,665,世界坐标,661,标定,机械手,Halcon
From: https://blog.51cto.com/u_14910409/8972130

相关文章

  • Halcon 5分钟学会9点标定 带图片示例、示例源码
    9点标定应用流程如果没有9个点,其实只需要一个点就可以,移动机械手,只需将这个点在视野内不同坐标即可,前置条件,相机焦距,视野固定高度和角度,光源光强度固定。移动机械手,使用螺丝批头,在视野范围内的白纸上,点九个点,记录每个点位的位置,每个点位的顺序要和图像上获取的圆心数组顺序一致,此时......
  • halcon-轮廓拟合圆fit_circle_contour_xld
    fit_circle_contour_xld(xld,'algebraic',-1,0,0,3,2,Row,Column,Radius,StartPhi,EndPhi,PointOrder)*对XLD轮廓做近似圆计算--拟合圆--获得圆数据*参数1:输入xld轮廓*参数2:圆的拟合算法*'ahuber'对轮廓点进行加权,以减少异常值的影响*'......
  • [Halcon&拟合] 直线、矩形和圆的边缘提取
    作者:丶布布一、测量矩形拟合提取直线边缘1、封装的函数介绍:将整个算法进行封装,得到函数MS_LineDetecter。MS_LineDetecter(ImageIn:outDetectRectangle:iLineRow1,iLineCol1,iLineRow2,iLineCol2,iRectWidth,iRectHeight,iSigma,iThreshold:oLineRow1,oLineCol......
  • [Halcon&定位] 解决Roi区域外的模板匹配成功
    作者:丶布布一.问题描述用halcon形状模版匹配,红色矩形框是搜索范围,ROI矩形框中间的是训练的模版,按理说应该只会匹配到ROI中中间的那个为什么会搜到搜索区域之外的部分,而且匹配分数还很高,即模板在搜索区域外仍能匹配成功。 二.原因分析使用reduce_domain裁切搜索区域部分的图像时......
  • [贴装专题] 基于多目视觉的手眼标定
    作者:丶布布一.为什么要进行手眼标定    因为相机知道的是像素坐标,吸嘴是空间坐标系,所以手眼标定目的就是将像素坐标系的坐标和空间机械手坐标系的坐标进行相互转化。在实际控制中,相机检测到目标在图像中的像素位置后,通过标定好的坐标转换矩阵将相机的像素坐标变换到机械手......
  • [贴装专题] 基于halcon的拟合矩形边缘验证贴装精度
    作者:丶布布......
  • [Halcon] 2023.2月license分享(关注持续更新)
    作者:丶布布友情提示:Halcon18以下版本不再提供HDevelop试用授权License(只有运行License需要配合加密狗),请大家升级到最新版本!Halcon是一款商业化的视觉程序,它封装了很多方便的强大的图像处理算法,很多视觉项目都有用它,与visionpro一样,都是一款商业化的软件,加密狗相当的贵,不过Halcon......
  • 智驾数据采集平台搭建之多传感器联合标定
    简介:  在自动驾驶发展如火如荼的今天,L4和L5级的自动驾驶功能依旧处于算法开发和验证的阶段,就无可避免的需要极其庞大的路试数据用以支撑算法的开发和训练,为此,北汇信息为客户提供整套的数采平台解决方案。值得一提的是,在数采平台搭建后,到数据的消费端之前,必须要完成数采平台......
  • Halcon使用入门
      使用WPF并采取MVVM模式MVVM相关      添加引用Halcon:  XAML设计:<Grid><Grid.RowDefinitions><RowDefinitionHeight="0.8*"/><RowDefinitionHeight="0.2*"/></Grid.RowDefinitions><Hal......
  • Halcon 与 bitmap 互转
     Halcon与bitmap互转:publicvoidBitmap2HObjectBpp24(Bitmapbmp,outHObjectimage){try{Rectanglerect=newRectangle(0,0,bmp.Width,bmp.Height);BitmapDatasrcBmpData=bmp.......