Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
grid_removal.hpp
Go to the documentation of this file.
1#pragma once
2#include <algorithm>
3#include <cmath>
4#include <cstring>
5#include <limits>
6#include <queue>
7#include <string>
8#include <unordered_map>
9#include <vector>
10
12#include "utils/grid_index.hpp"
14
22public:
33 GridWallRemoval(double angle, double radius, double start_augmentation,
34 double radius_augmentation, double fov, int max_points_per_cluster);
35
42 void remove_walls(const sensor_msgs::msg::PointCloud2::SharedPtr& point_cloud,
43 sensor_msgs::msg::PointCloud2::SharedPtr& output_cloud) override;
44
45private:
46 std::vector<int> occlusion_bins_; // Bins for each slice that are the last to be considered
47 GridGeometry grid_geometry_; // Grid geometry for grid calculations
48 int max_points_per_cluster_; // Maximum number of points allowed per each grid to be considered
49 // non-wall
50};
Wall removal implementation using a grid-based approach.
GridGeometry grid_geometry_
void remove_walls(const sensor_msgs::msg::PointCloud2::SharedPtr &point_cloud, sensor_msgs::msg::PointCloud2::SharedPtr &output_cloud) override
Removes walls from the input point cloud using a grid-based approach.
std::vector< int > occlusion_bins_
Abstract base class for wall removal of point clouds.
Structure to hold grid geometry parameters and provide utility functions.