车载激光雷达外参标定方法及装置、计算机设备及存储介质与流程

文档序号:20914675发布日期:2020-05-29 13:22阅读:265来源:国知局
车载激光雷达外参标定方法及装置、计算机设备及存储介质与流程

本申请涉及车载技术领域,特别是涉及一种车载激光雷达外参标定方法及装置、计算机设备及存储介质。



背景技术:

车载激光雷达外参标定可以包括车载激光雷达坐标系到车载惯导仪坐标系的转换矩阵的确定,确定车载激光雷达坐标系到车载惯导仪坐标系的转换矩阵是对检测目标方位进行测量的基础,即标定的准确性关系到后续目标检测的准确性。

目前,车载激光雷达外参标定,一般有激光雷达到摄像头的外参标定,需要制造特定的标定板,并利用特定的标定板得到相应的角点,再计算转换矩阵,得到激光雷达到摄像头的外参。但该方法需要制造特定的标定板,标定过程复杂,且通过利用特定的角点计算得到转换矩阵的准确性不高,即激光雷达外参标定准确性不高。



技术实现要素:

基于此,有必要针对上述激光雷达外参标定准确性不高的技术问题,提供一种车载激光雷达外参标定方法及装置、计算机设备及存储介质。

一种车载激光雷达外参标定方法,包括:

获取车载激光雷达相对于车载惯导仪的相对位姿;

获取所述车载激光雷达采集的各点云帧,以及所述车载惯导仪的各大地坐标,所述大地坐标与所述点云帧对应;

基于所述相对位姿、所述车载激光雷达采集的各所述点云帧以及所述车载惯导仪的各大地坐标,确定所述车载激光雷达到所述车载惯导仪的目标变换矩阵。

一种车载激光雷达外参标定装置,包括:

相对位姿获取模块,用于获取车载激光雷达相对于车载惯导仪的相对位姿;

点云帧获取模块,用于获取所述车载激光雷达采集的各点云帧,以及所述车载惯导仪的各大地坐标,所述大地坐标与所述点云帧对应;

目标变换矩阵确定模块,用于基于所述相对位姿、所述车载激光雷达采集的各所述点云帧以及所述车载惯导仪的各大地坐标,确定所述车载激光雷达到所述车载惯导仪的目标变换矩阵。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

上述车载激光雷达外参标定方法及装置、计算机设备和存储介质,首先获取车载激光雷达相对于车载惯导仪的相对位姿、车载激光雷达采集的各点云帧以及车载惯导仪的各大地坐标。通过车载激光雷达采集的各点云帧,并利用相对位姿以及车载惯导仪的各大地坐标,确定车载激光雷达到车载惯导仪的目标变换矩阵,实现激光雷达的外参标定。在上述确定目标变换矩阵过程中,不再是通过制造特定的标定板,利用特定标定板确定的特定角点进行转换矩阵的计算,利用的是车辆上的车载激光雷达相对于车载惯导仪的相对位姿、车载激光雷达采集的各点云帧以及车载惯导仪的各大地坐标,可准确确定车载激光雷达到车载惯导仪的目标变换矩阵,即可准确实现车载激光雷达外参的标定。

附图说明

图1为一个实施例中车载激光雷达外参标定方法的应用环境示意图;

图2为另一个实施例中车载激光雷达外参标定方法的应用环境示意图;

图3为一个实施例中车载激光雷达外参标定方法的流程示意图;

图4为另一个实施例中车载激光雷达外参标定方法的流程示意图;

图5为另一个实施例中车载激光雷达外参标定方法的流程示意图;

图6一个实施例中车载激光雷达外参标定方法的应用场景图;

图7一个实施例中车载激光雷达外参标定方法的应用场景图;

图8为一个实施例中位姿变换矩阵计算示意图;

图9为一个实施例中车载激光雷达和车载惯导仪的位姿;

图10为一个实施例中车载激光雷达外参标定装置的结构框图;

图11为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的各实施例的车载激光雷达外参标定方法,可以应用于如图1所示的应用环境中,该应用环境涉及车辆、车载激光雷达(对应图1中三维激光雷达)和车载惯导仪(imu),车辆在按照预定闭环路线进行行驶过程中,车载激光雷达可获取环境的点云数据。即设置于车辆中的车载激光雷达外参标定系统可获取车载激光雷达相对于车载惯导仪的相对位姿,获取车载激光雷达在车辆基于预定闭环路线进行行驶期间的各点云帧,以及车载惯导仪的各大地坐标,大地坐标与点云帧对应,基于车载激光雷达采集的各点云帧,确定与各点云帧分别对应的车载激光雷达位姿,基于相对位姿、各车载激光雷达位姿以及车载惯导仪的各大地坐标,并确定车载激光雷达到车载惯导仪的目标变换矩阵,实现车载激光雷达外参的标定。

