Hi,
Thanks for the support!
Intermediate nodes were introduced for benchmarking (some datasets require to have a pose saved for each image processed to be compared to their ground truth). They are nodes in the graph without sensor data saved (only pose) between the key frames. rtabmap adds keyframes at each second (default Rtabmap/DetectionRate=1), when "Rtabmap/CreateIntermediateNodes" is enabled, odometry poses received between those key frames are still saved in the map's graph:
K --------------------------- K --------------------------- K (3 nodes graph, Rtabmap/CreateIntermediateNodes=false)
K --- I --- I --- I --- I --- K --- I --- I --- I --- I --- K (11 nodes graph, Rtabmap/CreateIntermediateNodes=true)
In this example, K=Key Frame, I=Intermediate node in the graph and odometry is received at 5Hz. Note that graph optimization would take longer time with intermediates nodes as the graph is bigger.
Beware that rtabmap doesn't use the same key frames as the visual odometry, they are independent. Odometry key frames are determined by two thresholds "Odom/VisKeyFrameThr" (new frame is created when number of inliers with previous frame drops under this threshold) and "Odom/KeyFrameThr" (new frame is created when ratio of inliers with previous frame over total features extracted drops under this threshold).
cheers,
Mathieu