To debug, you may set Logger's level to Debug. See Preferences->Logger in the GUI.
RTAB-Map uses an incremental dictionary. When new features are extracted, they are compared to the actual dictionary (word quantization). If some features have no correspondence with actual words, they are added temporary to a non-indexed words list. We keep track of the words added that are not yet indexed in the KD-Trees. When comparing new features, they are compared to those in the KD-Trees and those not indexed (linear search). The non-indexed words will be eventually added to KD-Trees when the dictionary is updated (on next rtabmap update).
Note that binary features are converted to FLOAT if kd-trees nearest neighbor strategy is used. What is the best nearest neighbor approach that should be used for your kind of descriptor (available from FLANN: linear/brute force, kd-tree, LSH...)? and also which kind of distance approach should be used (L2_NORM, L1_NORM, HAMMING...)?
You may find the
Find-Object project easier to debug this kind of stuff, as there are many more possibilities to compare on runtime these different combinations. You can also use the
InvertedSearch example to debug, which is a ripoff of RTAB-Map loop closure detection.
cheers,
Mathieu