RTAB-Map 0.23.10
Real-Time Appearance-Based Mapping
Loading...
Searching...
No Matches
rtabmap::OptimizerCVSBA Class Reference
Inheritance diagram for rtabmap::OptimizerCVSBA:
Collaboration diagram for rtabmap::OptimizerCVSBA:

Public Member Functions

 OptimizerCVSBA (int iterations=Parameters::defaultOptimizerIterations(), bool slam2d=Parameters::defaultRegForce3DoF(), bool covarianceIgnored=Parameters::defaultOptimizerVarianceIgnored())
 
 OptimizerCVSBA (const ParametersMap &parameters)
 
virtual Type type () const
 Returns the concrete back-end identifier (one of Type).
 
virtual std::map< int, TransformoptimizeBA (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &links, const std::map< int, std::vector< CameraModel > > &models, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, BAOutliers *outliers=0)
 Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
 
- Public Member Functions inherited from rtabmap::Optimizer
void getConnectedGraph (int fromId, const std::map< int, Transform > &posesIn, const std::multimap< int, Link > &linksIn, std::map< int, Transform > &posesOut, std::multimap< int, Link > &linksOut) const
 Extracts the connected component reachable from fromId.
 
virtual void parseParameters (const ParametersMap &parameters)
 Reads shared knobs from parameters and applies them to this instance.
 
std::map< int, TransformoptimizeIncremental (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &constraints, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)
 Pose-graph optimization that grows the graph one node at a time.
 
std::map< int, Transformoptimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &constraints, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)
 Pose-graph optimization (single shot).
 
virtual std::map< int, Transformoptimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &constraints, cv::Mat &outputCovariance, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)
 Pose-graph optimization with marginal covariance of rootId.
 
std::map< int, TransformoptimizeBA (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &links, const std::map< int, Signature > &signatures, std::map< int, cv::Point3f > &points3DMap, std::map< int, std::map< int, FeatureBA > > &wordReferences, bool rematchFeatures=false, const ParametersMap &registrationParameters=ParametersMap())
 BA wrapper that derives camera models and correspondences from signatures.
 
std::map< int, TransformoptimizeBA (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &links, const std::map< int, Signature > &signatures, bool rematchFeatures=false, const ParametersMap &registrationParameters=ParametersMap())
 BA convenience wrapper: like the overload above but ignores the refined 3D points and observation map.
 
Transform optimizeBA (const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, BAOutliers *outliers=0)
 Refine a single two-frame link via BA.
 
void computeBACorrespondences (const std::map< int, Transform > &poses, const std::multimap< int, Link > &links, const std::map< int, Signature > &signatures, std::map< int, cv::Point3f > &points3DMap, std::map< int, std::map< int, FeatureBA > > &wordReferences, bool rematchFeatures=false, bool useLinkTransformAsGuess=false, ParametersMap registrationParameters=ParametersMap())
 Build BA correspondences (3D points + per-frame observations) from signatures.
 
int iterations () const
 Max solver iterations.
 
bool isSlam2d () const
 True if optimizing in SE(2) instead of SE(3).
 
bool isCovarianceIgnored () const
 If true, all edges share an identity information matrix.
 
double epsilon () const
 Convergence threshold on cost decrease.
 
bool isRobust () const
 If true, use a robust kernel / switchable factors against bad loop closures.
 
bool priorsIgnored () const
 If true, unary priors on poses are dropped.
 
bool landmarksIgnored () const
 If true, landmark/marker observations are dropped.
 
float gravitySigma () const
 Std-dev (rad) of the gravity prior on roll/pitch; 0 disables it.
 
void setIterations (int iterations)
 
void setSlam2d (bool enabled)
 
void setCovarianceIgnored (bool enabled)
 
void setEpsilon (double epsilon)
 
void setRobust (bool enabled)
 
void setPriorsIgnored (bool enabled)
 
void setLandmarksIgnored (bool enabled)
 
void setGravitySigma (float value)
 

Static Public Member Functions

static bool available ()
 
