Some map representations don't allow (at least not in a straightforward, practical way) sampling randomly from the map.
This is the case, just to name one, of sparse voxel grids, where there're no notion of free space, only occupied space.
Given this difficulty, the adaptive part of the AMCL pipeline has limited effect, because of not being able to generate random states from the map.
Coming back to this, is adaptiveness the problem or is it the use of random state samples to fight sample impoverishment? Good ol' AMCL does both, but it need not, does it? @nahueespinosa
Feature description
Some map representations don't allow (at least not in a straightforward, practical way) sampling randomly from the map. This is the case, just to name one, of sparse voxel grids, where there're no notion of free space, only occupied space.
Given this difficulty, the adaptive part of the AMCL pipeline has limited effect, because of not being able to generate random states from the map.
For these cases, an option where adaptiveness is turned off could be of use, and remove the need of forcefully provide a random state generator. https://github.com/Ekumen-OS/beluga/blob/7a01f39bc78a6124fe0609637b657da0ded9bc6c/beluga/include/beluga/algorithm/amcl_core.hpp#L108
Definition of done
Add the feature described above, and make sure this is the option we use for all the nodes where randomly sampling from the map doens't make sense.
As of today,
ndt
andndt_3d
variants.