一种料堆盘库的方法及系统与流程

文档序号:26396008发布日期:2021-08-24 16:06阅读:145来源:国知局
一种料堆盘库的方法及系统与流程

本申请涉及混合料统计技术领域,尤其涉及一种料堆盘库的方法及系统。



背景技术:

原料场是接受、贮存、加工处理和混匀钢铁冶金原、燃料的场地。现代化大型原料场的贮料场(贮存原料的场地)包括矿石场、煤场、辅助原料场和混匀料场,不同种类的物料堆成各自的料堆。为了保证生产需求,原料场中各种原料的储量要符合生产计划,因此,需要对每个料堆进行盘库。盘库就是盘点各种原料的储量,根据储量信息及生产计划安排各种原料的进料计划。

通常情况下,原料场中各种原料的储量采用输入料量减输出料计算,即计算输入料量与输出料量的差值以进行料堆盘库。然而原料的输入量与输出量无法精确测量,运输及存放过程中,存在原料的损耗,导致这种计算原料储量的方法不准确,无法准确指导原料的进料计划,也会造成料场的利用率低。



技术实现要素:

本申请提供了一种料堆盘库的方法及系统,以解决现有的料堆盘库方法得到的储量不准确的问题。

第一方面,本申请提供了一种料堆盘库的方法,包括以下步骤:

获取外参数和设置在料场顶棚上的激光扫描仪采集料条上的每个料堆和挡墙时产生的三维点云数据,所述外参数用于表征扫描仪坐标系与世界坐标系的关系,所述三维点云数据是指在所述扫描仪坐标系下的数据;

基于所述外参数,将所述三维点云数据转换成世界坐标系下的三维点云数据,以及,根据所述世界坐标系下的三维点云数据建立所述料条对应的高度图,所述世界坐标系是指基于料场建立的坐标系;

对所述高度图进行料堆分割处理和挡墙识别处理,得到每个料堆的区域图和每个挡墙的区域图,以及,在世界坐标系下每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值;

获取每个所述料堆中所堆放物料的密度;

基于每个所述料堆中所堆放物料的密度、每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值,计算每个料堆所堆放物料的重量。

进一步地,所述外参数包括旋转参数和平移参数;以及,所述获取外参数,包括:

获取每个激光扫描仪在世界坐标系下的安装位置和所配置的扫描仪坐标系;

基于所述世界坐标系中x轴、y轴、z轴的建立方向与所述扫描仪坐标系中x轴、y轴、z轴的建立方向,确定扫描仪坐标系转换成世界坐标系所需的绕x轴旋转参数,绕y轴旋转参数,绕z轴旋转参数;

基于每个所述激光扫描仪的安装位置和所述世界坐标系中x轴、y轴、z轴的建立坐标,确定每个所述激光扫描仪在所述世界坐标系中的x轴平移参数,y轴平移参数,z轴平移参数。

进一步地,所述基于外参数,将所述三维点云数据转换成世界坐标系下的三维点云数据,包括:

基于第i个激光扫描仪在所述世界坐标系中的外参数rti和第i个激光扫描仪采集的三维点云数据pi,按照式pw=rti×pi,将所述三维点云数据转换成世界坐标系下的三维点云数据pw。

进一步地,所述根据世界坐标系下的三维点云数据建立所述料条对应的高度图,包括:

将所述料条对应的世界坐标系下的每个三维点云数据均投影到世界坐标系下x轴和y轴形成的二维平面上,得到所述料条对应的高度图,所述高度图为包括料堆和挡墙的二维图像,所述二维图像上每个像素点的像素值为对应的z轴坐标值。

进一步地,所述方法还包括:

遍历所述高度图中每个像素点的像素值;

如果存在任一个像素点的像素值为空值,则计算所述空值所在像素点的邻域像素点的非空像素值均值,将所述非空像素值均值替换空值所在像素点的像素值;

如果存在任一个像素点的像素值异常,则计算所述像素值异常所在像素点的邻域像素点的非空像素值均值,将所述非空像素值均值替换所述像素值异常所在像素点的像素值。

进一步地,所述对高度图进行料堆分割处理,得到每个料堆的区域图,包括:

获取所述高度图上每个像素点的像素值,所述像素值用于表征像素点在z轴上的坐标值;

将每个所述像素点的像素值与地面高度阈值进行对比,基于对比结果将所述料条的高度图中呈现的料堆区域与地面区域进行分割,提取料堆区域图;

计算所述料堆区域图中的多个分割线,所述分割线用于将所述料堆区域图中呈现的多个料堆进行分割,得到每个料堆的区域图。

进一步地,所述将每个像素点的像素值与地面高度阈值进行对比,包括:

基于所述高度图,创建图像大小与所述高度图相同的标志图像;

将所述高度图中的每个像素点的像素值与地面高度阈值进行对比;

如果存在任一像素点的像素值大于或等于所述地面高度阈值,则在所述标志图像上将每一个所述任一像素点标识为第一数字符,将所有所述第一数字符围成的区域确定为料堆区域;

如果存在任一像素点的像素值小于所述地面高度阈值,则在所述标志图像上将每一个所述任一像素点标识为第二数字符,将所有所述第二数字符围成的区域确定为地面区域。

进一步地,所述计算料堆区域图中的多个分割线,包括:

获取所述标志图像上标识的数字符;

