火车装车3D模型的重心偏移检测方法与流程

文档序号:30696237发布日期:2022-07-09 17:20阅读:313来源:国知局
火车装车3D模型的重心偏移检测方法与流程
火车装车3d模型的重心偏移检测方法
技术领域
1.本发明属于火车装车技术领域,涉及一种火车装车3d模型的重心偏移检测方法。


背景技术:

2.火车在装车时,由于货品的不断增加,车厢重心出现偏移,大大影响车厢的稳定,有必要对装车过程重心偏移进行控制,便于根据重心偏移度大小进行调整。现有的火车重心偏移度不能进行实时控制,且由于影响偏移度的因素较多,不能对采集的数据进行有效的处理,导致最终的结果出现偏差,偏移度不够精确,给后续的调整带来不便。


技术实现要素:

3.针对现有火车装车重心偏移难以控制以及检测误差大的技术问题,本发明提供一种火车装车3d模型的重心偏移检测方法及检测装置,利用激光雷达生成火车装车3d模型实现偏移度的检测,偏移度易控制且误差小。
4.为了实现上述目的,本发明采用的技术方案是:
5.一种火车装车3d模型的重心偏移检测方法,包括以下步骤:
6.1)雷达扫描获取点云数据,并进行预处理轨道区域内的点云数据;
7.2)利用欧式算法对轨道区域内的点云数据进行聚类划分,区分出每个独立的车厢;
8.3)根据聚类划分的结果,针对每个车厢,分别计算车厢点云块的中心点;
9.4)根据中心点的坐标,选择中心点靠近雷达中心的点云,把车厢点云数据进行过滤得到装车点云;
10.5)继续利用降维算法计算车厢的平均高度a、计算重心偏移度b以及生成装车3d模型c;
11.6)根据装车3d模型c对装车进行可视化,根据平均高度a和重心偏移度b判断装车结果的好坏。
12.进一步的,所述步骤2)中,欧式算法的具体步骤为:
13.1.1)找到轨道区域内的点云数据空间中任意点p10,用kdtree找到离p10最近的n个点,p12,p13,p14

p1n,判断这n个点到p10的距离,将距离小于阈值r的点p12,p13,p14