另外,本申请提供的各实施例的车载激光雷达外参标定方法,还可以应用于如图2所示的应用环境中,该应用环境涉及车辆、车载激光雷达和车载惯导仪,场景为x,通过车载激光雷达可采集场景x的点云数据,具体可在不同方位采集该场景x的点云数据。例如,场景x中包括特征物1和特征物2,车载激光雷达在获取该场景x的点云数据时,其中可包括特征物1和特征物2相对于车载激光雷达的点云数据。其中,场景x中的特征物1和特征物2分别相对于大地的位姿是固定的,从而,通过不同方位采集该场景x的点云数据,基于不同方位的各点云数据、车载激光雷达相对于车载惯导仪的相对位姿以及车载惯导仪的各大地坐标,可确定车载激光雷达到车载惯导仪的目标变换矩阵,实现车载激光雷达外参的标定。

在一个实施例中,如图3所示,提供了一种车载激光雷达外参标定方法,该方法可应用于图1中的车辆中,包括步骤s310-s330。

s310:获取车载激光雷达相对于车载惯导仪的相对位姿。

激光雷达是以发射激光束探测目标的位置、速度等特征量的雷达系统。其工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较,作适当处理后,就可获得目标的有关信息,如目标距离、方位、高度、速度、姿态、甚至形状等参数。在本实施例中,在车上安装激光雷达,通过激光雷达可对车辆环境进行探测,获得点云帧。

惯导仪即惯性测量单元,是用来测量物体三轴姿态角(或角速率)以及加速度的装置。在车辆上,安装激光雷达和惯导仪,为了能准确检测目标,需要对激光雷达到惯导仪的变换矩阵进行标定,则首先需要获取车载激光雷达相对于车载惯导仪的相对位姿,可以理解为相对位置关系。在一个示例中,位姿可以包括坐标以及姿态,且坐标可以包括各坐标分量,姿态可以包括各姿态分量,各坐标分量和各姿态分量组成位姿中的各分量。相对位姿即包括相对坐标以及相对姿态。

s320:获取车载激光雷达采集的各点云帧,以及车载惯导仪的各大地坐标,大地坐标与点云帧对应。

通过车载激光雷达可进行点云帧的采集,从而可获取车载激光雷达采集的各点云帧,车载激光雷达采集的点云帧可以理解为车载激光雷达所对应采集的场景或对象对于车载激光雷达的坐标位置,具体可以为齐次坐标。车载激光雷达和车载惯导仪均安装在车辆上,在获取车载激光雷达采集的点云帧时,还需获取对应的车载惯导仪的各大地坐标。大地坐标与点云帧对应,可以理解为在相同时间下的大地坐标和点云帧,例如,点云帧为某时刻t对应的点云帧,则对应的车载惯导仪的大地坐标则为车载惯导仪在该时刻t下的大地坐标。即对于每一个点云帧,车载惯导仪有其对应的大地坐标,从而可获取车载惯导仪的各大地坐标。

s330:基于相对位姿、车载激光雷达采集的各点云帧以及车载惯导仪的各大地坐标,确定车载激光雷达到车载惯导仪的目标变换矩阵。

通过目标变换矩阵,可将车载激光雷达坐标系下的位姿转换到车载惯导仪坐标系下的位姿,获得在车载惯导仪坐标系下的位姿。

上述车载激光雷达外参标定方法,首先获取车载激光雷达相对于车载惯导仪的相对位姿、车载激光雷达采集的各点云帧以及车载惯导仪的各大地坐标。通过车载激光雷达采集的各点云帧,并利用相对位姿以及车载惯导仪的各大地坐标,确定车载激光雷达到车载惯导仪的目标变换矩阵,实现激光雷达的外参标定。在上述确定目标变换矩阵过程中,不再是通过制造特定的标定板,利用特定标定板确定的特定角点进行转换矩阵的计算,利用的是车辆上的车载激光雷达相对于车载惯导仪的相对位姿、车载激光雷达采集的各点云帧以及车载惯导仪的各大地坐标,可准确确定车载激光雷达到车载惯导仪的目标变换矩阵,即可准确实现车载激光雷达外参的标定。

在一个实施例中,获取车载激光雷达采集的各点云帧,包括:获取车载激光雷达在车辆基于预定闭环路线进行行驶期间的各点云帧。

车辆按照预定闭环路线行驶过程中,车载激光雷达可在行驶期间对预定闭环路线对应的场景进行点云帧采集,即可获得采集的各点云帧(每一帧中包括点云数据),从而可获取车载激光雷达在车辆基于预定闭环路线进行行驶期间的各点云帧。另外,在行驶过程中,对于每一个点云帧,车载惯导仪有其对应的大地坐标,从而可获取车载惯导仪的各大地坐标。具体地,在行驶期间,车载激光雷达可根据预定频率进行点云采集,例如,可根据每秒10帧的频率进行采集,若行驶时间为1分钟,则可采集600帧点云帧,从而可获取车载激光雷达采集的600帧点云帧。

