[feat] Change keypoint invalidation criteria
-
Before searching for keypoints, an invalidation step is run. This step insures the first and last points of scan rays are not taken into account (because the spherical aspect of Lidar is not considered), neither the points which correspond to the boundary of an occluded area or which lay on a very oblique wall relatively to the laser beam
-
By now, this step is performed with non-intuitive coefficients to set thresholds. With this commit, the unique threshold is the maximum orientation of such oblique planes relatively to laser beam to consider a depth gap.
-
In following scheme, we are looking for d value :
- a is the angle between current laser beam and plane normal.
- r is the resolution angle
- L is the current point depth
- h/d = sin(pi/2 - (r + a)) = cos(r + a)
- h = L . sin(r)
- d = L . sin(r) / cos(r + a)
- (Sorry there must be some easier way to get to it)
Edited by Julia Sanchez