查找所述数字符为第一数字符与第二数字符之间对应的临界像素点,将多个临界像素点生成边界线,每个边界线所围成的区域为一个料堆区域;

在相邻两个所述边界线之间,确定用于分割相邻两个料堆区域的分割线。

进一步地,所述计算料堆区域图中的多个分割线,包括:

将所述高度图向图像坐标系下的x轴方向投影,生成一维柱状图,所述图像坐标系是指所述高度图所在的像素坐标系;

计算所述一维柱状图中x轴上每一像素点坐标对应的所有y轴像素点的像素值和,将所述像素值和小于地面高度阈值对应的x轴像素点坐标作为料堆分割点;

确定相邻两个所述料堆分割点的中间点,基于所述中间点生成用于分割相邻两个料堆区域的分割线。

进一步地,所述对高度图进行挡墙识别处理,得到每个挡墙的区域图,包括:

将所述高度图向所述世界坐标系下的x轴方向投影,生成包括多个料堆区域和挡墙区域的一维柱状图;

计算所述一维柱状图中的每个像素点坐标对应的高度值与高度误差阈值的实际高度值和;

如果所述实际高度值和大于所述挡墙区域的理论高度值,则确定所述实际高度值对应的像素点坐标所在位置为挡墙区域的位置,得到多个挡墙的区域图。

进一步地,获取每个所述料堆中所堆放物料的密度,包括:

获取所述料条上每个料堆在堆放物料时存储的料种信息;

基于所述料种信息和每个料堆,确定每个料堆所堆放的物料以及所述物料的密度。

进一步地,所述基于每个所述料堆中所堆放物料的密度、每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值,计算每个料堆所堆放物料的重量,包括:

获取每个所述料堆在一维柱状图中的高度值f(i),在高度图中每个像素点在x轴方向的实际长度和y轴方向的实际长度

根据所述挡墙区域的位置坐标,计算起始分割线的位置ls和终止分割线的位置le;

按照式计算每个料堆的体积vk;

根据每个所述料堆中所堆放物料的密度和每个料堆的体积vk,计算每个料堆所堆放物料的重量。

第二方面,本申请还提供了一种料堆盘库的系统,应用在料场,其特征在于,包括:控制系统、激光扫描仪、轨道和料条,所述料条位于所述轨道的两侧,所述料条上用于放置数个料堆,相邻两个料堆之间设有挡墙,所述激光扫描仪设置在料场顶棚上,所述激光扫描仪用于采集料条上的每个料堆和挡墙的三维点云数据;所述控制系统用于接收激光扫描仪采集的三维点云数据,所述控制系统被配置为执行权利要求1所述的料堆盘库的方法的步骤:

获取外参数和设置在料场顶棚上的激光扫描仪采集料条上的每个料堆和挡墙时产生的三维点云数据,所述外参数用于表征扫描仪坐标系与世界坐标系的关系,所述三维点云数据是指在所述扫描仪坐标系下的数据;

基于所述外参数,将所述三维点云数据转换成世界坐标系下的三维点云数据,以及,根据所述世界坐标系下的三维点云数据建立所述料条对应的高度图,所述世界坐标系是指基于料场建立的坐标系;

对所述高度图进行料堆分割处理和挡墙识别处理,得到每个料堆的区域图和每个挡墙的区域图,以及,在世界坐标系下每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值;

获取每个所述料堆中所堆放物料的密度;

基于每个所述料堆中所堆放物料的密度、每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值,计算每个料堆所堆放物料的重量。

由以上技术方案可知,本发明实施例提供的一种料堆盘库的方法及系统,控制系统获取激光扫描仪采集料条上的每个料堆和挡墙时产生的三维点云数据,基于外参数将三维点云数据转换成世界坐标系下的三维点云数据,以建立料条对应的高度图,对高度图进行料堆分割处理和挡墙识别处理,得到每个料堆的区域图和每个挡墙的区域图;基于每个料堆中所堆放物料的密度、每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值,计算每个料堆所堆放物料的重量,实现料堆盘库。可见,本发明实施例提供的方法及系统,可根据三维点云数据建立包括各料堆区域和挡墙区域的高度图,并对高度图中的料堆进行分割以及对挡墙进行识别,确定每个料堆所堆放的物料类型及对应的密度,以更准确地确定每个料堆的堆料量,实现高精度料堆盘库。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的料堆盘库的系统的结构图;

图2为本发明实施例提供的料场局部俯视图;

图3为本发明实施例提供的料堆盘库的方法的流程图;

图4为本发明实施例提供的对高度图进行预处理的方法流程图;

图5为本发明实施例提供的高度图的局部示意图;

图6为本发明实施例提供的料堆分割处理的方法流程图;

图7为本发明实施例提供的标志图像的局部示意图;

图8为本发明实施例提供的一维柱状图的局部示意图;

图9为本发明实施例提供的挡墙识别处理的方法流程图;

图10为本发明实施例提供的包括挡墙的一维柱状图的示意图。

具体实施方式

料场即为原料场,原料场内贮存有多种以料堆形式存放的物料,通常使用堆取料机实现物料的堆料和取料。堆取料机是一种新型高效率连续装卸机械,包括常规的斗轮堆取料机、堆料机、双斗轮取料机、半门式刮板取料机等。

为了保证生产需求,料场中各种物料的储量要符合生产计划,需要对每个料堆进行盘库,即盘点各种物料的储量。在料堆盘库时,通常采用的方法是计算输入料量与输出料量的差值,将该差值作为对应料堆所堆物料的重量。然而,由人工计算方式极易出现误差,这种误差将导致料场的利用率低,无法准确指导进、出料计划。

