velodyne_lidar
MultilevelLaserScan.h
Go to the documentation of this file.
1 #ifndef _VELODYNE_LIDAR_MultilevelLaserScan_H_
2 #define _VELODYNE_LIDAR_MultilevelLaserScan_H_
3 
4 #include <vector>
5 #include <boost/cstdint.hpp>
6 #include <base/Time.hpp>
7 #include <base/Angle.hpp>
8 #include <base/Float.hpp>
9 
10 namespace velodyne_lidar
11 {
12 
17 {
21  TOO_FAR = 1, // too far
22  TOO_NEAR = 2,
26  };
27 
28  struct SingleScan
29  {
31 
34  boost::uint32_t range;
35 
40  float remission;
41  };
42 
44  {
45  VerticalMultilevelScan() : time(base::Time::now()), horizontal_angle(base::Angle::fromRad(0.0)), vertical_start_angle(base::Angle::fromRad(0.0)), vertical_angular_resolution(0.0) {};
46 
50  base::Time time;
51 
54  std::vector<SingleScan> vertical_scans;
55 
56  base::Angle horizontal_angle;
57 
62  base::Angle vertical_start_angle;
63 
67  };
68 
69  MultilevelLaserScan() : time(base::Time::now()), min_range(MAX_RANGE_ERROR+1), max_range(0) {};
70 
73  base::Time time;
74 
77  std::vector< VerticalMultilevelScan > horizontal_scans;
78 
80  boost::uint32_t min_range;
81 
83  boost::uint32_t max_range;
84 
85  inline bool isRangeValid(boost::uint32_t range) const
86  {
87  if(!std::isnan(range) && !std::isinf(range) && range >= min_range && range <= max_range)
88  return true;
89  return false;
90  }
91 };
92 
93 };
94 
95 #endif
SingleScan()
Definition: MultilevelLaserScan.h:30
base::Time time
Definition: MultilevelLaserScan.h:69
float remission
Definition: MultilevelLaserScan.h:40
boost::uint32_t range
Definition: MultilevelLaserScan.h:30
bool isRangeValid(boost::uint32_t range) const
Definition: MultilevelLaserScan.h:85
Definition: MultilevelLaserScan.h:25
base::Angle vertical_start_angle
Definition: MultilevelLaserScan.h:62
Definition: MultilevelLaserScan.h:16
double vertical_angular_resolution
Definition: MultilevelLaserScan.h:66
boost::uint32_t max_range
Definition: MultilevelLaserScan.h:83
boost::uint32_t min_range
Definition: MultilevelLaserScan.h:80
std::vector< VerticalMultilevelScan > horizontal_scans
Definition: MultilevelLaserScan.h:77
Definition: MultilevelLaserScan.h:23
base::Angle horizontal_angle
Definition: MultilevelLaserScan.h:56
MultilevelLaserScan()
Definition: MultilevelLaserScan.h:69
std::vector< SingleScan > vertical_scans
Definition: MultilevelLaserScan.h:54
Definition: MultilevelLaserScan.h:21
Definition: gps_rmc_type.h:6
Definition: MultilevelLaserScan.h:22
Definition: MultilevelLaserScan.h:28
VerticalMultilevelScan()
Definition: MultilevelLaserScan.h:45
LASER_RANGE_ERRORS
Definition: MultilevelLaserScan.h:20