一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多线激光雷达点云数据可通行区域检测方法与流程

2022-02-20 20:44:57 来源:中国专利 TAG:


1.本发明属于点云分割技术,具体为一种多线激光雷达点云数据可通行区域检测方法。


背景技术:

2.随着无人驾驶技术的不断发展,如何更有效地对无人车周围的环境进行正确且及时的感知是近年来许多团队的一个重要研究内容。在环境感知方面,激光雷达是目前最流行且应用最广泛的传感器,它的原理是向目标物体发射激光,并将接收到到的从目标反射回来的激光信号与发射的激光信号进行比较,经过其内部处理后,就可得到目标的几何信息,比如距离、坐标等。对于激光雷达接收的点云数据,首先需要做的步骤就是提取出可通行区域,对于无人车来说,可通行区域是后续进行目标检测、地图构建等工作的基础。所以从点云数据中提取出可通行区域对无人驾驶车辆来说至关重要。


技术实现要素:

3.本发明的目的在于提出了一种多线激光雷达点云数据可通行区域检测方法,旨在保证算法精度的同时尽量提高算法速度。
4.实现本发明的技术解决方案为:一种多线激光雷达点云数据可通行区域检测方法,包括以下步骤:
5.步骤1、以实时/离线方式读入点云数据;
6.步骤2、数据预处理,去掉无用点;
7.步骤3、确定最大迭代次数,创建多个线程并行执行地面提取算法:确定理想地面参数和平面倾角阈值,考虑平面与理想地面夹角,进行算法优化;
8.步骤4、使用标记帧方法,对于非标记帧,使用地面点所占比例的信息来获得一个最小的迭代次数;
9.步骤5、对提取后的点云数据进行栅格化处理,确定可通行区域。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述多线激光雷达点云数据可通行区域检测方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述多线激光雷达点云数据可通行区域检测方法的步骤。
12.本发明与现有技术相比,其显著优点为:
13.1)本发明采用标记帧的方法,利用周围环境的连续性,即利用前后帧的相似性,动态确定最小的迭代次数,来加快算法收敛的速度;
14.2)本发明使用多线程的方法,充分利用多核来进行并行计算,进一步缩短算法的执行时间;
15.3)本发明根据我国公路设计极限坡度标准,在计算过程中去除了倾角过大的平
面,进一步减少了算法运算的复杂度;
16.4)本发明在栅格化处理中,使用极坐标进行计算,并根据栅格特征进行填充,最终确定可通行区域,既保证了算法的精度又进一步提高了算法执行的速度。
17.下面结合附图对本发明做进一步详细的描述。
附图说明
18.图1是本发明的流程图。
19.图2是本发明的点云分割及栅格化结果示意图。
具体实施方式
20.如图1所示,一种多线激光雷达点云数据可通行区域检测方法,包括以下步骤:
21.步骤1、以实时/离线方式读入点云数据;/表示或的意思;
22.步骤2、数据预处理,去掉无用点,防止无用点对算法起到负面作用;具体方法为:
23.步骤2-1、去除过高点,根据高度计算公式:
24.h=gra*l
25.式中,gra表示公路极限坡度,h表示过高点阈值,l表示检测最远点与无人车之间的距离,根据我国公路设计极限坡度标准和无人车检测最远点与无人车之间的距离可知,在实际场景的有效检测范围内,将高度大于h的点去掉,对于算法的精度不会产生影响,并且可以提高算法收敛的速度;
26.步骤2-2、去除过低点,对于相对于无人车过低的点,在实际中是异常陡峭的下坡或者是某种大坑,会阻碍无人车前行的障碍,所以直接无视这些障碍点,不把它们放到可通行区域里面讨论;
27.步骤2-3、去除过远点,由于无人车的行驶速度有限,过远点对小车现在或者将来一段时间内不会造成任何影响,根据距离计算公式:
28.s=v/fra
29.式中,fra表示激光雷达采样率的每秒帧数,s表示一帧的时间内无人车最多可以前进的距离,v表示无人车的行驶速度,为了保险起见,可将距离大于3s的过远点去除,无需关心过远点对算法产生的影响;
30.步骤2-4、去除过近点,由于激光雷达被安装在无人车上,而无人车自身有比较大的体积,所以无人车车身也会反射激光雷达发出的激光射线,因此在采集的点云数据里面,会有部分车身反射的点,故选择在车身范围内的点为过近点,并将过近点去除,以防止车身反射的点对算法产生的负面作用。
31.步骤3、确定最大迭代次数maxiter,创建多个线程并行执行地面提取算法:确定理想地面参数和平面倾角阈值,考虑平面与理想地面夹角,进行算法优化;具体方法为:
32.步骤3-1、设cpu有p个核心,则创建p个线程,每个线程执行maxiter/p次迭代;
33.步骤3-2、确定理想地面的法向量坐标为(0,0,1);
34.步骤3-3、根据我国公路设计极限坡度标准,确定平面倾角阈值cos_thresh为0.9;
35.步骤3-4、根据预处理后点的个数来确定迭代次数iter:
[0036][0037]
式中,n为预处理后总共的点云数据数量,n为其中属于地面点的数量;
[0038]
步骤3-5、随机选取三个点确定平面的法线向量,并求出线性平面模型方程:
[0039]
ax by cz d=0
[0040]
式中,a,b,c,d为平面模型方程的参数,假设三个点坐标分别为
[0041]
a(x1,y1,z1),b(x2,y2,z2),c(x3,y3,z3),则由平面法线的性质:法向量n与平面里的任何向量相乘为0。则根据方程组:
[0042][0043]
可以求出参数a,b,c的值,再代入公式:
[0044]
d=-ax-by-cz
[0045]
可以求出参数d的值,至此所有的平面模型参数[a,b,c,d]全部求出。
[0046]
步骤3-6、理想地面参数与平面的倾角计算公式如下:
[0047][0048]
式中,cosα为该倾角的余弦值,a,b,c,d为平面模型方程的参数,将cosα与阈值cos_thresh进行比较,若小于该阈值,则说明该平面与理想平面夹角过大,舍弃该平面,重复步骤3-3,反之则保留该平面。
[0049]
步骤3-7、假设grddistthresh表示点到平面距离的阈值,maxgrdpnum表示最优平面模型下属于地面点的数量,计算在与该平面距离小于grddistthresh的点的个数,并与maxgrdpnum比较,若点的数量大于maxgrdpnum,则令maxgrdpnum为当前点的个数,并更新[a,b,c,d]为当前平面模型;否则,不进行任何更新;
[0050]
步骤3-8、重复步骤3-4、3-5、3-6,直到算法收敛,得到提取后的平面。
[0051]
步骤4、考虑到无人车行驶速度有限,点云数据相邻帧之间的差异不大,使用标记帧方法,对于非标记帧而言,使用地面点所占比例的信息来获得一个最小的迭代次数;具体方法为:
[0052]
步骤4-1、设置可信值,由于无人车行驶的速度有限,所以点云数据相邻帧之间的差异较小,即相邻帧数据的地面点和非地面点的比例可认为是基本不变的,故对n%5=1帧的数据,记为标记帧,其迭代次数设置为一个较大的保险值,计算提取结果的地面点数量占总点云数量的比值,记录为可信值;
[0053]
步骤4-2、寻找可信值,对于两个标记帧之间所有的帧,采用动态迭代次数,当提取结果在可信值的5%误差范围内,认为找到可信值,算法即可收敛。
[0054]
步骤5、对提取后的点云数据进行栅格化处理,确定可通行区域;具体方法为:
[0055]
步骤5-1、将点云坐标转换为栅格的极坐标,转换公式如下:
[0056][0057]
θ'=180*arccos(x/ρ')/2π
[0058]
式中,x和y表示转换前的点云坐标,ρ'和θ'表示转换后每个点云所对应栅格的极坐标,特别地,经过转换后,当y<0时,取θ'=360-θ',vdi表示分辨度,即极坐标下单个栅格
的长度。经过转换,可以得到以栅格地图中心为原点的每个点云所对应栅格的极坐标。
[0059]
步骤5-2、将非地面点也投影到地面上,即将地面点取余并投影到地面上,由于非地面点往往是障碍物高出地面的部分,故将其投影到地面上后即可视为地面上的障碍物点。根据步骤5-1,将其点云坐标也转换为每个点云所对应栅格的极坐标后,计算每个栅格内各种类型点的个数;
[0060]
步骤5-3、根据每个栅格中包含地面点的个数以及包含障碍物点的个数来标记栅格特征,具体如下:
[0061]
有障碍物点的栅格对应特征值为100,栅格标记为黑;
[0062]
无障碍物点且有地面点的栅格对应特征值素为0,栅格标记为白;
[0063]
无障碍物点且无地面点的栅格对应特征值为-1,栅格标记为灰。
[0064]
步骤5-4、根据离散的栅格特征确定栅格地图中的可通行区域。由于激光雷达不同扫描线之间存在间隔,故需要根据离散的栅格特征将间隔进行填充,进而确定可通行区域。对于已标记为黑色或白色的栅格,即已经确定为障碍物栅格或地面栅格,保留其特征;对于标记为灰色的栅格,既有可能是两条扫描线之间的可通行区域,也有可能是扫描范围外非地面区域,故根据与黑色或白色的栅格的位置关系进行填充。遍历所有角度,找到当前θ值上所有的灰色栅格,对于每一个灰色栅格,沿当前θ值找到其前后最近的非灰色栅格,假设向前寻找最近的非灰色栅格为beg,若找不到,则令beg也为灰色栅格;假设向后寻找最近的非灰色栅格为end,若找不到,则令end也为灰色栅格,然后根据表1所示的对应关系对当前灰色栅格进行填充。
[0065]
表1
[0066][0067][0068]
步骤5-5、创建raster_map栅格对象,将栅格极坐标转换为raster_map中的栅格坐标形式。首先将raster_map中的栅格坐标形式转换为以栅格地图中心为原点的直角坐标形式,转换公式如下:
[0069]
x=i%width-width/2vdi
[0070]
y=i/width-width/2vdi
[0071]
式中,x和y为转换后栅格的坐标,i表示raster_map栅格对象中的栅格数组下标,width为栅格地图的边长,vdi表示分辨度,即单个栅格的边长。特别地,经过转换后,当x≥0时,x加一;当y≥0时,y加一。经过转换,可以得到以栅格地图中心为原点的直角坐标形式。再计算每个栅格中心点的坐标,计算公式如下:
[0072]
x_center=(|x|-1)*vdi vdi/2
[0073]
y_center=(|y|-1)*vdi vdi/2
[0074]
式中,x_center和y_center为每个栅格中心点的坐标,x和y为之前转换后栅格的坐标,vdi表示分辨度,即单个栅格的边长。再根据步骤5-1将x_center和y_center转换为极坐标下的坐标,并根据此坐标找到对应极坐标栅格,将该极坐标栅格的特征值赋给当前栅格,确定了最终的可通行区域。
[0075]
图2为本发明对激光雷达获取的点云数据处理过后所得到的结果图,可见图中根据原始点云数据,可以很好地提取出地面点云并确定可通行区域,也和实际相符合,实现了预期的效果。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献