3#include <gtest/gtest.h>
5#include <sensor_msgs/msg/point_cloud2.hpp>
15 std::vector<std::array<float, 5>> pts = {
16 {1.1, -4.3, 0.5, 0.0, 39},
17 {1.6, -29.0, 0.5, 0.0, 39},
18 {1.0, -3.2, 3.0, 0.0, 39},
19 {0.1, -0.1, 0.5, 0.0, 39},
20 {-5.1, 2.0, 0.5, 0.0, 39}
35 sensor_msgs::msg::PointCloud2::SharedPtr
cloud;
46 auto input_cloud = cloud;
49 cut_trimming.fov_trimming(input_cloud, output_cloud);
50 ASSERT_EQ(output_cloud->width, 4);
58 params.max_height = 2.0;
59 auto input_cloud = cloud;
62 cut_trimming.fov_trimming(input_cloud, output_cloud);
63 ASSERT_EQ(output_cloud->width, 4);
71 params.min_range = 0.5;
72 auto input_cloud = cloud;
75 cut_trimming.fov_trimming(input_cloud, output_cloud);
76 ASSERT_EQ(output_cloud->width, 4);
84 params.apply_fov_trimming =
true;
86 auto input_cloud = cloud;
89 cut_trimming.fov_trimming(input_cloud, output_cloud);
90 ASSERT_EQ(output_cloud->width, 4);
98 auto input_cloud = cloud_empty;
101 cut_trimming.fov_trimming(input_cloud, output_cloud);
102 ASSERT_EQ(output_cloud->width, 0);
110 params.max_range = 10.0;
111 params.min_range = 0.2;
112 params.max_height = 2.5;
113 params.lidar_height = 0.0;
114 params.apply_fov_trimming =
true;
116 auto input_cloud = cloud;
119 cut_trimming.fov_trimming(input_cloud, output_cloud);
120 ASSERT_EQ(output_cloud->width, 1);
Test class for setting up data and testing CutTrimming algorithm.
TrimmingParameters params
sensor_msgs::msg::PointCloud2::SharedPtr cloud_empty
sensor_msgs::msg::PointCloud2::SharedPtr cloud
TEST_F(CutTrimmingTest, TestMaxRange)
Test case where points outside max range should be removed.
sensor_msgs::msg::PointCloud2::SharedPtr make_lidar_pointcloud2(const std::vector< std::array< float, 5 > > &pts)
Structure to hold parameters for trimming point cloud data.
bool apply_fov_trimming
Whether to apply field of view trimming.
double max_range
Minimum point cloud distance after trimming.
double max_height
Maximum point cloud height after trimming.
double rotation
Rotation angle to be applied to the point cloud.
double min_range
Maximum point cloud distance after trimming.
double lidar_height
LIDAR current height.
bool apply_rotation
Whether to apply rotation to the point cloud.