1 前置知识

2 正态分布变换(NDT)

以往的激光匹配方法有ICP方法及基于特征提取的方法,基于ICP方法因为需要绝对对应有可能出现不能收敛的情况,基于特征方法大多数需要做额外的复杂数据预处理,论文作者提出了一种基于概率的方法,NDT匹配

2.1 基本思路

这里首先针对一帧单独的点云。
NDT通过局部正态分布的集合来构建一次激光扫描的所有2D点的分布。首先,将机器人周围的二维空间划分成固定大小的栅格,然后,对于每个栅格有三件事要做:

  1. 收集所有的2D点\(\bold x_{i=1...n}\)包含在这个格子里
  2. 计算每个格子的均值\(q=\frac{1}{n} \sum_i \bold x_i\)
  3. 计算每个格子的协方差矩阵\(\Sigma=\frac{1}{n}\sum_i {\bold x_i-\bold q)(\bold x_i-\bold q)^T}\)

每个格子的2D点样本的概率可以用正态分布来描述\(N(q,\Sigma)\)
image
这和占用栅格有点类似,都维护了平面内的有规律的子区域。但这两者不一样,占用栅格表示栅格被占据的概率,而NDT表示栅格中每个位置的分布情况。但这种描述还存在两个问题:

  1. 离散化过程中必然边界效应(即点落在栅格边界)。论文作者采取了一种办法,即使用四个重叠的栅格,分别是:

    • 第一个栅格按原始单元格的边长𝑙放置。
    • 第二个栅格水平移动 𝑙/2
    • 第三个栅格垂直移动 𝑙/2
    • 第四个栅格同时水平和垂直移动 𝑙/2
  2. 对于无噪声的世界,协方差矩阵将变得奇异并且不可求逆
    TODO...

2.2 扫描匹配

扫描匹配的目的是获取两帧激光帧的位姿变换参数,即平移和旋转\((\theta,t_x,t_y)\)。被给两帧扫描:

  1. 构建第一帧的NDT

  2. 初始化参数估计(通常置0或采用里程计数据)

  3. 对于第二帧的每个栅格,根据位姿变换参数映射2D点到第一帧的坐标系中

  4. 对于每次映射的点确定正态分布变换

  5. 通过评估每个被映射点的分布并求和来决定位姿变换参数的得分score

  6. 通过最优化score来计算一个新的参数估计。最优化方法使用牛顿法

  7. 回到步骤3直到满足收敛准则

posted on 2024-05-20 20:25  房东的猫hhhh  阅读(34)  评论(0编辑  收藏  举报