在一个实施例中,获取车载激光雷达采集的各点云帧,包括:获取车载激光雷达在同一场景下各方位采集的各点云帧。

即针对同一场景进行不同方位的点云数据采集,例如,若各方位包括第一方位、第二方位和第三方位,针对场景x,可分别在第一方位、第二方位和第三方位对场景x进行点云数据采集,在每一个方位,可按照预设频率进行点云数据采集,例如,可按照1秒10帧的频率采集,采集2秒,则可获得该方位对应的20帧点云帧,上述各点云帧即为在各方位对同一场景采集的点云帧的总和。

如图4所示,在一个实施例中,基于相对位姿、车载激光雷达采集的各点云帧以及车载惯导仪的各大地坐标,确定车载激光雷达到车载惯导仪的目标变换矩阵,包括:

s431:基于车载惯导仪的各大地坐标确定车载惯导仪到大地的各第一转换矩阵。

车辆在行驶过程中,车载惯导仪的大地坐标随车辆的行驶而变化,可获取在车辆行驶过程中车载惯导仪的各大地坐标,然后基于车载惯导仪的各大地坐标,可确定车载惯导仪到大地的各第一转换矩阵。

上述第一转换矩阵可以理解为第一旋转变换矩阵。例如,若车载惯导仪的大地坐标对应的向量为[x0,y0,ψ],则对应的第一旋转变换矩阵为ψ为偏航角(yaw)。若车载惯导仪的大地坐标对应的向量为[x0,y0,z0,γ,θ,ψ],γ为翻滚角(roll),θ为水平角(roll),则对应的第一旋转变换矩阵为

s432:从相对位姿的各分量的值中选择一个分量的值作为当前分量的值。

在本实施例中,通过对相对位姿中各分量依次进行目标值的确定,更新各分量的值,从而更新相对位姿,然后再基于最后得到的更新的相对位姿可准确确定目标变换矩阵。则首先从相对位姿中各分量中选择一个分量的值作为当前分量的值。

s433:基于相对位姿中当前分量的值,确定当前分量对应的预设数量个迭代值。

可以理解为在相对位姿中当前分量的值的基础上,选定其对应的预设数量个迭代值,即该迭代值可以为当前分量的值通过一种预定规则计算后得到的值。

s434:基于各点云帧、当前分量对应的预设数量个迭代值、相对位姿以及各第一转换矩阵,确定当前分量的目标值。

可以理解为基于各点云帧、相对位姿以及各第一转换矩阵从当前分量对应的预设数量个迭代值中选一个满足预定要求的迭代值作为当前分量的目标值,即当前分量的目标值从当前分量对应的预设数量个迭代值中选定。

s435:将相对位姿中当前分量的值更新为当前分量的目标值,更新相对位姿。

初始时,相对位姿中各分量的值基于车载激光雷达与车载惯导仪之间的相对位置和相对姿态确定,为了提高相对位姿的准确性,需要对相对位姿中各分量的值进行更新,以更新相对位姿。

s436:将相对位姿中未确定目标值的一个分量的值作为当前分量的值,并返回基于相对位姿中当前分量的值,确定当前分量对应的预设数量个迭代值的步骤s433,直到相对位姿中各分量的目标值确定完毕。

上述更新相对位姿中当前分量的值后,即完成相对位姿中一个分量的值的更新,在本实施例中,需要对相对位姿中各分量的值均进行更新,从而,还需将相对位姿中未确定目标值的一个分量的值作为当前分量的值,然后再基于相对位姿(此时,已更新)中当前分量的值,确定当前分量对应的预设数量个迭代值,即重新进行该当前分量(已更新)的值的更新,直到相对位姿中各分量的目标值确定完毕,即相对位姿中各分量的值均更新完毕。

s437:基于更新后的相对位姿,确定车载激光雷达到车载惯导仪的目标变换矩阵。

对相对位姿中各分量的值均更新完毕后,得到的相对位姿是最新的,可基于更新后的相对位姿(即最新的相对位姿),准确确定车载激光雷达到车载惯导仪的目标变换矩阵。在一个示例中,目标变换矩阵可以理解为目标旋转变换矩阵。

在一个实施例中,基于各车载激光雷达位姿、当前分量对应的预设数量个迭代值、相对位姿以及各第一转换矩阵,确定当前分量的目标值的步骤s434,包括:

