对于已知位姿的深度图和点云的简单融合的方式,我目前总结有两种,
第一种,粗暴方法,直接所有点云按照位姿变换后叠加,这样会导致点云点数过多,比如10cm*10cm*10cm的空间内就一个点进行代表就可以了,但是这么粗暴叠加可能有5个点在这个空间里,这个时候可以通过点云下采样的方式解决,PCL有专门的函数,体素滤波,八叉树也是一种点云下采样。就所有点云叠在一起后一次性做一次下采样。
体素滤波器是一种下采样的滤波器,它的作用是使用体素化方法减少点云数量,采用体素格中接近中心点的点替代体素内的所有点云
,这种方法比直接使用中心点要慢,但是更加精确。这种方式即减少点云数据,并同时保存点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中非常实用。(【点云处理技术之PCL】滤波器——体素滤波器(pcl::VoxelGrid)-CSDN博客)
第二种。增量式建图,每新来一帧深度图或点云就计算好要更新地图中哪些点,基于ray_cast的规则来更新。类似于ego-planner,octomap_server,cartographer构建的栅格地图。
这种全局式建图和增量式建图是不是有点像全局式SFM和增量式SFM的区别。
TSDF voxblox 港科大的fiesta
下面这里也看到总结了三种方法
- 覆盖栅格建图算法
- 计数建图算法
- TSDF