voxblox阅读笔记

abstract

MAV构建ESDF来规划轨迹以及避障。本文提出使用TSDF来生成ESDF。此方法比octomap快,准确。代码开源,可以实时在CPU运行。

intro

路径规划算非常快,可以deal复杂环境。但是需要环境中每个障碍物距离信息,以及距离梯度。octomap可以计算这些,但是map大小必须事先给定,不能增量建图。

TSDF和ESDF不同:使用了projective distance。只在truncation radius内计算距离。

related work

OCtree只有occupancy的信息,不完全。像CHMOP等需要距离信息。
本文方法基于kinect fusion, 也就是用volumetric方法生成TSDF图。但这种方法无法增量构建,于是本文使用voxel hashing方法动态构建地图。
我们的目标不是构建高精地图,而是给motion planning使用。因此分辨率都比较大,来达到实时。
我们和gpgpu不同的是,不是完整构建TSDF之后才增量构建ESDF,而是二者都为增量,这样就比batch methods快。

system

使用深度相机得到彩色点云作为输入。
每个voxel有自己的layer,每个layer有独立的block,block在地图中有编号。hashing就是在block 位置和内存位置之间有映射关系。因此可以growing map。

TSDF

把点云raycast到全局地图中,然后把每个voxel中的点的投影距离作平均。weighting就是如何把测量给平均,merging就是如何把data分组整合。

weighting

通常方法是从sensor中心ray-cast,更新weight和distance。每个scan中有1k+点整合到一个voxel里。
KinectFusion 使用了constant weight来更新。然而,本文结合了相机模型,设计了一个W_quad,其中在surface后面的话就会==0.
在多视角观察到表面的时候,减少了没观察到的voxel的影响。

merging

有两种方法把pointcloud group到voxel中:raycasting 和projection mapping。raycasting从相机光心发出,之后更新所有照射到的区域。projection mapping把提速project到图片上,比较voxel–center的距离和depth。这个方法更快,但是对大体素会产生混叠效应。

本文方法,grouped raycasting,加速了raycasting。对每一个scan,将其投影到一个voxel,之后将同一个voxel中所有point取平均,只作一次raycasting。

从TSDF到ESDF

构建方法

用了wave-front, 就是BFS, 周围格子是26联通。两种传播方法:raise和lower。当TSDF中新距离比之前ESDF中距离大的时候,将Voxel加到raise queue中。则voxel以及其children都要是invalidated。如此传播直到没有voxel的parent是invalidated。
lower传播就是一个新voxel进来,或者之前观测到的voxel比当前值要小。邻近的voxel更新,根据与当前voxel的距离。当没有voxel距离可以比邻居更小,传播停止。

误差来源

  • projective distance。光线到表面的距离要大于光线到表面的垂直最短距离。
    虽然有误差,但是多视角观察后,误差可以很小。做了蒙特拉洛分析(????)
  • quasi-Euclidean distance. 因为是propogate的,所以只有上下左右斜边这么计算。
    而它带来的速度增益很大,所以trade-off很值得。

实验结果

TSDF

grouped octomap虽然比原本快,但还是没有TSDF方法快,因为tree是层级结构,查找用时还是O(logn),而TSDF是O(1).

比较了不同weight的效果差异,不同方法(raycast, octomap)带来的时间差异。

ESDF

仿真结果

使用了一个球,三个平面,一个立方体来进行仿真。

实际

euroc结果。
得出结论,单voxel band,quansi-euclidean distance,优先队列,这些技术更好。

无人机飞行

4hz,。
无人机5min的球,球内un-obsv的voxel为occupied。
因为无法知道自己所处位置的情况,设一个1m的球,球内所有un-obsv的voxel为free。

结论

  1. 应当画一个类似这样的图,毕设中也许可以
    在这里插入图片描述
  2. 在euroc和cow上测试时间和RMS err。
  3. 与不同方法做对比。
  4. 在gazebo上仿真,搞几个圆球。之后测试不同的分辨率,得到的时间和精确度。
  5. 误差分析怎么做?噪声?混叠效应?
  6. 无人机飞行实验,在tx2上运行,为软约束提供信息。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值