Table of Contents
Fetching ...

Memory-Efficient Boundary Map for Large-Scale Occupancy Grid Mapping

Benxu Tang, Yunfan Ren, Yixi Cai, Fanze Kong, Wenyi Liu, Fangcheng Zhu, Longji Yin, Liuyu Shi, Fu Zhang

Abstract

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.

Memory-Efficient Boundary Map for Large-Scale Occupancy Grid Mapping

Abstract

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.
Paper Structure (41 sections, 5 theorems, 15 equations, 22 figures, 6 tables, 2 algorithms)

This paper contains 41 sections, 5 theorems, 15 equations, 22 figures, 6 tables, 2 algorithms.

Key Result

Theorem 1

If $r_{\text{min}} > 0$, the occupancy state of the query voxel $\mathbf{q}$ is determined as follows: if $\mathbf{b}_{{nn}}$ is a boundary interior voxel $\mathbf{b}_{\mathrm{int}}$, then the occupancy state of $\mathbf{q}$ is determined as free. Conversely, if $\mathbf{b}_{{nn}}$ is a boundary ext

Figures (22)

  • Figure 1: MAV performing a long-range autonomous navigation task in an unknown multi-level building, utilizing the proposed mapping framework. (a) Accumulated point cloud and the MAV trajectory at the end of the task, also visualized from multiple viewpoints in (a1), (a2), and (a3). (b) Hardware configuration of the MAV platform used to perform the navigation task. (c) Overview of the resulting global boundary map, which forms a closed structure. As the viewpoint is external, the low-dimensional property of the map is not evident. To better illustrate its internal structure, the map is sliced along the orange plane. (d) Cross-sectional view revealing the hollow interior of the boundary map. Voxels stored in boundary map are classified into three types, visualized in distinct colors. The green voxels lie on the interior layer of the map, having an occupancy state of free. The grey and blue voxels are located on the exterior layer, with occupancy states of occupied and unknown, respectively.
  • Figure 2: (a) A uniform occupancy grid where each voxel is classified into one of three states: free, unknown, or occupied, represented by green, blue, and grey, respectively. For clarity, only the voxels along the cross-sectional plane are shown, with the remaining voxels represented by a simplified shape. (b) The boundary surface layer of the free space, highlighted in red, which separates the free regions from the adjacent occupied or unknown regions. (c) Our proposed boundary map, which includes the free, unknown and occupied voxels that neighboring the boundary surface layer.
  • Figure 3: The boundary map is composed by boundary voxels, which include boundary interior voxels ($\mathbf{b}_{\mathrm{int}}$) and boundary exterior voxels ($\mathbf{b}_{\mathrm{ext}}$). Boundary interior voxels are free voxels neighboring unknown or occupied voxel(s), and are visualized in green. Boundary exterior voxels include boundary exterior (unknown) voxels ($\mathbf{b}_{\mathrm{ukn}}$) and boundary exterior (occupied) voxels ($\mathbf{b}_{\mathrm{occ}}$), represented in blue and grey, respectively. Boundary exterior (unknown) voxels have an unknown occupancy state and neighboring free voxel(s). Boundary exterior (occupied) voxels are all voxels whose occupancy state is occupied.
  • Figure 4: Occupancy state determination based on our boundary map. The diagram shows the determination process for several example query voxels (nos. 1–5). If the query voxel is located exactly on the boundary map, the query voxel state can be determined by type of the boundary voxel directly (query voxel no. 1). Otherwise, we search along the $z^+$ direction (i.e., a representative direction for illustration propose) to find the nearest boundary voxel on the boundary map, denoted as $\mathbf{b}_{{nn}}$. If $\mathbf{b}_{{nn}}$ is a boundary interior voxel $\mathbf{b}_{\mathrm{int}}$, the query voxel is determined as free (query voxels no. 2 and 3). If the $\mathbf{b}_{{nn}}$ is a boundary exterior voxel $\mathbf{b}_{\mathrm{ext}}$(i.e., either unknown $\mathbf{b}_{\mathrm{ukn}}$ or occupied $\mathbf{b}_{\mathrm{occ}}$), the query voxel is determined as unknown (query voxels no. 4 and 5). If $\mathbf{b}_{{nn}}$ does not exist, the query voxel is determined as unknown too (query voxel no. 6).
  • Figure 5: The boundary map, which consists of boundary voxels in the three-dimension (3D), is maintained in a two-dimensional (2D) data structure. Without loss of generality, $z$-axis is selected as the projection axis for illustration purpose in the manuscript. The boundary map is projected along the $z$-axis onto the $(x, y)$-plane. Then a hash-based 2D grid map is maintained on the $(x, y)$-plane where each grid cell stores boundary voxels projected onto that cell. Each boundary voxel in the grid cell is represented by its $z$-coordinate and a type indicator indicating its type (i.e., $\mathbf{b}_{\mathrm{int}}$, $\mathbf{b}_{\mathrm{ukn}}$, and $\mathbf{b}_{\mathrm{occ}}$). The numbers in the figure correspond to the $z$-coordinates of the boundary voxels.
  • ...and 17 more figures

Theorems & Definitions (5)

  • Theorem 1
  • Theorem 2
  • Theorem 3
  • Theorem 4
  • Theorem 5