放在类q(p10)里;
14.1.2)在q(p10)里找到一点p12,重复步骤1.1);
15.1.3)继续在q(p10,p12)找到一点p1n,重复步骤1.1),将距离小于阈值r的点全部放进q(p10,p12,p1n)里;
16.1.4)不断重复,直至类q中的点数目多少不变时,则完成聚类划分。
17.进一步的,所述步骤3)中,选择中心点x坐标在[-1,1]之间的点云块,计算每个车厢点云块的中心点。
[0018]
进一步的,所述步骤4)中,过滤车厢的过程是:
[0019]
4.1)通过z坐标,将车厢点云数据分割成n份宽度为w的点云块;
[0020]
4.2)对每一块点云中的每个当前点,分别计算当前点与其他任一个点之间的高度差h和平面距离d;
[0021]
4.3)根据上述结果进一步计算r=h/d,并将r》3.0的点过滤掉;
[0022]
4.4)每个分割的点云块都重复步骤4.2)和步骤4.3),最后剩余的点云即为装车点云。
[0023]
进一步的,所述步骤4.2)中,设当前点为p1(x1,y1,z1),其他任一个点为p2(x2,y2,z2),则高度差为h=y2-y1,平面距离为
[0024]
进一步的,所述步骤5)中,平均高度a的计算过程是:
[0025]
5.a1)分别计算点云x、y、z方向的最小值min(x)、min(y)、min(z);
[0026]
5.a2)选取x、y、z方向特征尺度大小,x方向和z方向均以x方向最大的值、z方向最大的值为尺度,y方向选取比较小的值为尺度,对x、y、z各个方向的尺度做倒数,作为各个轴向的尺度因子λx,λy,λz;
[0027]
5.a3)计算点云中每个点pt(x,y,z)在各个轴上的特征值,特征值的公式如下:
[0028]
vx=(pt(x)-min(x))
×
λx;
[0029]
vy=(pt(y)-min(y))
×
λy;
[0030]
vz=(pt(z)-min(z))
×
λz;
[0031]
其中:vx为x轴特征值;pt(x)是点的x坐标;λx是x方向尺度因子,min(x)是整体点云在x轴方向的最小值,vy为y轴特征值;pt(y)是点的y坐标;λy是y方向尺度因子,min(y)是整体点云在y轴方向的最小值;vz为z轴特征值;pt(z)是点的z坐标;λz是z方向尺度因子,min(z)是整体点云在z轴方向的最小值;
[0032]
5.a4)每个点的特征向量值是每个点各个轴向特征向量之和v=vx+vy+vz;
[0033]
5.a5)依据步骤5.a4)计算的特征向量值,对点云进行排序;
[0034]
5.a6)统计相同特征向量中的点云个数,找到最大值,求该组相同特征向量的点云的高度值的平均值,即平均高度hav。
[0035]
进一步的,所述步骤5)中,重心偏移度b的计算过程是:
[0036]
5.b1)计算装车点云的中心点,以中心点x坐标为分割点,分割成前后两块点云;
[0037]
5.b2)通过x坐标将装车点云分割成均匀的2m份,每份点云之间的距离是(xmax-xmin)/(2m-1),xmax为点云x轴最大值,xmin为点云x轴最小值;对每份点云依据z坐标排序,得到排序后的点云数组pt[n],求取有序点云在yz平面的面积,面积s的计算公式为:
[0038]
s=∑{(pt(n+1).y+pt(n).y)
×
(pt(n+1).z-pt(n).z)}
÷
2.0
[0039]
其中:pt(n+1).y表示第n+1个点的y坐标,pt(n).y表示第n个点的y坐标,pt(n+1).z表示第n+1个点的z坐标,pt(n).z表示第n个点的z坐标;
[0040]
5.b3)计算两个相邻剖面组成的多面体的体积,对所有剖面体积求和,计算点云总体积:
[0041]
v=∑{(s(n+1)+s(n))
×
(xmax-xmin)
÷
(m-1)
÷
2};
[0042]
其中:s(n+1)表示第n+1个剖面的面积;s(n)表示第n个剖面的面积;
[0043]
5.b4)两块点云体积,体积小的为vmin,体积大的为vmax,重心偏移率γ=vmin
÷
vmax。
[0044]
进一步的,所述步骤6)中,重心偏移度b即重心偏移率γ,b趋于0~1,且b越接近1装车结果越好。
[0045]
本发明的有益效果是:本发明提供一种火车装车3d模型重心偏移度的检测方法,通过对点云数据预处理,对在轨道区域的点云数据通过聚类分析划分出不同的车厢块,对位于雷达下方的车厢点云数据,过滤车厢,保留装车物料点云,对装车物料点云生成3d模型;通过装车点云数据中的高度分布,提取出装车平均高度,把装车点云通过中心点,分割成前后两块点云,分别计算体积,通过计算前后两块点云体积比率,得到装车重心偏移度,检测结果准确。本发明通过雷达实时扫描装车现场,生成的装车3d模型真实,对装车进行可视化,便于对装车进行监控,实现散装物品的装车,且装置结果简单。
附图说明
[0046]
图1为本发明提供的检测方法系统图;
[0047]
图2为本发明采用的欧式聚类的方法示意图。
具体实施方式
[0048]
现结合附图以及实施例对本发明做详细的说明。
[0049]
实施例1
[0050]
参见图1,本发明提供的火车装车3d模型的重心偏移检测方法,包括以下步骤:
[0051]
1)通过雷达扫描获取点云数据,并进行预处理轨道区域内的点云数据;
[0052]
2)利用欧式算法对轨道区域内的点云数据进行聚类划分,区分出每个独立的车厢;
[0053]
3)根据聚类划分的结果,针对每个车厢,分别计算车厢点云块的中心点;
[0054]
4)根据中心点的坐标,选择中心点靠近雷达中心的点云,把车厢点云数据进行过滤得到装车点云;
[0055]
5)利用降维算法计算车厢的平均高度a、计算重心偏移度b以及生成装车3d模型c;
[0056]
6)根据装车3d模型c对装车重心偏移度进行可视化,根据平均高度a和重心偏移度b判断装车结果的好坏。
[0057]
参见图2,本实施例步骤2)中,通过欧式算法(即欧几里德算法),对轨道上的车厢点云做划分,区分出每个独立的车厢;对于欧式算法聚类来说,距离判断准则为欧氏距离。
[0058]
具体的,欧几里德算法具体的实现过程是:
[0059]
1.1)找到轨道区域内的点云数据空间中任意点p10,用kdtree找到离p10最近的n个点,p12,p13,p14

p1n,判断这n个点到p10的距离,将距离小于阈值r的点p12,p13,p14

放在类q(p10)里;
[0060]
1.2)在q(p10)里找到一点p12,重复步骤1.1);
[0061]
1.3)继续在q(p10,p12)找到一点p1n,重复步骤1.1),将距离小于阈值r的点p22,p23,p24

