点云的运动补偿方法、装置和系统与流程

文档序号:24891585发布日期:2021-04-30 13:18阅读:214来源:国知局
点云的运动补偿方法、装置和系统与流程

本申请涉及自动驾驶领域,尤其涉及一种点云的运动补偿方法、装置和系统。



背景技术:

激光雷达被广泛应用于自动驾驶领域中,激光雷达通过激光扫描,能够快速地建立车辆周围的三维模型,为高精度地图制作、障碍物识别、车辆精确定位提供基础数据,从而进行车辆行驶环境的感知。在激光雷达配置的承载平台处于运动状态时,只能利用采集到激光点云建立的周围环境的三维模型是变形的,不能真实反映某一个时刻激光雷达周围的环境。



技术实现要素:

本申请实施例所要解决的技术问题在于,提供一种激光点云的运动补偿方法、装置和系统,实现基于激光雷达的运动参数对点云的位姿进行补偿,提高运动补偿的准确性。

第一方面,本申请提出了一种点云的运动补偿方法,包括:获取测量单元测量的多个运动参数数据;其中,所述运动参数数据包括时间戳和运动参数;

获取激光雷达生成的点云数据帧;其中,所述点云数据帧包括多个点云数据,每个点云数据包括时间戳和空间位置坐标;

根据点云数据的时间戳确定第一运动参数和第二运动参数;其中,所述第一运动参数为在所述点云数据的时间戳之前且距离所述点云数据的时间戳最近的运动参数,所述第二运动参数为在所述点云数据的时间戳之后且距离所述点云数据的时间戳最近的运动参数;

根据所述第一运动参数和所述第二运动参数计算所述点云数据的运动参数;

根据所述点云数据的运动参数计算所述点云数据的位姿补偿量;

根据所述位姿补偿量对所述点云数据进行位姿补偿。

可选的,所述运动参数为角速度或线速度,

所述获取测量单元测量的多个运动参数数据,包括:

获取测量单元以第一周期测量的多个运动参数数据;

其中,所述获取激光雷达生成的点云数据帧,包括:

获取激光雷达以第二周期生成的点云数据帧;其中,所述第二周期大于所述第一周期,且所述第二周期为所述第一周期的整数倍。

可选的,所述运动参数为角速度或线速度;

所述获取激光雷达生成的点云数据帧之前,还包括:

根据所述多个运动参数数据计算当前运动参数,以及确定当前运动参数大于运动参数阈值;或

根据所述多个运动参数数据计算当前运动参数,在所述当前运动参数小于或等于运动参数阈值时,不进行位姿补偿。

可选的,所述根据点云数据的时间戳确定第一运动参数和第二运动参数,包括:

根据所述第一周期将所述点云数据帧划分为多个点云数据区间;

确定所述点云数据所在的目标点云数据区间;

根据所述目标点云数据区间的起始时间戳确定第一运动参数,以及根据所述目标点云数据区间的结束时间戳确定第二运动参数。

可选的,所述运动参数包括角速度和线速度;

所述获取测量单元测量的多个运动参数数据,包括:

获取测量单元以第一周期测量的多个角速度数据;

获取所述测量单元以第三周期测量的多个线速度数据;

其中,获取激光雷达生成的点云数据帧,包括:

获取激光雷达以第二周期生成的点云数据帧;其中,所述第二周期大于所述第一周期和所述第三周期,且所述第二周期为所述第一周期和所述第三周期的整数倍。

可选的,所述获取激光雷达生成的点云数据帧之前,还包括:

根据所述多个角速度数据计算当前角速度,确定当前角速度大于角速度阈值;

根据所述多个线速度数据计算当前线速度,确定当前线速度大于线速度阈值。

可选的,在所述当前角速度小于或等于角速度阈值,且所述当前线速度大于线速度阈值时,所述位姿补偿量为线速度位姿补偿量;或

在所述当前角速度大于角速度阈值,且当前线速度小于或等于线速度阈值时,所述位姿补偿量为角速度位姿补偿量;或

在所述当前角速度小于或等于角速度阈值,且当前线速度小于或等于线速度阈值时,不进行位姿补偿。

可选的,所述点云数据帧由多个点云数据区间组成,各个点云数据区间由多个列点云组成,同一列点云中的点云数据具有相同的时间戳;

所述根据所述位姿补偿量对所述点云数据进行位姿补偿,包括:

根据所述点云数据区间的运动参数计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量;

确定待校正列点云;

根据所述待校正列点云与基准列点云之间的列距离,以及根据所述点云数据区间的列点云数量计算所述待校正列点云的比例系数;其中,所述基准列点云为所述第一端点列点云或第二端点列点云;

根据所述待校正列点云的比例系数和所述基准位姿补偿量对所述待校正列点云进行位姿校正。

可选的,所述点云数据帧中各个点云数据区间采用并行的方式进行位姿校正,以及所述点云数据区间内的各个列点云采用并行方式进行校正。

可选的,所述运动参数为角速度和线速度;

所述根据所述点云数据区间的角速度和所述点云数据区间的线速度计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量,包括:

使用如下公式计算所述基准位姿补偿量:

δp=v×δt;

r1.inverse()*r2=δr;r1.inverse()*(t2-t1)=δp;

t12=exp(δsm^);

其中,^表示对矩阵进行反对称操作,ω表示所述点云数据区间对应的角速度,v表示所述点云数据区间对应的线速度,t1表示所述点云数据区间的起始时间戳,t2表示所述点云数据区间的结束时间戳,δt表示所述点云数据区间的时长,δsm表示相对运动对应的流空间代数;δp表示所述点云数据区间起始时间戳到结束时间戳之间的位移,inverse()表示矩阵的求逆操作,δsm^为δsm的反对称矩阵,t1表示第一端点列矩阵的位姿,t2表示第二端点列矩阵的位姿,t12表示所述基准位姿补偿量,所述基准列点云为所述第二端点列点云。

可选的,所述根据所述第一运动参数和所述第二运动参数计算所述点云数据的运动参数,包括:

将所述第一角速度和所述第二角速度取平均值作为所述点云数据的角速度。

可选的,所述获取激光雷达生成的点云数据帧之前,还包括:

确定所述点云数据帧为未压缩状态。

第二方面,本申请提出了一种点云的运动补偿装置,包括:

获取单元,用于获取测量单元测量的多个运动参数数据;其中,所述运动参数数据包括时间戳和运动参数;

所述获取单元,还用于获取激光雷达生成的点云数据帧;其中,所述点云数据帧包括多个点云数据,每个点云数据包括时间戳和空间位置坐标;

确定单元,用于根据所述点云数据的时间戳确定第一角速度和第二角速度;其中,所述第一角速度为在所述点云数据的时间戳之前且距离所述点云数据的时间戳最近的角速度,所述第二角速度为在所述点云数据的时间戳之后且距离所述点云数据的时间戳最近的角速度;

计算单元,用于根据所述第一角速度和所述第二角速度计算所述点云数据的角速度;以及根据所述点云数据的角速度计算所述点云数据的位姿补偿量;

补偿单元,用于根据所述位姿补偿量对所述点云数据进行位姿补偿。

第三方面,本申请提出了一种计算机程序产品,所述计算机程序产品包括指令,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1至12任意一项所述的方法。

第四方面,本申请提出了一种点云的运动补偿装置,包括处理器和存储器,存储器用于存储计算机程序或指令,所述处理器用于执行所述存储器中的计算机程序或指令实现如权利要求1至12任意一项所述的方法。

