Hi,

The disparity image is generated by

cv::StereoBM by default. Normally when there is not a lot of texture, the algorithm won't compute any disparity.

cv::StereoSGBM can be also used, but at a higher cost. Look at the corresponding parameters:

$ rtabmap --params | grep Stereo
Param: Stereo/DenseStrategy = "0" [0=cv::StereoBM, 1=cv::StereoSGBM]
Param: Stereo/Eps = "0.01" [[Stereo/OpticalFlow=true] Epsilon stop criterion.]
Param: Stereo/Iterations = "30" [Maximum iterations.]
Param: Stereo/MaxDisparity = "128.0" [Maximum disparity.]
Param: Stereo/MaxLevel = "5" [Maximum pyramid level.]
Param: Stereo/MinDisparity = "0.5" [Minimum disparity.]
Param: Stereo/OpticalFlow = "true" [Use optical flow to find stereo correspondences, otherwise a simple block matching approach is used.]
Param: Stereo/SSD = "true" [[Stereo/OpticalFlow=false] Use Sum of Squared Differences (SSD) window, otherwise Sum of Absolute Differences (SAD) window is used.]
Param: Stereo/WinHeight = "3" [Window height.]
Param: Stereo/WinWidth = "15" [Window width.]
Param: StereoBM/BlockSize = "15" [See cv::StereoBM]
Param: StereoBM/Disp12MaxDiff = "-1" [See cv::StereoBM]
Param: StereoBM/MinDisparity = "0" [See cv::StereoBM]
Param: StereoBM/NumDisparities = "128" [See cv::StereoBM]
Param: StereoBM/PreFilterCap = "31" [See cv::StereoBM]
Param: StereoBM/PreFilterSize = "9" [See cv::StereoBM]
Param: StereoBM/SpeckleRange = "4" [See cv::StereoBM]
Param: StereoBM/SpeckleWindowSize = "100" [See cv::StereoBM]
Param: StereoBM/TextureThreshold = "10" [See cv::StereoBM]
Param: StereoBM/UniquenessRatio = "15" [See cv::StereoBM]
Param: StereoSGBM/BlockSize = "15" [See cv::StereoSGBM]
Param: StereoSGBM/Disp12MaxDiff = "1" [See cv::StereoSGBM]
Param: StereoSGBM/MinDisparity = "0" [See cv::StereoSGBM]
Param: StereoSGBM/Mode = "0" [See cv::StereoSGBM]
Param: StereoSGBM/NumDisparities = "128" [See cv::StereoSGBM]
Param: StereoSGBM/P1 = "2" [See cv::StereoSGBM]
Param: StereoSGBM/P2 = "5" [See cv::StereoSGBM]
Param: StereoSGBM/PreFilterCap = "31" [See cv::StereoSGBM]
Param: StereoSGBM/SpeckleRange = "4" [See cv::StereoSGBM]
Param: StereoSGBM/SpeckleWindowSize = "100" [See cv::StereoSGBM]
Param: StereoSGBM/UniquenessRatio = "20" [See cv::StereoSGBM]

Another way is to decimate the image to get more dense point cloud but at the cost of losing accuracy, with

**Mem/ImagePostDecimation** parameter (set to 2 for example).

Integrating other dense disparity computation algorithms is also possible, see

StereoDense class (currently there are only 2 types).

cheers,

Mathieu