基于车载激光雷达采集的各点云帧,确定与各点云帧分别对应的车载激光雷达位姿;基于当前分量对应的预设数量个迭代值以及相对位姿,确定预设数量个迭代相对位姿;基于预设数量个迭代相对位姿,获得车载激光雷达到车载惯导仪的预设数量个变换矩阵;根据各第一转换矩阵以及预设数量个变换矩阵,确定预设数量个车载激光雷达到大地的转换矩阵组,转换矩阵组包括车载激光雷达到大地的各第二转换矩阵;基于各车载激光雷达位姿以及预设数量个车载激光雷达到大地的转换矩阵组,获得预设数量个误差值;将预设数量个误差值的最小值对应的迭代相对位姿中当前分量的迭代值作为当前分量的目标值。

可以理解,本实施例中,上述确定分量的目标值的过程是在各点云帧为车载激光雷达在车辆基于预定闭环路线进行行驶期间采集的各点云帧的情况下进行,具体通过误差值来确定当前分量的目标值。

在获得各点云帧后,即可利用车载激光雷达采集的各点云帧,确定与各点云帧分别对应的车载激光雷达位姿。即每一个点云帧对应有一个车载激光雷达位姿,确定与各点云帧分别对应的车载激光雷达位姿后,可以理解为确定了车辆在行驶期间车载激光雷达的位姿。

预设数量个迭代相对位姿是在相对位姿的基础上,将当前分量对应的预设数量个迭代值分别作为相对位姿中当前分量的值而获得。然后分别对预设数量个迭代相对位姿进行变换,得到车载激光雷达到车载惯导仪的预设数量个变换矩阵。转换矩阵组中车载激光雷达到大地的转换矩阵与车载激光雷达位姿对应。每个变换矩阵与各第一转换矩阵可确定一个转换矩阵组,即可确定各转换矩阵,如此,可得到预设数量个转换矩阵组。车载激光雷达位姿与车载激光雷达到大地的转换矩阵之间可能存在差异,可通过计算其误差值,利用误差值从当前分量的预设数量个迭代值中选择最小的一个迭代值作为当前分量的目标值,即当前分量的目标值对应的迭代相对位姿与激光雷达到大地的第二转换矩阵之间存在的差异最小。在一个示例中,预设数量个变换矩阵为预设数量个旋转变换矩阵。

在一个实施例中,基于各车载激光雷达位姿以及预设数量个激光雷达到大地的转换矩阵组,获得预设数量个误差值,包括:基于预设数量个车载激光雷达到大地的转换矩阵组,确定预设数量个车载激光雷达到大地的位姿数据组,位姿数据组包括激光雷达到大地的各位姿数据;基于各车载激光雷达位姿以及预设数量个车载激光雷达到大地的位姿数据组,计算预设数量个误差值。

在本实施例中,需要对转换矩阵组中的转换矩阵进行逆变换,得到对应的位姿数据,以使其分量与车载激光雷达位姿中的分量对应,如此,可取车载激光雷达位姿中各分量与位姿数据组中对应的位姿数据的各分量的差值平方和,再将各车载激光雷达位姿对应的差值平方和相加,得到误差值。由于有预设数量个车载激光雷达到大地的位姿数据组,从而可得到预设数量个误差值。

如图5所示,在一个实施例中,基于车载激光雷达采集的各点云帧,确定与各点云帧分别对应的车载激光雷达位姿的步骤,包括:

s531:对于各点云帧中任意一点云帧,对该点云帧与该点云帧的前一帧进行帧间匹配,确定该点云帧与该点云帧的前一帧之间的帧间变换矩阵。

即通过帧间匹配确定两帧之间的变换关系,在一个示例中,可通过icp(iterativeclosestpoint,最近点搜索法)算法对该点云帧与该点云帧的前一帧进行帧间匹配,得到点云帧与该点云帧的前一帧之间的帧间变换矩阵。

s532:基于该点云帧的前一帧的位姿变换矩阵以及帧间变换矩阵确定该点云帧对应的预估位姿变换矩阵。

在获知帧间的变换关系后,即可根据该点云帧的前一帧的位姿变换矩阵,通过变换关系进行变换,得到该点云帧对应的预估位姿变换矩阵。

s533:对该点云帧的预估位姿变换矩阵与参照位姿变换矩阵进行匹配,获得该点云帧对应的位姿变换矩阵。其中,参照位姿变换矩阵为该点云帧的前预定数目个点云帧拼接而成的子点云图对应的位姿变换矩阵。

可以理解为对该点云帧的前预定数目个点云帧进行拼接得到子点云图,并确定该子点云图对应的位姿变换矩阵。在一个示例中,可通过icp算法对该点云帧的预估位姿变换矩阵与参照位姿变换矩阵进行匹配,得到该点云帧对应的位姿变换矩阵。

s534:基于该点云帧对应的位姿变换矩阵,确定该点云帧对应的车载激光雷达位姿。