为了提高料堆盘库的准确性,本发明实施例提供一种料堆盘库的系统,通过多台激光扫描仪,实现对物料的分割、识别、盘库管理,并在盘库过程中剔除挡墙的影响,盘库准确率更高。盘库过程中根据需要可以对料堆区域进行盘库,支持一键式盘库,盘库的精度相对较高。该盘库的数据可以指导进、出料计划,提高料场的利用率;为后续料场无人化打下基础;另外,该系统中的设备安装比较简单,维护成本较低,配套的设备较少,稳定可靠。

图1为本发明实施例提供的料堆盘库的系统的结构图;图2为本发明实施例提供的料场局部俯视图。参见图1和图2,本发明实施例提供一种料堆盘库的系统,应用在料场,包括:控制系统100、激光扫描仪200、轨道300和料条400。

料场内设有轨道300,料条400位于轨道300的两侧,料条400为轨道300间的长条空间,料条400上用于放置数个料堆500,每个料堆500对应一种物料,相邻两个料堆500之间设有挡墙700,避免料堆500所堆放的物料出现混合,影响物料纯度。

鉴于原料场的场地空间较大,为提高工作效率,轨道300上可能设有多台堆取料机600,堆取料机包括堆料和取料两种作业方式,堆取料机600沿轨道300移动,以由多台堆取料机在料条400处的料堆500上实现高效的堆料和取料。

激光扫描仪200可以安装在各类堆取料机的顶端,也可以间隔一定距离固定在料场的顶棚上。以激光扫描仪200设置在料场顶棚上为例,激光扫描仪200的镜头朝向料条400,用于采集料条400上的每个料堆500和每个挡墙700的三维点云数据。以轨道300的两侧设置有两个料条400为例,激光扫描仪可以装在两个料条400之间的上方,并隔一段距离分布。

激光扫描仪200是通过发射多组激光束同时旋转测量,每条激光束间隔一定的夹角,能同时测量多个截面的数据,比如64线、128线激光,能同时测量64、128个截面,相当于同时测量一个面的轮廓数据。

为便于扫描全场料堆轮廓数据,料场内可设置多台激光扫描仪200,多台激光扫描仪200相隔一定距离,每台激光扫描仪200可采集到料条400上存放的多个料堆500和挡墙700的三维点云数据。每台激光扫描仪实时采集三维点云数据,并将三维点云数据实时发送至控制系统100,由控制系统根据三维点云数据,进行数据分析,以计算每个料堆所堆物料的重量,实现高准确率的料堆盘库。

图3为本发明实施例提供的料堆盘库的方法的流程图。参见图3,本发明实施例提供的一种料堆盘库的方法,由料堆盘库的系统中的控制系统100执行,在进行料堆盘库时,该方法包括以下步骤:

s1、获取外参数和设置在料场顶棚上的激光扫描仪采集料条上的每个料堆和挡墙时产生的三维点云数据,外参数用于表征扫描仪坐标系与世界坐标系的关系,三维点云数据是指在扫描仪坐标系下的数据。

料场顶棚上的激光扫描仪200实时采集在其有效拍摄范围内的料条上的每个料堆和挡墙的轮廓,得到三维点云数据。激光扫描仪200生成的数据是在扫描仪坐标系下的三维点云,当有多个激光扫描仪同时工作时,需要先将多个激光扫描仪位置关系测量出来,在将点云转换到统一的世界坐标系中。

世界坐标系是指基于料场建立的坐标系,再次参见图2,在建立全局的世界坐标系时,以料条方向为x轴方向,由一个料条400至另一个料条400的方向为y轴方向,以由地面朝向料场顶棚的方向为z轴方向,即x轴与料条方向平行,y轴方向与轨道300垂直,z轴垂直轨道300向上,坐标原点在地面上。

为实现精准采集,每个激光扫描仪200配置有各自采集所需的扫描仪坐标系,在将激光扫描仪200采集的在扫描仪坐标系下的三维点云数据转换到世界坐标系中,需要利用外参数,外参数包括三个方向坐标轴对应的旋转参数和平移参数。

具体地,外参数的确定方法如下:

步骤11、获取每个激光扫描仪在世界坐标系下的安装位置和所配置的扫描仪坐标系。

步骤12、基于世界坐标系中x轴、y轴、z轴的建立方向与扫描仪坐标系中x轴、y轴、z轴的建立方向,确定扫描仪坐标系转换成世界坐标系所需的绕x轴旋转参数,绕y轴旋转参数,绕z轴旋转参数。

步骤13、基于每个激光扫描仪的安装位置和世界坐标系中x轴、y轴、z轴的建立坐标,确定每个激光扫描仪在世界坐标系中的x轴平移参数,y轴平移参数,z轴平移参数。

由于激光扫描仪在采集料堆数据时,是由上至下进行采集,即以俯视的角度进行采集,因此,激光扫描仪的扫描仪坐标系在建立时,扫描仪坐标系的z轴方向为由上至下为正向,这与世界坐标系中z轴方向由下至上的方向相反。而x轴方向和y轴方向也会存在相反的情况,或存在角度的情况,即扫描仪坐标系的x轴正向与世界坐标系的x轴正向相反或呈角度,扫描仪坐标系的y轴正向与世界坐标系的y轴正向相反或呈角度。

