Appearance
铝壳表面平面度检测
项目简介
项目背景
随着现代制造业的不断发展,对产品质量的要求也越来越高。铝壳作为众多产品的重要组成部分,其表面平面度直接影响到产品的整体性能和外观质量。因此,对铝壳表面平面度的准确测量和控制显得尤为重要。
相机选型
LMI激光线扫相机 Gocator2430
检测要求
测量精度 ≤ 0.05mm
测量重复性 ≤ 0.018mm
测量周期 ≤ 200ms
解决方案
AI-Vision软件对3D点云图直接处理,进行定位后根据图纸指定区域进行平面拟合,进行平面度测量。
设计思路
执行效果展示
工程结果展示:
HMI结果展示:
项目流程
一、初始化
[00] 选择Lua脚本语言
工具,全局变量初始化,创建待接收数据的csv文件。
lua
-- 生成保存检测数据的csv文件
-- 生成用于拼接字符串的表头
write = ""
-- 字符串写入csv文件中
-- 当无该文件时,系统会自动生成该文件,同时该工具会WARN提示系统内无该文件
if FileSize("./Plane.csv") <= 0 then
write = write .. "Time,"
write = write .. "Plane" .. ","
write = write .. "OK/NG" .. ","
write = write .. "\n"
end
write = write .. os.date("%Y_%m_%d %H:%M:%S") .. ","
-- 字符串写入文件中
fprint("./Plane.csv", write)
[01] 选择加载点云
工具,获取点云。
二、预处理
图像初定位:
[02-03] 选择两次
3D方形探针
工具,找到铝壳的左边以及下边并输出到寄存器中。[04] 选择
3D几何交点
工具,通过读取寄存器中的两边,找到两条边的交点,并输出到寄存器中。[05] 选择
3D位置调整
工具,以3D几何交点
工具找到的交点为原点,调整x,y的位置。拟合平面:
[6-12] 选择
3D区域
工具,根据图纸选取铝壳15块不同的区域进行拟合平面。[13] 选择
3D平面
工具,通过存入寄存器中的区域信息来拟合平面,并将拟合出来的平面作为0平面。
三、平面度测量
[14] 选择3D裁切
工具,将点云图复制至IM1进行处理。
[15] 选择3D平面度
工具,根据图纸选取15块不同的平面,通过平面的平均点进行平面测量。
四、数据保存,结果显示及判断
[16] 选择lua脚本语言
工具,对结果进行判断,将结果显示在IM上,并将测量出来的平面度以及判断结果存入csv文件中。设置用于HMI展示的全局变量。
lua
-- 保存数据至csv文件中
write = ""
test = GetMeasure(0)
-- 结果判断显示
if 0.5<test and test<0.8 then
DrawOverlay(1,50,110,20,16,"green","OK:" .. string.format("%.3f",test))
write = write .. string.format("%.3f,", test) .. "OK" .. ","
else
DrawOverlay(1,50,110,20,16,"red","NG:" .. string.format("%.3f",test))
write = write .. string.format("%.3f,", test) .. "NG" .. ","
end
fprint("./Plane.csv", write .. "\n")
-- 设置用于HMI展示的全局变量
SetVariable("Plane" , tointeger(test*1000)/1000)