第五方面,本申请提出了一种运动补偿系统,包括:如权利要求13或15所述的运动补偿装置、激光雷达、测量单元和承载平台;其中,所述承载平台用于承载所述激光雷达、所述测量单元和所述运动补偿装置,所述承载平台为无人机、车辆或机械臂。

可选的,所述测量单元设置于所述激光雷达的内部,或所述测量单元独立设置于所述激光雷达的外部。

在本申请实施例中,根据点云数据的时间戳确定第一运动参数和第二运动参数,第一运动参数为在点云数据的时间戳之前且距离所述点云数据的时间戳最近的运动参数,第二运动参数为在点云数据的时间戳之后且距离点云数据的时间戳最近的运动参数,根据第一运动参数和所述第二运动参数计算点云数据的运动参数,根据点云数据的运动参数计算点云数据的位姿补偿量,实现在点云数据帧中多次对点云数据的位姿进行校正,解决相关技术中在点云数据帧内,因运动参数发生突变导致点云数据的发生失真的问题,从而提高点云数据的测量精度,另外针对每个点云数据来说,基于该点云数据的时间戳确定之前和之后最近的两个运动参数计算其运动参数,避免在每个点云数据的时间戳测量运动参数,从而可以减少运动参数测量的次数,进而可以降低位姿补偿的运算量。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

图1a是本申请实施例提供的运动补偿系统的架构示意图;

图1b是本申请实施例提供的运动补偿系统的另一架构示意图;

图1c是本申请实施例提供的运动补偿系统的另一架构示意图;

图2a是本申请实施例提供的一种点云的运动补偿方法的流程示意图;

图2b是本申请实施例提供的一种点云的运动补偿方法的另一流程示意图;

图2c是本申请实施例提供的一种点云的运动补偿方法的另一流程示意图;

图3是本申请实施例提供的一种点云的运动补偿方法的另一流程示意图;

图4是本实施例提供的运动补偿的原理示意图;

图5是本实施例提供的运动补偿的另一原理示意图;

图6是本实施例提供的运动补偿的另一原理示意图;

图7是本实施例提供的运动补偿的另一原理示意图;

图8是本申请实施例提供的一种点云的运动补偿装置的结构示意图;

图9是本申请实施例提供的一种点云的运动补偿装置的另一结构示意图。

具体实施方式

为使得本申请实施例的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

参见图1a~图1c,为本申请实施例提供的点云的运动补偿系统的结构示意图,运动补偿系统包括:激光雷达10、测量单元12、运动补偿装置13和承载平台11,测量单元12可以为惯性测量单元。承载平台11起承载作用和带动激光雷达进行运动,因此激光雷达10会产生相应的线速度和角速度。激光雷达10、测量单元12和运动补偿装置13设置于承载平台11上。运动补偿装置13和激光雷达10之间进行通信,且运动补偿装置13和测量单元12之间进行通信。承载平台11用于承载激光雷达10,承载平台11可以是车辆、无人机或其他装置,本申请不作限制。

其中,所述激光雷达10,可以为机械式激光雷达、固态激光雷达等,本申请不对激光雷达的类型进行限制。

其中,激光雷达10用于发射探测激光信号,探测激光信号遇到障碍物后反射生成回波激光信号,激光雷达10根据回波激光信号生成点云数据帧,点云数据帧包括多个点云数据,每个点云数据包括空间位置坐标、时间戳和回波强度。测量单元12用于周期性的测量激光雷达的运动状态数据,例如:测量单元12测量激光雷达10的角速度数据、线速度数据和加速度数据等,测量单元12测量的运动状态数据中还包括时间戳。运动补偿装置13用于根据测量单元12测量的运动状态参数对激光雷达10生成的点云数据帧进行运动补偿,以降低点云数据因运动产生的位姿误差。

其中,测量单元12可以设置在激光雷达10的内部(图1c所示),与激光雷达10合为一体,以增强设备的紧凑型;或测量单元12独立设置于激光雷达10的外部,以提高激光雷达的散热效率。

请参见图2a,图2a是本申请实施例提供的一种点云的运动补偿方法的流程示意图,该方法包括但不限于如下步骤:

s201、获取测量单元测量的多个运动参数数据。

其中,运动参数表示激光雷达的运动属性,运动参数包括角速度、线速度、线加速度和角加速度中的一种或多种。角速度用于物体绕圆心运动的快慢,质点做圆周运动,在δt时间内转过的角为δθ,δθ与δt的比值即为角速度。线速度表示是质点作曲线运动时所具有的即时速度。线加速度是描述刚体线速度的大小和方向对时间变化率的物理量,单位是米二次方每秒;相关概念有平均线加速度和瞬时线加速度:平均线加速度是指转动刚体从某一瞬时开始的线速度变化与相应时间间隔的比值称为平均线加速度;瞬时线加速度是指当物体发生加速的时间间隔趋近于0时的线加速度。角加速度表示单位时间内角速度的变化量叫作角加速度;设t1时刻刚体的角速度为ω1,经过△t时刻刚体的角速度变为ω2,则定轴转动的刚体在△t时间内的平均角加速度为β=(ω1-ω2)/δt。上述的任意一种运动参数均可以使用测量单元来测量,例如:测量单元是测量物体三轴姿态角或加速度的装置,测量单元一般包含三个单轴的加速度计和三个单轴的陀螺仪,加速度计用于测量物体的线加速度或线速度,陀螺仪用于测量物体的角速度或角加速度。在本实施例中,测量单元利用陀螺仪以第一周期的测量激光雷达运动参数和记录运动参数的时间戳,角速度可以使用弧度每秒或角度每秒来表示。运动补偿装置获取测量单元测量的多个运动参数数据,测量单元可以采用周期性的方式测量运动参数数据,也可以采用非周期性的方式测量运动参数数据。应理解,测量单元测量的运动参数可以是三个轴上的任意一个或多个轴上的运动参数,例如承载平台为车辆时,激光雷达设置于车辆,车辆主要沿路面行驶,车辆转弯带来的角速度变化也是基于水平面或其他平面(例如:垂直于水平面的平面)的,测量单元测量水平面上的运动参数。

在一个或多个实施例中,s201还包括:

根据采集到的多个运动参数数据确定激光雷达的当前运动参数,确定当前运动参数大于运动参数阈值。

其中,可以对采集到的多个运动参数取平均值得到激光雷达的当前运动参数,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,运动参数阈值可以根据实际需求而定,在激光雷达的当前运动参数较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,无需对点云数据帧进行位姿校正,本申请在激光雷达的当前运动参数大于运动参数阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

s202、获取激光雷达生成的点云数据帧。

其中,以机械式雷达为例,机械式激光雷达以机械旋转方式完成对周围环境的扫描,旋转一周的时间为点云数据帧的时长。一般来说,点云数据帧是周期性生成的,激光雷达的帧周期即为点云数据帧的时长;点云数据帧包括多个点云数据,每个点云数据包括空间位置坐标和时间戳,时间戳表示点云数据生成的时间,点云数据帧由多个列点云组成,基于激光雷达的扫描特性,位于同一列点云中的点云数据具有相同的时间戳,本实施例以列点云为最小粒度进行位姿补偿和校正时,避免分别对每个点云数据进行校正,从而达到降低校正的运算量。运动参数是周期性测量的情况下,点云数据帧的周期大于运动参数数据的测量周期,且点云数据帧的时长为运动参数的周期的整数倍,那么很容易理解,测量单元在一个点云数据帧内可以多次测量激光雷达的运动参数数据。例如:运动参数的周期为0.01s,即测量单元在1s内测量100次运动参数,点云数据帧的周期的长度为0.1s,那么测量单元在点云数据帧内进行10次运动参数数据的测量。另外,点云数据帧的时间边界和运动参数数据的测量时间是对齐的,即点云数据帧的起始时间或终止时间与某个运动参数数据的测量时间是重合的。