因此,可根据扫描仪坐标系和世界坐标系的建立方向偏差,确定扫描仪坐标系调整到与世界坐标系相同时所需的绕x轴旋转参数,绕y轴旋转参数,绕z轴旋转参数。例如,如果扫描仪坐标系的x轴正向为沿料条的由左至右的方向,世界坐标系的x轴正向为沿料条的由右至左的方向,可见,两个坐标系的x轴方向相反,相差180°。因此,需将扫描仪坐标系绕y轴旋转180°后,实现将扫描仪坐标系的x轴转换至世界坐标系下的x轴,该旋转的180°即为绕y轴旋转参数。

如果扫描仪坐标系的y轴正向为由一个料条至另一个料条的方向,世界坐标系的y轴正向为由另一个料条至一个料条的方向,可见,两个坐标系的y轴方向相反,相差180°。因此,需将扫描仪坐标系绕z轴旋转180°后,实现将扫描仪坐标系的y轴转换至世界坐标系的y轴下,该旋转的180°即为绕z轴旋转参数。

如果扫描仪坐标系的z轴正向为由上至下的方向,世界坐标系的z轴正向为由下至上方向,可见,两个坐标系的z轴方向相反,相差180°。因此,需将扫描仪坐标系绕x轴旋转180°后,实现将扫描仪坐标系的z轴转换至世界坐标系的z轴下,该旋转的180°即为绕x轴旋转参数。

在世界坐标系下,每个激光扫描仪均可确定各自的安装位置,以坐标值来表示。不同的激光扫描仪其在世界坐标系下的位置不同,使得每个激光扫描仪的扫描仪坐标系的坐标原点位于世界坐标系下的不同位置,进而扫描仪坐标系的坐标原点与世界坐标系的坐标原点存在一定距离。

因此,为实现将扫描仪坐标系转换为世界坐标系,可根据扫描仪坐标系的坐标原点与世界坐标系的坐标原点的建立坐标,确定扫描仪坐标系调整到与世界坐标系相同时所需的x轴平移参数,y轴平移参数,z轴平移参数。例如,如果某个激光扫描仪在世界坐标系下的坐标为(x1,0,0),则确定该激光扫描仪的安装位置为距离世界坐标系下坐标原点相距x1的右侧位置。因此,需将扫描仪坐标系的坐标原点向左平移x1的距离后,实现将扫描仪坐标系转换至世界坐标系下,该平移的x1距离即为x轴平移参数。y轴平移参数和z轴平移参数也可依据此方法确定,此处不再赘述。

s2、基于外参数,将三维点云数据转换成世界坐标系下的三维点云数据,以及,根据世界坐标系下的三维点云数据建立所述料条对应的高度图,世界坐标系是指基于料场建立的坐标系。

在将每个激光扫描仪采集的三维点云数据转换成世界坐标系下的三维点云数据时,第i个激光扫描仪采集的三维点云数据为pi,该扫描仪在世界坐标系中的外参数为rti,则可按照式pw=rti×pi,将三维点云数据转换成世界坐标系下的三维点云数据pw。

在完成世界坐标系的三维点云数据的转换后,即可利用世界坐标系下的三维点云数据进行数据分析,通过对三维点云数据的图形转换,即先后转换为二维高度图和一维柱状图后,依据一维柱状图所呈现的数据,实现对每个料堆的盘库。

具体地,在控制系统根据世界坐标系下的三维点云数据建立料条对应的高度图的过程,包括:将料条对应的世界坐标系下的每个三维点云数据均投影到世界坐标系下x轴和y轴形成的二维平面上,得到料条对应的高度图,高度图为包括料堆和挡墙的二维图像,二维图像上每个像素点的像素值为对应的z轴坐标值。

世界坐标系下的三维点云数据包括x轴、y轴和z轴方向的数据,为便于数据分析,可将三维数据转换为二维数据。本实施例采用的方法是将激光扫描仪采集的三维点云数据都投影到只包括x轴和y轴的二维平面上,得到二维图像,二维图像中包括料堆和挡墙对应的数据。

二维图像的每个像素点代表10cm*10cm的区域,二维图像上的像素值为投影前的真实z轴坐标值,即高度值,因此,投影后得到的二维图像可作为高度图,从高度图中可获取到每个料堆和每个挡墙的点云数据。

从高度图上,可直接读取到每一个像素点对应的高度值,即每个像素点对应的像素值为高度值。由于像素值通常为整数值,而点云可为非整数值,因此,可能会出现多个点云数据投影到同一个图像坐标点的情况。此时,可将投影到同一图像坐标点的多个点云数据的高度均值(像素值均值),作为该图像坐标点的像素值。

例如,点云可为10.2、10.07,经过四舍五入,该两点均会投影到图像坐标值为10的坐标点上。因此,可计算10.2点云和10.07点云的高度均值,作为图像坐标点10的像素值。

由于在生成高度图时,可能存在数据丢失或异常的情况,因此,为保证高度图能够更加准确地表征高度值,可对高度图进行预处理,主要包括滤波处理和补洞处理。为了加快运算速度,滤波处理和补洞处理过程同时进行。本实施例中,采用8邻域均值算法进行预处理。

图4为本发明实施例提供的对高度图进行预处理的方法流程图。参见图4,本实施例中,控制系统还需对高度图进行预处理,该方法包括:

