Fix keypoints extraction
Fixes #6 (closed).
SpinningSensorKeypointExtractor
had 3 bugs in its keypoints extraction mechanism :
- Do not select planar keypoints if angle has not been computed (and is therefore equal to zero) : they are invalid!
- The
LineFitting
structure used incorrect points to pre-check the quality of the line candidate before running PCA. - If there is a depth gap with previous part occluded, discard points from current central point to left instead of contrary.
With the proposed patch and improvements, the resulting planar keypoints look much cleaner, being more reliably distributed on planes, and not everywhere. This also improves the quality of edges keypoints lying on sharp building edges.
In structured environments, this leads to approximately half planars and twice edges keypoints being extracted per frame compared to previous master version. However, as they are better located and more robust, the built map is much smaller: 16600 edges and 10800 planes now compared to previous 9500 edges and 49000 planes on car_loop dataset.
As less points are considered, this also brings a nice overall ~20% speedup.