s203、根据点云数据的时间戳确定第一运动参数和第二运动参数。

其中,第一运动参数为在点云数据的时间戳之前且距离点云数据的时间戳最近的运动参数,第二运动参数为点云数据的时间戳之后且距离点云数据的时间戳最近的运动参数。点云数据为点云数据帧中的任意一个,点云数据具有时间戳,采集的多个运动参数数据各自也具有时间戳,根据点云数据的时间戳在采集到的多个运动参数数据中查询位于点云数据的时间戳之前且时间间隔最小的运动参数,该运动参数为第一运动参数;根据点云数据的时间戳在采集的多个运动参数数据中查询位于点云数据的时间戳之后且时间间隔最小的运动参数,该运动参数为第二运动参数。

s204、根据所述第一运动参数和所述第二运动参数计算点云数据的运动参数。

其中,计算点云数据的运动参数的方法可以是对第一运动参数和第二运动参数进行加权平均得到点云数据的运动参数,例如:取第一运动参数和第二运动参数的算术平均值、几何平均值或加权平均值作为点云数据的运动参数。

s205、根据点云数据的运动参数计算点云数据区间的位姿补偿量。

其中,该位姿补偿量为运动参数位姿补偿量,位姿补偿量包括旋转补偿量,点云数据区间包含多个列点云。可选的,运动补偿装置可以预存储或预配置一个基准列点云,例如:可以将多个列点云中的首个列点云或最后一个列点云作为基准列点云,其他列点云中待校正列点云,运动补偿装置基于点云数据区间的运动参数和待校正点云在点云数据区间中的位置估计待校正点云的位姿,然后计算待校正列点云和基准列点云之间的位姿补偿量,各个待校正列点云具有不同的位姿补偿量。

s206、根据点云数据区间的位姿补偿量对点云数据进行位姿补偿。

其中,根据s205中计算得到的位姿补偿量对点云数据区间进行旋转补偿和/或位移补偿,点云数据帧中包含多个点云数据,各个点云数据的位姿补偿过程相同,均可以参照s201~s206的描述,此处不再赘述。

在一个或多个实施例中,获取测量单元测量的多个运动参数数据,包括:

获取测量单元以第一周期测量的多个运动参数数据;

其中,所述获取激光雷达生成的点云数据帧,包括:

获取激光雷达以第二周期生成的点云数据帧,第二周期大于第一周期,且第二周期是第一周期的整数倍。

例如:激光雷达以10hz的频率获取点云数据帧,以100hz的频率获取多个运动参数数据,点云数据帧的第二周期是运动参数数据的第一周期的10倍,那么1个点云数据帧内存在10个运动参数数据。

在一个或多个实施例中,所述获取激光雷达生成的点云数据帧之前,还包括:

根据运动参数数据计算当前运动参数,判断当前运动参数是否大于运动参数阈值,若为是,则执行所述获取激光雷达生成的点云数据帧的步骤;或若为否,则不执行位姿补偿。

其中,可以对采集到的多个运动参数取平均值得到激光雷达的当前运动参数,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,运动参数阈值可以根据实际需求而定,在激光雷达的当前运动参数较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,无需对点云数据帧进行位姿校正,本申请在激光雷达的当前运动参数大于运动参数阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

在一个或多个实施例中,根据点云数据的时间戳确定第一运动参数和第二运动参数,包括:

根据第一周期将点云数据帧划分为多个点云数据区间;

确定点云数据所在的目标点云数据区间;

根据所述目标点云数据区间的起始时间戳确定第一运动参数,以及根据所述目标点云数据区间的结束时间戳确定第二运动参数。

例如:点云数据帧的周期是运动参数数据的10倍,根据运动参数数据的周期将点云数据帧划分为10个点云数据区间:点云数据区间1~点云数据区间10,根据点云数据的时间戳在上述10个点云数据区间中确定目标点云数据区间,假设目标点云数据区间为点云数据区间1,点云数据区间1的起始时间戳对应第一运动参数(运动参数1),点云数据区间1的结束时间戳对应第二运动参数(运动参数2)。

在本实施例中,利用运动参数的采集周期将点云数据帧划分为多个点云数据区间,分别对各个点云数据区间内的点云数据进行运动补偿,解决了相关技术中对点云数据帧整体进行运动补偿带来点云数据帧内的运动参数发生突变造成的补偿不准确的问题,因此可以提高运动补偿的精度;另外,通过各个点云数据帧的起始时间戳对齐的运动参数和结束时间戳对齐的运动参数计算其实际的运动参数,因此可以在保证准确性的情况降低运算开销以及减小计算点云数据的运动参数的时间开销,提高运动补偿的效率。

在一个或多个实施例中,点云数据帧由多个点云数据区间组成,各个点云数据区间由多个列点云组成,同一列点云中的点云数据具有相同的时间戳;

所述根据所述位姿补偿量对所述点云数据进行位姿补偿,包括:

根据所述点云数据区间的运动参数计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量;

确定待校正列点云;

根据所述待校正列点云与基准列点云之间的列距离,以及根据所述点云数据区间的列点云数量计算所述待校正列点云的比例系数;其中,所述基准列点云为所述第一端点列点云或第二端点列点云;

根据所述校正列点云的比例系数和所述基准位姿补偿量对所述待校正列点云进行位姿校正。

根据图2a的描述,根据点云数据的时间戳确定第一运动参数和第二运动参数,第一运动参数为在点云数据的时间戳之前且距离所述点云数据的时间戳最近的运动参数,第二运动参数为在点云数据的时间戳之后且距离点云数据的时间戳最近的运动参数,根据第一运动参数和所述第二运动参数计算点云数据的运动参数,根据点云数据的运动参数计算点云数据的位姿补偿量,实现在点云数据帧中多次对点云数据的位姿进行校正,这样可以基于每一点点云的时间戳找到离它最近的运动参数,从而计算出每一点点云的位姿补偿量,从而解决相关技术中基于点云数据帧的生成周期进行补偿带来的校正精度差以及以点云数据为粒度进行补偿带来的运算量大的问题。

请参见图2b,图2b是本申请实施例提供的一种点云的运动补偿方法的流程示意图,本实施例以运动参数为角速度为例对本申请的运动补偿方法进行说明,该方法包括但不限于如下步骤:

s301、获取测量单元测量的多个角速度数据。

其中,运动参数表示激光雷达的运动属性,运动参数包括角速度和/或线速度,相应的,运动参数数据为角速度数据,本实施例以角速度为例进行说明。测量单元是测量物体三轴姿态角或加速度的装置,测量单元一般包含三个单轴的加速度计和三个单轴的陀螺仪,加速度计用于测量物体加速度,陀螺仪用于测量物体的角速度。在本实施例中,测量单元利用陀螺仪以第一周期的测量激光雷达角速度和记录角速度的时间戳,角速度可以使用弧度每秒或角度每秒来表示。运动补偿装置获取测量单元测量的多个角速度数据,测量单元可以采用周期性的方式测量角速度数据,也可以采用非周期性的方式测量角速度数据。应理解,测量单元测量的角速度可以是三个轴上的任意一个或多个轴上的角速度,例如承载平台为车辆时,激光雷达设置于车辆,车辆主要沿路面行驶,车辆转弯带来的角速度变化也是基于水平面或其他平面(例如:垂直于水平面的平面)上的,测量单元测量水平面或其他平面(例如:垂直于水平面的平面)上的角速度。

