激光点云数据的修正方法、装置、存储介质和电子设备
技术领域
本公开涉及激光技术领域,具体地,涉及一种激光点云数据的修正方法、装置、存储介质和电子设备。
背景技术
随着电子技术的发展,激光雷达开始获得广泛的应用,例如激光雷达可以作为感知设备应用于机器人测量领域,具有测量精度高、受环境干扰小等优点。激光雷达通过激光扫描,能够快速地建立机器人周围环境的三维模型,为高精地图制作、障碍物识别、机器人精确定位等操作提供基础数据。由于激光雷达的采集频率比较低,因此激光雷达采集一帧激光点云数据不是在瞬间完成的,即一帧激光点云数据中包括了激光雷达在一段时间内采集的多个点云数据。由于机器人通常是处在运动状态,因此激光雷达采集到的一帧点云数据中,每个点云数据都不在同一个坐标系上,即激光点云数据发生了畸变,直接利用采集到的激光点云数据来建立地图或者定位会引起测量误差,影响精度。
发明内容
本公开的目的是提供一种激光点云数据的修正方法、装置、存储介质和电子设备,用于解决由于待测设备的运动,导致激光雷达采集到的激光点云数据发生畸变的问题。
为了实现上述目的,根据本公开实施例的第一方面,本公开提供一种激光点云数据的修正方法,所述方法包括:
获取待测设备在第一时间范围内的多个位姿信息,所述第一时间范围包含第二时间范围,目标帧中包括激光雷达在所述第二时间范围内采集的多个点云数据;
对所述多个位姿信息进行拟合,以获取所述第一时间范围内的位姿曲线;
根据所述多个点云数据中每个点云数据对应的采集时刻,获取所述位姿曲线上,所述每个点云数据对应的位姿信息;
确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,所述第一点云数据为所述目标帧中的所述激光雷达在第一个采集时刻采集的点云数据,所述目标点云数据为所述多个点云数据中除第一点云数据之外的任一个点云数据;
根据所述目标转换矩阵修正所述目标点云数据。
可选地,所述多个位姿信息中的每个位姿信息都包括:位置信息和角度信息;所述位姿曲线包括:位置曲线和角度曲线;
所述对所述多个位姿信息进行拟合,以获取所述第一时间范围内的位姿曲线,包括:
对所述多个位姿信息中的每个位姿信息的位置信息进行拟合,以获取所述第一时间范围内的所述位置曲线;
对所述多个位姿信息中的每个位姿信息的角度信息进行拟合,以获取所述第一时间范围内的所述角度曲线。
可选地,所述对所述多个位姿信息进行拟合,以获取所述第一时间范围内的位姿曲线,包括:
将所述多个位姿信息作为多个控制点,利用预设的B样条曲线获取所述位姿曲线;
所述B样条曲线包括:
其中,u∈[0,1],表示所述第一时间范围归一化后的取值,C(u)表示所述位姿曲线,Pi表示n个所述位姿信息中第i个位姿信息,r表示所述B样条曲线的次数,Ni,r(u)表示所述B样条曲线的基函数。
可选地,所述根据所述多个点云数据中每个点云数据对应的采集时刻,获取所述位姿曲线上,所述每个点云数据对应的位姿信息,包括:
利用预设的第一公式确定所述每个点云数据对应的采集时刻在所述第一时间范围内的位置;
根据所述每个点云数据对应的采集时刻在所述第一时间范围内的位置和所述位姿曲线,利用预设的第二公式确定所述每个点云数据对应的位姿信息;
所述第一公式包括:
所述第二公式包括:
其中,tj表示第j个点云数据对应的采集时刻,uj表示tj在所述第一时间范围内的位置,t1表示所述第一时间范围的起始时间,t2表示所述第一时间范围的结束时间,C(uj)表示第j个点云数据对应的位姿信息,Ni,r(uj)表示所述B样条曲线的基函数对应uj的取值。
可选地,所述确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,包括:
将所述第一点云数据对应的位姿信息作为第一坐标系的原点,所述目标点云数据对应的位姿信息作为第二坐标系的原点;
获取所述第一坐标系与所述第二坐标系的转换矩阵;
将所述第一坐标系与所述第二坐标系的转换矩阵作为所述目标转换矩阵。
可选地,所述多个点云数据中每个点云数据都包括:多个位置信息;
所述根据所述目标转换矩阵修正所述目标点云数据,包括:
根据所述目标转换矩阵,利用预设的第三公式修正所述目标点云数据中的每个位置信息;
所述第三公式包括:
x'm=T*xm
其中,T表示所述目标转换矩阵,xm表示所述目标点云数据中的第m个位置信息,x'm表示xm经过修正后的位置信息。
根据本公开实施例的第二方面,本公开提供一种激光点云数据的修正装置,所述装置包括:
第一获取模块,用于获取待测设备在第一时间范围内的多个位姿信息,所述第一时间范围包含第二时间范围,目标帧中包括激光雷达在所述第二时间范围内采集的多个点云数据;
拟合模块,用于对所述多个位姿信息进行拟合,以获取所述第一时间范围内的位姿曲线;
第二获取模块,用于根据所述多个点云数据中每个点云数据对应的采集时刻,获取所述位姿曲线上,所述每个点云数据对应的位姿信息;
确定模块,用于确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,所述第一点云数据为所述目标帧中的所述激光雷达在第一个采集时刻采集的点云数据,所述目标点云数据为所述多个点云数据中除第一点云数据之外的任一个点云数据;
修正模块,用于根据所述目标转换矩阵修正所述目标点云数据。
可选地,所述多个位姿信息中的每个位姿信息都包括:位置信息和角度信息;所述位姿曲线包括:位置曲线和角度曲线;
所述拟合模块包括:
第一拟合子模块,用于对所述多个位姿信息中的每个位姿信息的位置信息进行拟合,以获取所述第一时间范围内的所述位置曲线;
第二拟合子模块,用于对所述多个位姿信息中的每个位姿信息的角度信息进行拟合,以获取所述第一时间范围内的所述角度曲线。
可选地,所述拟合模块用于:
将所述多个位姿信息作为多个控制点,利用预设的B样条曲线获取所述位姿曲线;
所述B样条曲线包括:
其中,u∈[0,1],表示所述第一时间范围归一化后的取值,C(u)表示所述位姿曲线,Pi表示n个所述位姿信息中第i个位姿信息,r表示所述B样条曲线的次数,Ni,r(u)表示所述B样条曲线的基函数。
可选地,所述第二获取模块包括:
第一获取子模块,用于利用预设的第一公式确定所述每个点云数据对应的采集时刻在所述第一时间范围内的位置;
第二获取子模块,用于根据所述每个点云数据对应的采集时刻在所述第一时间范围内的位置和所述位姿曲线,利用预设的第二公式确定所述每个点云数据对应的位姿信息;
所述第一公式包括:
所述第二公式包括:
其中,tj表示第j个点云数据对应的采集时刻,uj表示tj在所述第一时间范围内的位置,t1表示所述第一时间范围的起始时间,t2表示所述第一时间范围的结束时间,C(uj)表示第j个点云数据对应的位姿信息,Ni,r(uj)表示所述B样条曲线的基函数对应uj的取值。
可选地,所述确定模块包括:
第一确定子模块,用于将所述第一点云数据对应的位姿信息作为第一坐标系的原点,所述目标点云数据对应的位姿信息作为第二坐标系的原点;
转换子模块,用于获取所述第一坐标系与所述第二坐标系的转换矩阵;
第二确定子模块,用于将所述第一坐标系与所述第二坐标系的转换矩阵作为所述目标转换矩阵。
可选地,所述多个点云数据中每个点云数据都包括:多个位置信息;
所述修正模块用于:
根据所述目标转换矩阵,利用预设的第三公式修正所述目标点云数据中的每个位置信息;
所述第三公式包括:
x'm=T*xm
其中,T表示所述目标转换矩阵,xm表示所述目标点云数据中的第m个位置信息,x'm表示xm经过修正后的位置信息。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面提供的激光点云数据的修正方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的激光点云数据的修正方法的步骤。
通过上述技术方案,本公开中要对目标帧中的多个点云数据进行修正,首先获取待测设备在第一时间范围内的多个位姿信息,第一时间范围包含了多个点云数据对应的第二时间范围,再对多个位姿信息进行拟合,以获取第一时间范围内的位姿曲线,之后根据多个点云数据中每个点云数据对应的采集时刻,获取位姿曲线上,每个点云数据对应的位姿信息,然后确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据,最后根据目标转换矩阵修正目标点云数据。本公开根据每个点云数据对应的位姿信息,对点云数据进行校正,从而提高点云数据的准确度,以保证激光雷达建图和定位的精度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种激光点云数据的修正方法的流程图。
图2是图1所示实施例示出的一种步骤102的流程图。
图3是图1所示实施例示出的一种步骤103的流程图。
图4是图1所示实施例示出的一种步骤104的流程图。
图5是根据一示例性实施例示出的一种激光点云数据的修正装置的框图。
图6是图5所示实施例示出的一种拟合模块的框图。
图7是图5所示实施例示出的一种第二获取模块的框图。
图8是图5所示实施例示出的一种确定模块的框图。
图9是根据一示例性实施例提供的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开提供的激光点云数据的修正方法、装置、存储介质和电子设备之前,首先对本公开各个实施例所涉及应用场景进行介绍。该应用场景为设置有激光雷达的待测设备,激光雷达能够按照一定的采集频率发射激光束,以获取点云数据,待测设备可以是机器人、车辆等设备。
图1是根据一示例性实施例示出的一种激光点云数据的修正方法的流程图。如图1所示,该方法包括以下步骤:
在步骤101中,获取待测设备在第一时间范围内的多个位姿信息,第一时间范围包含第二时间范围,目标帧中包括激光雷达在第二时间范围内采集的多个点云数据。
示例的,激光雷达在测量过程中获取了多个帧,每个帧中都包括了激光雷达在第二时间范围内采集的多个点云数据。以要对目标帧中的多个点云数据进行修正为例,目标帧为多个帧中的任一帧。首先获取待测设备在第一时间范围内的多个位姿信息,其中,多个位姿信息可以是通过待测设备上设置的里程计、IMU(英文:Inertial Measurement Unit,中文:惯性测量单元)等传感器采集的位姿信息。位姿信息的采集频率(例如:100Hz)通常会远大于激光雷达的采集频率(例如:10Hz),因此位姿信息的数量要远大于目标帧中点云数据的数量。其中,位姿信息可以包括位置信息和姿态信息,位置信息可以是三维坐标中的三个坐标值,姿态信息可以包括与三维坐标中三个坐标轴夹角的角度。待测设备例如可以是机器人和自动驾驶车辆等使用激光雷达进行环境感知、定位的设备。第一时间范围是待测设备采集多个位姿信息所用的时间范围,第一时间范围包含第二时间范围。目标帧是待测设备采集到的点云数据中的一帧点云数据,第二时间范围是目标帧采集多个点云数据所用的时间范围,例如,目标帧的点云数据的开始时刻为ts,结束时刻为te,第二时间范围为ts至te之间的时间范围,目标帧中包括激光雷达在ts至te之间采集的多个点云数据。那么第一时间范围可以是任一包括了ts至te的时间范围,例如第一时间范围为to至tp,那么to是在ts之前的时刻,tp是在te之后的时刻。
在步骤102中,对多个位姿信息进行拟合,以获取第一时间范围内的位姿曲线。
在步骤103中,根据多个点云数据中每个点云数据对应的采集时刻,获取位姿曲线上,每个点云数据对应的位姿信息。
示例的,获取待测设备在第一时间范围内的多个位姿信息后,可以将多个位姿信息按时间顺序储存在队列中,若想获取任意时刻的位姿信息,可以通过对多个位姿信息进行插值计算来获取(可以理解为利用与某一时刻较近的位姿信息来确定该时刻的位姿信息),因此可以通过对待测设备获取的多个位姿信息进行拟合来获取第一时间范围内的位姿曲线,以得到位姿曲线上任意时刻的位姿信息。获取到位姿曲线后,根据多个点云数据中每个点云数据对应的采集时刻获取位姿曲线上,每个点云数据对应的位姿信息。例如,待测设备将获取的待测设备在第一时间范围内的多个位姿信息按时间顺序储存在队列Q{P1,P2…Pi,…Pn}中,Pi为第i个位姿信息,将队列Q中的位姿信息进行拟合得到位姿曲线,通过在位姿曲线上寻找多个点云数据中每个点云数据对应的采集时刻来获取每个点云数据对应的位姿信息。
在步骤104中,确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据。
在步骤105中,根据目标转换矩阵修正目标点云数据。
示例的,在求得位姿曲线之后,获取第一点云数据对应在位姿曲线上的位姿信息和目标点云数据对应在位姿曲线上的位姿信息,其中,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据,对目标帧中的多个点云数据进行修正,可以理解为将多个点云数据中除第一点云数据之外的任一个点云数据,转换到以第一点云数据所对应的坐标系中,使得修正后的多个点云数据能够在同一个坐标系中,从而提高点云数据的准确度。根据第一点云数据对应的位姿信息与目标点云数据对应的位姿信息,确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,即确定多个点云数据中除第一点云数据之外的任一个点云数据对应的位姿信息相对于第一点云数据对应的位姿信息的目标转换矩阵,若目标帧中包括M个点云数据,那么目标转换矩阵的数量为M-1个。最后利用目标转换矩阵来修正目标点云数据,目标转换矩阵可以将目标点云数据对应的处于不同坐标系中的位姿信息转化为第一点云数据对应的坐标系中的位姿信息,将多个点云数据中处于不同坐标系中的位姿信息转化为同一坐标系中的位姿信息。
综上所述,本公开中要对目标帧中的多个点云数据进行修正,首先获取待测设备在第一时间范围内的多个位姿信息,第一时间范围包含了多个点云数据对应的第二时间范围,再对多个位姿信息进行拟合,以获取第一时间范围内的位姿曲线,之后根据多个点云数据中每个点云数据对应的采集时刻,获取位姿曲线上,每个点云数据对应的位姿信息,然后确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据,最后根据目标转换矩阵修正目标点云数据。本公开根据每个点云数据对应的位姿信息,对点云数据进行校正,从而提高点云数据的准确度,以保证激光雷达建图和定位的精度。
图2是图1所示实施例示出的一种步骤102的流程图。如图2所示,多个位姿信息中的每个位姿信息都包括:位置信息和角度信息。位姿曲线包括:位置曲线和角度曲线。
步骤102包括以下步骤:
在步骤1021中,对多个位姿信息中的每个位姿信息的位置信息进行拟合,以获取第一时间范围内的位置曲线。
在步骤1022中,对多个位姿信息中的每个位姿信息的角度信息进行拟合,以获取第一时间范围内的角度曲线。
示例的,多个位姿信息中的每个位姿信息都包括:位置信息和角度信息,位置信息可以是待测设备在地图中的坐标值(例如可以是三维坐标系中的x,y,z三个坐标值),角度信息可以是待测设备所处的角度(例如可以是待测设备与三维坐标系的三个坐标轴的夹角)。对多个位姿信息进行拟合可以分为对多个位姿信息中的每个位姿信息的位置信息进行拟合和对多个位姿信息中的每个位姿信息的角度信息进行拟合,以分别获取第一时间范围内的位置曲线和角度曲线。例如,位姿信息包括位置信息(x,y,z)和角度信息(α,β,γ),x,y,z为三维坐标系中的X、Y、Z三个坐标轴对应的三个坐标值,α,β,γ为待测设备与三维坐标系中的X、Y、Z三个坐标轴的夹角。对多个位姿信息中的每个位姿信息的位置信息进行拟合还可以分为分别对x,y,z三个坐标值进行拟合,分别获取x,y,z三个坐标值的位置曲线,同样的,对多个位姿信息中的每个位姿信息的角度信息进行拟合也可以分为分别对α,β,γ三个角度进行拟合,分别获取α,β,γ三个角度的角度曲线。
可选地,步骤102的实现方式可以是:
将多个位姿信息作为多个控制点,利用预设的B样条曲线获取位姿曲线。
B样条曲线包括:
其中,u∈[0,1],表示第一时间范围归一化后的取值,C(u)表示位姿曲线,Pi表示n个位姿信息中第i个位姿信息,r表示B样条曲线的次数,Ni,r(u)表示B样条曲线的基函数。
示例的,对多个位姿信息进行拟合的方式可以将多个位姿信息作为多个控制点,利用预设的B样条曲线获取位姿曲线。预设的B样条曲线的可以是二次B样条曲线,也可以是三次B样条曲线。B样条曲线的基函数Ni,r(u)为:
其中,ui表示第i个控制点(位姿信息)对应的在第一时间范围内的位置,ui+1表示第i+1个控制点(位姿信息)对应的在第一时间范围内的位置,ui+r表示第i+r个控制点(位姿信息)对应的在第一时间范围内的位置,ui+r+1表示第i+r+1个控制点(位姿信息)对应的在第一时间范围内的位置。
以采用三次B样条曲线对多个位姿信息进行拟合为例,样条曲线的基函数为:
三次B样条曲线为:
图3是图1所示实施例示出的一种步骤103的流程图。如图3所示,步骤103包括以下步骤:
在步骤1031中,利用预设的第一公式确定每个点云数据对应的采集时刻在第一时间范围内的位置。
在步骤1032中,根据每个点云数据对应的采集时刻在第一时间范围内的位置和位姿曲线,利用预设的第二公式确定每个点云数据对应的位姿信息。
第一公式包括:
第二公式包括:
其中,tj表示第j个点云数据对应的采集时刻,uj表示tj在第一时间范围内的位置,t1表示第一时间范围的起始时间,t2表示第一时间范围的结束时间,C(uj)表示第j个点云数据对应的位姿信息,Ni,r(uj)表示B样条曲线的基函数对应uj的取值。
示例的,待测设备获取第一时间范围内的位姿曲线后,利用预设的第一公式确定每个点云数据对应的采集时刻在第一时间范围内的位置,通过每个点云数据对应的采集时刻在第一时间范围内的位置可以确定每个点云数据在位姿曲线上的位置,以此来确定对应的位姿信息。第一公式包括:
当t
j=t
1时u
j=0,当t
j=t
2时u
j=1。待测设备根据每个点云数据对应的采集时刻在第一时间范围内的位置和位姿曲线,利用预设的第二公式确定每个点云数据对应的位姿信息。以采用三次B样条曲线对多个位姿信息进行拟合为例,第一时间范围的起始时间t
1为0,第一时间范围的结束时间t
2为10s,第j个点云数据对应的采集时刻t
j为1s,t
j在第一时间范围内的位置
第j个点云数据对应的位姿信息为
图4是图1所示实施例示出的一种步骤104的流程图。如图4所示,步骤104包括以下步骤:
在步骤1041中,将第一点云数据对应的位姿信息作为第一坐标系的原点,目标点云数据对应的位姿信息作为第二坐标系的原点。
在步骤1042中,获取第一坐标系与第二坐标系的转换矩阵。
在步骤1043中,将第一坐标系与第二坐标系的转换矩阵作为目标转换矩阵。
示例的,确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,首先可以将第一点云数据对应的位姿信息作为第一坐标系的原点,将目标点云数据对应的位姿信息作为第二坐标系的原点,即建立以第一点云数据对应的位姿信息为原点的坐标系,和以目标点云数据对应的位姿信息为原点的坐标系,这两个坐标系之间的转换矩阵即为目标转换矩阵。目标转换矩阵可以是一个4*4的矩阵,目标转换矩阵的左上角3*3的矩阵能够表示第一坐标系与第二坐标系之间的角度关系,目标转换矩阵中最后一列数据中的前3个数据能够表示第一坐标系与第二坐标系之间的坐标关系,目标转换矩阵中最后一行为{0,0,0,1}。以第一点云数据对应的位姿信息为{x
o,y
o,z
o,α
o,β
o,γ
o}={0,0,0,0,0,0},目标点云数据对应的位姿信息为{x
j,y
j,z
j,α
j,β
j,γ
j}={0.2,0.1,0,0,0,0.1}为例,其中,{x
o,y
o,z
o}和{x
j,y
j,z
j}为位姿信息中的位置信息,{α
o,β
o,γ
o}和{α
j,β
j,γ
j}为位姿信息中的角度信息,则可以求得目标转换矩阵为:
其中,目标转换矩阵左上角的3*3矩阵为两个坐标系各坐标轴之间的角度转换值,右上角3*1矩阵为两个坐标系之间的坐标转换值。
可选地,多个点云数据中每个点云数据都包括:多个位置信息。
步骤105的实现方式可以是:
根据目标转换矩阵,利用预设的第三公式修正目标点云数据中的每个位置信息。
第三公式包括:
x'm=T*xm
其中,T表示目标转换矩阵,xm表示目标点云数据中的第m个位置信息,x'm表示xm经过修正后的位置信息。
示例的,多个点云数据中每个点云数据都可以包括:多个位置信息。位置信息例如可以包括激光雷达和发出的激光束的反射点之间的距离和方位,激光雷达和反射点之间的距离可以用三维坐标系中的x,y,z三个坐标值来表示,激光雷达和反射点之间的方位可以用角度来表示。待测设备根据目标转换矩阵,利用预设的第三公式修正目标点云数据中的每个位置信息。例如,多个点云数据为{X
1,X
2,X
3…X
j…},X
j为目标点云数据,X
j中包括{x
1,x
2,x
3…x
m…},x
m为X
j中的第m个位置信息,以x
m为{0.5,0.2,0}
T,目标转换矩阵T为:
来举例,经过修正后的位置信息
那么可以得到修正后的位置信息x'
m为{0.498,0.799,0}
T。
综上所述,本公开中要对目标帧中的多个点云数据进行修正,首先获取待测设备在第一时间范围内的多个位姿信息,第一时间范围包含了多个点云数据对应的第二时间范围,再对多个位姿信息进行拟合,以获取第一时间范围内的位姿曲线,之后根据多个点云数据中每个点云数据对应的采集时刻,获取位姿曲线上,每个点云数据对应的位姿信息,然后确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据,最后根据目标转换矩阵修正目标点云数据。本公开根据每个点云数据对应的位姿信息,对点云数据进行校正,从而提高点云数据的准确度,以保证激光雷达建图和定位的精度。
图5是根据一示例性实施例示出的一种激光点云数据的修正装置的框图。如图5所示,该装置200包括:
第一获取模块201,用于获取待测设备在第一时间范围内的多个位姿信息,第一时间范围包含第二时间范围,目标帧中包括激光雷达在第二时间范围内采集的多个点云数据。
拟合模块202,用于对多个位姿信息进行拟合,以获取第一时间范围内的位姿曲线。
第二获取模块203,用于根据多个点云数据中每个点云数据对应的采集时刻,获取位姿曲线上,每个点云数据对应的位姿信息。
确定模块204,用于确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据。
修正模块205,用于根据目标转换矩阵修正目标点云数据。
图6是图5所示实施例示出的一种拟合模块的框图。如图6所示,多个位姿信息中的每个位姿信息都包括:位置信息和角度信息。位姿曲线包括:位置曲线和角度曲线。
拟合模块202包括:
第一拟合子模块2021,用于对多个位姿信息中的每个位姿信息的位置信息进行拟合,以获取第一时间范围内的位置曲线。
第二拟合子模块2022,用于对多个位姿信息中的每个位姿信息的角度信息进行拟合,以获取第一时间范围内的角度曲线。
可选地,拟合模块202用于:
将多个位姿信息作为多个控制点,利用预设的B样条曲线获取位姿曲线。
B样条曲线包括:
其中,u∈[0,1],表示第一时间范围归一化后的取值,C(u)表示位姿曲线,Pi表示n个位姿信息中第i个位姿信息,r表示B样条曲线的次数,Ni,r(u)表示B样条曲线的基函数。
图7是图5所示实施例示出的一种第二获取模块的框图。如图7所示,第二获取模块203包括:
第一获取子模块2031,用于利用预设的第一公式确定每个点云数据对应的采集时刻在第一时间范围内的位置。
第二获取子模块2032,用于根据每个点云数据对应的采集时刻在第一时间范围内的位置和位姿曲线,利用预设的第二公式确定每个点云数据对应的位姿信息。
第一公式包括:
第二公式包括:
其中,tj表示第j个点云数据对应的采集时刻,uj表示tj在第一时间范围内的位置,t1表示第一时间范围的起始时间,t2表示第一时间范围的结束时间,C(uj)表示第j个点云数据对应的位姿信息,Ni,r(uj)表示B样条曲线的基函数对应uj的取值。
图8是图5所示实施例示出的一种确定模块的框图。如图8所示,确定模块204包括:
第一确定子模块2041,用于将第一点云数据对应的位姿信息作为第一坐标系的原点,目标点云数据对应的位姿信息作为第二坐标系的原点。
转换子模块2042,用于获取第一坐标系与第二坐标系的转换矩阵。
第二确定子模块2043,用于将第一坐标系与第二坐标系的转换矩阵作为目标转换矩阵。
可选地,多个点云数据中每个点云数据都包括:多个位置信息。
修正模块205用于:
根据目标转换矩阵,利用预设的第三公式修正目标点云数据中的每个位置信息。
第三公式包括:
x'm=T*xm
其中,T表示目标转换矩阵,xm表示目标点云数据中的第m个位置信息,x'm表示xm经过修正后的位置信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开中要对目标帧中的多个点云数据进行修正,首先获取待测设备在第一时间范围内的多个位姿信息,第一时间范围包含了多个点云数据对应的第二时间范围,再对多个位姿信息进行拟合,以获取第一时间范围内的位姿曲线,之后根据多个点云数据中每个点云数据对应的采集时刻,获取位姿曲线上,每个点云数据对应的位姿信息,然后确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据,最后根据目标转换矩阵修正目标点云数据。本公开根据每个点云数据对应的位姿信息,对点云数据进行校正,从而提高点云数据的准确度,以保证激光雷达建图和定位的精度。
图9是根据一示例性实施例示出的一种电子设备300的框图。如图9所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(I/O)接口304,以及通信组件305中的一者或多者。
其中,处理器301用于控制该电子设备300的整体操作,以完成上述的激光点云数据的修正方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的激光点云数据的修正方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的激光点云数据的修正方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的激光点云数据的修正方法。
综上所述,本公开中要对目标帧中的多个点云数据进行修正,首先获取待测设备在第一时间范围内的多个位姿信息,第一时间范围包含了多个点云数据对应的第二时间范围,再对多个位姿信息进行拟合,以获取第一时间范围内的位姿曲线,之后根据多个点云数据中每个点云数据对应的采集时刻,获取位姿曲线上,每个点云数据对应的位姿信息,然后确定第一点云数据对应的位姿信息与目标点云数据对应的位姿信息之间的目标转换矩阵,第一点云数据为目标帧中的激光雷达在第一个采集时刻采集的点云数据,目标点云数据为多个点云数据中除第一点云数据之外的任一个点云数据,最后根据目标转换矩阵修正目标点云数据。本公开根据每个点云数据对应的位姿信息,对点云数据进行校正,从而提高点云数据的准确度,以保证激光雷达建图和定位的精度。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。