首页 > 其他分享 >Halcon 机械视觉 使用仿射变换 机械手实现孔位定位

Halcon 机械视觉 使用仿射变换 机械手实现孔位定位

时间:2023-12-25 21:06:57浏览次数:34  
标签:cos Halcon A1 孔位 B1 rx1 坐标系 向量 仿射变换


要推算机械手平面坐标系A与相机平面坐标系B的关系,我们可以首先找到两个平面坐标系之间的平移量和旋转量。

平移量:选择一个公共的参考点,比如某个标志物,假设在坐标系A中的坐标为(Ax, Ay),在坐标系B中的坐标为(Bx, By)。那么平移量可以表示为:

Δx = Bx - Ax
Δy = By - Ay

这里的(Δx, Δy)表示坐标系B相对于坐标系A的平移量。

旋转量

利用三角函数可以得到:

cos(θ) = (A1·B1) / (||A1|| ||B1||)
cos(θ) =((A1X * B1X)+(A1Y*B1Y)) / (√(A1x^2 + A1y^2) * √(B1x^2 + B1y^2))

在坐标系A中选择一个基准向量A1,对应于坐标系B中的向量B1。
θ表示坐标系B相对于坐标系A的旋转角度。

A1·B1 表示向量 A1 和向量 B1 的点积,表示两个向量在相同方向上的分量的乘积之和。
||A1|| 表示向量 A1 的模。
模表示向量的长度或大小,即 ||A1|| = √(A1x^2 + A1y^2)
其中 A1x 和 A1y 分别表示向量 A1 在 x 轴和 y 轴上的分量,同理可得||B1||。

注意,如果坐标系A和B之间存在缩放,我们还需要考虑缩放的情况。

有了平移量和旋转量,我们可以描述平面坐标系A和B之间的关系。假设有一个点在坐标系A中的坐标为(x, y),那么在坐标系B中的坐标可以通过下面的变换获得:

x_new = cos(θ) * x - sin(θ) * y + Δx
y_new = sin(θ) * x + cos(θ) * y +Δy

举例:

Halcon 机械视觉 使用仿射变换 机械手实现孔位定位_计算机视觉


举例:

rx1 = 415.35

ry1 = -173.03

cx1 = 398.997

cy1 = -160.886

平移量Δx :cx1-rx1

平移量Δy :cx2-rx1

向量|r|:( (rx2-rx1),(ry2-ry1))

向量|c|:( (cx2-cx1),(cy2-cy1))

A1·B1:((cx2-cx1)*(rx2-rx1)+(ry2-ry1) * (cy2-cy1))

||A1|| = √(A1x^2 + A1y^2) : 根号((rx2-rx1)的平方+(ry2-ry1)的平方))

||B1|| = √(B1x^2 + B1y^2) : 根号((cx2-cx1)的平方+(cy2-cy1)的平方))

最后得出cos、sin、Δx、Δy 已知相机世界坐标

即可套用公式算出机械手对应世界坐标。

图中示例cos无限逼近与1,证明两个平面基本上重合,坐标直接相减即可

Halcon 机械视觉 使用仿射变换 机械手实现孔位定位_Halcon_02


标签:cos,Halcon,A1,孔位,B1,rx1,坐标系,向量,仿射变换
From: https://blog.51cto.com/u_14910409/8972125

相关文章

  • Halcon 螺丝孔位定位
    标定坐标:对整个9点标定版进行拍摄时的世界坐标HomMat2D1:标定后得到的换算关系孔位世界坐标:相机移动到孔位上的世界坐标圆心世界坐标:模版匹配后得到的螺丝孔位中心相对偏移:孔位世界坐标-标定坐标目标坐标:圆心世界坐标+相对偏移要输出的偏移量:工具末端世界坐标-目标坐标标定坐标......
  • Halcon (基于镜头中心)协同机械手进行自动标定
    流程使用相机捕捉初始标定点位,记录世界坐标在机器人示教器上基于基准点位进行其余8个点位设置,每次x轴偏移+4或Y轴偏移+4对每个点位进行图像获取编写Halcon脚本,获取9幅图像中点位中心的像素坐标,以及对应算出的机械手世界坐标,导入标定demo获取换算关系。在图像中模拟位置进行验证,此......
  • 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......
  • 仿射变换
    1.平移2.旋转3.缩放4.倾斜5.翻转仿射变换流程1:获取特征点坐标、角度2:计算仿射变换矩阵3:对图像、区域、轮廓进行仿射变换注:获取特征点坐标角度,除匹配和blob还有其它方法只要能稳定的求出特征点即可1.平移hom_mat2d_identity(HomMat2DIdentity)解释:定义一个对角......
  • 可视化学习:CSS transform与仿射变换
    引言在几年前,我就在一些博客中看到关于CSS中transform的分析,讲到它与线性代数中矩阵的关系,但当时由于使用transform比较少,再加上我毕竟是个数学学渣,对数学有点畏难心理,就有点看不下去,所以只是随便扫了两眼,就没有再继续了解了。现在在学习可视化,又遇到了这个点,又说到这是可视化的......