1.3.5 建图
建图(Mapping)是指构建地图的过程。地图是对环境的描述,但这个描述并不是固定的,需要视SLAM的应用而定。相比于前端里程计、后端优化和回环检测,建图并没有一个固定的形式和算法。一组空间点的集合可以称为地图,一个3D模型也可以称为地图,一个标记着城市、村庄、铁路、河道的图片亦是地图。地图的形式随SLAM的应用场合而定,按照地图的用途,地图可以分为度量地图与拓扑地图两种。
度量地图强调精确地表示地图中物体的位置关系,通常我们用稀疏(Sparse)与稠密(Dense)对它们进行分类。稀疏地图进行了一定程度的抽象,并不需要表达所有的物体。例如,我们选择一部分具有代表意义的东西,称为路标(Landmark),那么一张稀疏地图就是由路标组成的地图,而不是路标的部分就可以忽略掉。相对地,稠密地图着重于建模所有看到的东西。对于定位来讲,稀疏路标地图就足够了,而对于导航则需要稠密地图。
拓扑地图(Topological Map)是一种保持点与线相对位置关系正确而不一定保持图形形状与面积、距离、方向正确的抽象地图,拓扑地图通常用于路径规划。
在HoloLens 2设备中,主要使用稠密度量地图实现对物理环境的映射,得益于搭载的ToF传感器,我们可以通过物理方法得到场景深度值,利用这些深度信息,通过算法就可以建立对环境的映射(对环境场景几何表面进行重建),因此可以允许虚拟对象与真实物体发生碰撞及遮挡,如图1-6所示。
图1-6 对场景重建后实现遮挡示意图
环境映射是实现真实物体与虚拟物体碰撞与遮挡关系的基础,在对真实环境进行3D重建后虚拟对象就可以与现实世界互动,从而实现碰撞及遮挡。
通过SLAM技术,我们不仅能解算出运动主体的位姿,还可以建立起周围环境的地图,对齐虚拟数字世界与真实物理世界,因此,就能以正确的视角渲染虚拟元素,实现与真实物体一样的透视、旋转、物理模拟现象,营造虚实融合的MR体验。