s21、遍历高度图中每个像素点的像素值。

s22、如果存在任一个像素点的像素值为空值,则计算空值所在像素点的邻域像素点的非空像素值均值,将非空像素值均值替换空值所在像素点的像素值。

s23、如果存在任一个像素点的像素值异常,则计算像素值异常所在像素点的邻域像素点的非空像素值均值,将非空像素值均值替换像素值异常所在像素点的像素值。

在高度图中,每个x轴坐标点对应多个像素点,一个像素点对应一个像素值,即高度图中存在多个像素点对应的多个像素值。

查找每个像素点的像素值,若当前像素点的像素值为空值,则获取当前像素点周围的邻域像素点,并依据每个邻域像素点的像素值,计算非空像素值均值,由非空像素值均值作为空值所在像素点的像素值,对当前像素点实现补洞处理。

图5为本发明实施例提供的高度图的局部示意图。参见图5,例如,若当前查找的像素点a0的像素值为空值,则确定像素点a0周围的8个邻域像素点a1、a2、a3、a4、a5、a6、a7、a8,以及,获取该8个邻域像素点的像素值p1、p2、p3、p4、p5、p6、p7、p8。基于每个像素值,计算8个邻域像素点的非空像素值均值p=(p1、p2、p3、p4、p5、p6、p7、p8)/8,将非空像素值均值p作为像素点a0的像素值。

如果为空值的当前像素点的所有邻域像素点均为空值,则该当前像素点依然为空值。若为空值的当前像素点的邻域像素点中部分为空值,则依然依据上述计算像素值均值的方式,计算8个邻域像素点的非空像素值均值,并替换空值所在像素点的像素值。

查找每个像素点的像素值,若当前像素点的像素值异常,即与周围的邻域像素点的像素值存在较大明显偏差,则获取当前像素点周围的邻域像素点,并依据每个邻域像素点的像素值,计算非空像素值均值,由非空像素值均值作为像素值异常所在像素点的像素值,对当前像素点实现滤波处理。

例如,若当前查找的像素点a0的像素值为异常,则确定像素点a0周围的8个邻域像素点a1、a2、a3、a4、a5、a6、a7、a8,以及,获取该8个邻域像素点的像素值p1、p2、p3、p4、p5、p6、p7、p8。基于每个像素值,计算8个邻域像素点的非空像素值均值p=(p1、p2、p3、p4、p5、p6、p7、p8)/8,将非空像素值均值p作为异常点像素点a0的像素值。

依据上述方式对高度图进行预处理(滤波处理和补洞处理),即可得到表征高度值更为准确的高度图,利用预处理后的高度图继续进行后序料堆盘库计算。

s3、对高度图进行料堆分割处理和挡墙识别处理,得到每个料堆的区域图和每个挡墙的区域图,以及,在世界坐标系下每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值。

由于料条上会设置多个料堆,因此,通过激光扫描仪采集到的三维点云数据生成的高度图中会包括多个料堆和多个挡墙的图像。为对每一个料堆进行精准盘库,需要将高度图上的多个料堆图像进行分割,并将多个挡墙的位置识别出来,得到单个的料堆的区域图和单个挡墙的区域图。

图6为本发明实施例提供的料堆分割处理的方法流程图。参见图6,本实施例中,控制系统对高度图进行料堆分割处理,得到每个料堆的区域图,包括:

s311、获取高度图上每个像素点的像素值,像素值用于表征像素点在z轴上的坐标值。

s312、将每个像素点的像素值与地面高度阈值进行对比,基于对比结果将料条的高度图中呈现的料堆区域与地面区域进行分割,提取料堆区域图。

s313、计算料堆区域图中的多个分割线,分割线用于将料堆区域图中呈现的多个料堆进行分割,得到每个料堆的区域图。

由于激光扫描仪是扫描方向为由上至下,其采集的三维点云数据包括料堆、挡墙和地面的数据。因此,在对高度图进行料堆分割时,先不考虑挡墙的位置,而先进行料堆群与地面的分割,再进行料堆群中单个料堆的分割。不考虑挡墙是因为挡墙位于料堆群中,挡墙的高度和料堆的高度均高于地面,因此,在将料堆群与地面分割时,实际上也是将挡墙与地面分割。

由于控制系统建立的高度图中地面是零平面,而料堆的高度通常高于地面的高度,因此,在进行料堆群与地面的分割时,可将地面与料堆的分割设定一个地面高度阈值。本实施例中,可设定地面高度阈值为20公分,在实际应用中,地面高度阈值还可设定为其他数值,本实施例不做具体限定。

在高度图上呈现的像素值为相应点在投影前的真实z轴坐标值,即高度值,因此,可获取高度图上每个像素点的像素值。将每个像素点的像素值与地面高度阈值进行对比,如果大于或等于地面高度阈值,说明该像素点在投影前对应的位置为非地面,而是料堆。如果小于地面高度阈值,说明该像素点在投影前对应的位置为地面。

具体地,本实施例中,将每个像素点的像素值与地面高度阈值进行对比,包括:

步骤3121、基于高度图,创建图像大小与高度图相同的标志图像。

步骤3122、将高度图中的每个像素点的像素值与地面高度阈值进行对比。

步骤3123、如果存在任一像素点的像素值大于或等于地面高度阈值,则在标志图像上将每一个任一像素点标识为第一数字符,将所有第一数字符围成的区域确定为料堆区域。

