Odometry local map can be limited by range (#482)

* Odometry local map is now dependent on robot range and not on time, recalculating normals after adding new scan to the map as well
This commit is contained in:
PrescilliaA
2019-12-11 13:43:38 -05:00
committed by matlabbe
parent 2d7ab7bdef
commit 4479a6f7e8
3 changed files with 125 additions and 59 deletions

View File

@@ -440,6 +440,7 @@ class RTABMAP_EXP Parameters
RTABMAP_PARAM(OdomF2M, ScanMaxSize, int, 2000, "[Geometry] Maximum local scan map size.");
RTABMAP_PARAM(OdomF2M, ScanSubtractRadius, float, 0.05, "[Geometry] Radius used to filter points of a new added scan to local map. This could match the voxel size of the scans.");
RTABMAP_PARAM(OdomF2M, ScanSubtractAngle, float, 45, uFormat("[Geometry] Max angle (degrees) used to filter points of a new added scan to local map (when \"%s\">0). 0 means any angle.", kOdomF2MScanSubtractRadius().c_str()).c_str());
RTABMAP_PARAM(OdomF2M, ScanRange, float, 0, "[Geometry] Distance Range used to filter points of local map (when > 0). 0 means local map is updated using time and not range.");
RTABMAP_PARAM(OdomF2M, ValidDepthRatio, float, 0.75, "If a new frame has points without valid depth, they are added to local feature map only if points with valid depth on total points is over this ratio. Setting to 1 means no points without valid depth are added to local feature map.");
#if defined(RTABMAP_G2O) || defined(RTABMAP_ORB_SLAM2)
RTABMAP_PARAM(OdomF2M, BundleAdjustment, int, 1, "Local bundle adjustment: 0=disabled, 1=g2o, 2=cvsba, 3=Ceres.");

View File

@@ -70,6 +70,9 @@ private:
int bundleAdjustment_;
int bundleMaxFrames_;
float validDepthRatio_;
float scanMapMaxRange_;
int pointToPlaneK_;
float pointToPlaneRadius_;
Registration * regPipeline_;
Signature * map_;