该点云帧对应的位姿变换矩阵可以理解为该点云帧的预估位姿变换矩阵与参照位姿变换矩阵进行匹配的匹配结果,基于该匹配结果可确定该点云帧对应的车载激光雷达位姿。

s535:将各点云帧对应的车载激光雷达位姿确定为与各点云帧分别对应的车载激光雷达位姿。

各点云帧中的任意一点云帧均可上述过程确定对应的车载激光雷达姿态,则在各点云帧分别对应的车载激光雷达姿态确定完成后,各点云帧对应的车载激光雷达位姿则为上述与各点云帧分别对应的车载激光雷达位姿。

在一个实施例中,当前分量对应的预设数量个迭代值包括相对位姿中当前分量的值以及预定数量个迭代值,预定数量为预设数量减一。

其中,预设数量个迭代值中相邻两个迭代值之间间隔预设步长,且在预定数量个迭代值中,小于相对位姿中当前分量的值的数量与大于相对位姿中当前分量的值的数量相同。

即在本实施例中,是以相对位姿中当前分量的值为基准或中心,并以预设步长为间隔距离,分别往值减小的方向以及值增大的方向,总共选定预设数量个迭代值。

在一个实施例中,基于各点云帧、当前分量对应的预设数量个迭代值、相对位姿以及各第一转换矩阵,确定当前分量的目标值,包括:基于当前分量对应的预设数量个迭代值以及相对位姿,确定预设数量个迭代相对位姿;基于预设数量个迭代相对位姿,获得车载激光雷达到车载惯导仪的预设数量个变换矩阵;将各点云帧分别左乘预设数量个变换矩阵,获得预设数量个第一更新点云帧组,第一更新点云帧组包括各第一更新点云帧;将预设数量个第一更新点云帧组中各第一更新点云帧分别左乘对应的第一转换矩阵,确定预设数量个第二更新点云帧组,第二更新点云帧组包括各第二更新点云帧;分别计算各第二更新点云帧组中各第二更新点云帧中两两之间的重合度系数,确定各第二更新点云帧组分别对应的总重合度系数;将预设数量个总重合度系数的最小值对应的迭代相对位姿中当前分量的迭代值作为当前分量的目标值。

其中,第一更新点云帧组中的第一更新点云帧即为对应点云帧左乘变换矩阵后的结果,第一更新点云帧组中第一更新点云帧的数量与车载激光雷达采集的各点云帧的数量相同。第二更新点云帧组中的第二更新点云帧即为第一更新点云帧左乘对应的第一转换矩阵后的结果,第二更新点云帧组中第二更新点云帧的数量与第一更新点云帧组中第一更新点云帧的数量相同。

在本实施例中,上述点云帧实际上是在不同方位同一场景(场景中可包括各特征物)相对车载激光雷达的坐标位置,对每帧点云帧分别左乘变换矩阵,此时就得到了特征物相对车载惯导仪的坐标位置,即第一更新点云帧。然后再左乘点云帧对应的车载惯导仪的大地坐标对应的第一转换矩阵,得到特征物相对于大地的坐标位置,即第二更新点云帧。由于大地坐标系是唯一的,所以最后得到的第二更新点云帧即为特征物在大地的坐标位置。

由于惯导仪的大地坐标对应的第一转换矩阵精度较高,如果车载激光雷达到车载惯导仪的变换坐标不准确的话,由点云投射后得到的特征物在大地的坐标位置相互间的重合度会比较低(即第二更新点云帧之间的重合度会较低),如图6所示,其中,a位置和b位置分别对应不同方位,在a位置投射的特征物1和在b位置投射的特征物1均分别与特征物1的实际坐标位置重合度较低,在a位置投射的特征物2和在b位置投射的特征物2均分别与特征物2的实际坐标位置重合度较低。如果车载激光雷达到车载惯导仪的变换坐标准确的话,由点云投射后得到的特征物在大地的坐标位置相互间的重合度会比较高,如图7所示,其中,在a位置投射的特征物1和在b位置投射的特征物1均分别与特征物1的实际坐标位置重合度较高,在a位置投射的特征物2和在b位置投射的特征物2均分别与特征物2的实际坐标位置重合度较高,几乎重叠。

因此,在本实施例中,对车载激光雷达相对车载惯性导航仪的相对位移中的参数分量采用多步迭代方法,分别设定每个参数分量的迭代中心为相对位姿中该参数分量的值,预设步长为b,步数为n,得到每个参数对应的有2n+1个迭代值,将2n+1个迭代值分别作为相对姿态中该参数对应的值,得到2n+1个迭代相对位姿,从而可获得车载激光雷达到车载惯导仪的2n+1个变换矩阵,根据2n+1个变换矩阵,计算得到每个第二更新点云帧组中各第二更新点云帧中两两帧之间重合度系数,从而可确定每个第二更新点云帧组对应的总重合度系数cm(2n+1),确定总重合度系数的最小值cmk,将相对位姿中该参数的值更新为与cmk对应的该参数对应的迭代值,更新相对位姿,然后继续对下一个参数分量利用多步迭代方法进行迭代,过程与上述更新参数的值的过程相同,如此,对上述相对位姿中各参数分量依次迭代,得到最终优化后的相对位姿,并基于该相对位姿得到目标变换矩阵tbest。

