1.本发明涉及计算机视觉图像处理技术领域,尤其涉及一种高精度地图生成方法、装置、设备及存储介质。
背景技术:2.随着人工智能技术的发展,通过融合激光雷达,摄像头,gps多传感器进行建图定位,是智能无人车自动导航的重要基础。现有的普通导航地图一般为道路级地图,包含地图信息少,精度为米级。而高精度地图可以精确到10-20cm级别,并且包含交通标志、车道中心线、斑马线等地图信息,可以为自动驾驶提供更全面的数据基础。
3.现有的基于激光雷达的高精度地图建图方式,在遇到长距离相似场景例如隧道时,会出现地图漂移现象,鲁棒性差,易受单传感器误差影响。通常的高精地图建图方式,采用搭载单/双目/深度相机或2d/3d激光雷达的设备进行数据采集,再对采集到的数据进行相邻数据帧匹配,通常采用icp算法(iterative closest point)或ndt(normal distributions transform)匹配算法进行计算,获得设备(即集成有上述传感器、相机或雷达的装置,也相当于自动驾驶的车体)经过的轨迹(轨迹包括:设备的三维位置和姿态,简称位姿),一般将相邻帧匹配计算得到的轨迹称为前端里程计。通过前端里程计拼接相机或激光雷达获得的点云数据,就可以获得局部点云地图。由于前端里程计由相邻帧数据计算得来,不可避免会存在误差,在设备前进过程中,误差也会不断累积。为了防止累积误差过大导致地图偏移,需要对局部地图中所有点云数据进行联合优化,其中可能还会加入imu(inertial measurement unit)数据(包括加速度和角速度)、rtk(real
ꢀ‑ꢀ
time kinematic)数据(即实时动态测量技术,是以载波相位观测为根据的实时差分gps技术,可以输出1-2cm精度经纬高数据的传感器)、回环检测数据等进行辅助优化,该联合优化部分通常被成为后端优化线程。最后利用优化出来的轨迹拼接对应点云数据,得到完整地图,这个过程被称为地图处理线程。此外,上文提到的回环检测是一种常见的抑制累积误差的手段。具体的,设备在采集数据过程中会经过曾经到达过的地点,此时通过回环检测判断当前帧点云数据和历史地图数据的相似性,如果相似性大于阈值,则判断设备到达历史轨迹点。此时会启用相邻数据帧匹配策略,通过icp或其他匹配算法,计算当前帧到历史地图的位置姿态变换,用以消除累积误差。因此一个高精地图建图方式中,通常包含前端里程计、后端优化、回环检测、地图处理等线程。
4.在上述的前端里程计过程中,通过相邻帧数据匹配方式,得到位姿估计值,若采取icp算法,相邻帧之间的所有点到点之间进行匹配,容易造成误匹配,降低位姿估计的精度,进而影响地图精度,且计算量很大;若采取ndt算法保存体素地图,会导致无法进行回环检测,大大影响长距离建图精度。同时,大多数算法在回环检测线程直接采用icp算法作为匹配相似帧策略,回环检测精度低,鲁棒性差,例如在激光雷达扫描角度相差较大的场景下无法形成回环。
技术实现要素:5.本发明公开了一种高精度地图生成方法、装置、设备及存储介质,解决了现有地图生成方法精度低、鲁棒性差,导致位姿估计不准确,进而影响地图生成精度的问题。
6.本发明实施例的第一方面,提供一种高精度地图生成方法,包括:获取当前激光点云帧数据,以及imu数据;若当前激光点云帧数据是激光雷达采集的第一帧数据,则将其作为第一个关键帧,通过所述第一个关键帧生成点云地图,重新执行上述步骤;否则,根据最近关键帧到当前激光点云帧之间的imu数据和上一激光点云帧经后端优化的位姿,估计得到当前激光点云帧的第一位姿估计值;根据所述第一位姿估计值以及扫描当前激光点云时间内对应的imu数据,对当前激光点云进行去畸变,得到去畸变后的当前激光点云帧,并从中提取出特征点;根据去畸变后的当前激光点云帧得到当前描述子,根据所述当前描述子判断是否检测出回环,若检测出回环,则估计得到当前激光点云帧的第二位姿估计值;否则,未检测到回环,将第二位姿估计值置为空;根据所述第一位姿估计值和所述特征点得到第三位姿估计值;将所述第二位姿估计值、第三位姿估计值输入因子图,得到当前帧的后端优化的位姿估计值;判断当前激光点云帧是否可以作为关键帧,若可以,则根据所述当前帧的后端优化的位姿估计值将所述去畸变后的当前激光点云帧拼接到历史点云地图中,去除动态物体,生成静态点云地图;若不可以,则重新执行上述步骤,直到停止生成地图。
7.本发明实施例的第二方面,提供一种高精度地图生成装置,包括:采集模块,用于获取当前激光点云帧数据,以及imu数据;imu预处理模块,用于若当前激光点云帧数据是激光雷达采集的第一帧数据,则将其作为第一个关键帧,发送至地图生成模块,并返回采集模块;否则,根据最近关键帧到当前激光点云帧之间的imu数据和后端优化模块反馈的上一激光点云帧经后端优化的位姿,估计得到当前激光点云帧的第一位姿估计值;前端里程计模块,用于根据所述第一位姿估计值以及扫描当前激光点云时间内对应的imu数据,对当前激光点云进行去畸变,得到去畸变后的当前激光点云帧,并从中提取出特征点;回环检测模块,用于根据去畸变后的当前激光点云帧得到当前描述子,根据所述当前描述子判断是否检测出回环,若检测出回环,则估计得到当前激光点云帧的第二位姿估计值;否则,未检测到回环,将第二位姿估计值置为空;后端优化模块,用于根据所述第一位姿估计值和所述特征点得到第三位姿估计值;将所述第二位姿估计值、第三位姿估计值输入因子图,得到当前帧的后端优化的位姿估计值;地图生成模块,用于若当前帧为第一帧,则通过所述第一个关键帧生成点云地图,否则,判断当前帧是否可以作为关键帧,若可以,则根据当前帧的后端优化的位姿估计值将所述去畸变后的当前激光点云帧拼接到历史点云地图中,去除动态物体后生成静态点云地图;若不可以,则返回采集模块,直到停止生成地图。
8.本发明实施例的第三方面,提供一种地图生成设备,包括:存储器、处理器以及计
算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行本发明实施例中的任一所述的高精度地图生成方法。
9.本发明实施例的第四方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本发明实施例中的任一所述的高精度地图生成方法。
10.有益效果:本发明根据离当前激光点云帧时间上最近的关键帧到当前激光点云帧之间的imu数据和上一激光点云帧经后端优化的位姿进行估计,得到当前激光点云帧的第一位姿估计值;根据第一位姿估计值以及雷达扫描当前激光点云时间内对应的imu数据,对当前激光点云进行去畸变,得到去畸变后的当前激光点云帧,并从中提取出特征点;由于采用了经后端优化后的位姿对第一位姿进行估计,使得估计的第一位姿值更加精确,也使得去畸变后的当前激光点云帧更加准确;根据去畸变后的当前激光点云帧得到当前描述子;根据当前描述子判断是否检测出回环,若检测出回环,则估计得到当前激光点云帧的第二位姿估计值,否则,未检测到回环,将第二位姿估计值置为空;本发明构建描述子来检测回环,而不是根据帧中所有的点来检测回环,减少误检率,提高回环检测精度,鲁棒性好,进而提高后续生成点云地图的精度。
11.再根据第一位姿估计值和所述特征点得到第三位姿估计值;将第二位姿估计值、第三位姿估计值输入因子图,得到当前激光点云帧经后端优化的位姿;判断当前激光点云帧是否可以作为关键帧,若可以作为关键帧,则根据其后端优化的位姿将所述去畸变后的当前激光点云拼接到历史点云地图中,去除动态物体后生成静态点云地图。
12.本发明不仅接收imu数据,还接收经过后端优化处理的位姿,一同对当前激光点云进行第一位姿估计,得到的第一位姿估计值更加准确;然后对产生运动畸变的当前激光点云进行矫正处理,并提取特征点,进而矫正后的位姿以及提取的特征点更加精确;通过描述子,降低误匹配,提高了位姿估计的精度,进而提高生成地图的精度,且计算量很小。
13.本发明提供的高精度地图生成装置、设备和存储介质同样具备上述有益效果。
附图说明
14.图1是本发明实施例提供的一种高精度地图生成方法示意图;图2是本发明实施例提供的一种高精度地图生成装置示意图。
具体实施方式
15.以下结合附图和实施例对本发明的一种高精度地图生成方法、装置、设备及存储介质做进一步的说明和解释。
16.所述关键帧为经筛选后用于生成点云地图的激光点云帧;所述点云地图由若干关键帧生成。
17.如图1所示,本实施例提供的一种高精度地图生成方法,包括如下步骤:步骤一,获取激光雷达采集的激光点云数据作为当前激光点云帧(以下简称当前帧)以及imu传感器采集的imu数据;进一步的,还可以一并获取rtk传感器采集的当前经纬高数据;具体的,imu传感器采集到的imu数据包括设备的角速度和加速度;此处的设备为
集成有传感器、雷达的装置,也可以理解为自动驾驶的车体。
18.激光雷达每扫描一圈采集的激光点称为一帧激光点云数据,由于激光点云数据采集频率低于imu数据采集频率,所以在两帧激光点云数据之间会包含多组imu数据。
19.将激光雷达和imu传感器开始采集后每次采集的数据分别保存。其中,imu数据均保存到数据处理队列opt_queue中。
20.步骤二,若当前激光点云帧数据是激光雷达采集的第一帧数据,则将其作为第一个关键帧,通过所述第一个关键帧生成点云地图,重新执行上述步骤;否则,根据最近关键帧到当前激光点云帧之间的imu数据和上一激光点云帧经后端优化的位姿,估计得到当前激光点云帧的第一位姿估计值;也就是:若所述激光点云数据不是激光雷达采集的第一帧数据,则根据第k-1关键帧到当前激光点云帧之间的imu数据、上一激光点云帧经后端优化后的位姿进行估计,得到当前激光点云帧的第一位姿估计值;否则,将所述激光点云数据作为第一帧关键帧保存,将其对应的优化后的位姿设置为单位矩阵,通过该第一帧关键帧生成点云地图(通过后续的地图生成模块生成),返回步骤一,直到停止生成地图。
21.本步骤在imu预处理模块中执行。
22.关键帧为用于生成高精度地图的激光点云帧,是按照设定的距离从所有已采集的激光点云帧中选择的特征点(即下文提及的角特征点和面特征点)较多的点云帧,通过关键帧生成地图,是为了降低地图的存储空间及计算量。将关键帧编号,编号范围为1~k-1,本发明后续需要判断当前激光点云帧是否可以作为第k帧关键帧,若可以,则用于拼接到历史点云地图中,生成新的点云地图;位姿即自动驾驶的车体的位姿,也可以简称为设备位姿。
23.优化后的位姿设置为单位矩阵表示设备位姿没有变换。
24.具体的,所述根据第k-1关键帧到当前激光点云帧之间的imu数据、后端优化后的位姿进行估计,得到当前激光点云帧的第一位姿估计值,包括:根据第k-1关键帧到当前激光点云帧时间戳之间的imu数据,以及后端优化模块传来的优化后的位姿,进行联合的非线性优化,目标为获得最大概率的当前激光点云帧的第一位姿估计值,此处的优化算法采用高斯牛顿法;步骤三,根据所述第一位姿估计值以及扫描当前激光点云时间内对应的imu数据,对当前帧的激光点云进行去畸变,得到去畸变后的当前帧激光点云数据,并从中提取出特征点。
25.本步骤在前端里程计模块中执行。
26.对当前帧的激光点云进行去畸变,得到去畸变后的当前帧激光点云数据,并从中提取出特征点,包括:(1)计算当前激光点云帧中的每个点被激光雷达扫描到的时间;具体的,激光雷达在扫描一圈的时间范围内也对应有imu数据;每一帧激光雷达点云数据的时间戳为开始扫描的时刻,在每次扫描结束时,激光雷达会发送一个结束时刻,因此,可以算出每个点被扫描到的时间。
27.(2)根据扫描当前激光点云时间内对应的imu数据,以及每个点的所述扫描到的时间,计算每个点在激光雷达中的相对旋转量;根据k-1关键帧到当前帧的位姿变化,计算每
个点的相对位移量;根据所述相对旋转量和相对位移量,对当前帧的激光点云进行去畸变,得到去畸变后的当前帧激光点云数据;即分别将相对旋转量和相对位移量加到激光点的原始点云坐标中,将因设备运动而产生观测畸变的点纠正到正确的位姿;其中,相对旋转量=扫描当前激光点云时间内对应的imu数据中的角速度*(每个点扫描到的时间-开始扫描时间);相对位移量=速度*(每个点扫描到的时间-开始扫描时间),速度=(所述第一位姿估计值中的三维位置-第k-1关键帧对应的后端优化后的位姿中的三维位置)/当前帧与第k-1关键帧的两帧时间间隔。
28.(3)对去畸变后的当前帧激光点云数据,计算每个点的曲率,曲率超过角阈值的点作为角特征点提取,曲率小于面阈值的点作为面特征点提取,最终得到了角特征点集合和面特征点集合,统称为特征点集合;其中,曲率越小,代表当前点属于平面(墙面、地面)的可能性较大,曲率越大,代表当前点属于物体边缘的可能性越大。
29.计算每个点的曲率,示例为:计算当前点与邻近的若干个点(例如,10个点)的深度差值之和。角阈值大于面阈值,均根据经验值得到;进一步地,在提取特征点时,将点云按照角度划分的区域均匀取点,防止特征点过于聚集。
30.比如,将扫描一圈的即360度的点云数据划分为6个区域,每个区域中的角特征点和面特征点尽量均匀分布,若某个区域中角特征点过多,则去除一部分曲率较小的角特征点;若某个区域中面特征点过多,则去除一部分曲率较大的面特征点。这样可以防止特征点过于集中到某些区域。
31.另外,从去畸变后的当前帧激光点云数据中分离出地面点,在去畸变后的当前帧激光点云数据为所有地面点做标记。
32.步骤四,根据去畸变后的当前激光点云帧得到当前描述子,根据所述当前描述子判断是否检测出回环,若检测出回环,则估计得到当前激光点云帧的第二位姿估计值;否则,未检测到回环,将第二位姿估计值置为空;具体的:根据去畸变后的当前帧激光点云帧得到当前描述子,根据所述当前描述子判断是否检测出回环,若检测出回环,则从历史点云地图中选择与去畸变后的当前帧激光点距离小于设定距离阈值的点作为匹配点对,估计得到第二位姿估计值;否则,将第二位姿估计值置为空,执行下一步;通过上述回环检测,对初始的位姿估计进行了优化,得到第二位姿估计值,使得后续生成地图精度更高。
33.本步骤在回环检测模块中执行。历史点云地图为当前已保存的最新的点云地图,相对于本方法将要生成的地图为历史地图。
34.具体的,根据去畸变后的当前帧激光点云帧得到描述子,包括:将去畸变后的当前帧激光点云帧数据,按照雷达扫描角度、深度划分为若干个扇形区域,记录每个区域中所有点的发射强度的最大值,将所有区域中的发射强度的最大值
保存到数组中,数组的长度等于划分区域的个数;比如划分为120个扇形区域,则得到一个长度为120的数组,数组中的值即反射强度,将该数组简称为描述子。
35.生成历史地图的每个关键帧也对应了一个描述子。
36.即,所述描述子为:按照雷达扫描角度、深度划分为若干个扇形区域,记录每个区域中所有激光点的发射强度的最大值,将所有区域中的发射强度的最大值组成的数组。
37.具体的,估计得到第二位姿估计值,步骤包括:(1)通过所述第一位姿估计值将去畸变后的当前帧激光点云投影到历史点云地图的坐标系中,判断投影后的当前帧激光点云与历史点云地图的重合度是否大于重合度阈值,若大于,则说明初步检测到回环,执行下一步(2),否则,判断未检测到回环,说明没有到达过历史点云地图中的场景。
38.例如,设定当前帧激光点云中有80%的点在历史点云地图范围内,则认为检测到回环,说明有可能到达过历史点云地图中的场景,此时设定重合度阈值为80%。此步骤,先进行重合度判断,可以提高回环的检测精度和效率。
39.(2)将所述当前描述子与历史点云地图中的每个关键帧对应的描述子分别进行比较,得到每个关键帧对应的相似度,如果某相似度大于回环阈值,则判断为回环,在对应关键帧中选择与去畸变后的当前帧激光点的距离小于设定距离阈值的点,组成匹配点对,根据帧间匹配算法如:icp算法(iterative closest point)计算当前激光点云帧的第二位姿估计值;否则,判断为未检测到回环。
40.需要说明的是,估计得到第二位姿估计值的步骤可以只包括上述步骤(2)的过程。在回环检测部分,现有技术直接通过icp算法进行回环检测的匹配,误检率较高。本发明通过点云的反射强度数据构建描述子,将当前描述子与历史点云地图中的每个关键帧的描述子进行比较,判断是否回环,能够提高回环检测精度,减少误检率,通过检测到回环,进一步优化位姿,进而提高了后续生成点云地图的精度。
41.在执行上述步骤(2)之前还可以先进行步骤(1)中的重合度判断,可以进一步提高回环的检测精度和效率。
42.步骤五,根据所述第一位姿估计值和所述特征点得到第三位姿估计值;将所述第二位姿估计值、第三位姿估计值输入因子图,得到当前帧的后端优化的位姿估计值。
43.本步骤在后端优化模块中执行。
44.所述得到第三位姿估计值,具体包括:(1)根据最接近当前帧的若干关键帧拼接成局部地图。具体的:拼接时,最接近当前帧的若干关键帧对应的位姿值为后端优化模块优化过的精确位姿值。
45.具体的:如果步骤四中未发现回环,则是提取最接近当前帧的设定距离或设定时间内的若干个关键帧拼接成局部地图,如果发现回环,则提取最接近当前帧的设定距离或设定时间内的若干个关键帧以及提取闭环容器中的回环对应的历史关键帧拼接成局部地图,这样可以提高地图生成精度;闭环容器中保存有检测出回环的对应的历史关键帧。
46.(2)对局部地图进行体素滤波,并下采样,即降低局部地图中点数量以降低计算时间,然后将当前帧中的特征点通过所述第一位姿估计值转换到局部地图坐标系中,在局部地图中搜索特征点的最近点,通过因子图计算得到所述当前激光点云帧的第三位姿估计值。
47.具体的:对于角特征点,搜索局部地图中最近的若干个点(如2个或者3个点)组成线段,计算点到线的最小距离,作为优化所需的点线残差;对于面特征点,则搜索最近若干个点(如5个点),以这些点构建平面,计算点到面的最小距离,作为优化所需的点面残差。计算完成后将所有残差(所有角特征点和面特征点对应的残差)输入gtsam库构建的非线性优化器即因子图(现有的)中,输出当前激光点云帧的第三位姿估计值。
48.进一步地,对该第三位姿估计值进行速度判断,如果第k-1关键帧到当前帧的运动速度与第k-2关键帧到k-1关键帧的运动速度的比值大于预设的速度比值(如2倍关系),则判断当前帧出现退化现象,即在长距离相似场景如隧道中会出现的轨迹漂移现象。然后舍弃计算出的第三位姿估计值,根据匀速重新计算第三位姿估计值,即:默认使用匀速模型,将k-2关键帧到k-1关键帧的位姿变换作为k-1关键帧到当前帧的位姿变换;其中,k-1关键帧到当前帧的运动速度为:第k-1关键帧到当前帧的位姿变换/当前帧到第k-1关键帧的时间差;根据匀速重新计算第三位姿估计值,具体的为:重新计算的第三位姿估计值=第k-1关键帧的位姿+(k-2关键帧到k-1关键帧的速度)*(当前帧到k-1关键帧的时间差)。
49.因子图中还存储之前所有的历史位姿数据,最后通过gtsam库对上述第二位姿估计值、第三位姿估计值进行联合因子图优化,这样通过因子图得到后端优化后的位姿,称为:当前激光点云帧的后端优化后的位姿估计值,作为最终当前帧的位姿数据保存为地图的轨迹;本发明的因子图输入的参数量较少,因此计算量较少。
50.进一步的,为了使得后端优化后的位姿更加精确,可根据步骤一获取的rtk传感器采集的当前经纬高数据,与k-1关键帧的经纬高数据联合计算出k-1关键帧到当前帧的位姿变换矩阵(即通过gps信息得到的位姿变换),再将位姿变换矩阵与上述第二位姿估计值、第三位姿估计值一并输入因子图,得到更加精确的后端优化后的位姿。
51.步骤六、判断当前激光点云帧是否可以作为关键帧,若可以,则根据所述当前帧的后端优化的位姿估计值将所述去畸变后的当前激光点云帧拼接到历史点云地图中,去除动态物体,生成静态点云地图;若不可以,则重新执行上述步骤,直到停止生成地图。
52.其中,判断当前帧是否为关键帧的方法:若当前帧与k-1关键帧的距离大于关键帧阈值(比如一米),并且当前帧中特征点的数量大于设定的特征点阈值,则判断为关键帧。根据当前帧的后端优化后的位姿中的三维位置与k-1关键帧优化后三维位置的差值计算距离;通过去除动态物体,例如车和行人,得到静态的高精点云地图。去除动态物体采用现有的方法。
53.本发明根据离当前激光点云帧时间上最近的关键帧到当前激光点云帧之间的imu数据和上一激光点云帧经后端优化的位姿进行估计,得到当前激光点云帧的第一位姿估计值;根据第一位姿估计值以及雷达扫描当前激光点云时间内对应的imu数据,对当前激光点云进行去畸变,得到去畸变后的当前激光点云帧,并从中提取出特征点;由于采用了经后端优化后的位姿对第一位姿进行估计,使得估计的第一位姿值更加精确,也使得去畸变后的当前激光点云帧更加准确;根据去畸变后的当前激光点云帧得到当前描述子;根据当前描述子判断是否检测
出回环,若检测出回环,则估计得到当前激光点云帧的第二位姿估计值,否则,未检测到回环,将第二位姿估计值置为空;本发明构建描述子来检测回环,而不是根据帧中所有的点来检测回环,减少误检率,提高回环检测精度,鲁棒性好,进而提高点云地图的精度。
54.再根据第一位姿估计值和所述特征点得到第三位姿估计值;将第二位姿估计值、第三位姿估计值输入因子图,得到当前激光点云帧经后端优化的位姿;判断当前激光点云帧是否可以作为关键帧,若可以作为关键帧,则根据其后端优化的位姿将所述去畸变后的当前激光点云拼接到历史点云地图中,去除动态物体后生成静态点云地图。
55.本发明不仅接收imu数据,还接收经过后端优化处理的位姿,一同对当前激光点云进行第一位姿估计,得到的第一位姿估计值更加准确;然后对产生运动畸变的当前激光点云进行矫正处理,并提取特征点,进而矫正后的位姿以及提取的特征点更加精确;通过描述子,降低误匹配,提高了位姿估计的精度,进而提高生成地图的精度,且计算量很小。
56.如图2所示,本发明实施例还提供一种高精度地图生成装置,包括:采集模块,用于获取当前激光点云帧数据,以及imu数据;imu预处理模块,用于若当前激光点云帧数据是激光雷达采集的第一帧数据,则将其作为第一个关键帧,发送至地图生成模块,并返回采集模块;否则,根据最近关键帧到当前激光点云帧之间的imu数据和后端优化模块反馈的上一激光点云帧经后端优化的位姿,估计得到当前激光点云帧的第一位姿估计值;前端里程计模块,用于根据所述第一位姿估计值以及扫描当前激光点云时间内对应的imu数据,对当前激光点云进行去畸变,得到去畸变后的当前激光点云帧,并从中提取出特征点;回环检测模块,用于根据去畸变后的当前激光点云帧得到当前描述子,根据所述当前描述子判断是否检测出回环,若检测出回环,则估计得到当前激光点云帧的第二位姿估计值;否则,未检测到回环,将第二位姿估计值置为空;后端优化模块,用于根据所述第一位姿估计值和所述特征点得到第三位姿估计值;将所述第二位姿估计值、第三位姿估计值输入因子图,得到当前帧的后端优化的位姿估计值;地图生成模块,用于若当前帧为第一帧,则通过所述第一个关键帧生成点云地图,否则,判断当前帧是否可以作为关键帧,若可以,则根据当前帧的后端优化的位姿估计值将所述去畸变后的当前激光点云帧拼接到历史点云地图中,去除动态物体后生成静态点云地图;若不可以,则返回采集模块,直到停止生成地图。
57.各个模块中采用的具体方法步骤同上述地图生成方法,此处不再赘述。
58.本发明实施例提供的一种高精度地图生成装置,imu预处理模块根据离当前激光点云帧时间上最近的关键帧到当前激光点云帧之间的imu数据和上一激光点云帧经后端优化的位姿进行估计,得到当前激光点云帧的第一位姿估计值;前端里程计模块根据第一位姿估计值以及雷达扫描当前激光点云时间内对应的imu数据,对当前激光点云进行去畸变,得到去畸变后的当前激光点云帧,并从中提取出特征点;由于采用了经后端优化后的位姿对第一位姿进行估计,使得估计的第一位姿值更加精确,也使得去畸变后的当前激光点云帧更加准确;回环检测模块根据去畸变后的当前激光点云帧得到当前描述子;根据当前描述子判断是否检测出回环,若检测出回环,则估计得到当前激光点云帧的第二位姿估计值,
否则,未检测到回环,将第二位姿估计值置为空;本发明构建描述子来检测回环,而不是根据帧中所有的点来检测回环,减少误检率,提高回环检测精度,鲁棒性好,进而提高点云地图的精度。后端优化模块根据第一位姿估计值和所述特征点得到第三位姿估计值;将第二位姿估计值、第三位姿估计值输入因子图,得到当前激光点云帧经后端优化的位姿;地图生成模块判断当前激光点云帧是否可以作为关键帧,若可以作为关键帧,则根据其后端优化的位姿将所述去畸变后的当前激光点云拼接到历史点云地图中,去除动态物体后生成静态点云地图。
59.本发明不仅接收imu数据,还接收经过后端优化处理的位姿,一同对当前激光点云进行第一位姿估计,得到的第一位姿估计值更加准确;然后对产生运动畸变的当前激光点云进行矫正处理,并提取特征点,进而矫正后的位姿以及提取的特征点更加精确;通过描述子,降低误匹配,提高了位姿估计的精度,进而提高生成地图的精度,且计算量很小。
60.本发明实施例提供了一种地图生成设备,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行上述实施例中的任一所述的高精度地图生成方法。
61.本发明实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现上述实施例中的任一所述的高精度地图生成方法。
62.以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。