全部放进q(p10,p12,p1n)里;
[0062]
1.4)不断重复,直至类q中的点数目多少不变时,则完成聚类划分。
[0063]
本实施例中,p10是点云数据中的任意一点;q(p10)是初次启动搜索时,搜索到的与p10空间距离小于r的点集合;q(p10,p12)是第一次搜索完成,产生的集合q(10)中随意找
一个点p12(排除p10),在点云数据中找到距离小于r的点的集合,新的集合为了与上次的集合做区别,命名为q(p10,p12)。p12,p13,p14,p22等代表每次搜索到的不同的点。
[0064]
本实施例步骤3)中,选择中心点x坐标在[-1,1]之间的点云块,计算每个车厢点云块的中心点。
[0065]
本实施例步骤4)中,计算每个车厢点云块的中心点,选择中心点x坐标在[-1,1]之间的点云块,对装车车厢点云做处理,过滤掉四周的车厢,只保留车厢中煤炭的装载表面点云。过滤车厢的过程具体是:
[0066]
4.1)通过z坐标,将车厢点云数据分割成n份宽度为w的点云块;
[0067]
4.2)对每一块点云中的每个当前点,分别计算当前点与其他任一个点之间的高度差h和平面距离d;
[0068]
4.3)根据上述结果进一步计算r=h/d,并将r》3.0的点过滤掉;
[0069]
4.4)每个分割的点云块都重复步骤4.2)和步骤4.3),最后剩余的点云即为装车点云。
[0070]
进一步的,在步骤4.2)中,以两个点之间的高度差h和平面距离d的计算进行说明。
[0071]
具体的,设当前点为p1(x1,y1,z1),其他任一个点为p2(x2,y2,z2),则高度差为h=y2-y1,平面距离为
[0072]
本实施例步骤5)中,对过滤了车厢的装车物料点云,通过降维算法,提取高度方向的特征值,通过对高度值的分布,计算装车平均高度a和重心偏移度b。
[0073]
具体的,平均高度a的计算过程是:
[0074]
5.a1)分别计算点云x、y、z方向的最小值min(x)、min(y)、min(z);
[0075]
5.a2)选取x、y、z方向特征尺度大小,x方向和z方向分别以x方向最大的值、z方向最大的值为尺度,y方向选取比较小的值为尺度,对x、y、z各个方向的尺度做倒数,作为各个轴向的尺度因子λx,λy,λz;由于现场装车高度一般在1m以内,y方向的尺度选取0.1;
[0076]
5.a3)计算点云中每个点pt(x,y,z)在各个轴上的特征值,特征值的公式如下:
[0077]
vx=(pt(x)-min(x))
×
λx;
[0078]
vy=(pt(y)-min(y))
×
λy;
[0079]
vz=(pt(z)-min(z))
×
λz;
[0080]
其中:vx为x轴特征值;pt(x)是点的x坐标;λx是x方向尺度因子,min(x)是整体点云在x轴方向的最小值,vy为y轴特征值;pt(y)是点的y坐标;λy是y方向尺度因子,min(y)是整体点云在y轴方向的最小值;vz为z轴特征值;pt(z)是点的z坐标;λz是z方向尺度因子,min(z)是整体点云在z轴方向的最小值;
[0081]
5.a4)每个点的特征向量值是每个点各个轴向特征向量之和v=vx+vy+vz;
[0082]
5.a5)依据步骤5.a4)计算的特征向量值,对点云进行排序;
[0083]
5.a6)统计相同特征向量中的点云个数,找到最大值,求该组相同特征向量的点云的高度值的平均值,即平均高度hav。
[0084]
本实施例步骤5)中,重心偏移度b的计算过程是:
[0085]
5.b1)计算装车点云的中心点,以中心点x坐标为分割点,分割成前后两块点云;
[0086]
5.b2)通过x坐标将装车点云分割成均匀的2m份,每份点云之间的距离是(xmax-xmin)/(2m-1),xmax为点云x轴最大值,xmin为点云x轴最小值;对每份点云依据z坐标排序,
得到排序后的点云数组pt[n],求取有序点云在yz平面的面积,面积s的计算公式为:
[0087]
s=∑{(pt(n+1).y+pt(n).y)
×
(pt(n+1).z-pt(n).z)}
÷
2.0
[0088]
其中:pt(n+1).y表示第n+1个点的y坐标,pt(n).y表示第n个点的y坐标,pt(n+1).z表示第n+1个点的z坐标,pt(n).z表示第n个点的z坐标;
[0089]
5.b3)计算两个相邻剖面组成的多面体的体积,对所有剖面体积求和,计算点云总体积:
[0090]
v=∑{(s(n+1)+s(n))
×
(xmax-xmin)
÷
(m-1)
÷
2};
[0091]
其中:s(n+1)表示第n+1个剖面的面积;s(n)表示第n个剖面的面积;
[0092]
5.b4)两块点云体积,体积小的为vmin,体积大的为vmax,重心偏移率γ=vmin
÷
vmax
[0093]
步骤6)中,重心偏移度b即重心偏移率γ,b趋于0~1,且b越接近1效果越好;在判断装车效果时,a是参考,b起重要或决定性作用。
[0094]
本实施例步骤5)中,对装车点云生成3d模型。
[0095]
本实施例中,生成3d模型是通用方法,点云库为现有方法,直接生成3d模型,pcl点云库为公开的库。
[0096]
本实施例提供的检测方法,将雷达安装在轨道正上方中间顶部,x轴为轨道方向,垂直地面向上方向为y轴,xz平面为地面,通过z坐标,排除大于固定坐标或小于固定坐标的点云,即可过滤掉轨道两侧的点云,排除大于y坐标固定值的点云,可以过滤掉顶部的点云,保留轨道区域内的点云数据,能有效的数据进行去噪处理,保证检测结果的准确性;用于散装物品装车的重心偏移检测,检测结果准确度高,且通过3d模型对装车过程进行可视化,真实反映装置现场,易于监控装车过程。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1