在本实施例中,同一第二更新点云帧组中各第二更新点云帧包括wp0、wp1、...和wpk,通过最邻近点搜索匹配点的过程为:以第二更新点云帧wp0和第二更新点云帧wp1为例,针对wp0的所有点(wp00、wp01...wp0n,总点数为n0个),求该点在wp1(wp10、wp11...wp1n,总点数为n1)中的最近点,如果该点与其在wp1的最近点之间的距离小于d(0.05m至0.15m之间),则认为该点有匹配点,统计wp0的匹配点数目n0’。wp0与wp1之间的重合度系数cm01=n0/n0’,总重合度系数cm由wp0、wp1、...、wpk相互间的重合度系数相加而得到。在本实施例中,可通过kd-tree算法搜索邻近点。

可以理解,本实施例中,上述确定分量的目标值的过程是在各点云帧为车载激光雷达同一场景下在各方位采集的各点云帧的情况下进行,具体通过重合度系数来确定当前分量的目标值。重合度系数与重合度成反比,具体地,重合度系数可以为重合度的倒数,重合度越大,重合度系数越小。预设数量个总重合度系数的最小值可以理解为预设数量个总重合度(可计算各第二更新点云帧组中各第二更新点云帧中两两之间的重合度,确定各第二更新点云帧组分别对应的总重合度)的最大值。

下面以一个具体实施对上述车载激光雷达外参标定方法的过程加以具体说明,并以车辆按照预定闭环路线进行行驶,车载激光雷达在车辆按照预定闭环路线行驶期间采集的各点云帧为例进行说明。

首先,位置测量:利用测量工具(例如米尺)测量车载激光雷达相对于车载惯导仪的分别在三个方向(即大地坐标系下的x、y和z轴方向,其两两互相垂直)上的相对坐标为x相对、y相对和z相对,误差5cm以内即可。姿态包括翻滚角(roll)、水平角(pitch)和偏航角(yaw),车载激光雷达相对于车载惯导仪的相对姿态为roll相对、pitch相对和yaw相对,即相对翻滚角、相对水平角和相对偏航角。一般车载激光雷达水平放置、数据导出线朝车尾的正常安装情况下,翻滚角和水平角为0,偏航角为90°;如果不为正常安装,则需测量roll、pitch和yaw角的角度值,误差到4°以内即可,得到相对位姿(x相对,y相对,z相对,roll相对,pitch相对,yaw相对)。

然后,数据准备:车辆在一场景下车辆慢速地按照预定闭环路线(车速控制在5m/s以下)进行行驶,例如,可以按照半径为r(r一般为5-30m)的闭环路线,或者可以按照8字形的路线进行行驶,预定闭环路线首尾相接,并记录下期间(t时刻内)的车载激光雷达的点云数据p(即为各点云帧,包括p0、p1...pk,pi为第i帧点云帧,0≤i≤k,k为总帧数)和对应的车载惯导仪对应的大地坐标(ground),并通过大地坐标确定车载惯导仪到大地的各第一转换矩阵,各第一转换矩阵包括w0、w1、...、wk,wi为通过第i帧点云帧对应的大地坐标确定的车载惯导仪到大地的第一转换矩阵,可以理解为第i个第一转换矩阵。

其次,点云建图:对记录的点云数据(p0、p1...pk),进行帧间匹配,匹配方法选用icp算法的点对点匹配方式,参数为:最大对应点距离为范围为0.05-0.2米,最大迭代次数范围为50-200,帧间变换矩阵之间的差值为1e-12,均方误差为0.05,如此,可确定各帧间变换矩阵。基于各帧间变换矩阵可确定各点云帧对应的预估位姿变换矩阵。再利用各预估位姿变换矩阵对子地图(例如,预定数目为100,则子地图为当前点云帧的前100帧点云帧的拼接)进行匹配,利用两个匹配结果得到当前点云帧的姿态。

如图8所示,以当前点云帧为第n帧为例,第n-1帧的位姿变换矩阵为kn-1,通过帧间匹配得到,第n帧和第n-1帧的帧间变换矩阵为on,可以得到第n帧点云帧的估计位姿变换矩阵en=kn-1*on,此时子地图(以预定数目为20为例)为第n帧点云帧前面的第n-20,n-19,…,n-1这20帧点云帧在全局投影拼接而成(即每帧点云帧通过对应的姿态变换相叠加),对估计位姿变换矩阵en和子地图对应的位姿变换矩阵再进行一次icp匹配,得到最终第n帧点云帧对应的位姿变换矩阵kn,利用第n帧点云帧对应的位姿变换矩阵kn得到该点云帧对应的激光雷达位姿,当n小于20时,子地图即为1到n-1帧点云帧拼接而成。在一个示例中,各点云帧中的首帧的位姿变换矩阵为单位矩阵。

