具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
以下结合图1至图10对本公开提供的障碍物的检测方法实施例的进行详细阐述:
其中,图1示出本公开一实施例中障碍物的检测方案的场景示意图。参考图1,该场景中包含被牵引的飞机(即,运动对象)11以及牵引车(即,牵引工具)12。本说明书实施例中激光雷达与牵引车之间关系为随动的,例如,激光雷达设置在牵引车12上。可以理解的是,为了避免障碍物对飞机的任意部件造成损伤,要求激光雷达的扫描点同时包含地面点和飞机机体和机翼的扫描点。其中,激光雷达的设置位置、激光雷达的支架高度,以及激光雷达的数量均可以根据实际需求(如,牵引车尺寸,与牵引车所适配的飞机的尺寸,以及激光雷达扫描的物理参数等)设置或调整,本说明书实施例对此不做限定。
示例性的,首先通过上述激光雷达获取点云,并将激光雷达所获取的点云以及飞机11对应的标准点云等数据传递至计算设备,进一步地,对于飞机被牵引运动过程中的第t时间点(可以是通用时间,如北京时间2022年9月1日12:00,也可以是牵引过程的计时,如此次牵引过程的第10分钟等)来说,通过计算设备确定该时间点的障碍物。具体地:根据激光雷达在该时间点获取到的点云数据,确定该时间点对应的整体点云Cwt;根据该时间点飞机对应的旋转矩阵,以及飞机对应的标准点云,确定该时间点对应的对象点云Cot;进一步地,根据上述整体点云Cwt和对象点云Cot确定该时间点对应的待测点云Cdt;根据待测点云Cdt,则可以确定在牵引过程中该时间点飞机的障碍物。
示例性的,对于各个时间点所检测出的障碍物以及各个时间点飞机的姿态,可以通过显示设备进行显示,以便于用户观察及执行对应调整措施。
在示例性的实施例中,图2示出本公开一示例性实施例中障碍物的检测方法的流程示意图。参考图2该方法包括:S210-S240。
在S210中,根据激光雷达在第t时间点获取到的点云数据,确定第t时间点对应的整体点云Cwt;其中,t取值为正整数。
可以理解的是,本说明书实施例中可以设置多个激光雷达。在激光雷达包括多个的情况下,需要获取多个激光雷达在相同时间点(第t时间点)分别所拍摄的点云。进一步地,为了是的所拍摄点云贴切反映真实环境,还需要将所有激光雷达在相同时间点分别拍摄的点云融合至同一坐标系中。为了便于后续计算,可以将所有激光雷达在相同时间点分别拍摄的点云,均分别转换至牵引车所在坐标系中。
示例性的,上述多个激光雷达编号可以表示为:1,...,N,且分别可以表示为:L1,Li,...,LN。在第t时间点编号为i的激光雷达Li扫描点云可以记录为:Cit。另外,多个激光雷达的点云变换到牵引车所在的坐标系对应的坐标转换矩阵分别可以表示为:T1,Ti,...,TN。
本说明书实施例中,根据多个激光雷达分别与牵引工具之间的坐标转换矩阵,将多个激光雷达在第t时间点获取到的点云数据转换至牵引工具对应的坐标系,得到第t时间点对应的整体点云Cwt。其中,第t时间点对应的整体点云Cwt的计算方式如公式(1)。
Cwt = T1 × C1t + ... + Ti × Cit + ... + TN × CNt (1)
在S220中,根据第t时间点对应的旋转矩阵,以及运动对象对应的标准点云,确定第t时间点对应的对象点云Cot。
可以理解的是,在飞机被牵引车带动运动的场景下考虑到减震等因素牵引车(即牵引工具)12与飞机(即,运动对象)11之间为柔性连接。示例性的,参考图3示出的柔性连接部件(连接处设有弹性组件,若橡胶圈等),具体的,柔性连接部件的第一端31可以与牵引车12固定连接,柔性连接部件的第二端32可以与飞机11固定连接。
参考图4,在运动对象与牵引工具之间为柔性连接的情况下,运动对象与牵引工具(即飞机11与牵引车12)之间的姿态可能并不一致。而障碍物与运动对象的真实姿态息息相关,因此为了提升障碍物检测准确度,需要确定第t时间点运动对象的真实姿态,则本说明书实施例中需要确定该时间点相较于上一时间点的旋转矩阵。例如,飞机在10:20:15(第t时间点)的姿态信息与其在10:20:10(第t-1时间点)的姿态信息是不同的,而10:20:15(第t时间点)的姿态信息可以在10:20:10(第t-1时间点)的姿态信息的基础上施加旋转矩阵(记作第t时间点对应的旋转矩阵)可以确定。进一步地,则可以根据运动对象的标准点云以及该时间点对应的旋转矩阵,确定反映第t时间点运动对象实际姿态的点云,本说明书实施例中记作:第t时间点对应的对象点云Cot。
在示例性的实施例中,仍以运动对象为飞机为例。示例性的,将飞机的标准点云表示为Ps,可以理解的是,不同外观的飞机所对应的标准点云是不同的,可以预先获取各个型号飞机对应的标准点云并存储,以备用。需要说明的是,虽然飞机可能存在部分活动部分,例如飞机的螺旋浆部分,但是由于飞机本身的尺寸较大,包含足够多的点能够应用于点云匹配,因此飞机中活动部分并不影响本说明书实施例提供的障碍物检测准确度。
以下通过图5a和图5b对旋转矩阵的确定方法进行详细介绍:
其中,图5a示出本公开一实施例中旋转矩阵确定方法的流程示意图。该图所示实施例具体反映运动对象与牵引工具均处于静止状态的情况下,运动对象的转矩阵确定方法。参考图5a:
在S510a中,按照预设步长生成m个初始化变换矩阵[Tg1,....,Tgm]以及,将第k个初始化变换矩阵作用于所述运动对象对应的标准点云Ps上,得到转换后的标准点云P’s。
在S520a中,获取在初始状态下由激光雷达所获取的整体点云Cw0;以及,在S530a中,将转换后的标准点云P’s与整体点云Cw0进行匹配计算,并将满足预设要求的初始化变换矩阵确定为初始旋转矩阵。
其中,在初始状态下,上述运动对象与牵引工具均处于静止状态。
在示例性的实施例中,上述整体点云Cw0可以根据公式(1)确定。可以理解的是,本实施例反映在牵引工作的初始状态下,由于牵引车和飞机均保持静止,所以在确定上述整体点云Cw0时,可以累积激光雷达在较长时间下所扫描得到的点云,由于获取到更多扫描点,所以具有更丰富扫描点用于进行匹配计算,从而有利于提升匹配准确度。
示例性的,在进行匹配计算之前,可以对整体点云Cw0去噪,例如将低于预设地面高度的点云删除,以减少地面点或其他障碍物点的干扰,也有利于提升匹配准确度。
本方案中,在牵引初始状态,可以根据牵引车的类型和被牵引的飞机的型号,按照预设步长生成m(取值为正整数)个初始化变换矩阵,分别记录为[Tg1,....,Tgm];进一步地,将第k(取值小于m)个初始化变换矩阵作用在飞机的标准点云Ps上,如公式(2):
Ps Tgk = Tgk × Ps (2)
对变换得到的点云Ps Tgk和初始状态下的各个雷达的扫描点进行点云Cw0进行配准,其中Cw0表示多个雷达变换到相同坐标系(牵引车所在的坐标系)下的点云集合。对满足预设配准收敛条件且配准误差最小的Tgk作为初始旋转矩阵。
示例性的,如果不能够满足预设配准收敛条件,则引入牵引车操作人员人工介入,实现标准点云和初始状态点云的精确配准。
在另一示例性的实施例中,在牵引工作的初始状态下,牵引车和飞机均保持静止,可以结合采用如图5a所示实施例实现初始状态下的匹配以及人工操作,即在显示界面进行人工匹配操作,其中人工手动匹配更具有直观性,从而得到能够使得激光雷达所获取的整体点云和飞机标准点云之间精准匹配的初始旋转矩阵。
图5b示出本公开另一实施例中旋转矩阵确定方法的流程示意图。该图所示实施例具体反映运动对象与牵引工具处于运动状态的情况下,运动对象的转矩阵确定方法。参考图5b:
在S510b中,将运动对象的至少一个局部作为匹配部位。
在保证对象点云Cot能够反映运动对象真实姿态的前提下,为了减少计算量,本说明书示例性的实施例中,将运动对象中的局部部分用于匹配计算。示例性的,在运动对象为飞机的情况下,可以将机头以及机翼作为匹配部位。
需要说明的是,为了保证整个牵引过程中的匹配准确度,在牵引运动过程中每个时间点用于匹配计算的匹配部位是一致的。
在S520b中,在第t-1时间点对应的整体点云Cwt-1中,确定出匹配部位对应的局部点云C’wt-1;其中,t取值大于1。以及,在S520’b中,在第t时间点对应的整体点云Cwt中,确定出匹配部位对应的局部点云C’wt。
其中,局部点云C’wt-1即根据激光雷达在第t-1时间点获取到的点云数据确定的,具体实施方式如S210对应的实施例,在此不再赘述。
示例性的,在运动对象为飞机的情况下,在整体点云Cwt-1中截取匹配部位对应的点云,如机头对应的点云、机翼对应的点云,本实施例中,记作局部点云C’wt-1。同理,在第t时间点对应的整体点云Cwt中确定出机头对应的点云、机翼对应的点云,即得到匹配部位对应的局部点云C’wt。
在S530b中,根据匹配部位对应的局部点云C’wt-1和局部点云C’wt,确定第t时间点对应的旋转矩阵。
示例性的,将飞机机头对应的局部点云C’wt-1与局部点云C’wt进行匹配计算,得到反映飞机机头两时间点之间相对位置变化的旋转矩阵。相较于将整体点云Cwt-1与整体点云Cwt直接进行匹配,本说明书实施例中截取局部点云进行匹配,能够有效较少计算量,提升计算速率,有利于及时发现障碍物。
需要说明的是,可以将通过如图5a实施例所确定的初始旋转矩阵作为第1时间点对应的旋转矩阵。进而,在初始状态下运动对象对应的姿态角的基础上,叠加第1时间点对于的旋转矩阵(初始旋转矩阵),得到第1时间点中标准点云的姿态角,即得到反映第1时间点运动对象真实姿态的对象点云Co1。
进一步地,在图5b所提供的实施例中,通过第1时间点对应的局部点云C’w1和第2时间点对应的局部点云C’w2,确定第2时间点对应的旋转矩阵。进而在第1时间点对应的姿态角的基础上,叠加第2时间点对于的旋转矩阵,得到第2时间点中标准点云的姿态角,即得到反映第2时间点运动对象真实姿态的对象点云Co2。同理,通过第2时间点对应的局部点云C’w2和第3时间点对应的局部点云C’w3,确定第3时间点对应的旋转矩阵。进而在第2时间点对应的姿态角的基础上,叠加通过第3时间点对于的旋转矩阵,得到第3时间点中标准点云的姿态角,即得到反映第3时间点运动对象真实姿态的对象点云Co3。以此类推,可以确定牵引运动过程中每个时间点所对应的对象点云。
继续参考图2,在S230中,根据第t时间点对应的整体点云Cwt和对象点云Cot,确定第t时间点对应的待测点云Cdt。
上述整体点云Cwt为第t时间点由激光雷达所拍摄的点云,其中包含运动对象以及可能存在的障碍物,上述对象点云Cot为能够反映第t时间点运动对象真实姿态的点云,本事实例中,需要将整体点云Cwt中不属于运动对象的部分点云,可以记作:第t时间点对应的待测点云Cdt。
在示例性的实施例中,图6示出本公开一实施例中待测点云确定方法的流程示意图,可以作为S230的一种具体实施方式。参考图6:
在S610中,在牵引工具对应的坐标系中,确定三维目标区域。
其中,上述三维目标区域的尺寸与运动对象在第t时间点的最大包络尺寸相关。示例性的,由于对象点云Cot为能够反映第t时间点运动对象真实姿态的点云,所以可以根据对象点云Cot确定运动对象在第t时间点的最大包络尺寸。
为了提升检测精度,可以在上述最大包络尺寸的基础上设置预设余量,其中,预设余量可以根据实际需求设置,在此不做限定。为了便于设置,上述三维目标区域可以为设置为立方体状。
在S620中,对三维目标区域进行栅格化,得到原始栅格集。
本实施例中,对上述三维目标区域进行栅格化,得到原始栅格集,其中的立体栅格可以表示为Cellnmk,其中,n、m和k分别表示在长宽高角度上栅格个数。
在S630中,根据整体点云Cwt向原始栅格集进行投影得到的投影结果,在原始栅格集中确定出目标栅格集。
其中,目标栅格集中每个栅格均包含整体点云Cwt的投影点云。
本实施例中,将第t时间点扫描获取的整体点云Cwt向上述原始点云集进行投影。可以理解的是,由于上述三维目标空间在最大包络尺寸的基础上设置预设有余量,则上述整体点云Cwt向上述原始点云集投影之后,原始栅格集中可能只有一部分栅格中包含有其投影点云,另一部分中不包含整体点云Cwt的投影点云。本实施例中,将原始栅格集中包含有Cwt的投影点云的栅格记作“目标栅格集”。
可以理解的是,对于目标栅格集中的第s个栅格,若在该栅格中也包含有对象点云Cot的投影点云,则说明整体点云在第s个栅格中的投影点云Cwts与对象点云在该栅格中的投影点云有交集,可以说明投影点云Cwts属于运动对象,而不属于第t时间点对应的待测点云Cdt。
为了提升待测点云Cdt判断准确度,该栅格中没有包含有对象点云Cot的投影点云,也不能立即判断为:投影点云Cwts不属于运动对象。而是本说明书实施例提供以下方案:先以第s个栅格为中心在原始栅格集中确定出距离第s个栅格预设步长内的一个区域(记作:第s栅格子集);再根据对象点云Cot在第s栅格子集中的投影结果,确定整体点云Cwt中第s部分点云Cwts是否属于所述第t时间点对应的待测点云Cdt。示例性的,执行S640以及S650。
在S640中,对于目标栅格集中的第s个栅格,在原始栅格集中确定出距离第s个栅格预设步长内的栅格子集,得到第s栅格子集。以及,在S650,根据对象点云Cot在第s栅格子集中的投影结果,确定整体点云Cwt中第s部分点云Cwts是否属于第t时间点对应的待测点云Cdt。
在示例性的实施例中,若对象点云Cot在上述第s栅格子集中不存在投影点云,说明整体点云Cwt中第s部分点云Cwts与对象点云不存在交集,则确定整体点云Cwt中第s部分点云Cwts属于第t时间点对应的待测点云Cdt。若对象点云Cot在上述第s栅格子集中存在投影点云,说明整体点云Cwt中第s部分点云Cwts与对象点云存在交集,则确定整体点云Cwt中第s部分点云Cwts不属于第t时间点对应的待测点云Cdt。
继续参考图2,在S240中,根据第t时间点对应的待测点云Cdt和第t时间点对应的安全区域Rt,确定在第t时间点运动对象的障碍物。
示例性的,参考图7,第t时间点对应的待测点云Cdt可能包含物体71的点云和物体72的点云,然而,根据图7可以看出物体71并不属于飞机的障碍物。因此,本实施例中确定该时间点对应的安全区域Rt(如图7中区域700),再根据第t时间点对应的待测点云Cdt和该安全区域Rt,确定在第t时间点运动对象的障碍物。
在示例性的实施例中,图8示出本公开另一示例性实施例中确定障碍物的方法的流程示意图,可以作为S240的一种具体实施方式。参考图8:
在S810中,根据整体点云Cwt中的栅格高度,确定第t时间点对应的地面高度;以及,在S820中,根据地面高度对第t时间点对应的待测点云Cdt进行过滤处理。
示例性的,飞机在被牵引运动的过程中,地面高度可能是会发生变化的,因此在第t时间点时,根据整体点云Cwt中的栅格高度确定第t时间点对应的地面高度。例如,在整体点云Cwt中确定出的栅格高度最低的一组栅格,该组栅格中的栅格数可以根据实际需求确定,例如本实施例中取5-10个。进一步地,将该栅格组中所有栅格的高度统计值(如,中位数、众数、均值等)数,确定为第t时间点对应的地面高度。进一步地,根据地面高度对第t时间点对应的待测点云Cdt进行过滤处理。
在S830中,对过滤处理之后的待测点云Cdt进行聚类处理,得到对应于至少一个待测目标的点云,以及根据至少一个待测目标的点云确定至少一个待测目标的外廓数据。
在示例性的实施例中,根据待测点云Cdt在上述立体栅格中的投影信息确定至少一个待测目标(如图7中物体71和物体72),具体地,在栅格中按照四连通或者8连通方法进行聚类。进一步地,根据聚类得到的簇计算每个待测目标的外廓数据。为了准确确定当前时间点对于飞机来说的障碍物(例如准确判断物体71不属于当前时间点对于飞机来说的障碍物),因此,本实施例中,在计算每个待测目标的外廓数据时将计算每个待测目标的最小外廓尺寸。
示例性的,对于的第j个待测目标可以表示为:Object(j)={Pj1,...,Pjk}。
其中,Pj1,...,Pjk为第j个待测目标的最小外轮廓控制点,其中,每个最小外轮廓控制点可以根据所对应的栅格中的扫描点确定。
为了进一步辨别上述待测目标是否属于障碍物,本说明书实施例中根据S810’-S820’确定运动对象的安全区域Rt,进一步地,根据安全区域Rt与上述待测目标的最小外廓之间的关系确定待测目标是否属于障碍物。
在示例性的实施例中,一方面,根据S810’确定安全区域Rt的宽度:
在S810’中,根据对象点云Cot,确定在第t时间点运动对象中最大外廓边以及最大外廓边与水平面之间夹角,根据最大外廓边与水平面之间夹角确定安全区域Rt的宽度。
其中,第t时间点对应的对象点云Cot能够反映当前运动对象的实际姿态,则可以根据对象点云Cot确定运动对象中最大外廓尺寸(可以记作“最长边”),“最长边”与水平面之间夹角。示例性的,在运动对象为飞机的情况下,两机翼最外侧点(参考图7中的安全点111和安全点112)之间的距离为飞机的最大外廓尺寸(“最长边”),进一步地,根据飞机的姿态角确定“最长边”与水平面之间夹角。其中,“最长边”与水平面之间夹角为安全区域的影响因素。
示例性的,参考图9,其中91代表飞机在垂直面内没有转角情况下的“最长边”,并且根据“最长边”91所确定的安全区域的宽度为L2;92代表飞机在垂直面内有转角(与水平面90之间有夹角)情况下的“最长边”,并且根据“最长边”92所确定的安全区域的宽度为L1。可见,运动对象“最长边”的姿态影响安全区域的宽度。据此,可以确定如图7中的安全线710以及安全线720,从而确定了安全区域Rt的宽度。
另一方面,根据S820’确定安全区域Rt的长度:
在S820’中,根据第t时间点对应的旋转矩阵以及第t时间点牵引工具的运动方向,确定第t时间点运动对象的运动方向,根据运动对象的运动方向、运动速率以及预设时长确定安全区域Rt的长度。
示例性的,确定该时间点运动对象的运动方向:根据第t时间点对应的旋转矩阵以及第t时间点牵引工具的运动方向,确定第t时间点运动对象的运动方向。例如,参考图10,根据第t时间点对应的旋转矩阵确定运动对象相对于牵引装置的相对运动方向A1(如,飞机相对于牵引车的相对运动方向A1),方向A2代表牵引装置的运动方向,进一步地,根据相对运动方向A1和运动方向A2可以确定运动对象在该时间点的运动方向A3。
还需要确定该时间点运动对象的运动速率:示例性的可以将牵引工具的运动速率作为该时间点运动对象的运动速率。
在确定该时间点运动对象的运动方向、运动速率,以及预设的较短预设时长(如,2秒),则可以确定运动对象在上述预设时长的运动轨迹,进而确定了安全区域Rt的安全线730;进一步地,在机尾所在位置的基础上设置预设余量后,可以确定平行于安全线730的安全线740,则根据安全线730和安全线740可以确定安全区域Rt的长度。
在示例性的实施例中,上述运动对象为被牵引的飞机的情况下,计算设备可以通过牵引车CAN总线高频率获取车辆的运动方向(如图10中方向A2)、运动速率(如用于结合运动对象的运动方向A2来确定安全性730)等,以用于实现安全区域Rt的快速确定。
在通过S810’以及S820’分别确定安全区域Rt的宽度以及长度之后,可以确定了安全区域Rt。
继续参考图8,在确定上述安全区域之后执行S840:根据至少一个待测目标的外廓数据,与安全区域Rt之间的位置关系,确定在第t时间点运动对象的障碍物。
在示例性的实施例中,在位置关系为:存在至少一个待测目标的外廓与安全区域Rt之间存在交集的情况下,将存在交集的待测目标确定为第t时间点运动对象的障碍物。例如,参考图7,待测目标72与安全区域Rt之间存在交集,说明待测目标72处于飞机的运动轨迹中,则确定待测目标72属于障碍物。
继续参考图8,在确定上述安全区域之后还执行S840’:根据至少一个待测目标的外廓数据,与安全区域Rt之间的位置关系,确定在第t时间点运动对象的潜在障碍物。
在示例性的实施例中,将不存在交集的待测目标确定为第t时间点运动对象的潜在障碍物。例如,参考图7,待测目标71和待测目标73与安全区域Rt之间均不存在交集,本实施例中可以将待测目标71和待测目标73确定为第t时间点运动对象的潜在障碍物。进一步地,计算运动对象达到潜在障碍物的时间和/或转向信息。
示例性的,以运动对象当前的运动速率计算运动对象碰撞至潜在障碍物(待测目标71)的时间为t1秒;以运动对象当前的运动速率以及以当前运动方向为基础,计算运动对象碰撞至潜在障碍物(待测目标73)的时间为t2秒且需要逆时针方向转角s度。通过设置与潜在障碍物相关计算,能够起到预警作用,进而有利于提前调整牵引方向,提升牵引效率。
示例性的,上述预警信息可以在显示屏中展示也可以以声音方式进行提醒。例如:以当前运动方向以及运动速率,在t1秒后将与潜在障碍物(待测目标71)发生碰撞;又例如,以运动速率并以当前运动方向为基础向逆时针方向转角s度,在t2秒后将与潜在障碍物(待测目标73)发生碰撞,等。
可见,本说明书实施例提供的障碍物检测方案中,能够自动化识别第t时间点分别对应的障碍物,且具有较高的障碍物检测准确度;同时,还能够确定第t时间点对应的潜在障碍物,进一步地自动生成关于潜在障碍物的预警信息,起到有效指导牵引工作的效果,因此本技术方案在运动对象安全性的同时能够提升牵引效率。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
其中,图11示出本公开一实施例中障碍物的检测装置的结构示意图。请参见图11,该图所示的障碍物的检测装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分,还可以作为独立的模块集成于电子设备中或服务器上。
本公开实施例中的障碍物的检测装置1100包括:整体点云确定模块1110、对象点云确定模块1120、待测点云确定模块1130,以及障碍物确定模块1140。
其中,上述整体点云确定模块1110,用于根据激光雷达在第t时间点获取到的点云数据,确定上述第t时间点对应的整体点云Cwt;其中,t取值为正整数;上述对象点云确定模块1120,用于根据上述第t时间点对应的旋转矩阵,以及运动对象对应的标准点云,确定上述第t时间点对应的对象点云Cot;上述待测点云确定模块1130,用于根据上述第t时间点对应的整体点云Cwt和上述对象点云Cot,确定上述第t时间点对应的待测点云Cdt;以及,上述障碍物确定模块1140,用于根据上述第t时间点对应的待测点云Cdt和上述第t时间点对应的安全区域Rt,确定在上述第t时间点上述运动对象的障碍物。
在示例性的实施例中,图12示出本公开另一实施例中障碍物的检测装置的结构示意图。请参见图12:
在示例性的实施例中,基于前述方案,上述激光雷达设置于牵引工具,上述牵引工具与上述运动对象柔性连接;上述整体点云确定模块1110,具体用于:根据上述激光雷达与上述牵引工具之间的坐标转换矩阵,将上述激光雷达在第t时间点获取到的点云数据转换至上述牵引工具对应的坐标系,得到上述第t时间点对应的整体点云Cwt。
在示例性的实施例中,基于前述方案,上述障碍物检测装置1100还包括:矩阵确定模块1150。
其中,上述矩阵确定模块1150,用于在上述对象点云确定模块1120根据上述第t时间点对应的旋转矩阵,以及运动对象对应的标准点云,确定上述第t时间点对应的对象点云Cot之前,将上述运动对象的至少一个局部作为匹配部位;在第t-1时间点对应的整体点云Cwt-1中,确定出上述匹配部位对应的局部点云C’wt-1;其中,t取值大于1;在上述第t时间点对应的整体点云Cwt中,确定出上述匹配部位对应的局部点云C’wt;以及,根据上述匹配部位对应的局部点云C’wt-1和上述局部点云C’wt,确定上述第t时间点对应的旋转矩阵。
在示例性的实施例中,基于前述方案,在上述对象点云确定模块1120根据上述第t时间点对应的旋转矩阵,以及运动对象对应的标准点云,确定上述第t时间点对应的对象点云Cot之前,上述矩阵确定模块1150,还用于按照预设步长生成m个初始化变换矩阵[Tg1,....,Tgm]以及,将第k个初始化变换矩阵作用于上述运动对象对应的标准点云Ps上,得到转换后的标准点云P’s;其中,m取值为正整数,k取值为不大于m的整数;获取在初始状态下由上述激光雷达所获取的整体点云Cw0;以及,将上述转换后的标准点云P’s与上述整体点云Cw0进行匹配计算,并将满足预设要求的初始化变换矩阵确定为初始旋转矩阵。
在示例性的实施例中,基于前述方案,上述待测点云确定模块1130,包括:第一确定单元11301、栅格化单元11302、第二确定单元11303以及第三确定单元11304。
其中,上述第一确定单元11301,用于在牵引工具对应的坐标系中,确定三维目标区域;其中,上述三维目标区域的尺寸与上述运动对象在上述第t时间点的最大包络尺寸相关;上述栅格化单元11302,用于对上述三维目标区域进行栅格化,得到原始栅格集;上述第二确定单元11303,用于根据上述整体点云Cwt向上述原始栅格集进行投影得到的投影结果,在上述原始栅格集中确定出目标栅格集,其中,上述目标栅格集中每个栅格均包含上述整体点云Cwt的投影点云;上述第二确定单元11303还用于:对于上述目标栅格集中的第s个栅格,在上述原始栅格集中确定出距离上述第s个栅格预设步长内的栅格子集,得到第s栅格子集;以及,上述第三确定单元11304,还用于根据上述对象点云Cot在上述第s栅格子集中的投影结果,确定上述整体点云Cwt中第s部分点云Cwts是否属于上述第t时间点对应的待测点云Cdt;其中,上述第s部分点云Cwts为上述整体点云Cwt在上述第s个栅格中的投影点云。
在示例性的实施例中,基于前述方案,上述第三确定单元11304,具体用于:在上述对象点云Cot在上述第s栅格子集中不存在投影点云的情况下,确定上述整体点云Cwt中第s部分点云Cwts属于上述第t时间点对应的待测点云Cdt;在上述对象点云Cot在上述第s栅格子集中存在投影点云的情况下,确定上述整体点云Cwt中第s部分点云Cwts不属于上述第t时间点对应的待测点云Cdt。
在示例性的实施例中,基于前述方案,上述装置还包括:区域确定模块1170。
其中,上述区域确定模块1170,用于:根据上述对象点云Cot,确定在上述第t时间点上述运动对象中最大外廓边以及上述最大外廓边与水平面之间夹角,以及,根据上述最大外廓边与水平面之间夹角确定安全区域Rt的宽度;根据上述第t时间点对应的旋转矩阵以及上述第t时间点牵引工具的运动方向,确定上述第t时间点运动对象的运动方向,根据上述运动对象的运动方向、运动速率以及预设时长确定安全区域Rt的长度;根据上述安全区域Rt的宽度和长度,确定上述第t时间点对应的安全区域Rt。
在示例性的实施例中,基于前述方案,上述障碍物确定模块1140,包括:第一确定单元11401、聚类单元11402以及第二确定单元11403。
其中,上述第一确定单元11401,用于确定上述第t时间点对应的安全区域Rt;上述聚类单元11402,用于对上述待测点云Cdt进行聚类处理,得到对应于至少一个待测目标的点云,以及根据上述至少一个待测目标的点云确定上述至少一个待测目标的外廓数据;以及,上述第二确定单元11403,用于根据上述至少一个待测目标的外廓数据,与上述安全区域Rt之间的位置关系,确定在上述第t时间点上述运动对象的障碍物。
在示例性的实施例中,基于前述方案,上述障碍物确定模块1140,包括:第三确定单元11404以及过滤单元11405。
其中,上述第三确定单元11404,用于在上述聚类单元11402对上述待测点云Cdt进行聚类处理之前,根据上述整体点云Cwt中的栅格高度,确定上述第t时间点对应的地面高度;以及,上述过滤单元11405,用于根据上述地面高度对上述第t时间点对应的待测点云Cdt进行过滤处理;其中,上述过滤处理之后的待测点云Cdt用于进行上述聚类处理。
在示例性的实施例中,基于前述方案,上述上述第二确定单元11403,具体用于:在上述位置关系为:存在至少一个待测目标的外廓于上述安全区域Rt之间存在交集的情况下,将存在交集的待测目标确定为上述第t时间点上述运动对象的障碍物。
在示例性的实施例中,基于前述方案,上述障碍物检测装置1100还包括:预警模块1160。
其中,上述预警模块1160,用于将不存在交集的待测目标确定为上述第t时间点上述运动对象的潜在障碍物;以及,根据上述潜在障碍物与上述运动对象之间的相对位置,以及上述运动对象的运动信息,确定关于上述潜在障碍物的预警信息。
需要说明的是,上述实施例提供的障碍物的检测装置在执行障碍物的检测方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的障碍物的检测装置与障碍物的检测方法实施例属于同一构思,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的障碍物的检测方法的实施例,这里不再赘述。
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本公开实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例方法的步骤。
图13示出本公开一实施例中电子设备的结构示意图。请参见图13所示,电子设备1300包括有:处理器1301和存储器1302。
本公开实施例中,处理器1301为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
在本公开实施例中,上述处理器1301具体用于:
根据激光雷达在第t时间点获取到的点云数据,确定上述第t时间点对应的整体点云Cwt;其中,t取值为正整数;根据上述第t时间点对应的旋转矩阵,以及运动对象对应的标准点云,确定上述第t时间点对应的对象点云Cot;根据上述第t时间点对应的整体点云Cwt和上述对象点云Cot,确定上述第t时间点对应的待测点云Cdt;以及,根据上述第t时间点对应的待测点云Cdt和上述第t时间点对应的安全区域Rt,确定在上述第t时间点上述运动对象的障碍物。
进一步地,上述激光雷达设置于牵引工具,上述牵引工具与上述运动对象柔性连接;
上述根据激光雷达在第t时间点获取到的点云数据,确定上述第t时间点对应的整体点云Cwt,包括:根据上述激光雷达与上述牵引工具之间的坐标转换矩阵,将上述激光雷达在第t时间点获取到的点云数据转换至上述牵引工具对应的坐标系,得到上述第t时间点对应的整体点云Cwt。
进一步地,上述处理器1301还具体用于:
在上述根据上述第t时间点对应的旋转矩阵,以及运动对象对应的标准点云,确定上述第t时间点对应的对象点云Cot之前,将上述运动对象的至少一个局部作为匹配部位;在第t-1时间点对应的整体点云Cwt-1中,确定出上述匹配部位对应的局部点云C’wt-1;其中,t取值大于1;在上述第t时间点对应的整体点云Cwt中,确定出上述匹配部位对应的局部点云C’wt;以及,根据上述匹配部位对应的局部点云C’wt-1和上述局部点云C’wt,确定上述第t时间点对应的旋转矩阵。
进一步地,上述处理器1301还具体用于:
在上述根据上述第t时间点对应的旋转矩阵,以及运动对象对应的标准点云,确定上述第t时间点对应的对象点云Cot之前,按照预设步长生成m个初始化变换矩阵[Tg1,....,Tgm]以及,将第k个初始化变换矩阵作用与上述运动对象对应的标准点云Ps上,得到转换后的标准点云P’s;其中,m取值为正整数,k取值为不大于m的整数;获取在初始状态下由上述激光雷达所获取的整体点云Cw0;以及,将上述转换后的标准点云P’s与上述整体点云Cw0进行匹配计算,并将满足预设要求的初始化变换矩阵确定为初始旋转矩阵。
进一步地,上述根据上述第t时间点对应的整体点云Cwt和上述对象点云Cot,确定上述第t时间点对应的待测点云Cdt,包括:在牵引工具对应的坐标系中,确定三维目标区域;其中,上述三维目标区域的尺寸与上述运动对象在上述第t时间点的最大包络尺寸相关;对上述三维目标区域进行栅格化,得到原始栅格集;根据上述整体点云Cwt向上述原始栅格集进行投影得到的投影结果,在上述原始栅格集中确定出目标栅格集,其中,上述目标栅格集中每个栅格均包含上述整体点云Cwt的投影点云;对于上述目标栅格集中的第s个栅格,在上述原始栅格集中确定出距离上述第s个栅格预设步长内的栅格子集,得到第s栅格子集;根据上述对象点云Cot在上述第s栅格子集中的投影结果,确定上述整体点云Cwt中第s部分点云Cwts是否属于上述第t时间点对应的待测点云Cdt;其中,上述第s部分点云Cwts为上述整体点云Cwt在上述第s个栅格中的投影点云。
进一步地,根据上述对象点云Cot在上述第s栅格子集中的投影结果,确定上述整体点云Cwt中第s部分点云Cwts是否属于上述第t时间点对应的待测点云Cdt,包括:在上述对象点云Cot在上述第s栅格子集中不存在投影点云的情况下,确定上述整体点云Cwt中第s部分点云Cwts属于上述第t时间点对应的待测点云Cdt;在上述对象点云Cot在上述第s栅格子集中存在投影点云的情况下,确定上述整体点云Cwt中第s部分点云Cwts不属于上述第t时间点对应的待测点云Cdt。
进一步地,上述处理器1301还具体用于:
在上述根据上述第t时间点对应的待测点云Cdt和上述第t时间点对应的安全区域Rt,确定在上述第t时间点上述运动对象的障碍物之前,根据上述对象点云Cot,确定在上述第t时间点上述运动对象中最大外廓边以及上述最大外廓边与水平面之间夹角,以及,根据上述最大外廓边与水平面之间夹角确定安全区域Rt的宽度;根据上述第t时间点对应的旋转矩阵以及上述第t时间点牵引工具的运动方向,确定上述第t时间点运动对象的运动方向,根据上述运动对象的运动方向、运动速率以及预设时长确定安全区域Rt的长度;以及,根据上述安全区域Rt的宽度和长度,确定上述第t时间点对应的安全区域Rt。
进一步地,上述根据上述第t时间点对应的待测点云Cdt和上述第t时间点对应的安全区域Rt,确定在上述第t时间点上述运动对象的障碍物,包括:确定上述第t时间点对应的安全区域Rt;对上述待测点云Cdt进行聚类处理,得到对应于至少一个待测目标的点云,以及根据上述至少一个待测目标的点云确定上述至少一个待测目标的外廓数据;以及,根据上述至少一个待测目标的外廓数据,与上述安全区域Rt之间的位置关系,确定在上述第t时间点上述运动对象的障碍物。
进一步地,上述处理器1301还具体用于:
在上述对上述待测点云Cdt进行聚类处理之前,根据上述整体点云Cwt中的栅格高度,确定上述第t时间点对应的地面高度;以及,根据上述地面高度对上述第t时间点对应的待测点云Cdt进行过滤处理;其中,上述过滤处理之后的待测点云Cdt用于进行上述聚类处理。
进一步地,上述根据上述至少一个待测目标的外廓数据,与上述安全区域Rt之间的位置关系,确定在上述第t时间点上述运动对象的障碍物,包括:在上述位置关系为:存在至少一个待测目标的外廓于上述安全区域Rt之间存在交集的情况下,将存在交集的待测目标确定为上述第t时间点上述运动对象的障碍物。
进一步地,上述处理器1301还具体用于:
将不存在交集的待测目标确定为上述第t时间点上述运动对象的潜在障碍物;
在上述根据上述第t时间点对应的待测点云Cdt和上述第t时间点对应的安全区域Rt,确定在上述第t时间点上述运动对象的障碍物之后,根据上述潜在障碍物与上述运动对象之间的相对位置,以及上述运动对象的运动信息,确定关于上述潜在障碍物的预警信息。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在本公开的一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本公开实施例中的方法。
一些实施例中,电子设备1300还包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:显示屏1304、摄像头1305和音频电路1306中的至少一种。
外围设备接口1303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在本公开的一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在本公开的一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现。本公开实施例对此不作具体限定。
显示屏1304用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1304是触摸显示屏时,显示屏1304还具有采集在显示屏1304的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1304还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在本公开的一些实施例中,显示屏1304可以为一个,设置电子设备1300的前面板;在本公开的另一些实施例中,显示屏1304可以为至少两个,分别设置在电子设备1300的不同表面或呈折叠设计;在本公开的一些实施例中,显示屏1304可以是柔性显示屏,设置在电子设备1300的弯曲表面上或折叠面上。甚至,显示屏1304还可以设置成非矩形的不规则图形,也即异形屏。显示屏1304可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头1305用于采集图像或视频。可选地,摄像头1305包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在本公开的一些实施例中,摄像头1305还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1306可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备1300的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。
电源1307用于为电子设备1300中的各个组件进行供电。电源1307可以是交流电、直流电、一次性电池或可充电电池。当电源1307包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本公开实施例中示出的电子设备结构框图并不构成对电子设备1300的限定,电子设备1300可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本公开中的具体含义。此外,在本公开的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,依本公开权利要求所作的等同变化,仍属本公开所涵盖的范围。