Determining the occupancy status of locations in the environment is a fundamental task for safety-critical robotic applications. Traditional occupancy grid mapping methods subdivide the environment into a grid of voxels, each associated with one of three occupancy states: free, occupied, or unknown. These methods explicitly maintain all voxels within the mapped volume and determine the occupancy state of a location by directly querying the corresponding voxel that the location falls within. However, maintaining all grid voxels in high-resolution and large-scale scenarios requires substantial memory resources. In this paper, we introduce a novel representation that only maintains the boundary of the mapped volume. Specifically, we explicitly represent the boundary voxels, such as the occupied voxels and frontier voxels, while free and unknown voxels are automatically represented by volumes within or outside the boundary, respectively. As our representation maintains only a closed surface in two-dimensional (2D) space, instead of the entire volume in three-dimensional (3D) space, it significantly reduces memory consumption. Then, based on this 2D representation, we propose a method to determine the occupancy state of arbitrary locations in the 3D environment. We term this method as boundary map. Besides, we design a novel data structure for maintaining the boundary map, supporting efficient occupancy state queries. Theoretical analyses of the occupancy state query algorithm are also provided. Furthermore, to enable efficient construction and updates of the boundary map from the real-time sensor measurements, we propose a global-local mapping framework and corresponding update algorithms. Finally, we will make our implementation of the boundary map open-source on GitHub to benefit the community:https://github.com/hku-mars/BDM.
翻译:确定环境中位置的占据状态是安全关键型机器人应用的一项基础任务。传统的占据栅格地图构建方法将环境细分为体素网格,每个体素关联三种占据状态之一:空闲、占据或未知。这些方法显式地维护已建图体积内的所有体素,并通过直接查询位置所在的对应体素来确定其占据状态。然而,在高分辨率和 大尺度场景下维护所有网格体素需要大量内存资源。本文提出一种新型表示方法,仅维护已建图体积的边界。具体而言,我们显式地表示占据体素和前沿体素等边界体素,而空闲和未知体素则分别由边界内部或外部的体积自动表示。由于我们的表示仅维护二维空间中的闭合曲面,而非三维空间中的整个体积,因此显著降低了内存消耗。进一步地,基于这种二维表示,我们提出一种方法来确定三维环境中任意位置的占据状态,并将该方法命名为边界地图。此外,我们设计了一种新型数据结构来维护边界地图,支持高效的占据状态查询,并提供了占据状态查询算法的理论分析。同时,为支持利用实时传感器测量数据高效构建和更新边界地图,我们提出了一个全局-局部建图框架及相应的更新算法。最后,我们将开源边界地图的实现代码于 GitHub 上,以惠及社区:https://github.com/hku-mars/BDM。