再者,目标变换矩阵求解:通过点云建图可以得知每帧点云帧对应的车载激光雷达姿态(如图9中的方形粗点),此时车载惯导仪对应该点云帧的姿态为(如图9中的圆形细点),每个姿态都由(x,y,z,roll,pitch,yaw)组成,如果车载激光雷达到车载惯导仪的变换矩阵t准确的话,应该与ki(第i帧对应的位姿变换矩阵)相等,为第i个车载激光雷达到大地的转换矩阵,转换矩阵组中激光雷达到大地的各转换矩阵的数量与点云帧的数量相同。由此可以建立一个误差函数

其中,ki-x为第i帧点云帧对应的车载激光雷达位姿(可通过第i帧对应的位姿变换矩阵逆变换得到)的x分量,为第i个车载激光雷达到大地的位姿数据的x分量,ki-y为第i帧点云帧对应的车载激光雷达位姿的y分量,为第i个激光雷达到大地的位姿数据的y分量,ki-roll为第i帧点云帧对应的车载激光雷达位姿的roll分量,为第i个车载激光雷达到大地的位姿数据的roll分量,ki-pitch为第i帧点云帧对应的车载激光雷达位姿的pitch分量,为第i个激光雷达到大地的位姿数据的pitch分量,ki-yaw为第i帧点云帧对应的车载激光雷达位姿的yaw分量,为第i个车载激光雷达到大地的位姿数据的yaw分量。在本实施例中,z分量的差值不计入误差函数。由此依次对车载激光雷达相对车载惯性导航仪的相对位姿(x,y,z,roll,pitch,yaw)中的六个分量(参数)采用多步迭代方法,分别设定每个参数的迭代中心为相对位姿中该参数的值,预设步长为b,步数为n,得到每个参数对应的有2n+1个迭代值,将2n+1个迭代值分别作为相对姿态中该参数对应的值,得到2n+1个迭代相对位姿,从而可获得车载激光雷达到车载惯导仪的2n+1个变换矩阵,再确定2n+1个激光雷达到大地的转换矩阵组,如此,再根据上述误差函数可计算得到2n+1个误差值,确定2n+1个误差值中的最小值mmin,将相对位姿中该参数的值更新为与mmin对应的该参数对应的迭代值,更新相对位姿,然后继续对下一个参数利用多步迭代方法进行迭代,过程与上述更新参数的值的过程相同,如此,对上述六个参数依次迭代,得到最终优化后的相对位姿,并基于该相对位姿得到目标变换矩阵tbest。

应该理解的是,虽然图3-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图10所示,提供了一种车载激光雷达外参标定装置,包括:

相对位姿获取模块110,用于获取车载激光雷达相对于车载惯导仪的相对位姿;

点云帧获取模块120,用于获取车载激光雷达采集的各点云帧,以及车载惯导仪的各大地坐标,大地坐标与点云帧对应;

目标变换矩阵确定模块130,用于基于相对位姿、车载激光雷达采集的各点云帧以及车载惯导仪的各大地坐标,确定车载激光雷达到车载惯导仪的目标变换矩阵。

在一个实施例中,点云帧获取模块120用于获取所述车载激光雷达在车辆基于预定闭环路线进行行驶期间采集的各所述点云帧。

在一个实施例中,点云帧获取模块120用于获取所述车载激光雷达在同一场景下各方位采集的各所述点云帧。

在一个实施例中,目标变换矩阵确定模块,包括:

第一转换模块,用于基于所述车载惯导仪的各所述大地坐标确定所述车载惯导仪到大地的各第一转换矩阵;

选择模块,用于从所述相对位姿的各分量的值中选择一个分量的值作为当前分量的值;

迭代值确定模块,用于基于所述相对位姿中当前分量的值,确定当前分量对应的预设数量个迭代值;

目标值获取模块,用于基于各点云帧、所述当前分量对应的预设数量个迭代值、所述相对位姿以及各所述第一转换矩阵,确定当前分量的目标值;

更新模块,用于将所述相对位姿中当前分量的值更新为所述当前分量的目标值,更新所述相对位姿;

选择模块,还用于将所述相对位姿中未确定目标值的一个分量的值作为当前分量的值,并返回基于所述相对位姿中当前分量的值,确定当前分量对应的预设数量个迭代值的步骤,直到所述相对位姿中各分量的目标值确定完毕;