在一个或多个实施例中,s301还包括:

根据采集到的多个角速度数据确定激光雷达的当前角速度,确定当前角速度大于角速度阈值。

其中,可以对采集到的多个角速度取平均值得到激光雷达的当前角速度,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,角速度阈值可以根据实际需求而定,在激光雷达的当前角速度较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,无需对点云数据帧进行位姿校正,本申请在激光雷达的当前角速度大于角速度阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

s302、获取激光雷达生成的点云数据帧。

其中,以机械式雷达为例,机械式激光雷达以机械旋转方式完成对周围环境的扫描,旋转一周的时间为点云数据帧的时长。一般来说,点云数据帧是周期性生成的,激光雷达的帧周期即为点云数据帧的时长。点云数据帧包括多个点云数据,每个点云数据包括空间位置坐标和时间戳,时间戳表示点云数据生成的时间,点云数据帧由多个列点云组成,基于激光雷达的扫描特性,位于同一列点云中的点云数据具有相同的时间戳,本实施例以列点云为最小粒度进行位姿补偿和校正时,避免分别对每个点云数据进行校正,从而达到降低校正的运算量。角速度是周期性测量的情况下,点云数据帧的周期大于角速度数据的测量周期,且点云数据帧的时长为角速度的周期的整数倍,那么很容易理解,测量单元在一个点云数据帧内可以多次测量激光雷达的角速度数据。例如:角速度的周期为0.01s,即测量单元在1s内测量100次角速度,点云数据帧的周期的长度为0.1s,那么测量单元在点云数据帧内10进行10次角速度数据的测量。另外,点云数据帧的时间边界和角速度数据的测量时间是对齐的,即点云数据帧的起始时间或终止时间与某个角速度数据的测量时间是重合的。

s303、根据点云数据的时间戳确定第一角速度和第二角速度。

其中,第一角速度为在点云数据的时间戳之前且距离点云数据的时间戳最近的角速度,第二角速度为点云数据的时间戳之后且距离点云数据的时间戳最近的角速度。点云数据为点云数据帧中的任意一个,点云数据具有时间戳,采集的多个角速度数据各自也具有时间戳,根据点云数据的时间戳在采集到的多个角速度数据中查询位于点云数据的时间戳之前且时间间隔最小的角速度,该角速度为第一角速度;根据点云数据的时间戳在采集的多个角速度数据中查询位于点云数据的时间戳之后且时间间隔最小的角速度,该角速度为第二角速度。

s304、根据所述第一角速度和所述第二角速度计算点云数据的角速度。

其中,计算点云数据的角速度的方法可以是对第一角速度和第二角速度进行加权平均得到点云数据的角速度,例如:取第一角速度和第二角速度的算术平均值、几何平均值或加权平均值作为点云数据的角速度。

s305、根据点云数据的角速度计算点云数据区间的位姿补偿量。

其中,该位姿补偿量为角速度位姿补偿量,位姿补偿量包括旋转补偿量,点云数据区间包含多个列点云。可选的,运动补偿装置可以预存储或预配置一个基准列点云,例如:可以将多个列点云中的首个列点云或最后一个列点云作为基准列点云,其他列点云中待校正列点云,运动补偿装置基于点云数据区间的角速度和待校正点云在点云数据区间中的位置估计待校正点云的位姿,然后计算待校正列点云和基准列点云之间的位姿补偿量,各个待校正列点云具有不同的位姿补偿量。

s306、根据点云数据区间的位姿补偿量对点云数据进行位姿补偿。

其中,根据s305中计算得到的位姿补偿量对点云数据区间进行旋转补偿和/或位移补偿,点云数据帧中包含多个点云数据,各个点云数据的位姿补偿过程相同,均可以参照s301~s306的描述,此处不再赘述。

在一个或多个实施例中,获取测量单元测量的多个角速度数据,包括:

获取测量单元以第一周期测量的多个角速度数据;

其中,所述获取激光雷达生成的点云数据帧,包括:

获取激光雷达以第二周期生成的点云数据帧,第二周期大于第一周期,且第二周期是第一周期的整数倍。

例如:激光雷达以10hz的频率获取点云数据帧,以100hz的频率获取多个角速度数据,点云数据帧的第二周期是角速度数据的第一周期的10倍,那么1个点云数据帧内存在10个角速度数据。

在一个或多个实施例中,所述获取激光雷达生成的点云数据帧之前,还包括:

根据角速度数据计算当前角速度,判断当前角速度是否大于角速度阈值,若为是,则执行所述获取激光雷达生成的点云数据帧的步骤;或若为否,则不执行位姿补偿。

其中,可以对采集到的多个角速度取平均值得到激光雷达的当前角速度,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,角速度阈值可以根据实际需求而定,在激光雷达的当前角速度较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,无需对点云数据帧进行位姿校正,本申请在激光雷达的当前角速度大于角速度阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

在一个或多个实施例中,根据点云数据的时间戳确定第一角速度和第二角速度,包括:

根据第一周期将点云数据帧划分为多个点云数据区间;

确定点云数据所在的目标点云数据区间;

根据所述目标点云数据区间的起始时间戳确定第一角速度,以及根据所述目标点云数据区间的结束时间戳确定第二角速度。

例如:参见图5所示,点云数据帧的周期是角速度数据的10倍,根据角速度数据的周期将点云数据帧划分为10个点云数据区间:点云数据区间1~点云数据区间10,根据点云数据的时间戳在上述10个点云数据区间中确定目标点云数据区间,假设目标点云数据区间为点云数据区间1,点云数据区间1的起始时间戳对应第一角速度(角速度1),点云数据区间1的结束时间戳对应第二角速度(角速度2)。

在本实施例中,利用角速度的采集周期将点云数据帧划分为多个点云数据区间,分别对各个点云数据区间内的点云数据进行运动补偿,解决了相关技术中对点云数据帧整体进行运动补偿带来点云数据帧内的角速度发生突变造成的补偿不准确的问题,因此可以提高运动补偿的精度;另外,通过各个点云数据帧的起始时间戳对齐的角速度和结束时间戳对齐的角速度计算其实际的角速度,因此可以在保证准确性的情况降低运算开销以及减小计算点云数据的角速度的时间开销,提高运动补偿的效率。

在一个或多个实施例中,点云数据帧由多个点云数据区间组成,各个点云数据区间由多个列点云组成,同一列点云中的点云数据具有相同的时间戳;

所述根据所述位姿补偿量对所述点云数据进行位姿补偿,包括:

根据所述点云数据区间的角速度计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量;

确定待校正列点云;

根据所述待校正列点云与基准列点云之间的列距离,以及根据所述点云数据区间的列点云数量计算所述待校正列点云的比例系数;其中,所述基准列点云为所述第一端点列点云或第二端点列点云;

根据所述校正列点云的比例系数和所述基准位姿补偿量对所述待校正列点云进行位姿校正。

根据图2b的描述,根据点云数据的时间戳确定第一角速度和第二角速度,第一角速度为在点云数据的时间戳之前且距离所述点云数据的时间戳最近的角速度,第二角速度为在点云数据的时间戳之后且距离点云数据的时间戳最近的角速度,根据第一角速度和所述第二角速度计算点云数据的角速度,根据点云数据的角速度计算点云数据的位姿补偿量,实现在点云数据帧中多次对点云数据的位姿进行校正,解决相关技术中基于点云数据帧的生成周期进行补偿带来的校正精度差以及以点云数据为粒度进行补偿带来的运算量大的问题。

