[feat] Add an optional overlap estimator
-
This overlap estimator allows to evaluate the registration quality at each new scan input
-
It is based on the LCP estimator implemented in SUPER4PCS random registration algorithm
-
It represents the probability for one scanned point to have a neighbor in the keypoint maps.
-
It is computed as an average of this probability for all scanned points. These probabilities are estimated with a gaussian like density fitted in map leaf space.
-
The function can be decomposed in 3 steps :
- Transform the input points into new frame
- Sample uniformly if needed
- Compute customized LCP value
-
Time info on one example -> indoor data set, fixed maps 8300 points and input scan 29000 points, no sampling :
- Without any multithreading: 5.9ms
- With all multithreading (2 threads): 3.2ms
- Without Transform multithreading : 3.6ms
- Without LCP multithreading : 5.5ms
- The LCP step is the heaviest
- The sampling is not neglectable
-
How to interpret :
- A good overlap estimation lies in [0.7, 1]
- A sufficient one lies in [0.4,0.7]
- A bad one lies in [0, 0.4]
-
It is particularly helpful to detect bad convergences (big jumps) because the overlap must show a gap. Warning: this is true when the map is fixed but can be false if we pass through a door while the map is built online.
-
DOUBT : should we keep the uniform filtering option?
- adv :
- it can reduce LCP computation time
- it allows not to focus on one points cluster overlap
- inc :
- it can allow some overlap gap along the SLAM process with no particular reason
- it is long with respect to the whole process
- adv :
@nicolas.cadart PTAL