当前位置: 首页 > news >正文

A与B组件自动对齐与组装,无映射直接补偿。

网上针对组装的从视觉到控制动作,要不就是收费,要不就是简单介绍。这么详细的比较难找~
手下留情,不喜勿喷!
 

Show time~

分步解决方案:
标定阶段(Calibration)

9点张氏标定(每个位置A1、A2、B1、B2):

使用机械手在相机视野内沿Z字形路径移动,覆盖9个点(XY方向间距根据视野范围设定)。

通过图像识别每个点的像素坐标,结合机械手的实际坐标,计算相机到机械手的变换矩阵(包含旋转和平移)。

输出每个位置的独立标定矩阵(如Mat_A1, Mat_A2, Mat_B1, Mat_B2)。

5点旋转中心标定(每个位置):

固定机械手在当前位置(如A1),绕Z轴以0.1度为步进旋转,拍摄5个角度(例如0°, 0.1°, 0.2°, 0.3°, 0.4°),记录每个角度下的特征点坐标。

通过最小二乘法拟合旋转中心坐标(机械坐标系下的点),并生成旋转补偿矩阵。

存储每个位置的旋转中心坐标(如RotCenter_A1)及角度-坐标映射关系。

基准点设定(Reference Setup)

拍摄基准图像:

机械手携带标准产品依次到达A1、A2、B1、B2,各位置拍摄图像。

提取图像特征点(如边缘、孔位等)的像素坐标,通过对应标定矩阵转换为机械坐标(如Ref_A1_X, Ref_A1_Y)。

建立基准线段与中心点:

对A1和A2的基准坐标,计算基准线段的端点(如线段Ref_A1A2)及其中点(Center_A)。

同理处理B1和B2,得到Ref_B1B2线段及中点Center_B。

实时角度计算(Angle Calculation)

实时数据采集:

机械手携带产品到达A1、A2,拍摄实时图像,提取特征点并转换为机械坐标(Real_A1, Real_A2)。

同样获取B1、B2的实时坐标(Real_B1, Real_B2)。

平移补偿:

计算实时线段(Real_A1A2)的中点,与基准中点(Center_A)的偏差(ΔX, ΔY)。

控制机械手移动,使实时中点与基准中点重合。

旋转角度计算:

通过基准线段Ref_A1A2与实时线段Real_A1A2的方向向量,计算夹角θ(使用反正切或向量点积公式)。

结合旋转中心坐标(RotCenter_A1),调整机械手绕该中心旋转θ角,使线段对齐。

同步更新B的位置数据:

重复上述步骤处理B1、B2,得到B的实时角度θ_B。

AB组装补偿(Assembly Compensation)

位置偏差补偿:

检测B的实时位置与基准的偏差(如ΔB_X = -5),则A需补偿+5(ΔA_X = 5),使得ΔA_X + ΔB_X = 0。

同样处理Y方向,确保A移动后总偏差归零。

角度同步:

计算A与B的实时角度差Δθ = θ_A - θ_B。

保持B不动,调整A的旋转角度Δθ,使两者角度一致。

最终组装:

在位置和角度补偿完成后,机械手控制A与B进行精密组装,确保接触点零误差。

关键公式与示例:
标定矩阵转换:

(
X
机械
Y
机械
)
=
Mat
位置
×
(
u
像素
v
像素
1
)
(
X
机械

Y
机械


)=Mat
位置

×

u
像素

v
像素

1

旋转角度计算:

θ
=
arctan

(
Real_A2
Y

Real_A1
Y
Real_A2
X

Real_A1
X
)

arctan

(
Ref_A2
Y

Ref_A1
Y
Ref_A2
X

Ref_A1
X
)
θ=arctan(
Real_A2
X

−Real_A1
X

Real_A2
Y

−Real_A1
Y


)−arctan(
Ref_A2
X

−Ref_A1
X

Ref_A2
Y

−Ref_A1
Y


)
平移补偿量:

Δ
X
=
Center_A
X

Real_A1
X
+
Real_A2
X
2
ΔX=Center_A
X


2
Real_A1
X

+Real_A2
X

注意事项:
确保标定环境稳定,避免振动或光照变化影响标定精度。

定期复检标定参数,防止机械结构磨损导致偏差。

采用滤波算法(如卡尔曼滤波)处理实时数据中的噪声,提高系统鲁棒性。

通过以上步骤ÿ

相关文章:

  • python绘图之箱型图
  • 测试使用Cursor中的deepseek-V3大模型辅助开发一个小程序
  • 文档生成视频转换工具,让一切皆可制作成视频
  • Unity 打开摄像头 并显示在UI
  • 防御保护实验三---前七章综合练习
  • labelimg的xml文件转labelme的json文件
  • 【DeepSeek-R1】满血版免费网页端使用(不卡顿,支持联网搜索)
  • 前端工程化的具体实现细节
  • 【从字节码的角度看switch-case】
  • spring boot知识点2
  • DeePMD深度势教程6:Abacus STRU文件转换方法
  • java如何读取文件一条一条处理,快速把下划线变量变为驼峰变量
  • 栈回溯方案
  • 使用DeepSeek+本地知识库,尝试从0到1搭建高度定制化工作流(自动化篇)
  • Pytorch实现论文之利用多生成器来预防模式崩溃
  • 解决“区间内查询数字的频率”问题
  • I2C、SPI、UART
  • java项目打包成docker镜像步骤
  • Node.js 的 http 模块
  • 前端监控的具体实现细节
  • 【社论】公平有序竞争,外卖行业才能多赢
  • 北京13日冰雹过后,已受理各险种报案近3万件
  • 在稳市场稳预期下,投资者教育给了散户更多底气
  • 彭丽媛同巴西总统夫人罗桑热拉参观中国国家大剧院
  • 习近平同巴西总统卢拉共同出席合作文件签字仪式
  • 中央结算公司:减免境外央行类机构账户开户费用