mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 09:30:25 +08:00
Added Optimizer/GravitySigma parameter (with GTSAM support).
This commit is contained in:
@@ -48,6 +48,7 @@ public:
|
||||
kNeighborMerged,
|
||||
kPosePrior, // Absolute pose in /world frame, From == To
|
||||
kLandmark, // Transform /base_link -> /landmark, "From" is node observing the landmark "To"
|
||||
kPoseOdom, // Pose in /odom frame, From == To (mainly used for gravity constraints)
|
||||
kEnd,
|
||||
kAllWithLandmarks = 98,
|
||||
kAllWithoutLandmarks = 99,
|
||||
|
||||
@@ -90,6 +90,7 @@ public:
|
||||
bool isRobust() const {return robust_;}
|
||||
bool priorsIgnored() const {return priorsIgnored_;}
|
||||
bool landmarksIgnored() const {return landmarksIgnored_;}
|
||||
float gravitySigma() const {return gravitySigma_;}
|
||||
|
||||
// setters
|
||||
void setIterations(int iterations) {iterations_ = iterations;}
|
||||
@@ -99,6 +100,7 @@ public:
|
||||
void setRobust(bool enabled) {robust_ = enabled;}
|
||||
void setPriorsIgnored(bool enabled) {priorsIgnored_ = enabled;}
|
||||
void setLandmarksIgnored(bool enabled) {landmarksIgnored_ = enabled;}
|
||||
void setGravitySigma(float value) {gravitySigma_ = value;}
|
||||
|
||||
virtual void parseParameters(const ParametersMap & parameters);
|
||||
|
||||
@@ -175,7 +177,8 @@ protected:
|
||||
double epsilon = Parameters::defaultOptimizerEpsilon(),
|
||||
bool robust = Parameters::defaultOptimizerRobust(),
|
||||
bool priorsIgnored = Parameters::defaultOptimizerPriorsIgnored(),
|
||||
bool landmarksIgnored = Parameters::defaultOptimizerLandmarksIgnored());
|
||||
bool landmarksIgnored = Parameters::defaultOptimizerLandmarksIgnored(),
|
||||
float gravitySigma = Parameters::defaultOptimizerGravitySigma());
|
||||
Optimizer(const ParametersMap & parameters);
|
||||
|
||||
private:
|
||||
@@ -186,6 +189,7 @@ private:
|
||||
bool robust_;
|
||||
bool priorsIgnored_;
|
||||
bool landmarksIgnored_;
|
||||
float gravitySigma_;
|
||||
};
|
||||
|
||||
} /* namespace rtabmap */
|
||||
|
||||
@@ -388,6 +388,7 @@ class RTABMAP_EXP Parameters
|
||||
RTABMAP_PARAM(Optimizer, Robust, bool, false, uFormat("Robust graph optimization using Vertigo (only work for g2o and GTSAM optimization strategies). Not compatible with \"%s\" if enabled.", kRGBDOptimizeMaxError().c_str()));
|
||||
RTABMAP_PARAM(Optimizer, PriorsIgnored, bool, true, "Ignore prior constraints (global pose or GPS) while optimizing. Currently only g2o and gtsam optimization supports this.");
|
||||
RTABMAP_PARAM(Optimizer, LandmarksIgnored, bool, false, "Ignore landmark constraints while optimizing. Currently only g2o and gtsam optimization supports this.");
|
||||
RTABMAP_PARAM(Optimizer, GravitySigma, float, 0.0, uFormat("Gravity sigma value (>=0, typically between 0.1 and 0.3). Optimization is done while preserving gravity orientation of the poses. This should be used only with visual/lidar inertial odometry approaches, for which we assume that all odometry poses are aligned with gravity. Set to 0 to disable gravity constraints. Currently supported only with GTSAM optimization strategy (see %s).", kOptimizerStrategy().c_str()));
|
||||
|
||||
#ifdef RTABMAP_ORB_SLAM2
|
||||
RTABMAP_PARAM(g2o, Solver, int, 3, "0=csparse 1=pcg 2=cholmod 3=Eigen");
|
||||
|
||||
Reference in New Issue
Block a user