该系列主要为对前期工作进行梳理,以后所进行的工作也会部分在此记录。
使用NDT(正态分布变换)进行点云建图和定位
前言
定位模块是自动驾驶最核心的模块之一,定位又包括全局定位和局部定位,对于自动驾驶,其精度需要达到厘米级别。本文我们将讨论全局定位,即确定无人车在全局下的位置。
传统的AGV使用一类SLAM(simultaneous localization and mapping)的方法进行同时建图和定位,但是该方法实现代价高,难度大,难以应用到自动驾驶领域。自动驾驶车辆行驶速度快,距离远,环境复杂,使得SLAM的精度下降,同时远距离的行驶将导致实时构建的地图偏移过大。因此,如果在已有高精度的全局地图地图的情况下进行无人车的定位,将极大的简化该问题。
因此,将问题分为独立的两部分:建图Mapping和定位Matching。NDT是一种点云配准算法,可同时用于点云的建图和定位。
概要
本文包含以下内容:NDT配准的原理
应用:NDT-Mapping
NDT-Matching
1. NDT配准的原理
以下是一张用于配准的target_map,即已经建好的点云地图
以下是实时扫描到的一帧点云
以下是两幅点云进行配准之后的结果,中间输出的坐标轴为当前位置(x y z Y P R)
通过不断的比对实时扫描到的点云和已经建好的全局点云地图,我们就可以持续获得我们当前的位置。ICP(迭代最近点)等配准算法通过对所有的点