步骤3124、如果存在任一像素点的像素值小于地面高度阈值,则在标志图像上将每一个任一像素点标识为第二数字符,将所有第二数字符围成的区域确定为地面区域。

为便于像素点的像素值与地面高度阈值的对比,可创建一个与高度图的图像大小相同的标志图像。标志图像用于作为每个像素点的标定,以将高度图中每个像素点的像素图直观的表示出来。

将标志图像中显示的每个像素点的像素值与地面高度阈值进行对比,如果某一像素点的像素值大于或等于地面高度阈值,说明该像素点在投影前对应的位置为料堆,则在标志图像上将该像素点标识为第一数字符,例如,可标识为数字1。如果存在某个像素点的像素值小于地面高度阈值,说明该像素点在投影前对应的位置为地面,则在标志图像上将该像素点标识为第二数字符,例如,可标识为数字0。

图7为本发明实施例提供的标志图像的局部示意图。参见图7,在完成标志图像中每一个像素点的像素值与地面高度阈值的对比后,标志图像上可为呈现有第一数字符和第二数字符的二值图,二值图更能清晰地展示出高度图中所呈现的料堆和地面的区域。将所有第一数字符围成的区域确定为料堆区域,将所有第二数字符围成的区域确定为地面区域,即所有标识为1的像素点围成的区域为料堆区域,所有标识为0的像素点围成的区域为地面区域。

基于每个像素点的像素值与地面高度阈值的对比结果,即可实现地面与料堆群的分割,进而可以在高度图中提取出料堆区域图,即料堆群对应的图像。

料堆区域图中包括多个料堆对应的图像,因此,可通过对高度图进行处理,在料堆区域图中的相邻两个料堆区域之间建立分割线,实现将相邻两个料堆区域的分割,以得到单独的料堆的区域图。

在其中一种可行的具体实施方式中,控制系统在计算料堆区域图中的多个分割线的过程,包括:

步骤31311、获取标志图像上标识的数字符。

步骤31312、查找数字符为第一数字符与第二数字符之间对应的临界像素点,将多个临界像素点生成边界线,每个边界线所围成的区域为一个料堆区域。

步骤31313、在相邻两个边界线之间,确定用于分割相邻两个料堆区域的分割线。

每个像素点的像素值与地面高度阈值的对比结果即为标志图像上呈现的数字符,若某个区域为料堆区域,则其对应的相同数字符会聚集在一起,即第一数字符会聚集在一起;若某个区域为地面区域,则其对应的相同数字符会聚集在一起,即第二数字符会聚集在一起。

也就是说,同一个料堆的轮廓线为一个封闭的曲线,而不同的料堆的轮廓线为不同的曲线,相邻两个料堆的轮廓线存在间隔。因此,基于对比后的标志图像即为二值图,采用轮廓查找算法,查找同一区域的第一数字符与第二数字符之间对应的临界像素点,以及,不同区域的第一数字符与第一数字符之间对应的临界像素点,基于临界像素点生成边界线,即为封闭的轮廓线,每个边界线所围成的区域为一个料堆区域。

在相邻两个料堆区域对应的边界线之间确定分割线,以将该两个相邻的料堆区域进行分割。高度图为二维图像,可通过建立坐标系,确定每个边界线的区域坐标,进而将两个边界线区域坐标的中间值坐标作为分割线的坐标。

在另一种可行的具体实施方式中,控制系统计算料堆区域图中的多个分割线的过程,包括:

步骤31321、将高度图向图像坐标系下的x轴方向投影,生成一维柱状图,图像坐标系是指高度图所在的像素坐标系。

步骤31322、计算一维柱状图中x轴上每一像素点坐标对应的所有y轴像素点的像素值和,将像素值和小于地面高度阈值对应的x轴像素点坐标作为料堆分割点。

步骤31323、确定相邻两个料堆分割点的中间点,基于中间点生成用于分割相邻两个料堆区域的分割线。

图8为本发明实施例提供的一维柱状图的局部示意图。本实施例中,采用对高度图再次进行投影的方式确定分割线。参见图8,高度图为二维图像,其具有图像坐标系,图像坐标系的原点位于图像左上角,横向为x轴,纵向为y轴。将高度图向图像坐标系下的x轴方向投影,生成一维柱状图。也就是说,将高度图的列项所有像素点的像素值相加,即计算x轴坐标上每一像素点坐标对应的所有y轴像素点的像素值和,变成一个横向的一维数组。

本实施例中,按照式计算每一像素点对应的所有y轴像素点的像素值和。式中,f(i)为y轴像素和,代表第i个x轴像素点坐标对应的像素和;j为高度图纵坐标,代表同一x轴像素点坐标下的每个y轴像素点;i为高度图横坐标,代表x轴像素点坐标;pi,j为高度图上坐标为(i,j)的坐标值,代表第i个x轴像素点坐标下第j个y轴像素点的像素值;n为高度图的纵向长度,代表高度图的高。

例如,第一个x轴像素点坐标对应的所有y轴像素点的像素和为第二个x轴像素点坐标对应的所有y轴像素点的像素和为等。

将每个x轴像素点坐标对应的像素值和与地面高度阈值进行对比,将像素值和小于地面高度阈值对应的x轴像素点坐标作为料堆分割点,并将料堆分割点用0来表示。

