43 Himmelsbach(
const double grid_angle,
const double max_slope,
const double initial_alpha,
44 const double alpha_augmentation_m,
const double start_augmentation,
56 void ground_removal(
const sensor_msgs::msg::PointCloud2::SharedPtr& trimmed_point_cloud,
57 sensor_msgs::msg::PointCloud2::SharedPtr& ground_removed_point_cloud,
67 std::shared_ptr<std::vector<Slice>>
77 void process_slice(
const sensor_msgs::msg::PointCloud2::SharedPtr& trimmed_point_cloud,
78 sensor_msgs::msg::PointCloud2::SharedPtr& ground_removed_point_cloud,
79 size_t slice_idx,
GroundGrid& ground_grid)
const;
86 void split_point_cloud(
const sensor_msgs::msg::PointCloud2::SharedPtr& input_cloud)
const;
Class to represent a ground height grid for ground proximity checks.
Abstract class for ground removal from a point cloud.
Ground removal using the Himmelsbach algorithm.
double alpha_augmentation_m_
std::shared_ptr< std::vector< Slice > > slices_
TrimmingParameters trim_params_
double start_augmentation_
void ground_removal(const sensor_msgs::msg::PointCloud2::SharedPtr &trimmed_point_cloud, sensor_msgs::msg::PointCloud2::SharedPtr &ground_removed_point_cloud, GroundGrid &ground_grid) const override
Perform ground removal on a point cloud.
void process_slice(const sensor_msgs::msg::PointCloud2::SharedPtr &trimmed_point_cloud, sensor_msgs::msg::PointCloud2::SharedPtr &ground_removed_point_cloud, size_t slice_idx, GroundGrid &ground_grid) const
Process a single slice for ground removal.
void split_point_cloud(const sensor_msgs::msg::PointCloud2::SharedPtr &input_cloud) const
Split the input point cloud into slices and rings.
Stores indices of points in a single ring.
std::vector< int > indices
Represents a horizontal slice of the LiDAR scan.
std::vector< Ring > rings
Structure to hold parameters for trimming point cloud data.