0. 论文链接


1. 论文概要

  • 提出一个生成3D环境模型,映射方法基于 八叉树 ,使用 概率估计
  • 提出一种 八叉树 压缩算法,以保证三维模型的紧凑
  • 三个重要的要求
    • 概率表示
    • 未映射区域的建模
    • 效率

2. 方法对比

  • 立方体网格(体素)法:
    • 缺点就是内存需求大,非常大
  • 点云方法:
    • 既不模拟自由空间,也不模拟未知区域,不能直接处理传感器噪声和动态对象
    • 仅适用于静态环境中的高精度传感器,且不需表示位置区域
    • 内存消耗无上限
  • 2.5D地图:

    • 不以体积表示环境,地图不表示实际环境
    • 在改进后也需要预先知道地图范围,更新更加复杂并且没有多分辨能力
    • 后续的映射不能更新细分现有卷,导致模型不正确
  • 八叉树
    • 延迟了映射卷的初始化,直到需要集成测量为止
    • 该论文提出的方法解决了 映射压缩或映射中的有节置信度的问题

3. 具体内容框架

3.1 八叉树

  • 八叉树中的每个节点表示立方体卷中包含的空间,即体素

  • 递归细分改卷为八个子卷,直到到达给定的最小的体素大小

  • 布尔设置:

    • 任何未初始化的节点都可以是空闲的或未知的

    • 若这个卷被占用时,八叉树中的对应节点开始被初始化

  • 明确所有的自由卷

  • 紧凑操作

  • 如果节点中的所有子节点具有相同的状态,则可以对于其进行修剪,减少需要维护的树中的节点数

  • 数据访问的复杂度方面

  • 限定八叉树的最大深度 D_{max} , 则随机节点的查找复杂度为常数

3.2 概率建模

  • 设置阈值,当达阈值时,认为体素被占用,否则认为其为自由的

    利用钳位更新的策略定义占用概率的上下限

  • 多种分辨率查询

    对内部节点实现多分辨率查询。当遍历到一个给定深度(非叶节点深度)时,对其进行更粗略的分割

3.3 八叉树压缩

  • 原因:传感器噪声和离散化误差可能导致不同的概率,从而干扰依赖于相同节点信息的压缩方案
  • 解决方法:钳位更新,每当体素的log-odds 值达到 l_{min},l_{max} ,即视为节点在方法中时稳定的

4. 实现细节

4.1 高效内存的实现

  • 节点位置及其踢死大小可以再遍历八叉树的时候重建,所以不显式存储该信息

  • 每个节点使用一个指向八个指针的数组的子指针

  • 只有当节点确实有节点并且不为叶节点分配时,才分配这个数组

4.2 地图文件生成

  • 将八叉树中的各个状态递归地编码成为紧凑的比特流中(叶子节点不必添加,可以在解码过程中重构)
  • 每一行具有对应于根节点上行的节点。

5. 实验结果


6.个人观点

6.1 创新点

  • 运用了压缩剪枝的方法,减少了内存的使用
  • 支持多分辨率映射查询
  • 使用钳位更新来压缩八叉树
  • 八叉树映射为比特流来减少内存

6.2 不足之处

  • 在传感器接收到较少的光束时,限制传感器范围没有明显的加速
  • 在映射置信度和压缩之间存在权衡
分类: 管窥编

0 条评论

发表评论

Avatar placeholder

邮箱地址不会被公开。 必填项已用*标注