方案使用进阶
本节将从进阶角度介绍电芯上料方案,对轴棒识别的过程进行详细讲解。轴棒识别过程中涉及两个主要的工程,分别为“Vis_Battery_Cell_Recognition”、“Vis_Determine_Battery_Cell_Polarity”,本节将分别对两个工程进行流程概述和步骤详解。
工程一:Vis_Battery_Cell_Recognition
步骤详解
点云预处理
-
功能说明:
该步骤组合可去除干扰点云,为后续电芯及泡棉托盘点云计算做准备。
-
需调整的参数:
参数 参数解释 调节说明 调节效果 3D ROI
该参数用于设置 3D 感兴趣区域,使需要参与计算的点云被包含在该区域内,防止无关点云参与计算。
3D ROI 内需包含整垛电芯的最高层和最低层,以确保能够兼容来料有偏差的情况。同时需去除其他干扰点云。
-
内部重点步骤介绍:
步骤 功能说明 参数调节说明 处理结果 将深度图转换为点云
该步骤可将相机获取的深度图转化为点云,转换后的点云中包含更加丰富和准确的几何信息,用于后续数据处理。
无需进行参数调整。
点云降采样
该步骤可以一定的间隔对点云进行采样,降低点云密度,提高后续步骤的运行速度,提升视觉节拍。
采样间隔越大,点云越稀疏,计算速度越快,但准确性可能会降低。
点过滤
该步骤可根据点云法向,去除侧面的点云。
-
参考方向:选择机器人坐标系 Z 轴方向,或选择相机坐标系方向。
-
角度阈值设置:点云法向与参考方向之间的夹角,夹角不在该范围内的点云(右图中红色点云)会被过滤。
点云聚类
该步骤可区分泡棉托盘点云、电芯点云,同时滤除部分杂点。
-
输出类中相邻点最大距离:通过点与点之间的距离对点云分类,当点云间距小于该值时,被判断为同类点云,反之被判断为不同类点云,并以不同颜色区分。
-
类的最小点数&类的最大点数:点云聚类后,当一块点云中的点数小于“类的最小点数”或大于“类的最大点数”时,将被过滤,点数位于该区间的点云将被保留。
-
电芯抓取位姿计算
-
功能说明:
该步骤组合可通过单排电芯点云计算平面点云位姿,得到单排电芯的抓取点。
-
需调整的参数:
参数 参数解释 调节说明 调节效果 电芯露出托盘高度
通过调整该参数,该步骤可准确获取最上层电芯及泡棉托盘点云,用于后续计算。
该参数值允许存在一定波动,不影响视觉结果。
-
内部重点步骤介绍:
步骤 功能说明 处理结果 判断是否为空托盘(步骤组合)
该步骤组合可分离电芯点云与泡棉托盘点云,并判断托盘上是否有电芯。如果有电芯,输出电芯点云;如果没有电芯,输出泡棉托盘抓取点。
根据点云尺寸进行分类
该步骤可根据点云尺寸对电芯点云和泡棉托盘点云进行分类。尺寸由“读取物体尺寸”步骤进行输入。
判断电芯方向(步骤组合)
该步骤组合可通过判断电芯在相机视野中的摆放方式,分别输出对应的单排电芯点云。如右图所示,为从竖向电芯点云中提取的单排电芯点云。
计算单个电芯长短边(步骤组合)
该步骤组合可提取单个完整电芯点云,计算在相机坐标系下该点云的长短边,并判断电芯方向,然后根据计算结果提取单排电芯点云。
-
计算电芯抓取点(步骤组合)
该步骤组合可通过单排电芯点云,计算平面点云位姿,得到电芯抓取点。
电芯高度差及数量检测
-
功能说明:
该步骤组合可判断电芯在托盘内的高度是否不一致,并判断是否存在缺料情况,如果存在异常,则输出报警信息。
-
需调整的参数:
参数 参数解释 调节说明 调节效果 单排电芯数量
通过设置该参数,该步骤组合可判断电芯是否存在缺料的情况,如果缺料,则输出报警信息。
根据实际需求设置该参数。如右图所示,分别为满料时的标签信息和缺料时的标签信息。
-
内部重点步骤介绍:
步骤 功能说明 处理结果 判断高度差是否异常(步骤组合)
该步骤组合可分别计算单排每个电芯的位姿,然后根据位姿高度,判断是否有异常,并输出判断结果,即布尔值。
判断电芯数量(步骤组合)
该步骤组合可根据点云判断电芯数量是否正确,如果不正确,则输出报警信息。
工程二:Vis_Determine_Battery_Cell_Polarity
流程概览
在“Vis_Battery_Cell_Recognition”工程中,通过计算单个电芯平面点云得到电芯尺寸后,利用深度学习对电芯表面二维码标志位置识别,判断电芯正负极方向。整体流程如下图所示。
步骤详解
点云预处理
-
功能说明:
该步骤组合可去除干扰点云,提取完整的单个电芯点云,为后续的尺寸计算做准备。
-
需调整的参数:
参数 参数解释 调节说明 调节效果 3D ROI
该参数用于设置 3D 感兴趣区域,使需要参与计算的点云被包含在该区域内,防止无关点云参与计算。
3D ROI 内需包含整垛电芯的最高层和最低层,以确保能够兼容来料有偏差的情况。同时需去除其他干扰点云。
-
内部重点步骤介绍:
步骤 功能说明 处理结果 将深度图转换为点云
该步骤可将相机获取的深度图转化为点云,转换后的点云中包含更加丰富和准确的几何信息,用于后续数据处理。
深度学习获取电芯图像(步骤组合)
该步骤组合可通过深度学习从相机获取到的 2D 图中提取电芯图像,方便后续识别二维码。
提取掩膜中对应的点云
该步骤可通过深度学习掩膜,提取单个电芯点云,避免无关点云影响后续计算。
判断电芯尺寸
-
功能说明:
该步骤组合可根据点云数量选择最完整的单个电芯点云,然后计算得到电芯的尺寸,并转化为位姿数据。
-
需调整的参数:
无需调整参数,绝大多数场景下可使用默认参数。
-
内部重点步骤介绍:
步骤 功能说明 参数调节说明 处理结果 点云降采样
该步骤可以一定的间隔对点云进行采样,降低点云密度,提高后续步骤的运行速度,提升视觉节拍。
采样间隔越大,点云越稀疏,计算速度越快,但准确性可能会降低。
获取最高层电芯点云(步骤组合)
该步骤组合可去除影响计算的杂点,并获取电芯点云,用于后续计算。
无需进行参数调整。
筛选电芯点云(步骤组合)
该步骤组合可根据单个电芯的点云数量,筛选最完整的电芯点云,用于后续尺寸计算。
无需进行参数调整。
将尺寸转换为位姿(步骤组合)
该步骤组合可将计算得到的电芯尺寸转换为位姿,方便后续数据处理。
无需进行参数调整。
检测正负极方向
-
功能说明:
该步骤组合可通过深度学习识别电芯二维码,计算二维码在电芯图像中的位置,从而判断电芯正负极方向。具体说明如下。
-
根据二维码位置与电芯 2D 图中心的位置关系,判断电芯正负极方向,输出“up”、“down”、“right”、“left”四种标签,代表二维码位于电芯图像的“上”、“下”、“左”、“右”四个方位。
-
利用标签映射功能,将四种标签映射为两种标签。如:“up”和”left“映射为“11”,“down”和“right”映射为“12”。标签“11”代表机器人根据电芯的抓取点正常抓取,标签“12”代表机器人需要旋转 180° 后进行抓取。
如果同一排电芯的识别结果中,出现方向不统一的结果,则输出标签“13”。
如果识别电芯正负极时拍照点随电芯横竖方向变化,则只需输出“上”、“下”两种标签。
-
-
需调整的参数:
无需调整参数,绝大多数场景下可使用默认参数。
-
内部重点步骤介绍:
步骤 功能说明 处理结果 深度学习模型包推理
该步骤可通过深度学习识别电芯上表面二维码,用于后续计算。
计算图像中心(步骤组合)
该步骤组合可计算电芯 2D 图中心,用于后续和二维码图像中心作对比,从而确定二维码位置。
使用Python计算结果
该步骤可通过 Python 脚本对比电芯 2D 图中心和二维码图像中心,通过对比结果确定电芯正负极方向。