在一维柱状图中,值为0的点为料堆分割点,说明该值对应的实际位置为地面。相邻但具有一定间隔距离的两个料堆区域对应的料堆分割点之间具有一定距离,而相邻且挨着的两个料堆区域对应的料堆分割点为同一个分割点。

本实施例中,在两个料堆区域相邻但间隔距离时,则可取两个料堆分割点的中间点作为分割点,基于中间点生成用于分割相邻两个料堆区域的分割线。在两个料堆区域相邻且挨着时,可以共同的分割点生成分割线。分割线位于两个料对区域之间,使得相邻两个料堆区域共用一个分割线。

再次参见图8,本实施例提供上述两种方式计算分割线,以料条上设置五个料堆为例,在基于高度图划分出五个单独的料堆区域,分别为料堆1、料堆2、料堆3、料堆4、料堆5。按照上述两个方式中的任一个计算方式生成分割线,则可在料堆1和料堆2之间生成分割线l1,在料堆2和料堆3之间生成分割线l2,在料堆3和料堆4之间生成分割线l3,在料堆4和料堆5之间生成分割线l4。

可见,五个料堆中,位于中间的几个料堆区域(料堆2、料堆3、料堆4)的两侧均对应一个分割线,而位于首尾两端的料堆区域(料堆1、料堆5)则仅对应一个分割线。为准确限定位于首尾两端的料堆区域,可依据料条的起始点和终止点坐标生成对应的分割线l0和l5,使得料堆1的左右两侧分割线分别为l0和l1,料堆5的左右两侧分割线分别为l4和l5。

在一维柱状图中,一个料堆区域被两个分割线分割开,使得将整个料条上设置的多个料堆群分割成单独的区域,可以保证后续进行盘库时的准确性。

图9为本发明实施例提供的挡墙识别处理的方法流程图。参见图9,本发明实施例中,控制系统对高度图进行挡墙识别处理,得到每个挡墙的区域图,包括:

s321、将高度图向世界坐标系下的x轴方向投影,生成包括多个料堆区域和挡墙区域的一维柱状图。

s322、计算一维柱状图中的每个像素点坐标对应的高度值与高度误差阈值的实际高度值和。

s323、如果实际高度值和大于挡墙区域的理论高度值,则确定实际高度值对应的像素点坐标所在位置为挡墙区域的位置,得到多个挡墙的区域图。

若料条上设置有挡墙,则激光扫描仪采集的料条上的数据同时包括料堆和挡墙的三维点云数据,因此,在基于转换后世界坐标系下的三维点云数据生成的一维柱状图中,同时包括料堆区域和挡墙区域。本实施例中,将高度图向世界坐标系下的x轴方向投影,生成包括多个料堆区域和挡墙区域的一维柱状图,具体生成一维柱状图的实现过程均可参照前述实施例中步骤31321的相应内容,此处不再赘述。

图10为本发明实施例提供的包括挡墙的一维柱状图的示意图。参见图10,料堆1和料堆2之间存在挡墙d1,料堆2和料堆3之间存在挡墙d2,料堆3和料堆4之间存在挡墙d3,料堆4和料堆5之间存在挡墙d4。且每个挡墙的高度均高于相邻料堆区域的高度。

因此,为确定挡墙的位置,可根据一维柱状图中每个x轴像素点坐标对应的高度值和,判断其是否能够达到挡墙的理论高度值,若某个x轴像素点坐标对应的高度值和大于挡墙的理论高度值,则可确定该位置为挡墙。

根据挡墙的实际形状,可以设定理论挡墙在一维柱状图中的理论高度值ld。另外,由于在将三维点云数据生成高度图时,可能会存在误差,使得每个挡墙区域的高度值与实际高度值存在一定差值,因此,可设定误差阈值,误差阈值可设定为30mm。例如,若某个x轴像素点坐标下对应有100个y轴像素点,则在一维柱状图中,该x轴像素点坐标下对应的高度值f(i)可能会产生最大误差为30×100=3000mm。

因此,在判断某个位置是否为挡墙时,可计算一维柱状图中的每个像素点坐标对应的高度值f(i)与高度误差阈值的实际高度值和。将实际高度值和与挡墙区域的理论高度值进行对比,若实际高度值和大于挡墙区域的理论高度值,则确定实际高度值对应的像素点坐标所在位置为挡墙区域的位置,并提取出每个挡墙的区域图。

在一维柱状图中,将每个挡墙的区域图识别出来,可以在后续料堆盘库时,剔除挡墙的影响,可以保证后续进行盘库时的准确性。

s4、获取每个料堆中所堆放物料的密度。

本实施例在进行盘库时,基于每个料堆所堆放物料的密度和所堆放物料的体积的方式,计算每个料堆所堆放物料的重量,实现料堆盘库。为此,在将每个料堆区域单独分割开后,即可获取每个料堆中所堆放物料的密度。

本实施例中,控制系统获取每个料堆中所堆放物料的密度的过程,包括:

步骤41、获取料条上每个料堆在堆放物料时存储的料种信息。

步骤42、基于料种信息和每个料堆,确定每个料堆所堆放的物料以及物料的密度。

在料条上堆放物料形成料堆时,控制系统中均会记录每个料堆所对应的料种信息,即料堆1堆放的是料种a,料堆2堆放的是料种b,料堆3堆放的是料种c,料堆4堆放的是料种d,料堆5堆放的是料种e。不同类型料种的密度不同,均可基于料种信息确定出对应料堆所堆放物料的密度。

