39 #ifndef SCAN_SHADOW_DETECTOR_H 40 #define SCAN_SHADOW_DETECTOR_H 49 void configure(
const float min_angle,
const float max_angle)
51 min_angle_tan_ = tanf(min_angle);
52 max_angle_tan_ = tanf(max_angle);
55 if (min_angle_tan_ < 0.0)
57 if (max_angle_tan_ > 0.0)
60 bool isShadow(
const float r1,
const float r2,
const float included_angle)
62 const float perpendicular_y_ = r2 * sinf(included_angle);
63 const float perpendicular_x_ = r1 - r2 * cosf(included_angle);
64 const float perpendicular_tan_ = fabs(perpendicular_y_) / perpendicular_x_;
66 if (perpendicular_tan_ > 0)
68 if (perpendicular_tan_ < min_angle_tan_)
73 if (perpendicular_tan_ > max_angle_tan_)
81 #endif //SCAN_SHADOW_DETECTOR_H void configure(const float min_angle, const float max_angle)
LaserScanMaskFilter removes points on directions defined in a mask from a laser scan.
bool isShadow(const float r1, const float r2, const float included_angle)