参见图2c,为本申请实施例提供的一种点云的运动补偿方法的另一流程示意图,在本申请实施例中,所述运动补偿方法包括:

s401、获取测量单元测量的多个线速度数据。

其中,线速度数据包线速度和时间戳,线速度表示单位时间内的位移,时间戳表示测量线速度的时间,测量单元可以通过加速度计测量激光雷达的线速度,例如:激光雷达承载在车辆上时,线速度可以为车辆行驶方向上的线速度。测量单元可以根据预设的周期采集得到多个线速度数据,周期的大小可以根据实际需求而定,本申请不作限制。

在一个或多个实施例中,获取激光雷达生成的点云数据帧值之前,还包括:

根据采集到的多个线速度数据确定激光雷达的当前线速度,确定当前线速度大于线速度阈值。

其中,可以对采集到的多个线速度取平均值得到激光雷达的当前线速度,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,线速度阈值可以根据实际需求而定,在激光雷达的当前线速度较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,无需对点云数据帧进行位姿校正,本申请在激光雷达的当前线速度大于线速度阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

s402、获取激光雷达生成的点云数据帧。

其中,其中,以机械式雷达为例,机械式激光雷达以机械旋转方式完成对周围环境的扫描,旋转一周的时间为点云数据帧的时长。一般来说,点云数据帧是周期性生成的,激光雷达的帧周期为点云数据帧的时长。点云数据帧包括多个点云数据,每个点云数据包括空间位置坐标和时间戳,时间戳表示点云数据生成的时间,点云数据帧由多个列点云组成,基于激光雷达的扫描特点,位于同一列点云中的点云数据具有相同的时间戳,本申请可以列点云为最小粒度进行位姿补偿和校正,达到降低校正的运算量的效果。线速度是周期性行测量的情况下,点云数据帧的周期大于线速度数据的测量周期,且点云数据帧的时长为线速度的周期的整数倍,那么,测量单元在一个点云数据帧内可以多次测量激光雷达的线速度数据。

s403、根据点云数据的时间戳确定第一线速度和第二线速度。

其中,第一线速度为在点云数据的时间戳之前且距离该点云数据的时间戳最近的线速度,第二线速度为点云数据的时间戳之后且距离该点云数据的时间戳最近的线速度。点云数据为点云数据帧中的任意一个,点云数据具有时间戳,采集的多个线速度数据各自也具有时间戳,根据点云数据的时间戳在采集到的多个线速度数据中查询位于点云数据的时间戳之前且时间间隔最小的线速度,该线速度为第一线速度;根据点云数据的时间戳在采集的多个线速度中查询位于点云数据的时间戳之后且时间间隔最小的线速度,该线速度为第二线速度。

s404、根据所述第一线速度和所述第二线速度计算所述点云数据的线速度。

其中,计算点云数据的线速度的方法可以是对第一线速度和第二线速度进行加权平均得到点云数据的线速度,例如:取第一线速度和第二线速度的算术平均值、几何平均值或加权平均值作为点云数据的线速度。

s405、根据所述点云数据的线速度计算所述点云数据的位姿补偿量。

其中,该位姿补偿量为线速度位姿补偿量,位姿补偿量包括旋转补偿量,点云数据区间包含多个列点云。可选的,运动补偿装置可以预存储或预配置一个基准列点云,例如:可以将多个列点云中的首个列点云或最后一个列点云作为基准列点云,其他列点云中待校正列点云,运动补偿装置基于点云数据区间的线速度和待校正点云在点云数据区间中的位置估计待校正点云的位姿,然后计算待校正列点云和基准列点云之间的位姿补偿量,各个待校正列点云具有不同的位姿补偿量。

s406、根据所述位姿补偿量对所述点云数据进行位姿补偿。

其中,根据s405中计算得到的位姿补偿量对点云数据区间进行旋转补偿和/或位移补偿,点云数据帧中包含多个点云数据,各个点云数据的位姿补偿过程相同,均可以参照s401~s406的描述,此处不再赘述。

在一个或多个实施例中,获取测量单元测量的多个线速度数据,包括:

获取测量单元以第一周期测量的多个线速度数据;

其中,所述获取激光雷达生成的点云数据帧,包括:

获取激光雷达以第二周期生成的点云数据帧,第二周期大于第一周期,且第二周期是第一周期的整数倍。

例如:激光雷达以10hz的频率获取点云数据帧,以100hz的频率获取多个线速度数据,点云数据帧的第二周期是线速度数据的第一周期的10倍,那么1个点云数据帧内存在10个线速度数据。

在一个或多个实施例中,所述获取激光雷达生成的点云数据帧之前,还包括:

根据线速度数据计算当前线速度,判断当前线速度是否大于线速度阈值,若为是,则执行所述获取激光雷达生成的点云数据帧的步骤;或若为否,则不执行位姿补偿。

其中,可以对采集到的多个线速度取平均值得到激光雷达的当前线速度,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,线速度阈值可以根据实际需求而定,在激光雷达的当前线速度较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,无需对点云数据帧进行位姿校正,本申请在激光雷达的当前线速度大于线速度阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

在一个或多个实施例中,根据点云数据的时间戳确定第一线速度和第二线速度,包括:

根据第一周期将点云数据帧划分为多个点云数据区间;

确定点云数据所在的目标点云数据区间;

根据所述目标点云数据区间的起始时间戳确定第一线速度,以及根据所述目标点云数据区间的结束时间戳确定第二线速度。

例如:参见图5所示,点云数据帧的周期是线速度数据的10倍,根据线速度数据的周期将点云数据帧划分为10个点云数据区间:点云数据区间1~点云数据区间10,根据点云数据的时间戳在上述10个点云数据区间中确定目标点云数据区间,假设目标点云数据区间为点云数据区间1,点云数据区间1的起始时间戳对应第一线速度(线速度1),点云数据区间1的结束时间戳对应第二线速度(线速度2)。

其中,在本实施例中,利用线速度的采集周期将点云数据帧划分为多个点云数据区间,分别对各个点云数据区间内的点云数据进行运动补偿,解决了相关技术中对点云数据帧整体进行运动补偿带来点云数据帧内的线速度发生突变造成的补偿不准确的问题,因此可以提高运动补偿的精度;另外,通过各个点云数据帧的起始时间戳对齐的线速度和结束时间戳对齐的线速度计算其实际的线速度,因此可以在保证准确性的情况降低运算开销以及减小计算点云数据的线速度的时间开销,提高运动补偿的效率。

在一个或多个实施例中,点云数据帧由多个点云数据区间组成,各个点云数据区间由多个列点云组成,同一列点云中的点云数据具有相同的时间戳;

所述根据所述位姿补偿量对所述点云数据进行位姿补偿,包括:

根据所述点云数据区间的线速度计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量;

确定待校正列点云;

根据所述待校正列点云与基准列点云之间的列距离,以及根据所述点云数据区间的列点云数量计算所述待校正列点云的比例系数;其中,所述基准列点云为所述第一端点列点云或第二端点列点云;

根据所述校正列点云的比例系数和所述基准位姿补偿量对所述待校正列点云进行位姿校正。

根据图2c的描述,根据点云数据的时间戳确定第一线速度和第二线速度,第一线速度为在点云数据的时间戳之前且距离所述点云数据的时间戳最近的线速度,第二线速度为在点云数据的时间戳之后且距离点云数据的时间戳最近的线速度,根据第一线速度和所述第二线速度计算点云数据的线速度,根据点云数据的线速度计算点云数据的位姿补偿量,实现在点云数据帧中多次对点云数据的位姿进行校正,解决相关技术中基于点云数据帧的生成周期进行补偿带来的校正精度差以及以点云数据为粒度进行补偿带来的运算量大的问题。