在料条上堆放某个料种时,料种a的大致位置la=50米,料种b的位置lb=100米,因此,生成高度图和一维柱状图时,每个料种的大致位置lk均位于图中坐标的某个区间范围内。每个料堆区域的起止位置由对应的两个分割线的坐标位置而定,例如,料堆1的起止位置为[l0,l1],料堆2的起止位置为[l1,l2]。

判断某个料种的位置lk位于哪个起止位置对应的区间内,即可确定出该料堆属于哪一料种,以此达到识别料堆所堆放料种的目的。例如,料种b的位置lb位于[l1,l2]内,则可确定料种b对应料堆2,即料堆2所堆放物料为料种b。

s5、基于每个料堆中所堆放物料的密度、每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值,计算每个料堆所堆放物料的重量。

在确定出每个料堆所堆放物料的密度后,即可根据相应料堆区域的坐标值和每个挡墙的区域图对应的坐标值,计算该料堆所堆放物料的体积,再根据密度体积质量公式,计算每个料堆所堆放物料的重量。

每个料堆区域的坐标值和每个挡墙区域的坐标值可基于高度图来确定,即每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值。在高度图中建立坐标系,划分出的每个料堆区域即对应相应的起止坐标值[ls,le]。还可根据一维柱状图来确定每个料堆区域的起止坐标值,即每个料堆区域左右两侧分割线的坐标值,该起止坐标值与基于高度图确定的起止坐标值相同。

由于在实际应用中,料条上堆放多个物料时,为防止相邻料堆所堆放物料因滑落而混合在一起,导致物料的纯度被降低。因此,在常见的封闭料场中,可在料条上设置挡墙,利用挡墙将相邻料堆进行隔离。挡墙通常很高,且高于料堆的限高,通常设为15米。因此,在一维柱状图中,挡墙会有明显的特征,即局部值很大。

为避免挡墙在料堆盘库中的影响,需在料堆盘库时,将挡墙的位置剔除,即每个料堆区域即对应相应的起止坐标值[ls,le]需将挡墙的厚度剔除后再确定。

由于挡墙具有一定的厚度,会影响到每个料堆区域的起止坐标,因此,在计算每个料堆所堆放物料的重量时,需将挡墙厚度的影响剔除。在本实施例中,控制系统基于每个料堆中所堆放物料的密度、每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值,计算每个料堆所堆放物料的重量,包括:

步骤51、获取每个料堆在一维柱状图中的高度值f(i),在高度图中每个像素点在x轴方向的实际长度和y轴方向的实际长度

步骤52、根据挡墙区域的位置坐标,计算起始分割线的位置ls和终止分割线的位置le;

步骤53、按照式计算每个料堆的体积vk;

步骤54、根据每个料堆中所堆放物料的密度和每个料堆的体积vk,计算每个料堆所堆放物料的重量。

由于挡墙具有一定厚度,因此,需根据挡墙区域的位置坐标重新确定起始分割线的位置ls和终止分割线的位置le。通常挡墙厚度设定为20公分,则依据每个料堆区域对应的两个分割线的位置坐标,以料堆区域2为例,其对应的两个分割线的位置坐标分别为l1和l2,则将两个分割线的位置坐标分别向料堆区域的中心缩进10公分,以确定每个料堆区域即对应相应的起止坐标值[ls,le],即ls=l1+10,le=l2-10,以实现基于挡墙的位置修正用于进行盘库所需的料堆区域的起止坐标。

在计算每个料堆所堆放物料的体积时,获取每个料堆在一维柱状图中的高度值f(i),每个像素点在高度图中x轴方向的实际长度和y轴方向的实际长度f(i)为第i个x轴像素点坐标对应的所有y轴像素点的像素和。按照式计算每个料堆的体积vk;式中,vk代表第k个料堆,ls为起始分割线的位置,le为终止分割线的位置。

如果第k个料堆所堆放物料的密度为ρk时,则根据式mk=ρk×vk,计算每个料堆所堆放物料的重量mk。

可见,本发明实施例提供的方法,通过多台激光扫描仪,实现对物料的分割、识别、盘库管理,,并在盘库过程中剔除挡墙的影响,盘库准确率更高。盘库过程中根据需要可以对料堆区域盘库,可以支持一键式盘库,盘库的精度相对较高;该盘库的数据可以指导进、出料计划,提高料场的利用率;为后续料场无人化打下基础;该设备安装比较简单,维护成本较低,配套的设备较少,稳定可靠。

由以上技术方案可知,本发明实施例提供的一种料堆盘库的方法及系统,控制系统获取激光扫描仪采集料条上的每个料堆时产生的三维点云数据,基于外参数将三维点云数据转换成世界坐标系的三维点云数据,以建立料条对应的高度图,对高度图进行料堆分割处理和挡墙识别处理,得到每个料堆的区域图和每个挡墙的区域图;基于每个料堆中所堆放物料的密度、每个料堆的区域图对应的坐标值和每个挡墙的区域图对应的坐标值,计算每个料堆所堆放物料的重量,实现料堆盘库。可见,本发明实施例提供的方法及系统,可根据三维点云数据建立包括各料堆区域和挡墙区域的高度图,并对高度图中的料堆进行分割以及对挡墙进行识别,确定每个料堆所堆放的物料类型及对应的密度,以更准确地确定每个料堆的堆料量,实现高精度料堆盘库。

具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的料堆盘库的方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于料堆盘库的方系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1