一种基于点云扫描的仓储堆料管理方法及系统
文献发布时间:2023-06-19 10:27:30
技术领域
本发明主要涉及到激光点云应用技术,涉及物流、仓储管理、工程应用等学科领域,具体为一种基于点云扫描的仓储堆料管理方法及系统。
背景技术
传统仓储是指利用仓库对各类物资及其相关设施设备进行物品的入库、储存和出库的活动,现代仓储是指在传统仓储的基础上增加库内加工、分拣和库内包装等环节,仓储是生产制造与商品流通的重要环节之一,也是物流活动的重要环节。
仓储是产品生产、流通过程中因订单前置或市场预测前置而使产品、物品暂时存放,它是集中反映工厂物资活动状况的综合场所,是连接生产、供应、销售的中转站,对促进生产的提高效率起着重要的辅助作用,但是物流仓储中的堆料(煤炭、沙石、水泥)因为其没有固定的形态使其难以通过正常的手段对其进行盘存和体积校验,故而提出一种基于点云扫描的仓储堆料管理方法及系统来解决上述所提出的问题。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种基于点云扫描的仓储堆料管理方法及系统,具备对堆料进行点云数据分析处理,提取出待盘点的仓储堆料,并展示其形态,进一步计算其体积及形态变化的优点,解决了物流仓储中的堆料(煤炭、沙石、水泥)因为其没有固定的形态使其难以通过正常的手段对其进行盘存和体积校验的问题。
(二)技术方案
为实现上述对堆料进行点云数据分析处理,提取出待盘点的仓储堆料,并展示其形态,进一步计算其体积及形态变化的目的,本发明提供如下技术方案:
一种基于点云扫描的仓储堆料管理方法,该方法包括步骤:
进一步的,仓储堆料管理流程方法,其步骤如下:
当发生仓库进销存行为时启动激光点云扫描设备,对仓库进行点云扫描,获取仓库点云数据;
从获取到的点云数据中分离出地面、墙面和仓储堆料;
采用网格积分方法计算出堆料体积;
采用单元网格方差计算比对与量化仓储堆料形态变化。
进一步的,仓储堆料点云形态提取方法,其步骤如下:
仓库基础数据(地面、墙面等)与堆料进行点云数据采样;
采用体素滤波将数据进行平滑处理;
将采样数据进行分类,并分割提取出不同分类数据的外法线矢量与点云强度;
使用机器学习(支持向量机)对提取的采样数据进行训练学习得到点云分类模型;
使用该分类模型对实时扫描得到的点云数据进行识别提取,得到不同分类的点云数据;
使用曲面提取技术(移动立方体或泊松提取)拟合出不同分类的点云形态;
对曲面进行平滑得到最终的提取结果。
进一步的,堆料点云网格积分体积计算方法,其步骤如下:
在上述步骤的基础上对提取出的堆料点云曲面进行网格划分(设定网格单元阈值);
按照网格划分顺序对点云数据进行排序;
判断每一个网格点中所在的点云数据,并根据提取出的地面高度计算其平均高度;
累加每个格网的长方体体积得到所有网格的体积即为堆料体积。
进一步的,仓储堆料点云形态比对计算方法,其步骤如下:
对于上一次的堆料形态,同样进行上述步骤中的网格划分;
计算每个网格的堆料高度差;
累加计算整个网格的高度方差。
一种基于点云扫描的仓储堆料管理系统,其特征在于,该系统包括:
进一步的,该系统使用流程主要步骤如下:
当发生仓库进销存行为时,用户启动激光点云扫描设备,对仓库进行点云扫描,获取仓库点云数据,并将其转换成Web上可加载的三维点云格式;
将实时获取的点云三维数据展示在系统中,用户可以交互浏览操作,也可以选取某个感兴趣的点云区域进行堆料提取与分析;
采用上述步骤中描述的方法对点云区域的堆料进行提取,并将其保存在历史记录中;
采用上述步骤中描述的方法对该堆料进行体积计算;
系统可将提取出的堆料形态与历史记录中的历史形态进行叠加显示与比对;
采用上述步骤中描述的方法对堆料形态进行变化指标计算。
进一步的,对一定区域中的仓储堆料点云形态进行提取,其方法步骤如下:
对该仓库基础数据(地面、墙面等)与堆料进行点云数据实验采样;
采用体素滤波(VoxelGrid)将数据进行平滑处理;
将采样数据中的典型目标进行人工分类,并分割提取出不同分类的点云数据;
提取出这些训练区的点云数据外法线矢量与点云强度;
使用机器学习(支持向量机)对不同分类训练区域的采样数据进行训练学习得到点云分类的机器学习模型;
使用该机器学习模型对实时扫描得到的点云数据进行识别提取,得到不同堆料类别的点云数据;
使用曲面提取技术(移动立方体MarchingCubes或泊松Poisson提取)拟合出不同分类的点云曲面形态;
对曲面进行法线平滑得到最终的提取结果。
(三)有益效果
与现有技术相比,本发明提供了一种基于点云扫描的仓储堆料管理方法及系统,具备以下有益效果:
1、该基于点云扫描的仓储堆料管理方法及系统,通过利用激光点云扫描装置对仓库中的物体进行三维点云扫描成像,所获取到的点云数据通常为(X、Y、Z和I)集合,其中X、Y和Z为点云位置坐标,I为反射强度,利用机器学习方法对获取到的点云数据进行分析处理,提取出待盘点的仓储堆料,并展示其形态,进一步计算其体积及形态变化,且能够符合多种堆料形式进行进行扫描计算,方便仓储推料拿取量的计算,便于对仓储推料的监管。
2、该基于点云扫描的仓储堆料管理方法及系统,通过计算堆料和地面所有点的所在格子的坐标,根据当前堆料的最小值开始计算格子坐标,对堆料的格子按照x方向排序,先循环所有x方向上的格子,计算出当前列的所有点保存到集合中,并且当前列的格子的y值,对当前列格子的y值进行排序去重,通过循环格子计算出某列的所有格子的地面高度,计算每一个格子的体积并累加,点云数量较多一般为百万个采集点,将每个采集点进行排序,可以提高计算效率。
附图说明
图1为本发明提出的一种基于点云扫描的仓储堆料管理系统示意图;
图2为本发明提出的一种基于点云扫描的仓储堆料管理方法示意图。
具体实施方式
下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:一种基于点云扫描的仓储堆料管理方法,该方法包括步骤:
1.使用PointCloudLibrary库读取堆料和地面点云文件;
2.计算堆料的边界范围;
3.计算堆料每个点的格子坐标;
计算格子坐标的时候,把堆料的xy最小的值当作第一个格子,然后以此来计算每个点的格子坐标并将xyz以及格子的坐标保存到集合中。
intx_index=(x-minX)/grid_step;
inty_index=(y-minY)/grid_step;
4.堆料的点集合排序;
5.堆料x方向下标集合排序去重;
6.地面数据过滤并计算每个点的格子坐标;
7.地面的点集合排序;
8.堆料集合循环先按照x下标循环,将每一列的数据保存到集合中,在将y方向上面的每一列进行排序去重;
9.计算每一列的范围;
10.判断堆料是否靠墙;
不靠墙:若两边都不靠墙则先计算每列上堆料两边最靠近的格子两个格子的坐标以及高度值,根据两个格子的坐标标计算出差值,例如第一个坐标是0,0高度值是0.1最后一个坐标是0,10高度值是1.1则差值是(1.1-0.1)/(10-0)=0.1则0,1格子的高度则是0.1+(1-0)*0.1=0.2;然后计算当前列上面每个格子的地面高度。
11.计算每一个格子到地面的相对距离;
根据每个格子中所有的点的值z值计算出平均z然后减去每个格子上的地面高度。
12.计算每一个格子的体积并累加。
实施例二:一种基于点云扫描的仓储堆料管理方法,该方法包括步骤:
1.使用PointCloudLibrary库读取堆料和地面点云文件;
2.计算堆料的边界范围;
3.计算堆料每个点的格子坐标;
计算格子坐标的时候,把堆料的xy最小的值当作第一个格子,然后以此来计算每个点的格子坐标并将xyz以及格子的坐标保存到集合中。
intx_index=(x-minX)/grid_step;
inty_index=(y-minY)/grid_step;
4.堆料的点集合排序;
5.堆料x方向下标集合排序去重;
6.地面数据过滤并计算每个点的格子坐标;
7.地面的点集合排序;
8.堆料集合循环先按照x下标循环,将每一列的数据保存到集合中,在将y方向上面的每一列进行排序去重;
9.计算每一列的范围;
10.判断堆料是否靠墙;
一面靠墙:判断堆料是否一面靠墙,则根据某一边的第一个格子和最后一个格子计算当前的列这个方向上的差值,然后根据一边的坐标的值进行差值计算每个格子的地面的值,例如当前某一边地面上的第一个格子0,0的高度值是0.2,最后一个坐标是0,10高度值是2.1,则差值是(2.1-0.2)/(10-0)=0.19假如当前列上第一个要计算的堆料的格子坐标是0,15,格子的地面高度则为2.1+(15-10)*0.19=3.05。
11.计算每一个格子到地面的相对距离;
根据每个格子中所有的点的值z值计算出平均z然后减去每个格子上的地面高度。
12.计算每一个格子的体积并累加。
实施例三:一种基于点云扫描的仓储堆料管理方法,该方法包括步骤:
1.使用PointCloudLibrary库读取堆料和地面点云文件;
2.计算堆料的边界范围;
3.计算堆料每个点的格子坐标;
计算格子坐标的时候,把堆料的xy最小的值当作第一个格子,然后以此来计算每个点的格子坐标并将xyz以及格子的坐标保存到集合中。
intx_index=(x-minX)/grid_step;
inty_index=(y-minY)/grid_step;
4.堆料的点集合排序;
5.堆料x方向下标集合排序去重;
6.地面数据过滤并计算每个点的格子坐标;
7.地面的点集合排序;
8.堆料集合循环先按照x下标循环,将每一列的数据保存到集合中,在将y方向上面的每一列进行排序去重;
9.计算每一列的范围;
10.判断堆料是否靠墙;
两面靠墙:判断堆料是否两面靠墙,若两边都不存在则计算两个方向上的值进行在求均值。先计算y方向在计算x方向,例如x方向上某一边地面上的第一个格子0,0的高度值是0.2,最后一个格子坐标是0,10的高度值是2.1,则差值是(2.1-0.2)/(10-0)=0.19假如当前列上第一个要计算的堆料的格子坐标是0,15,格子的地面高度则为2.1+(15-10)*0.19=3.05,x方向上某一边地面上第一个格子6,15的高度值是2.1,最后一个格子10,15的高度值是0.2,则差值是(0.2-2.1)/(10-6)=-0.475,则0,15的高度值是2.1-(6-0)*-0.475=4.95,当前格子的值为(3.05+4.95)/2=4。
11.计算每一个格子到地面的相对距离;
根据每个格子中所有的点的值z值计算出平均z然后减去每个格子上的地面高度。
12.计算每一个格子的体积并累加。
本发明的有益效果是:通过利用激光点云扫描装置对仓库中的物体进行三维点云扫描成像,所获取到的点云数据通常为(X、Y、Z和I)集合,其中X、Y和Z为点云位置坐标,I为反射强度,利用机器学习方法对获取到的点云数据进行分析处理,提取出待盘点的仓储堆料,并展示其形态,进一步计算其体积及形态变化,且能够符合多种堆料形式进行进行扫描计算,方便仓储推料拿取量的计算,便于对仓储推料的监管,通过计算堆料和地面所有点的所在格子的坐标,根据当前堆料的最小值开始计算格子坐标,对堆料的格子按照x方向排序,先循环所有x方向上的格子,计算出当前列的所有点保存到集合中,并且当前列的格子的y值,对当前列格子的y值进行排序去重,通过循环格子计算出某列的所有格子的地面高度,计算每一个格子的体积并累加,点云数量较多一般为百万个采集点,将每个采集点进行排序,可以提高计算效率。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
- 一种基于点云扫描的仓储堆料管理方法及系统
- 一种基于点云扫描的施工管理方法及装置