velodyne_lidar
pointcloudConvertHelper.hpp
Go to the documentation of this file.
1 #ifndef _VELODYNE_LIDAR_POINTCLOUD_CONVERT_HELPER_HPP_
2 #define _VELODYNE_LIDAR_POINTCLOUD_CONVERT_HELPER_HPP_
3 
4 #include <vector>
5 #include <velodyne_lidar/MultilevelLaserScan.h>
6 
7 namespace velodyne_lidar
8 {
9 
11 {
12 public:
13 
20  static void convertScanToPointCloud(const MultilevelLaserScan &laser_scan, std::vector<Eigen::Vector3d> &points,
21  const Eigen::Affine3d& transform = Eigen::Affine3d::Identity(), bool skip_invalid_points = true,
22  unsigned int skip_n_horizontal_scans = 0, std::vector<float>* remission_values = NULL);
23 
27  static void convertScanToPointCloud(const MultilevelLaserScan &laser_scan, std::vector<Eigen::Vector3d> &points,
28  const Eigen::Affine3d& transform_start, const Eigen::Affine3d& transform_end,
29  bool skip_invalid_points = true, unsigned int skip_n_horizontal_scans = 0,
30  std::vector<float>* remission_values = NULL);
31 
39  static void horizontalBinning(const MultilevelLaserScan &laser_scan, MultilevelLaserScan &filtered_laser_scan, double angular_bin_size);
40 
49  static void filterOutliers(const MultilevelLaserScan &laser_scan, MultilevelLaserScan &filtered_laser_scan, double max_deviation_angle, unsigned min_neighbors = 1);
50 
56  static double computeMaximumAngle(double angle_between_rays, double dist_ray_1, double dist_ray_2);
57 
65  static void verticalClipping(const MultilevelLaserScan &laser_scan, MultilevelLaserScan &filtered_laser_scan, const base::Angle &start_angle, const base::Angle &end_angle);
66 
67 private:
68  ConvertHelper();
69  ~ConvertHelper();
70 
71  static void convertVerticalScan(const MultilevelLaserScan& laser_scan, const MultilevelLaserScan::VerticalMultilevelScan& v_scan,
72  std::vector<Eigen::Vector3d> &points, const Eigen::Affine3d& transform = Eigen::Affine3d::Identity(),
73  bool skip_invalid_points = true, std::vector<float>* remission_values = NULL);
74 };
75 
76 };
77 
78 #endif
Definition: pointcloudConvertHelper.hpp:10
static void convertScanToPointCloud(const MultilevelLaserScan &laser_scan, std::vector< Eigen::Vector3d > &points, const Eigen::Affine3d &transform=Eigen::Affine3d::Identity(), bool skip_invalid_points=true, unsigned int skip_n_horizontal_scans=0, std::vector< float > *remission_values=NULL)
Definition: pointcloudConvertHelper.cpp:74
Definition: MultilevelLaserScan.h:16
static void verticalClipping(const MultilevelLaserScan &laser_scan, MultilevelLaserScan &filtered_laser_scan, const base::Angle &start_angle, const base::Angle &end_angle)
Definition: pointcloudConvertHelper.cpp:432
static double computeMaximumAngle(double angle_between_rays, double dist_ray_1, double dist_ray_2)
Definition: pointcloudConvertHelper.cpp:416
Definition: gps_rmc_type.h:6
static void horizontalBinning(const MultilevelLaserScan &laser_scan, MultilevelLaserScan &filtered_laser_scan, double angular_bin_size)
Definition: pointcloudConvertHelper.cpp:204
static void filterOutliers(const MultilevelLaserScan &laser_scan, MultilevelLaserScan &filtered_laser_scan, double max_deviation_angle, unsigned min_neighbors=1)
Definition: pointcloudConvertHelper.cpp:344