视觉对位贴合halcon_上下对位贴合

本文详细介绍了上下对位流程,包括通过仰视和俯视相机拍照、九点标定及旋转中心标定的方法,实现像素坐标到世界坐标的转换,并最终确定贴合物的位置。通过具体步骤和Halcon代码实例,帮助读者理解整个对位过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bbb0e023ee8e7e891a2600d8ca994628.gif

上下对位流程:先通过仰视相机拍照,然后通过俯视相机拍照,然后对位计算,将贴合物放置在待贴合位置。准备工作:两相机分别九点标定加旋转中心标定,将像素坐标值转换为世界坐标值(不懂的可以爬梯看看之前的推文)。这样就统一了俯视相机坐标系,仰视相机坐标系,机器人世界坐标系三者。在一个坐标系中计算。减小复杂计算程度。中心思想:先旋转后平移由于是需要将两个图像中的物体进行平移旋转重合在一起,所以不需要建立标准位置。已知量:B点拍照位(XB,YB,RB),A点当前贴合物(XA,YA,RA),C点当前待贴合物(XC,YC,RC),两相机安装时角度差值△α。求D点贴合位置(XD,YD,RD)

e56560f3838c30f681339f06efd47000.png

思路分析:

step0:△α可以由仰视、俯视相机九点标定结果中的theta差值求出(算子:hom_mat2d_to_affine_par)

step1:两相机图像角度差值△β=RC-(RA+△α)

step2:A点绕B点旋转△β,得到A'点

step3:根据B、A'两点加上C点坐标可以求出D坐标

Halcon代码实现

**********Step1:两相机图像角度差值△β=RC-(RA+△α)**************Theta:=15**********Step2:A点绕B点旋转△β,得到A'点**********************hom_mat2d_identity (HomMat2DIdentity)hom_mat2d_rotate (HomMat2DIdentity, rad(15), 628.5789, 2470.4226, HomMat2DRotate)affine_trans_point_2d (HomMat2DRotate, 772.9710, 2564.8147, A1x, A1y)**********Step3:根据B、A'两点加上C点坐标可以求出D坐标***********vector_angle_to_rigid (A1x, A1y, 0, -413.0526, 2616.3019 ,0, HomMat2D1)affine_trans_point_2d (HomMat2D1, 628.5789, 2470.4226, Dx, Dy)*B:X = 628.5789     Y = 2470.4226*A:X = 772.9710     Y = 2564.8147     *A':X = 743.6204     Y = 2598.9698*C:X = -413.0526    Y = 2616.3019     *D:X = -528.0941     Y = 2487.7547
dcec3b12b2773ef1f0113f7a955b024c.png

补充知识:

1、六轴机器人来做九点标定,第一步应该是建立与工作平面平行的平面,然后再这个平面移动做九点标定,至于这个机器人的这个新坐标系怎么建立就找搞机器人的就行;当然如果要求不高,忽略。
2、验证九点标定是否正确:计算九点标定后,图像中心的坐标经过矩阵转换得到物理坐标,运动到这个点,计算图像中的标定物体的像素坐标应该是图像中心的坐标,先看看这个是否正确,然后在验证旋转。3、验证旋转标定是否正确:

再次旋转1个或2个点,计算与旋转中心的距离是否与之前一致。

end

原创不易,欢迎点击再看转发

长按 扫一扫

关注我

工控码农Zero

4ee5dec3c6488710f1023cfc89948838.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值