I am running Rtabmap with camera over the same ROSbag with no change in any parameter, and I am getting significant different results each time, when comparing to ground truth. I have seen this happens with several datasets. What is exactly the reason? I guess it might be related to the randomness from RANSAC, meaning that the transforms computed are not deterministic. Or maybe there is another explanation? Is there a possibility to set some kind of seed to ensure repeatability?
Yes, there is ransac, and you have also flann (which is an approximate nearest neightbor approach). However, in standard datasets, when processing them offline, the results will stay pretty the same between runs. The problem with rosbag is that you cannot know which frames will be processed. And if you use "approx_sync:=true", you cannot know which frames will be synchronized.
You may try to slow down the rosbag, to avoid skipping frames: