论文链接

(字比较丑。。。)


O. Abstract


  • 本文主要研究问题为快速增量构建ESDF地图
  • 利用的索引数据结构和双链表数据结构
  • 使用BFS算法来实现更新

I. Introduction


  • 基于对于四旋翼飞行器的研究,真正有用的是自由空间
  • 基于梯度的规划是必要的——能够使路径远离障碍物

2.1 两种ESDF方法

  1. 利用距离抛物线曲线全局计算ESDF

    缺点:对于资源的需求量大

  2. 每次只滑动一局部地图

    缺点:抛弃了所有过去的地图信息,对于全局规划和重归化做得不够

2.2 Voxblox的方法

  • 由TSDF映射到ESDF,利用BFS进行更新
    • Error1: 比实际的欧式距离有更大误差
    • Error2: TSDF投影距离可能高估到最近表面的实际距离

2.3 FIESTA

不依赖于任何特定的映射框架

扩展尽可能少的节点,获得接近最优的结果


II. Related Work


  • 前人的关于ESDF的计算频繁,不能满足地图精度和更新频率要求,被限制性能

  • 对于前面的两个Error

    • 对于 Error2 :从网格地图直接地增量计算ESDF,更加直接简单,直接解决 Error2

    • 对于 Error1 :Error1 只能被优化而不能被解决

    • 不能被解决的原因:BFS方式得不到准确解,简单理解就是用有限小圆去覆盖大圆总有剩余空间


III. System Framework


**利用两个独立更新的队列分别做插入和删除,将二者进行归并得到 UpdateQueue **


IV. Data Structure


  • Occupancy Grip Map: 用于整合占用信息
  • Voxel Infomation Structure: 记录体素信息
  • Index Data Structure: 体素坐标到体素信息的映射
  • Doubly Linked Lists: 占用体素空闲时的ESDF更新

A. Occupancy Grip Map && Voxel Infomation Structure

  • 在 OGM 中存储占有概率
  • 概率占用信息存储在体素信息结构中

B. Indexing Data Structure

  • 边界框已知且内存足够

    将所有体素的 VIS 指针放入一个数组中,只需计算索引,返回对应的 VIS 指针

  • 边界框未知或内存不够

    用哈希表将体素坐标转换为对应的 VIS 指针

    但是查找时仍然复杂

    几个体素为一块,哈希表用于管理块,再用体素坐标找到对应的块 \rightarrow 块哈希 \leq 体素哈希,平均时间复杂度为 \theta(1)

C. Doubly Linked Lists

  • 体素DLL:表示离障碍最近的所有体素


V. Algorithm


5.1 ESDF 更新初始化

5.2 ESDF 更新初始化

  • 每个在 DLL 中的体素都要出迭代,每一项的状态都要清除到观测但未更新的状态

    具体做法:将 coc 用 IP 替代;将 ESDF 设置为无穷大 

5.3 关于有限预测的补丁

  • 新观测到的体素可能只更新邻居而引起系统的不一致
  • 新观测到的个体的 ESDF 可能不会从之前存在的体素中更新


VI. Result



VII. Thinking


优点和创新点

  • 相较于 Voblox,解决了TSDF投影距离高估产生误差的问题
  • 尽可能地扩展更少地节点和降低时间复杂度

分类: 管窥编

0 条评论

发表评论

Avatar placeholder

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