参见图3,为本申请实施例提供的一种点云的运动补偿方法的另一流程示意图,在本申请实施例中,所述运动补偿方法包括:

s501、通过测量单元以第一周期测量的多个角速度数据。

其中,角速度包括角速度和时间戳,时间戳表示测量的角速度的时间。测量单元是测量物体三轴姿态角或加速度的装置,测量单元一般包含三个单轴的加速度计和三个单轴的陀螺仪,加速度计用于测量物体加速度,陀螺仪用于测量物体的角速度。本实施例中,测量单元通过陀螺仪以第一周期测量激光雷达的角速度数据,即测量单元每隔第一周期测量激光雷达的角速度数据,运动补偿装置获取测量单元周期性测量的角速度数据。应理解,测量单元测量的角速度可以是三个轴上的任意一个或多个轴上的角速度,例如:承载平台为车辆时,激光雷达设置于车辆,车辆主要沿路面行驶,车辆转弯带来的角速度变化也是基于水平面或其他平面(例如:垂直于水平面的平面)上的,测量单元测量水平面或其他平面(例如:垂直于水平面的平面)上的角速度。

在一个或多个实施例中,s501还包括:

根据采集到的多个角速度数据确定激光雷达的当前角速度,确定当前角速度大于角速度阈值。

其中,可以对采集到的多个角速度取平均值得到激光雷达的当前角速度,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,角速度阈值可以根据实际需求而定,在激光雷达的当前角速度较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,本申请在激光雷达的当前角速度大于角速度阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

s502、获取激光雷达以第二周期生成的点云数据帧。

其中,激光雷达通过行扫描和列扫描对周围环境进行扫描后生成点云数据帧,激光雷达的帧周期为第二周期,第二周期即为点云数据帧的时长。点云数据帧包括多个点云数据,每个点云数据包括空间位置坐标和时间戳,空间位置坐标为空间坐标系中的坐标,时间戳为测量空间位置坐标的时间。点云数据帧的时长大于第一周期,且点云数据帧的时长为第一周期的整数倍,容易理解,测量单元可以在点云数据帧内多次测量角速度数据。点云数据帧的时间边界和角速度数据的测量时间是对齐的,即点云数据帧的起始时间或结束时间和角速度数据的测量时间是对齐的。点云数据帧包括多个点云数据,点云数据帧以行列的方式进行分布,即点云数据帧包含多个行点云或多个列点云,同一列点云中点云数据具有相同的时间戳。

举例来说,参见图4所示,激光雷达基于帧周期生成有4个点云数据帧,4个点云数据帧为点云数据帧1、点云数据帧2、点云数据帧3和点云数据帧4,各个点云数据帧的时长相等,对于任意一个点云数据帧来说,点云数据帧包括多个行点云或多个列点云,同一行点云中的各个点云数据具有相同的时间戳。以点云数据帧1为例,点云数据帧1的行点云包含38个点云数据,这38个点云数据是在相同的时间扫描或生产的,该38个点云数据具有相同时间戳,运动补偿装置在对点云数据帧进行位姿校正时以行点云为最小粒度进行位姿校正,可以减少位姿校正的运算量。

s503、获取测量单元以第三周期测量的多个线速度数据。

其中,线速度数据包括线速度和时间戳,线速度表示单位时间内的位移,时间戳表示测量线速度的时间,测量单元通过加速度计测量激光雷达的线速度。在本申请中,点云数据帧的时长大于第三周期,且点云数据帧的时长为第三周期的整数倍,那么测量单元可以在点云数据帧内多次测量线速度。例如:第二周期为0.02s,即测量单元在1s内测量50次线速度,第二周期的长度为0.1s,那么测量单元在点云数据帧内5次测量线速度。

应理解,本申请中测量单元测量的线速度可以是三个轴中的任意一个或多个轴上的线速度,例如:在承载平台为车辆时,激光雷达设置于车辆,车辆主要沿路面行驶,车辆前进代开的线速度变化也是基于水平面上的,测量单元可以测量水平面上的线速度。

在一个或多个实施例中,s503还包括:

根据采集到的多个线速度数据确定激光雷达的当前线速度,确定当前线速度大于线速度阈值。

其中,可以对采集到的多个线速度取平均值得到激光雷达的当前线速度,取平均值的方法可以是算术平均、几何平均或加权平均等,本申请不作限制,线速度阈值可以根据实际需求而定,在激光雷达的当前线速度较小时,采集的点云数据帧只会发生轻微失真,对测量结果影响不大,本申请在激光雷达的当前线速度大于线速度阈值时,才会对点云数据帧进行位姿校正,从而可以降低校正的运算量。

在一个或多个实施例中,在所述当前角速度小于或等于角速度阈值,且所述当前线速度大于线速度阈值时,所述位姿补偿量为线速度位姿补偿量,线速度位姿补偿量根据点云数据的线速度计算得到的,即本申请仅利用线速度位姿补偿量对点云数据进行位姿补偿;或

在所述当前角速度大于角速度阈值,且当前线速度小于或等于线速度阈值时,所述位姿补偿量为角速度位姿补偿量,角速度位姿补偿量是根据点云数据的角速度计算得到的,即本申请实施例仅利用角速度位姿补偿量对点云数据进行位姿补偿;或

在所述当前角速度小于或等于角速度阈值,且当前线速度小于或等于线速度阈值时,不进行位姿补偿。

s504、确定点云数据帧为未压缩状态。

其中,运动补偿装置判断点云数据帧是否为未压缩状态,具体而言,判断的方法可以包括:获取点云数据帧中各个点云数据的高度,判断高度是否为1,若高度为1,表示点云数据帧已经过压缩,即点云数据帧为已压缩状态,点云数据帧中的点云数据为无序点云,无法执行本申请的位姿校正过程;若高度不为1,表示点云数据帧未经过压缩,即点云数据帧为未压缩状态,点云数据帧的点云数据为有序点云,可执行本申请的位姿校正过程。

s505、根据第一周期将点云数据帧划分为多个点云数据区间。

其中,由于第一周期小于点云数据帧的时长,且点云数据帧的时长为第一周期的整数倍,那么根据角速度数据的时间戳和该整数倍,可以将点云数据帧划分为多个点云数据区间,各个点云数据区间包含多个列点云,每个列点云中的点云具有相同的时间戳。

举例来说,参见图5所示,点云数据帧的时长为0.1s,角速度的测量周期(即第一周期)为0.01s,点云数据帧的边界和角速度的测量时间是对齐的,根据角速度的测量周期0.01s可以将点云数据帧划分为10个点云数据区间,分别为点云数据区间1~点云数据区间10,各个点云数据区间的时长为0.01s,各个点云数据区间包含多个列点云,每个列点云中的点云数据具有相同的时间戳。

在本实施例中,利用角速度的采集周期将点云数据帧划分为多个点云数据区间,分别对各个点云数据区间内的点云数据进行运动补偿,解决了相关技术中对点云数据帧整体进行运动补偿带来点云数据帧内的角速度发生突变造成的补偿不准确的问题,因此可以提高运动补偿的精度;另外,通过各个点云数据帧的起始时间戳对齐的角速度和结束时间戳对齐的角速度计算其实际的角速度,因此可以在保证准确性的情况降低运算开销以及减小计算点云数据的角速度的时间开销,提高运动补偿的效率。