目标确定模块,用于基于更新后的相对位姿,确定所述车载激光雷达到所述车载惯导仪的目标变换矩阵。

在一个实施例中,目标值获取模块,包括:

车载激光雷达位姿确定模块,用于基于所述车载激光雷达采集的各所述点云帧,确定与各所述点云帧分别对应的车载激光雷达位姿;

迭代相对位姿确定模块,用于基于所述当前分量对应的预设数量个迭代值以及所述相对位姿,确定预设数量个迭代相对位姿;

变换矩阵确定模块,用于基于所述预设数量个迭代相对位姿,获得所述车载激光雷达到所述车载惯导仪的预设数量个变换矩阵;

转换矩阵确定模块,用于根据各所述第一转换矩阵以及所述预设数量个变换矩阵,确定预设数量个所述车载激光雷达到大地的转换矩阵组,所述转换矩阵组包括车载激光雷达到大地的各第二转换矩阵;

误差值获取模块,用于基于各所述车载激光雷达位姿以及预设数量个所述车载激光雷达到大地的转换矩阵组,获得预设数量个误差值;

目标值确定模块,用于将所述预设数量个误差值的最小值对应的迭代相对位姿中当前分量的迭代值作为当前分量的目标值。

在一个实施例中,误差值获取模块,包括:

位姿数据获取模块,用于基于预设数量个所述车载激光雷达到大地的转换矩阵组,确定预设数量个所述车载激光雷达到大地的位姿数据组;所述位姿数据组包括车载激光雷达到大地的各位姿数据;

计算模块,用于基于各所述车载激光雷达位姿以及预设数量个所述车载激光雷达到大地的位姿数据组,计算预设数量个误差值。

在一个实施例中,车载激光雷达位姿确定模块,包括:

第一匹配模块,用于对于各所述点云帧中任意一点云帧,对该点云帧与该点云帧的前一帧进行帧间匹配,确定该点云帧与该点云帧的前一帧之间的帧间变换矩阵;

预估模块,用于基于该点云帧的前一帧的位姿变换矩阵以及所述帧间变换矩阵确定该点云帧对应的预估位姿变换矩阵;

第二匹配模块,用于对该点云帧的预估位姿变换矩阵与参照位姿变换矩阵进行匹配,获得该点云帧对应的位姿变换矩阵;其中,参照位姿变换矩阵为该点云帧的前预定数目个点云帧拼接而成的子点云图对应的位姿变换矩阵;

激光雷达位姿获取模块,用于基于该点云帧对应的位姿变换矩阵,确定该点云帧对应的车载激光雷达位姿;

位姿确定模块,用于将各所述点云帧对应的车载激光雷达位姿确定为与各所述点云帧分别对应的车载激光雷达位姿。

在一个实施例中,所述当前分量对应的预设数量个迭代值包括所述相对位姿中当前分量的值以及预定数量个迭代值,所述预定数量为所述预设数量减一;

其中,所述预设数量个迭代值中相邻两个迭代值之间间隔预设步长,且在所述预定数量个迭代值中,小于所述相对位姿中当前分量的值的数量与大于所述相对位姿中当前分量的值的数量相同。

在一个实施例中,目标值获取模块,包括:

迭代相对位姿确定模块,用于基于所述当前分量对应的预设数量个迭代值以及所述相对位姿,确定预设数量个迭代相对位姿;

变换矩阵确定模块,用于基于所述预设数量个迭代相对位姿,获得所述车载激光雷达到所述车载惯导仪的预设数量个变换矩阵;

第一左乘处理模块,用于将各点云帧分别左乘预设数量个变换矩阵,获得预设数量个第一更新点云帧组,第一更新点云帧组包括各第一更新点云帧;

第二左乘处理模块,用于将预设数量个第一更新点云帧组中各第一更新点云帧分别左乘对应的第一转换矩阵,确定预设数量个第二更新点云帧组,第二更新点云帧组包括各第二更新点云帧;

重合度系数确定模块,用于分别计算各第二更新点云帧组中各第二更新点云帧中两两之间的重合度系数,确定各第二更新点云帧组分别对应的总重合度系数;

目标值确定模块,用于将预设数量个总重合度系数的最小值对应的迭代相对位姿中当前分量的迭代值作为当前分量的目标值。

关于车载激光雷达外参标定装置的具体限定可以参见上文中对于车载激光雷达外参标定方法的限定,例如,设置于服务器的车载激光雷达外参标定装置的具体限定可以参见上文中应用于服务器中对于车载激光雷达外参标定方法的限定,设置于终端的车载激光雷达外参标定装置的具体限定可以参见上文中应用于终端中对于车载激光雷达外参标定方法的限定,在此不再赘述。上述车载激光雷达外参标定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器或终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种车载激光雷达外参标定方法。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述方法的步骤。

在一个实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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