- Static Public Member Functions inherited from rtabmap::Optimizer
static bool isAvailable (Optimizer::Type type)
 Returns whether type was compiled in (its third-party dependency was found).
 
static Optimizercreate (const ParametersMap &parameters)
 Factory: build an optimizer from a ParametersMap.
 
static Optimizercreate (Optimizer::Type type, const ParametersMap &parameters=ParametersMap())
 Factory: build an optimizer of a specific type. Caller owns the result.
 

Additional Inherited Members

- Public Types inherited from rtabmap::Optimizer
enum  Type {
  kTypeUndef = -1 , kTypeTORO = 0 , kTypeG2O = 1 , kTypeGTSAM = 2 ,
  kTypeCeres = 3 , kTypeCVSBA = 4
}
 Graph-optimizer back-end identifier. More...
 
- Protected Member Functions inherited from rtabmap::Optimizer
 Optimizer (int iterations=Parameters::defaultOptimizerIterations(), bool slam2d=Parameters::defaultRegForce3DoF(), bool covarianceIgnored=Parameters::defaultOptimizerVarianceIgnored(), double epsilon=Parameters::defaultOptimizerEpsilon(), bool robust=Parameters::defaultOptimizerRobust(), bool priorsIgnored=Parameters::defaultOptimizerPriorsIgnored(), bool landmarksIgnored=Parameters::defaultOptimizerLandmarksIgnored(), float gravitySigma=Parameters::defaultOptimizerGravitySigma())
 
 Optimizer (const ParametersMap &parameters)
 

Detailed Description

Definition at line 35 of file OptimizerCVSBA.h.

Constructor & Destructor Documentation

◆ OptimizerCVSBA() [1/2]

rtabmap::OptimizerCVSBA::OptimizerCVSBA ( int  iterations = Parameters::defaultOptimizerIterations(),
bool  slam2d = Parameters::defaultRegForce3DoF(),
bool  covarianceIgnored = Parameters::defaultOptimizerVarianceIgnored() 
)
inline

Definition at line 41 of file OptimizerCVSBA.h.

◆ OptimizerCVSBA() [2/2]

rtabmap::OptimizerCVSBA::OptimizerCVSBA ( const ParametersMap parameters)
inline

Definition at line 46 of file OptimizerCVSBA.h.

◆ ~OptimizerCVSBA()

virtual rtabmap::OptimizerCVSBA::~OptimizerCVSBA ( )
inlinevirtual

Definition at line 48 of file OptimizerCVSBA.h.

Member Function Documentation

◆ type()

virtual Type rtabmap::OptimizerCVSBA::type ( ) const
inlinevirtual

Returns the concrete back-end identifier (one of Type).

Implements rtabmap::Optimizer.

Definition at line 50 of file OptimizerCVSBA.h.

◆ optimizeBA()

virtual std::map< int, Transform > rtabmap::OptimizerCVSBA::optimizeBA ( int  rootId,
const std::map< int, Transform > &  poses,
const std::multimap< int, Link > &  links,
const std::map< int, std::vector< CameraModel > > &  models,
std::map< int, cv::Point3f > &  points3DMap,
const std::map< int, std::map< int, FeatureBA > > &  wordReferences,
BAOutliers *  outliers = 0 
)
virtual

Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).

Concrete subclasses (g2o, Ceres, cvsba) override this; the base implementation errors out. The other optimizeBA() overloads ultimately funnel here.

Parameters
rootIdPose to hold fixed. If negative, ALL poses other than the (positive) lowest id are held fixed.
posesInitial pose estimates keyed by frame id.
linksEdges used to define the BA problem topology.
modelsCamera model(s) per frame; for stereo, Tx must be set on the model (= -baseline*fx). Multi-camera rigs have multiple entries per frame.
points3DMapIn/out: world 3D points keyed by word id; refined on return.
wordReferencesObservations: <wordId, <frameId, FeatureBA>>. See FeatureBA.
outliersOptional output: word ids dropped by the back-end's outlier rejection.
Returns
Refined poses, or empty on failure.

Reimplemented from rtabmap::Optimizer.


The documentation for this class was generated from the following file: