一种多线激光雷达的地面分割方法
技术领域
本发明涉及雷达数据处理技术领域,尤其涉及一种多线激光雷达的地面分割方法。
背景技术
在当前的自动驾驶行业中,车载多线激光可以获取精准的三维空间信息,且具有受天气、光照等自然条件的影响较小等优点,被大多数自动驾驶公司作为核心环境感知部件装配使用,相应的车载多线激光雷达的数据处理算法得到广泛研究。多线激光雷达通过接收目标反射的激光束来获取目标的距离、方位等信息,其获取的数据中,混合了地面、建筑物、树木、车辆等一切可反射激光束的环境因素,为实现路径规划、障碍物识别、环境SLAM建模操作,数据处理的关键一步是采用一种有效的方法完成地面和非地面点云的数据分割。在现有技术中,常见的分割方式有通过比较点云的高度值与设定阈值的大小进行比较实现地面的分割;或通过建立笛卡尔直角坐标系的栅格地图,统计每个栅格点云平均高度并与设定的阈值进行比较实现地面的分割;或通过构建极坐标网格地图,提取网格中点云数据的延伸顶点和最低点,与设定的阈值进行比较实现对非边缘网格中的地面点分割,再采用3σ准则对边缘网格中的地面点进一步分割处理;或通过将感兴趣的区域内所有点在极坐标网格下进行栅格化,统计每个栅格内最大高度差和平均高度,并与设定阈值进行比较,实现地面与非地面的数据分割,但此技术中设定阈值的选取极为关键,而且环境适应性差,并在车辆运动幅度较大时出现地面欠分割或过分割现象。
发明内容
(一)要解决的技术问题
基于上述问题,本发明提供了一种多线激光雷达的地面分割方法,通过对多线激光雷达数据的预处理、推测检测坡度、估算地面高程值等操作实现地面点或非地面点的精准分割,进而达到多线激光雷达分割的准确性和普适性。
(二)技术方案
第一方面,本发明提供了一种多线激光雷达的地面分割方法,用于判断被扫描物体为地面点或非地面点,方法包括:S1,获取多线激光雷达的雷达数据,雷达数据包括多线激光雷达与被扫描物体之间的距离,多线激光雷达的扫描线与水平面之间的角度以及扫描线的水平角度;S2,将雷达数据分成多组,并将每组中的雷达数据按扫描线与水平面之间角度由小至大依次排序;S3,获取每组中雷达数据的扫描线的总坡度以及扫描线相对于前一扫描线的相对坡度;S4,将总坡度与预设总体坡度阈值比较,得到第一比较结果,并将相对坡度与预设相对坡度阈值进行比较,得到第二比较结果;S5,根据第一比较结果和第二比较结果判断被扫描物体为地面点或非地面点。
可选地,总坡度S′g和相对坡度S′1的计算公式分别为:
z=r×sin(w)-z0
d=r×cos(w)
其中,z0为多线激光雷达的安装高度,r为多线激光雷达与被扫描物体之间的距离,w为多线激光雷达的扫描线与水平面之间的角度,z为多线激光雷达的扫描点相对于多线激光雷达的高度,d为多线激光雷达的扫描点与多线激光雷达的水平距离,i为多线激光雷达的第i个扫描线。
可选地,根据第一比较结果和第二比较结果判断被扫描物体为地面点或非地面点具体为:
若di<di-1且S′g∈[-Sg,Sg],则第i个扫描线对应的被扫描物体为地面点;
若di<di-1且则第i个扫描线对应的被扫描物体为非地面占;
若di>di-1、S′1∈[-S1,S1]且第i-1个扫描线对应的被扫描物体为地面点,则第i个扫描线对应的被扫描物体为地面点;
若di>di-1、S′1∈[-S1,S1]且第i-1个扫描线对应的被扫描物体为非地面点,则判断,若S′g∈[-Sg,Sg],则第i个扫描线对应的被扫描物体为地面点,若则第i个扫描线对应的被扫描物体为非地面点;
若di>di-1、且第i-1个扫描线对应的被扫描物体为地面点,则第i个扫描线对应的被扫描物体为非地面点;
若di>di-1、且第i-1个扫描线对应的被扫描物体为非地面点,则判断,若S′g∈[-Sg,Sg],则第i个扫描线对应的被扫描物体为地面点,若则第i个扫描线对应的被扫描物体为非地面点;
其中,Sg为预设总体坡度阈值,S1为预设相对坡度阈值。
可选地,步骤S2中,将雷达数据分成多组具体为:根据水平角分辨率将雷达数据分成多组,其中,水平角分辨率为预设值或多线激光雷达中传感器的水平角分辨率。
可选地,步骤S2之前还包括,确定所述扫描线的的水平角度中的有效水平角度,所述根据水平角分辨率将所述雷达数据分成多组具体为:以水平角分辨率为基本单位将有效水平角度范围内的雷达数据分成多组。
可选地,预设相对坡度阈值为预设总体坡度阈值的a倍,a≥1。
可选地,步骤S1还包括将雷达数据解析至雷达直角坐标系xyz中。
可选地,多线激光雷达的前进方向为x’方向,多线激光雷达的上方为z’方向,垂直于x’-z’平面的方向为y’,该地面分割方法还包括:S6,将x’-y’平面内的扫面线覆盖的最大范围栅格化,将地面点向x’-y’平面投影并填充栅格,在y’方向得到多个栅格化数据;S7,对每一栅格化数据分别进行x’和z’的多次曲线拟合,得到z’与x’的关系方程,根据关系方程即可预估地面点对应的地面高度。
可选地,采用最小二乘3次曲线拟合对所述x’和z’进行多次曲线拟合。
另一方面,本发明提供了一种多线激光雷达的地面分割装置,用于判断被扫描物体为地面点或非地面点,装置包括:第一获取模块,用于获取多线激光雷达的雷达数据,雷达数据包括多线激光雷达与被扫描物体之间的距离,多线激光雷达的扫描线与水平面之间的角度以及扫描线的水平角度;分组与排序模块,用于将雷达数据分成多组,并将每组中的雷达数据按扫描线与水平面之间角度由小至大依次排序;第二获取模块,用于获取每组中雷达数据的扫描线的总坡度以及扫描线相对于前一扫描线的相对坡度;比较模块,用于将总体坡度与预设总体坡度阈值比较,得到第一比较结果,并将相对坡度与预设相对坡度阈值进行比较,得到第二比较结果;判断模块,用于根据第一比较结果和第二比较结果判断被扫描物体为地面点或非地面点。
(三)有益效果
本发明提供了一种多线激光雷达的地面分割方法,本发明中多线激光雷达的雷达数据解析至相应传感器坐标系下,并按水平角度分组,按扫描线由小到大进行排序;然后通过计算某数据点与传感器原点的总体坡度及与前一线数据点的相对坡度,再同设定的相应坡度阈值进行逻辑判断,完成地面点与非地面点的数据分割;最后在单纬度进行栅格化并对高程进行拟合处理,为后续的数据处理提供数据输入。
本方案采用坡度变化的思想,最大化了地面与非地面的差异特征,同时,通过总体坡度变化与相对坡度变化相结合的方式,提高了分割算法的准确性和普适性。另外,本方案采用单纬度栅格化之后再进行高程拟合的方式提高了对车辆行驶方向高程的检测精度。除此,本方案从数据解析至地面分割只进行两次对所有点云的访问处理,减少运算量,提高了处理效率。
附图说明
图1示意性示出了本公开实施例的多线激光雷达的地面分割方法的步骤图;
图2示意性示出了本公开实施例的多线激光雷达的位置布置图;
图3示意性示出了本公开实施例的多线激光雷达所在坐标系示意图;
图4示意性示出了本公开实施例的多线激光雷达所在坐标系的俯视图;
图5示意性示出了本公开实施例的多线激光雷达的雷达数据的结果判断示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提供了一种多线激光雷达的地面分割方法,用于判断被扫描物体为地面点或非地面点,参见图1,方法包括:S1,获取多线激光雷达的雷达数据,雷达数据包括多线激光雷达与被扫描物体之间的距离,多线激光雷达的扫描线与水平面之间的角度以及扫描线的水平角度;S2,将雷达数据分成多组,并将每组中的雷达数据按扫描线与水平面之间角度由小至大依次排序;S3,获取每组中雷达数据的扫描线的总坡度以及扫描线相对于前一扫描线的相对坡度;S4,将总体坡度与预设总体坡度阈值比较,得到第一比较结果,并将相对坡度与预设相对坡度阈值进行比较,得到第二比较结果;S5,根据第一比较结果和第二比较结果判断被扫描物体为地面点或非地面点。下面将以该多线激光雷达的传感器类型为Velodyne ylp-16进行详细说明,该多线激光雷达的数量为两个,其对应的传感器分别为传感器A和传感器B(如图2所示),对称设于汽车车头左右两侧。
S1,获取多线激光雷达的雷达数据,雷达数据包括多线激光雷达与被扫描物体之间的距离,多线激光雷达的扫描线与水平面之间的角度以及扫描线的水平角度;
具体的,多线激光雷达在汽车行进的过程中,照射汽车行进前方,为表述方便,多线激光雷达自身建立直角坐标系xyz,如图3所示,多线激光雷达的出射扫描线的正前方为x轴的正方向,与多线激光雷达的出射扫描线的正前方和上方垂直的方向为y轴,其中,左转的方向对应y轴的正方向,多线激光雷达的上方为z方向如图4所示为该多线激光雷达直角坐标系的俯视图。多线激光雷达照射在被扫描物体上,经过被扫描物体的反射,多线激光雷达接收到该多线激光雷达的雷达数据,将该雷达数据解析至该直角坐标系中,并定义r为多线激光雷达与被扫描物体之间的距离,w为多线激光雷达的扫描线与水平面之间的角度,z为多线激光雷达的扫描点相对于多线激光雷达的高度,d为多线激光雷达的扫描点与多线激光雷达的水平距离,α为扫描线与y轴正方向的水平角度。并确定有效水平角度ΔA,由于车身的遮挡,可能导致传感器A的180°~270°角度范围被遮挡,传感器B的90°~180°角度范围被遮挡,因此传感器A的有效水平角度范围ΔA=[0°,180°]∪[270°,360°];传感器B的有效水平角度范围ΔB=[0°,90°]∪[180°,360°],当多线激光雷达旋转一周时对雷达数据解析一次。
S2,将雷达数据分成多组,并将每组中的雷达数据按扫描线与水平面之间角度的由小至大依次排序;
具体的,根据水平角分辨率将雷达数据分成多组,其中,水平角分辨率为预设值或多线激光雷达中传感器的水平角分辨率。
用户可以根据实际需要设置水平角分辨率Δα的预设值大小,也可以使用多线激光雷达中传感器的本身的水平角分辨率,根据水平角分辨率Δα和有效水平角度ΔA可以得知该雷达数据被分成多组的具体组数N,N=ΔA/Δα,从而合理的利用计算机资源,以水平角分辨率Δα为基本单位将有效水平角度ΔA均分,如若水平角分辨率Δα为0.2°,则传感器A得到的雷达数据中0.2°的扫描线为一组、0.4°的扫描线为一组、0.6°的扫描线为一组、……;若传感器本身的水平角分辨率Δα为0.1°而用户设置的水平角分辨率Δα为0.2°,则传感器A得到的雷达数据中0°~0.2°的扫描线为一组、0.2°~0.4°的扫描线为一组、0.4°~0.6°的扫描线为一组、……,以此方式将雷达数据均分,并将每组中的雷达数据按扫描线与水平面之间角度的由小至大依次排序,也即以多线激光雷达的扫描线与水平面之间的角度w的大小由小至大依次排序,分别为第1线、第2线、……第n线。
S3,获取每组中所述雷达数据的扫描线的总坡度以及所述扫描线相对于前一扫描线的相对坡度;
根据计算公式计算雷达数据的扫描线相对于水平面的总坡度S′g以及第i个扫描线与第i-1个扫描线之间的相对坡度S′1,具体的,总坡度S′g和相对坡度S′1的计算公式如下:
z=r×sin(w)-z0
d=r×cos(w)
其中,z0为多线激光雷达的安装高度,d为多线激光雷达的扫描点与多线激光雷达的水平距离,i为多线激光雷达的第i个扫描线。
本发明实施例中传感器A和传感器B安装高度相同,即z0均为1.2m,因此总坡度和相对坡度的推算公式分别为:
S4,将总体坡度与预设总体坡度阈值比较,得到第一比较结果,并将相对坡度与预设相对坡度阈值进行比较,得到第二比较结果;
设置总体坡度阈值Sg和相对坡度阈值S1,总体坡度阈值Sg根据倒数坡度的国家规范进行设定,具体为根据实际运行环境选择对应的规范坡度,相对坡度阈值S1是在总体坡度阈值Sg的基础上进行选择,一般预设相对坡度阈值S1为预设总体坡度阈值Sg的a倍,a≥1。本实施例中,车辆运行环境为封闭园区,道路坡度较小,因此总体坡度阈值Sg取值为5°,相对坡度阈值S1为min[8°0.5/(r×cosw)],即在距离较近时将8°作为相对坡度阈值,在距离较远时相对坡度阈值为0.5/(r×cosw)。将总坡度S′g与预设总体坡度阈值Sg比较,得到第一比较结果,并将相对坡度S′1与预设相对坡度阈值S1进行比较,得到第二比较结果。
S5,根据第一比较结果和第二比较结果判断被扫描物体为地面点或非地面点。
参见图5,具体为:
若di<di-1且S′g∈[-Sg,Sg],则第i个扫描线对应的被扫描物体为地面点;
若di<di-1且则第i个扫描线对应的被扫描物体为非地面占;
若di>di-1、S′1∈[-S1,S1]且第i-1个扫描线对应的被扫描物体为地面点,则第i个扫描线对应的被扫描物体为地面点;
若di>di-1、S′1∈[-S1,S1]且第i-1个扫描线对应的被扫描物体为非地面点,则判断,若S′g∈[-Sg,Sg],则第i个扫描线对应的被扫描物体为地面点,若则第i个扫描线对应的被扫描物体为非地面点;
若di>di-1、且第i-1个扫描线对应的被扫描物体为地面点,则第i个扫描线对应的被扫描物体为非地面点;
若di>di-1、且第i-1个扫描线对应的被扫描物体为非地面点,则判断,若S′g∈[-Sg,Sg],则第i个扫描线对应的被扫描物体为地面点,若则第i个扫描线对应的被扫描物体为非地面点。
自此完成了雷达数据中地面点与非地面点的分割。
该地面分割方法,以汽车前进方向建立坐标系x’y’z’,汽车前进方向也即多线激光雷达的前进方向为x’方向,多线激光雷达的上方为z’方向,垂直于x’-z’平面的方向为y’,还包括:
S6,将x’-y’平面内的有效水平角度范围栅格化,将地面点向所述x’-y’投影并填充栅格,在y’方向得到多个栅格化数据;
S7,对每一栅格化数据分别进行x和z的多次曲线拟合,得到z与x的关系方程,根据关系方程即可预估地面点对应的地面高度。
对雷达数据进行单纬度栅格化处理,即在即在x’-y’平面根据y’的处理范围和栅格精度确定栅格大小,将所有筛选的地面点向x’-y’平面进行投影并填充栅格,得到在y’方向删格化的数据。本实施例中,处理范围x’为-40~60m,y’为-20~20m,y’方向的栅格精度为0.2m,建立单纬度栅格图;将传感器A与传感器B的所有地面点云在该栅格图下投影并填充栅格。采用最小二乘3次曲线拟合对所述x’和z’进行多次曲线拟合,求取高程z’相对于x’的关系方程:
z′=a0+a1×x′+a2×x′2+a3×x′3
其中,a0、a1、a2和a3为常数。
本实施例中可求取20组z’和x’关系方程,则通过x’、y’值即可求出对应点的高程值,为后续的路径规划、定位导航等数据处理提供必要输入。
本发明另一方面提供了一种多线激光雷达的地面分割装置,用于判断被扫描物体为地面点或非地面点,装置包括:第一获取模块,用于获取多线激光雷达的雷达数据,雷达数据包括所述多线激光雷达与被扫描物体之间的距离,多线激光雷达的扫描线与水平面之间的角度以及扫描线的水平角度;分组与排序模块,用于将雷达数据分成多组,并将每组中的雷达数据按扫描线与水平面之间角度由小至大依次排序;第二获取模块,用于获取每组中雷达数据的扫描线的总坡度以及扫描线相对于前一扫描线的相对坡度;比较模块,用于将总体坡度与预设总体坡度阈值比较,得到第一比较结果,并将相对坡度与预设相对坡度阈值进行比较,得到第二比较结果;判断模块,用于根据第一比较结果和第二比较结果判断被扫描物体为地面点或非地面点。
应当注意的是,上述对方法和装置的定义、应用、描述并不仅限于实施例中提到的具体组成个数、方式,本领域普通技术人员可对其仅限简单的更改或替换,例如:(1)可以继续增加或减少一个或多个实施例中传感器;(2)可以在车辆任何位置布置某个传感器;(3)可以改变坐标系方向、位置等的定义;(4)可以对实施例中的阈值参数,处理过程进行调整,等等,均在本发明的保护范围之内。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。