Table of Contents
Fetching ...

Fast and Robust Normal Estimation for Sparse LiDAR Scans

Igor Bogoslavskyi, Konstantinos Zampogiannis, Raymond Phan

TL;DR

Estimating normals from sparse LiDAR scans is challenging, especially near high-curvature surfaces. The paper introduces a fast, robust normal estimation method that exploits the organized data from mechanical LiDAR and uses line-label clustering with Run Length Encoding to partition points into components, computing normals within components using the baseline cross-product formula $n = (p_{right}-p_{left}) × (p_{top}-p_{bottom})$ in $O(1)$ time per point. Key contributions include a robust normal estimation approach with constant-factor runtime overhead and extensive evaluation showing sharper surface boundaries and improved SLAM pose accuracy across diverse datasets. This method enhances map quality and reliability of point-to-plane alignment in resource-constrained robotics applications.

Abstract

Light Detection and Ranging (LiDAR) technology has proven to be an important part of many robotics systems. Surface normals estimated from LiDAR data are commonly used for a variety of tasks in such systems. As most of the today's mechanical LiDAR sensors produce sparse data, estimating normals from a single scan in a robust manner poses difficulties. In this paper, we address the problem of estimating normals for sparse LiDAR data avoiding the typical issues of smoothing out the normals in high curvature areas. Mechanical LiDARs rotate a set of rigidly mounted lasers. One firing of such a set of lasers produces an array of points where each point's neighbor is known due to the known firing pattern of the scanner. We use this knowledge to connect these points to their neighbors and label them using the angles of the lines connecting them. When estimating normals at these points, we only consider points with the same label as neighbors. This allows us to avoid estimating normals in high curvature areas. We evaluate our approach on various data, both self-recorded and publicly available, acquired using various sparse LiDAR sensors. We show that using our method for normal estimation leads to normals that are more robust in areas with high curvature which leads to maps of higher quality. We also show that our method only incurs a constant factor runtime overhead with respect to a lightweight baseline normal estimation procedure and is therefore suited for operation in computationally demanding environments.

Fast and Robust Normal Estimation for Sparse LiDAR Scans

TL;DR

Estimating normals from sparse LiDAR scans is challenging, especially near high-curvature surfaces. The paper introduces a fast, robust normal estimation method that exploits the organized data from mechanical LiDAR and uses line-label clustering with Run Length Encoding to partition points into components, computing normals within components using the baseline cross-product formula in time per point. Key contributions include a robust normal estimation approach with constant-factor runtime overhead and extensive evaluation showing sharper surface boundaries and improved SLAM pose accuracy across diverse datasets. This method enhances map quality and reliability of point-to-plane alignment in resource-constrained robotics applications.

Abstract

Light Detection and Ranging (LiDAR) technology has proven to be an important part of many robotics systems. Surface normals estimated from LiDAR data are commonly used for a variety of tasks in such systems. As most of the today's mechanical LiDAR sensors produce sparse data, estimating normals from a single scan in a robust manner poses difficulties. In this paper, we address the problem of estimating normals for sparse LiDAR data avoiding the typical issues of smoothing out the normals in high curvature areas. Mechanical LiDARs rotate a set of rigidly mounted lasers. One firing of such a set of lasers produces an array of points where each point's neighbor is known due to the known firing pattern of the scanner. We use this knowledge to connect these points to their neighbors and label them using the angles of the lines connecting them. When estimating normals at these points, we only consider points with the same label as neighbors. This allows us to avoid estimating normals in high curvature areas. We evaluate our approach on various data, both self-recorded and publicly available, acquired using various sparse LiDAR sensors. We show that using our method for normal estimation leads to normals that are more robust in areas with high curvature which leads to maps of higher quality. We also show that our method only incurs a constant factor runtime overhead with respect to a lightweight baseline normal estimation procedure and is therefore suited for operation in computationally demanding environments.
Paper Structure (12 sections, 4 equations, 6 figures, 1 table, 1 algorithm)

This paper contains 12 sections, 4 equations, 6 figures, 1 table, 1 algorithm.

Figures (6)

  • Figure 1: Top two images show a part of an environment reconstructed by aligning multiple individual point clouds from the HILTI dataset hilti. Both point clouds are colored by the normals of their points. The right one uses a baseline implementation of normals and arrows indicate areas where the normals spill into an orthogonal surface. The left image shows that this does not happen when using the proposed method for normal estimation. The bottom image shows a single scan generated from a Velodyne VLP16 LiDAR, positioned at $(0, 0)$, with gray lines showing the normals estimated with the proposed method. Thick colored lines connecting the points indicate the connected components that the points belong to.
  • Figure 2: Data that comes from a mechanical LiDAR is organized. Point $O$ has 4 neighbors. Points $A$ and $B$ are generated by the same beam at a previous and next scan. Points $C$ and $D$ are generated by the beams neighboring the beam from which the point $O$ stems within the same scan. Given these 4 neighbors a baseline way to compute a normal would be to compute a cross product between vectors $\overrightarrow{AB}$ and $\overrightarrow{CD}$ as shown in Eq. (\ref{['eq:normals']}) that results in the normal shown in purple. This approach is noisy but serves as a good starting point for our approach.
  • Figure 3: Points generated from a single vertical stack of lasers. We interchangeably call such points a slice of LiDAR data or being "vertical neighbors". Points are colored orange and blue with respect to their label after clustering them with respect to the angles of the line segments connecting them. Some of these segments are shown too. The green segments $AB$ and $BC$ which form an angle $\angle ABC$ indicate that the points should belong to the same connected component, while the red lines forming the angle $\angle DEF$ indicate that the points $D$, $E$, and $F$ should belong to different connected components.
  • Figure 4: A comparison of the robustness of the normals on various datasets. All of the images show point clouds as aggregated by our SLAM system described in Sec. \ref{['sub:expsetup']} with the colors representing the normals. Every row of images shows the map with our normals on the left and a map with baseline normals on the right. The top two rows are recorded with a single Velodyne VLP16 LiDAR through a NavVis M6 rig in our office, while the bottom row is reconstructed from the BASEMENT_3 sequence of the HILTI 2021 dataset hilti recorded with a single Ouster OS0 64 beam LiDAR that we subsample to 32 beams to simulate sparsity. The white ellipses highlight parts of the environment that are of interest and exhibit a substantial change in normal robustness. Note how our approach consistently provides sharper gradient in normals.
  • Figure 5: Comparison of the APE (average percentage error) on poses estimated with our SLAM system described in Sec. \ref{['sub:expsetup']} as reported by HILTI challenge evaluation system on the BASEMENT_3 dataset. This dataset contains scans from Ouster OS0 64 beam LiDAR, which we subsample to 32 beams to increase data sparsity. Left image shows the APE computed from the poses using the baseline normals, while the right image shows the same APE computed from the poses estimated using our proposed method for normal estimation. Using our robust normals in our SLAM system that relies on normal estimation for point cloud alignment improves the quality of the resulting poses as can be seen by comparing the position of the lines. All the lines are lower in terms of APE when using our method for normal estimation (right image).
  • ...and 1 more figures