Skip to content

Ground Removal

Albert Wang edited this page Mar 26, 2025 · 3 revisions

Ground Removal Segmentation (RANSAC)

Ground Removal is an essential part of the perception pipeline which takes a LiDAR-based point cloud, down samples the point cloud, and performs outlier removal for points which are the considered ground. The effect is performance gain and detection accuracy for SLAM. This pipeline is integrated within lidar_cone_detector because of the way the two algorithms are tightly coupled.

Overview

File Structure: lidar_cone_detector (Note that this is shared with the greater LiDAR perception pipeline.

  • src/ground_plane_removal.cpp
  • include/lidar_cone_detector/ground_plane_removal.hpp
  • launch/lidar_bringup.xml

Tech Stack:

  • pcl: This is the main PCL (Point Cloud Library) used for performing RANSAC.
  • pcl_ros: A wrapper for interfacing ROS messages and PCL.
  • pcl_conversion
  • pcl_msgs
  • sensor_msgs
  • vision_msgs
  • tf2

Process

The RANSAC algorithm runs using the following step process:

  • Subscription to the point cloud on the topic /lidar/pcl/raw

  • pcl::VoxelGrid Voxel down sampling. This makes the point cloud data sparse for further processing.

  • pcl::StatisticalOutlierRemoval Removes statistical outliers.

  • pcl::SACSegmentation Segments the outliers and the cone data points. This segmentation only occurs on a 2D Plane (prototype).

  • pcl::ExtractIndices Extracts the ground point cloud and the cone point cloud.

  • RViz2 Visualizes the point cloud using ROS2 and RViz2

  • This data is then published into two point clouds on topics /lidar/pcl/cones & /lidar/pcl/ground

Clone this wiki locally