s506、确定点云数据区间的起始时间戳对应的第一角速度和点云数据区间的结束时间戳对应的第二角速度。

其中,对于点云数据帧的每个点云数据区间来说,点云数据区间具有一个起始时间戳和结束时间戳,运动补偿装置确定点云数据区间的起始时间戳对应的第一角速度,以及确定点云数据区间的结束时间戳对应的第二角速度,第一角速度为测量单元测量的角速度中与该起始时间戳之间的时间间隔最小的角速度,第二角速度为测量单元测量的角速度中与该结束时间戳之间的时间间隔最小的角速度。

举例来说,参见图5所示,获取点云数据区间1的起始时间戳,以及获取测量到的角速度数据,在测量到的角速度数据中遍历与该起始时间戳之间时间间隔最小的时间戳,该时间戳对应角速度1。获取点云数据区间1的结束时间戳,在测量到的角速度数据中遍历与结束时间戳之间时间间隔最小的时间戳,该时间戳对应角速度2。

s507、将第一角速度和第二角速度取平均值得到点云数据区间的角速度。

其中,可以将第一角速度和第二角速度进行加权平均得到点云数据区间的角速度,例如:将第一角速度和第二角速度取平均值得到点云数据区间的角速度,假设第一角速度为ω1,第二角速度为ω2,那么点云数据区间的角速度为

s508、确定点云数据区间的起始时间戳对应的第一线速度和点云数据区间的结束时间戳对应的第二线速度。

其中,运动补偿装置在测量的线速度数据中遍历与起始时间戳之间的时间间隔最小的线速度,该线速度即为第一线速度;以及在测量的线速度数据中遍历与结束时间戳之间的时间间隔最小的线速度,该线速度即为第二线速度。

举例来说,参见图5所示,运动补偿装置确定点云数据区间1的起始时间戳,在测量的线速度数据中遍历到与该起始时间戳之间的时间间隔最小的线速度为线速度1,以及在测量的线速度数据中遍历与该结束时间戳之间的时间间隔最小的线速度为线速度2。

s509、将第一线速度和第二线速度取平均值得到点云数据区间的线速度。

其中,运动补偿装置可以将第一线速度和第二线速度进行加权平均得到点云数据区间的线速度,具体来说,将第一线速度和第二线速度取平均值得到点云数据区间的线速度,假设第一线速度为v1,第二线速度为v2,那么点云数据区间的线速度为由于线速度数据的测量周期大于角速度数据的测量周期,点云数据帧又是根据角速度的测量周期来划分的,因此点云数据帧中存在多个点云数据区间具有相同的线速度。

例如:在图5中,点云数据区间1、点云数据区间2和点云数据区间3的起始时间戳均对应线速度1,结束时间戳均对应线速度2,即点云数据区间1、点云数据区间2和点云数据区间3具有相同的线速度。

s510、根据点云数据区间的角速度和点云数据区间的线速度计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量。

其中,点云数据区间包含多个列点云,多个列点云的首尾两端的列点云为两个端点列点云,第一端点列点云为首个端点列点云,第二端点列点云为最后一个端点列点云,或第一端点列点云为最后一个端点列点云,第二端点列点云为首个端点列点云。基准列点云为点云数据区间中的首个列点云或最后一个列点云。点云数据区间中除基准列点云之外的列点云为待校正列点云。运动补偿装置根据点云数据区间的角速度、点云数据区间的线速度计算端点列点云的位姿相对于基准列点云之间的基准位姿补偿量,以便将端点列点云的位姿校正为基准列点云的位姿,基准位姿补偿量包括位移补偿量和旋转补偿量,该基准位姿补偿量同时包括基准角速度位姿补偿量和基准线速度位姿补偿量。

举例来说,参见图6所示,点云数据区间1包含多个列点云,例如:多个列点云包含列点云i、列点云j和列点云k等,基准列点云为点云数据区间1中的最后一个列点云,端点列点云为点云数据区间中的首个列点云。

在本申请的一些实施例中,运动补偿装置可以使用如下公式计算所述基准位姿补偿量:

δr=exp[(ω×δt)^];

δp=v×δt;

r1.inverse()*r2=δr;r1.inverse0*(t2-t1)=δp;

t12=exp(δsm^);

其中,^表示对矩阵进行反对称操作,ω表示所述点云数据区间对应的角速度,v表示所述点云数据区间对应的线速度,t1表示所述点云数据区间的起始时间戳,t2表示所述点云数据区间的结束时间戳,δt表示所述点云数据区间的时长,δsm表示相对运动对应的流空间代数;δp表示所述点云数据区间起始时间戳到结束时间戳之间的位移,inverse()表示矩阵的求逆操作,δsm^为δsm的反对称矩阵,t1表示第一端点列矩阵的位姿,t2表示第二端点列矩阵的位姿,t12表示所述基准位姿补偿量,所述基准列点云为所述第二端点列点云。

s511、确定待校正列点云。

其中,对于点云数据区间中的各个待校正列点云来说,运动补偿装置从点云数据区间中选择一个待校正列点云,待校正列点云为点云数据区间中除基准列点云之外的其他列点云。例如:参见图7所示,校正列点云为点云数据区间1中的第i个列点云、第j个列点云和第k个列点云。

s512、根据待校正列点云与基准列点云的距离,以及点云数据区间包含的多个列点云的数量计算比例系数。

其中,待校正列点云和基准列点云之间的距离表示列间隔,例如:将待校正列点云的序号和基准列点云之间的序号求差得到该距离,将距离除以点云数据区间包含的多个列点云的数量得到比例系数αi,i为待校正列点云在点云数据区间中的序号。

举例来说,点云数据区间1包含100个列点云,待校正列点云和基准列点云之间的距离为50,那么比例系数为50/100=0.5。

s513、根据所述比例系数和所述基准位姿补偿量对所述待校正列点云进行位姿校正。

其中,根据比例系数和基准位姿补偿量得到待校正列点云的实际位姿补偿量,根据该实际位姿补偿量对待校正列点云进行位姿校正例如·根据s310的计算公式,对于第i个待校正列点云来说,待校正列点云的参数δsmi=αi×δsm,由此可以确定第i个待校正列点云的实际位姿补偿量。可选的,运动补偿装置可以采用并行的方式对点云数据区间中的列点云进行位姿校正,以及采用并行的方式对点云数据帧中的点云数据帧进行位姿校正。

参见图7所示,点云数据帧划分为n个点云数据区间:分别为点云数据区间δsm_1~点云数据区间δsm_n,每个点云数据区间包含多个列点云,各个点云数据区间中包含的多个列点云以并行的方式执行校正过程,以及n个点云数据区间并行的执行校正过程。

根据图3~图7的描述,角速度的测量周期小于点云数据帧的时长,根据角速度的测量周期将点云数据帧划分为多个点云时间区间,根据点云数据区间的起始时间戳确定对应的第一角速度,以及根据点云数据区间的结束时间戳确定对应的第二角速度,根据第一角速度和第二角速度计算点云数据区间的角速度,根据点云数据区间的角速度确定位姿补偿量进行位姿补偿,实现在点云数据帧中基于角速度数据的测量频率多次对点云数据区间中各个列点云的位姿进行校正,解决相关技术中基于点云数据帧的生成周期进行补偿带来的校正精度差以及以点云数据为粒度进行补偿带来的运算量大的问题。

上述详细阐述了本申请实施例的一种点云的运动补偿方法,下面提供了本申请实施例的一种运动补偿装置(以下简称装置3)。

图8所示的装置3可以实现图2a~图3所示实施例的点云的运动补偿方法,装置3包括获取单元301、确定单元302、计算单元303和补偿单元304。

获取单元301,用于获取测量单元测量的多个运动参数数据;其中,所述运动参数数据包括时间戳和运动参数;

所述获取单元301,还用于获取激光雷达生成的点云数据帧;其中,所述点云数据帧包括多个点云数据,每个点云数据包括时间戳和空间位置坐标;

确定单元302,用于根据所述点云数据的时间戳确定第一角速度和第二角速度;其中,所述第一角速度为在所述点云数据的时间戳之前且距离所述点云数据的时间戳最近的角速度,所述第二角速度为在所述点云数据的时间戳之后且距离所述点云数据的时间戳最近的角速度;

计算单元303,用于根据所述第一角速度和所述第二角速度计算所述点云数据的角速度;以及根据所述点云数据的角速度计算所述点云数据的位姿补偿量;

补偿单元304,用于根据所述位姿补偿量对所述点云数据进行位姿补偿。

根据权利要求1所述的方法,其特征在于,在所述运动参数为角速度或线速度,

所述获取测量单元测量的多个运动参数数据,包括:

获取测量单元以第一周期测量的多个运动参数数据;

其中,所述获取激光雷达生成的点云数据帧,包括:

获取激光雷达以第二周期生成的点云数据帧;其中,所述第二周期大于所述第一周期,且所述第二周期为所述第一周期的整数倍。

在一个或多个可能的实施方式中,所述运动参数为角速度或线速度;

装置3还包括:

判断单元,用于根据所述多个运动参数数据计算当前运动参数,以及确定当前运动参数大于运动参数阈值;或

根据所述多个运动参数数据计算当前运动参数,在所述当前运动参数小于或等于运动参数阈值时,不进行位姿补偿。

在一个或多个可能的实施方式中,所述根据点云数据的时间戳确定第一运动参数和第二运动参数,包括:

根据所述第一周期将所述点云数据帧划分为多个点云数据区间;

确定所述点云数据所在的目标点云数据区间;

根据所述目标点云数据区间的起始时间戳确定第一运动参数,以及根据所述目标点云数据区间的结束时间戳确定第二运动参数。

在一个或多个可能的实施方式中,所述运动参数包括角速度和线速度;

所述获取测量单元测量的多个运动参数数据,包括:

获取测量单元以第一周期测量的多个角速度数据;

获取所述测量单元以第三周期测量的多个线速度数据;

其中,获取激光雷达生成的点云数据帧,包括:

获取激光雷达以第二周期生成的点云数据帧;其中,所述第二周期大于所述第一周期和所述第三周期,且所述第二周期为所述第一周期和所述第三周期的整数倍。

在一个或多个可能的实施方式中,装置3还包括:

判断单元,用于根据所述多个角速度数据计算当前角速度,确定当前角速度大于角速度阈值;

根据所述多个线速度数据计算当前线速度,确定当前线速度大于线速度阈值。

在一个或多个可能的实施方式中,在所述当前角速度小于或等于角速度阈值,且所述当前线速度大于线速度阈值时,所述位姿补偿量为线速度位姿补偿量;或

在所述当前角速度大于角速度阈值,且当前线速度小于或等于线速度阈值时,所述位姿补偿量为角速度位姿补偿量;或

在所述当前角速度小于或等于角速度阈值,且当前线速度小于或等于线速度阈值时,不进行位姿补偿。

在一个或多个可能的实施方式中,所述点云数据帧由多个点云数据区间组成,各个点云数据区间由多个列点云组成,同一列点云中的点云数据具有相同的时间戳;

所述根据所述位姿补偿量对所述点云数据进行位姿补偿,包括:

根据所述点云数据区间的运动参数计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量;

确定待校正列点云;

根据所述待校正列点云与基准列点云之间的列距离,以及根据所述点云数据区间的列点云数量计算所述待校正列点云的比例系数;其中,所述基准列点云为所述第一端点列点云或第二端点列点云;

根据所述待校正列点云的比例系数和所述基准位姿补偿量对所述待校正列点云进行位姿校正。

在一个或多个可能的实施方式中,所述点云数据帧中各个点云数据区间采用并行的方式进行位姿校正,以及所述点云数据区间内的各个列点云采用并行方式进行校正。

在一个或多个可能的实施方式中,所述运动参数为角速度和线速度;

所述根据所述点云数据区间的角速度和所述点云数据区间的线速度计算第一端点列点云相对于第二端点列点云之间的基准位姿补偿量,包括:

使用如下公式计算所述基准位姿补偿量:

δp=ν×δt;

r1.inverse()*r2=δr;r1.inverse()*(t2-t1)=δp;

t12=exp(δsm^);

其中,^表示对矩阵进行反对称操作,ω表示所述点云数据区间对应的角速度,v表示所述点云数据区间对应的线速度,t1表示所述点云数据区间的起始时间戳,t2表示所述点云数据区间的结束时间戳,δt表示所述点云数据区间的时长,δsm表示相对运动对应的流空间代数;δp表示所述点云数据区间起始时间戳到结束时间戳之间的位移,inverse()表示矩阵的求逆操作,δsm^为δsm的反对称矩阵,t1表示第一端点列矩阵的位姿,t2表示第二端点列矩阵的位姿,t12表示所述基准位姿补偿量,所述基准列点云为所述第二端点列点云。

在一个或多个可能的实施方式中,所述根据所述第一运动参数和所述第二运动参数计算所述点云数据的运动参数,包括:

将所述第一角速度和所述第二角速度取平均值作为所述点云数据的角速度。

在一个或多个可能的实施方式中,判断单元还用于:确定所述点云数据帧为未压缩状态。

本申请实施例和图1~图7的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图1~图7的方法实施例的描述,此处不再赘述。

所述装置3可以为实现相关功能的现场可编程门阵列(field-programmablegatearray,fpga),专用集成芯片,系统芯片(systemonchip,soc),中央处理器(centralprocessorunit,cpu),网络处理器(networkprocessor,np),数字信号处理电路,微控制器(microcontrollerunit,mcu),还可以采用可编程控制器(programmablelogicdevice,pld)或其他集成芯片。

上述详细阐述了本申请实施例的一种点云的运动补偿方法,下面提供了本申请实施例的一种点云的运动补偿装置(以下简称装置4)。

图9为本申请实施例提供的一种装置结构示意图,以下简称装置4,装置4可以集成于上述实施例的激光雷达或承载平台中,如图4所示,该装置包括:存储器402、处理器401、发射器404以及接收器403。

存储器402可以是独立的物理单元,与处理器401、发射器404以及接收器403可以通过总线连接。存储器402、处理器401、发射器404以及接收器401也可以集成在一起,通过硬件实现等。

发射器404用于发射信号,接收器403用于接收信号。

存储器402用于存储实现以上方法实施例,或者装置实施例各个模块的程序,处理器401调用该程序,执行以上方法实施例的操作。

可选地,当上述实施例的点云的运动补偿方法中的部分或全部通过软件实现时,装置也可以只包括处理器。用于存储程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。

处理器可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。

处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

存储器可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器还可以包括上述种类的存储器的组合。

上述实施例中,发送单元或发射器执行上述各个方法实施例发送的步骤,接收单元或接收器执行上述各个方法实施例接收的步骤,其它步骤由其他单元或处理器执行。发送单元和接收单元可以组成收发单元,接收器和发射器可以组成收发器。

本申请实施例还提供了一种计算机存储介质,存储有计算机程序,该计算机程序用于执行上述实施例提供的点云的运动补偿方法。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的点云的运动补偿方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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