diff --git a/api/latest/OdometryF2M_8h_source.html b/api/latest/OdometryF2M_8h_source.html
index 0758d555..f670a449 100644
--- a/api/latest/OdometryF2M_8h_source.html
+++ b/api/latest/OdometryF2M_8h_source.html
@@ -214,7 +214,7 @@ $(document).ready(function(){initNavTree('OdometryF2M_8h_source.html',''); initR
What one Odometry iteration produced, beyond the pose.
Abstract base class for visual, lidar and visual-inertial odometry backends.
Type
Odometry backend selected by Parameters::kOdomStrategy().
-Abstract base for pose-graph and bundle-adjustment optimizers.
+Abstract base for pose-graph and bundle-adjustment optimizers.
Abstract base for registering two observations (visual, ICP, or both).
Container class for all sensor data captured at a specific time.
Represents a node in RTAB-Map's pose graph.
diff --git a/api/latest/OptimizerCVSBA_8h_source.html b/api/latest/OptimizerCVSBA_8h_source.html
index cdf62396..c019326f 100644
--- a/api/latest/OptimizerCVSBA_8h_source.html
+++ b/api/latest/OptimizerCVSBA_8h_source.html
@@ -158,24 +158,24 @@ $(document).ready(function(){initNavTree('OptimizerCVSBA_8h_source.html',''); in
-
+
54 const std::map<int, Transform> & poses,
55 const std::multimap<int, Link> & links,
56 const std::map<
int , std::vector<CameraModel> > & models,
57 std::map<int, cv::Point3f> & points3DMap,
58 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
- 59 std::set<int> * outliers = 0);
+ 59 BAOutliers * outliers = 0);
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+virtual std::map< int, Transform > 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)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
virtual Type type() const
Returns the concrete back-end identifier (one of Type).
-Abstract base for pose-graph and bundle-adjustment optimizers.
-Type
Graph-optimizer back-end identifier.
+Abstract base for pose-graph and bundle-adjustment optimizers.
+Type
Graph-optimizer back-end identifier.
std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters).
diff --git a/api/latest/OptimizerCeres_8h_source.html b/api/latest/OptimizerCeres_8h_source.html
index 47e7bc62..b20bec13 100644
--- a/api/latest/OptimizerCeres_8h_source.html
+++ b/api/latest/OptimizerCeres_8h_source.html
@@ -173,14 +173,14 @@ $(document).ready(function(){initNavTree('OptimizerCeres_8h_source.html',''); in
64 double * finalError = 0,
65 int * iterationsDone = 0);
-
+
69 const std::map<int, Transform> & poses,
70 const std::multimap<int, Link> & links,
71 const std::map<
int , std::vector<CameraModel> > & models,
72 std::map<int, cv::Point3f> & points3DMap,
73 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
- 74 std::set<int> * outliers = 0);
+ 74 BAOutliers * outliers = 0);
77 double pixelVariance_;
@@ -193,12 +193,12 @@ $(document).ready(function(){initNavTree('OptimizerCeres_8h_source.html',''); in
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
virtual void parseParameters(const ParametersMap ¶meters)
Reads shared knobs from parameters and applies them to this instance.
virtual std::map< int, Transform > optimize(int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, 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.
virtual Type type() const
Returns the concrete back-end identifier (one of Type).
-Abstract base for pose-graph and bundle-adjustment optimizers.
-Type
Graph-optimizer back-end identifier.
+virtual std::map< int, Transform > 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)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+Abstract base for pose-graph and bundle-adjustment optimizers.
+Type
Graph-optimizer back-end identifier.
std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters).
diff --git a/api/latest/OptimizerG2O_8h_source.html b/api/latest/OptimizerG2O_8h_source.html
index b7e7b40b..cf2fa7a5 100644
--- a/api/latest/OptimizerG2O_8h_source.html
+++ b/api/latest/OptimizerG2O_8h_source.html
@@ -173,14 +173,14 @@ $(document).ready(function(){initNavTree('OptimizerG2O_8h_source.html',''); init
64 double * finalError = 0,
65 int * iterationsDone = 0);
-
+
69 const std::map<int, Transform> & poses,
70 const std::multimap<int, Link> & links,
71 const std::map<
int , std::vector<CameraModel> > & models,
72 std::map<int, cv::Point3f> & points3DMap,
73 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
- 74 std::set<int> * outliers = 0);
+ 74 BAOutliers * outliers = 0);
77 const std::string & fileName,
@@ -201,11 +201,11 @@ $(document).ready(function(){initNavTree('OptimizerG2O_8h_source.html',''); init
virtual void parseParameters(const ParametersMap ¶meters)
Reads shared knobs from parameters and applies them to this instance.
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
virtual std::map< int, Transform > optimize(int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, 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.
virtual Type type() const
Returns the concrete back-end identifier (one of Type).
-Abstract base for pose-graph and bundle-adjustment optimizers.
-Type
Graph-optimizer back-end identifier.
+virtual std::map< int, Transform > 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)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+Abstract base for pose-graph and bundle-adjustment optimizers.
+Type
Graph-optimizer back-end identifier.
std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters).
diff --git a/api/latest/OptimizerGTSAM_8h_source.html b/api/latest/OptimizerGTSAM_8h_source.html
index 0b66499d..68df2681 100644
--- a/api/latest/OptimizerGTSAM_8h_source.html
+++ b/api/latest/OptimizerGTSAM_8h_source.html
@@ -167,14 +167,14 @@ $(document).ready(function(){initNavTree('OptimizerGTSAM_8h_source.html',''); in
58 double * finalError = 0,
59 int * iterationsDone = 0);
-
+
63 const std::map<int, Transform> & poses,
64 const std::multimap<int, Link> & links,
65 const std::map<
int , std::vector<CameraModel> > & models,
66 std::map<int, cv::Point3f> & points3DMap,
67 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
- 68 std::set<int> * outliers = 0);
+ 68 BAOutliers * outliers = 0);
71 int internalOptimizerType_;
@@ -209,10 +209,10 @@ $(document).ready(function(){initNavTree('OptimizerGTSAM_8h_source.html',''); in
virtual Type type() const
Returns the concrete back-end identifier (one of Type).
virtual std::map< int, Transform > optimize(int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, 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.
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+virtual std::map< int, Transform > 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)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
virtual void parseParameters(const ParametersMap ¶meters)
Reads shared knobs from parameters and applies them to this instance.
-Abstract base for pose-graph and bundle-adjustment optimizers.
-Type
Graph-optimizer back-end identifier.
+Abstract base for pose-graph and bundle-adjustment optimizers.
+Type
Graph-optimizer back-end identifier.
std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters).
diff --git a/api/latest/OptimizerTORO_8h_source.html b/api/latest/OptimizerTORO_8h_source.html
index 0f287359..43fa5183 100644
--- a/api/latest/OptimizerTORO_8h_source.html
+++ b/api/latest/OptimizerTORO_8h_source.html
@@ -186,8 +186,8 @@ $(document).ready(function(){initNavTree('OptimizerTORO_8h_source.html',''); ini
virtual std::map< int, Transform > optimize(int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, 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.
virtual Type type() const
Returns the concrete back-end identifier (one of Type).
-Abstract base for pose-graph and bundle-adjustment optimizers.
-Type
Graph-optimizer back-end identifier.
+Abstract base for pose-graph and bundle-adjustment optimizers.
+Type
Graph-optimizer back-end identifier.
std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters).
diff --git a/api/latest/Optimizer_8h_source.html b/api/latest/Optimizer_8h_source.html
index c070e502..62943507 100644
--- a/api/latest/Optimizer_8h_source.html
+++ b/api/latest/Optimizer_8h_source.html
@@ -140,185 +140,188 @@ $(document).ready(function(){initNavTree('Optimizer_8h_source.html',''); initRes
- 35 #include <rtabmap/core/Link.h>
- 36 #include <rtabmap/core/Parameters.h>
- 37 #include <rtabmap/core/Signature.h>
-
-
-
-
-
-
-
-
53 FeatureBA (
const cv::KeyPoint & kptIn,
const float & depthIn = 0.0f,
const cv::Mat & descriptorIn = cv::Mat(),
int cameraIndexIn = 0):
-
-
-
-
-
-
-
-
-
-
-
-
+
+
36 #include <rtabmap/core/Link.h>
+
37 #include <rtabmap/core/Parameters.h>
+
38 #include <rtabmap/core/Signature.h>
+
+
+
+
+
+
+
+
54 FeatureBA (
const cv::KeyPoint & kptIn,
const float & depthIn = 0.0f,
const cv::Mat & descriptorIn = cv::Mat(),
int cameraIndexIn = 0):
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
68 typedef std::map<int, std::set<int> > BAOutliers;
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
-
-
129 const std::map<int, Transform> & posesIn,
-
130 const std::multimap<int, Link> & linksIn,
-
131 std::map<int, Transform> & posesOut,
-
132 std::multimap<int, Link> & linksOut)
const ;
-
-
-
+
+
+
+
+
132 const std::map<int, Transform> & posesIn,
+
133 const std::multimap<int, Link> & linksIn,
+
134 std::map<int, Transform> & posesOut,
+
135 std::multimap<int, Link> & linksOut)
const ;
-
+
+
-
-
-
-
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
154 void setIterations(
int iterations) {iterations_ = iterations;}
-
155 void setSlam2d(
bool enabled) {slam2d_ = enabled;}
-
156 void setCovarianceIgnored(
bool enabled) {covarianceIgnored_ = enabled;}
-
157 void setEpsilon(
double epsilon) {epsilon_ = epsilon;}
-
158 void setRobust(
bool enabled) {robust_ = enabled;}
-
159 void setPriorsIgnored(
bool enabled) {priorsIgnored_ = enabled;}
-
160 void setLandmarksIgnored(
bool enabled) {landmarksIgnored_ = enabled;}
-
161 void setGravitySigma(
float value) {gravitySigma_ = value;}
-
-
-
-
-
-
191 const std::map<int, Transform> & poses,
-
192 const std::multimap<int, Link> & constraints,
-
193 std::list<std::map<int, Transform> > * intermediateGraphes = 0,
-
194 double * finalError = 0,
-
195 int * iterationsDone = 0);
-
-
-
-
205 const std::map<int, Transform> & poses,
-
206 const std::multimap<int, Link> & constraints,
-
207 std::list<std::map<int, Transform> > * intermediateGraphes = 0,
-
208 double * finalError = 0,
-
209 int * iterationsDone = 0);
-
-
-
-
229 const std::map<int, Transform> & poses,
-
230 const std::multimap<int, Link> & constraints,
-
231 cv::Mat & outputCovariance,
-
232 std::list<std::map<int, Transform> > * intermediateGraphes = 0,
-
233 double * finalError = 0,
-
234 int * iterationsDone = 0);
-
-
-
-
255 const std::map<int, Transform> & poses,
-
256 const std::multimap<int, Link> & links,
-
257 const std::map<
int , std::vector<CameraModel> > & models,
-
258 std::map<int, cv::Point3f> & points3DMap,
-
259 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
-
260 std::set<int> * outliers = 0);
-
-
-
-
276 const std::map<int, Transform> & poses,
-
277 const std::multimap<int, Link> & links,
-
278 const std::map<int, Signature> & signatures,
-
279 std::map<int, cv::Point3f> & points3DMap,
-
280 std::map<
int , std::map<int, FeatureBA> > & wordReferences,
-
281 bool rematchFeatures =
false ,
-
-
-
-
-
288 const std::map<int, Transform> & poses,
-
289 const std::multimap<int, Link> & links,
-
290 const std::map<int, Signature> & signatures,
-
291 bool rematchFeatures =
false ,
-
-
-
-
-
-
304 std::map<int, cv::Point3f> & points3DMap,
-
305 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
-
306 std::set<int> * outliers = 0);
-
-
-
324 const std::map<int, Transform> & poses,
-
325 const std::multimap<int, Link> & links,
-
326 const std::map<int, Signature> & signatures,
-
327 std::map<int, cv::Point3f> & points3DMap,
-
328 std::map<
int , std::map<int, FeatureBA > > & wordReferences,
-
329 bool rematchFeatures =
false ,
-
330 bool useLinkTransformAsGuess =
false ,
-
-
-
-
-
335 int iterations = Parameters::defaultOptimizerIterations(),
-
336 bool slam2d = Parameters::defaultRegForce3DoF(),
-
337 bool covarianceIgnored = Parameters::defaultOptimizerVarianceIgnored(),
-
338 double epsilon = Parameters::defaultOptimizerEpsilon(),
-
339 bool robust = Parameters::defaultOptimizerRobust(),
-
340 bool priorsIgnored = Parameters::defaultOptimizerPriorsIgnored(),
-
341 bool landmarksIgnored = Parameters::defaultOptimizerLandmarksIgnored(),
-
342 float gravitySigma = Parameters::defaultOptimizerGravitySigma());
-
-
-
-
-
-
348 bool covarianceIgnored_;
-
-
-
-
352 bool landmarksIgnored_;
-
-
-
-
-
+
+
+
+
+
+
+
+
+
157 void setIterations(
int iterations) {iterations_ = iterations;}
+
158 void setSlam2d(
bool enabled) {slam2d_ = enabled;}
+
159 void setCovarianceIgnored(
bool enabled) {covarianceIgnored_ = enabled;}
+
160 void setEpsilon(
double epsilon) {epsilon_ = epsilon;}
+
161 void setRobust(
bool enabled) {robust_ = enabled;}
+
162 void setPriorsIgnored(
bool enabled) {priorsIgnored_ = enabled;}
+
163 void setLandmarksIgnored(
bool enabled) {landmarksIgnored_ = enabled;}
+
164 void setGravitySigma(
float value) {gravitySigma_ = value;}
+
+
+
+
+
+
194 const std::map<int, Transform> & poses,
+
195 const std::multimap<int, Link> & constraints,
+
196 std::list<std::map<int, Transform> > * intermediateGraphes = 0,
+
197 double * finalError = 0,
+
198 int * iterationsDone = 0);
+
+
+
+
208 const std::map<int, Transform> & poses,
+
209 const std::multimap<int, Link> & constraints,
+
210 std::list<std::map<int, Transform> > * intermediateGraphes = 0,
+
211 double * finalError = 0,
+
212 int * iterationsDone = 0);
+
+
+
+
232 const std::map<int, Transform> & poses,
+
233 const std::multimap<int, Link> & constraints,
+
234 cv::Mat & outputCovariance,
+
235 std::list<std::map<int, Transform> > * intermediateGraphes = 0,
+
236 double * finalError = 0,
+
237 int * iterationsDone = 0);
+
+
+
+
258 const std::map<int, Transform> & poses,
+
259 const std::multimap<int, Link> & links,
+
260 const std::map<
int , std::vector<CameraModel> > & models,
+
261 std::map<int, cv::Point3f> & points3DMap,
+
262 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
+
263 BAOutliers * outliers = 0);
+
+
+
+
279 const std::map<int, Transform> & poses,
+
280 const std::multimap<int, Link> & links,
+
281 const std::map<int, Signature> & signatures,
+
282 std::map<int, cv::Point3f> & points3DMap,
+
283 std::map<
int , std::map<int, FeatureBA> > & wordReferences,
+
284 bool rematchFeatures =
false ,
+
+
+
+
+
291 const std::map<int, Transform> & poses,
+
292 const std::multimap<int, Link> & links,
+
293 const std::map<int, Signature> & signatures,
+
294 bool rematchFeatures =
false ,
+
+
+
+
+
+
307 std::map<int, cv::Point3f> & points3DMap,
+
308 const std::map<
int , std::map<int, FeatureBA> > & wordReferences,
+
309 BAOutliers * outliers = 0);
+
+
+
327 const std::map<int, Transform> & poses,
+
328 const std::multimap<int, Link> & links,
+
329 const std::map<int, Signature> & signatures,
+
330 std::map<int, cv::Point3f> & points3DMap,
+
331 std::map<
int , std::map<int, FeatureBA > > & wordReferences,
+
332 bool rematchFeatures =
false ,
+
333 bool useLinkTransformAsGuess =
false ,
+
+
+
+
+
338 int iterations = Parameters::defaultOptimizerIterations(),
+
339 bool slam2d = Parameters::defaultRegForce3DoF(),
+
340 bool covarianceIgnored = Parameters::defaultOptimizerVarianceIgnored(),
+
341 double epsilon = Parameters::defaultOptimizerEpsilon(),
+
342 bool robust = Parameters::defaultOptimizerRobust(),
+
343 bool priorsIgnored = Parameters::defaultOptimizerPriorsIgnored(),
+
344 bool landmarksIgnored = Parameters::defaultOptimizerLandmarksIgnored(),
+
345 float gravitySigma = Parameters::defaultOptimizerGravitySigma());
+
+
+
+
+
+
351 bool covarianceIgnored_;
+
+
+
+
355 bool landmarksIgnored_;
+
+
+
+
+
@@ -328,33 +331,33 @@ $(document).ready(function(){initNavTree('Optimizer_8h_source.html',''); initRes
Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection,...
-
A single bundle adjustment feature observation: one keypoint seen in one frame.
-
cv::KeyPoint kpt
2D image keypoint.
-
cv::Mat descriptor
Optional descriptor for the keypoint (used when re-matching is enabled).
-
int cameraIndex
Index into the frame's camera model list for multi-camera rigs.
-
float depth
Depth at kpt in meters, or 0 if unknown (monocular).
+
A single bundle adjustment feature observation: one keypoint seen in one frame.
+
cv::KeyPoint kpt
2D image keypoint.
+
cv::Mat descriptor
Optional descriptor for the keypoint (used when re-matching is enabled).
+
int cameraIndex
Index into the frame's camera model list for multi-camera rigs.
+
float depth
Depth at kpt in meters, or 0 if unknown (monocular).
Directed constraint between two nodes in RTAB-Map's pose graph.
-
Abstract base for pose-graph and bundle-adjustment optimizers.
-
virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
Abstract base for pose-graph and bundle-adjustment optimizers.
virtual void parseParameters(const ParametersMap ¶meters)
Reads shared knobs from parameters and applies them to this instance.
-
int iterations() const
Max solver iterations.
-
Type
Graph-optimizer back-end identifier.
+
virtual std::map< int, Transform > 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)
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
int iterations() const
Max solver iterations.
+
Type
Graph-optimizer back-end identifier.
std::map< int, Transform > optimizeIncremental(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.
-
bool isRobust() const
If true, use a robust kernel / switchable factors against bad loop closures.
+
bool isRobust() const
If true, use a robust kernel / switchable factors against bad loop closures.
std::map< int, Transform > optimizeBA(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 ®istrationParameters=ParametersMap())
BA wrapper that derives camera models and correspondences from signatures.
-
bool landmarksIgnored() const
If true, landmark/marker observations are dropped.
-
double epsilon() const
Convergence threshold on cost decrease.
+
bool landmarksIgnored() const
If true, landmark/marker observations are dropped.
+
double epsilon() const
Convergence threshold on cost decrease.
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.
-
bool isSlam2d() const
True if optimizing in SE(2) instead of SE(3).
+
bool isSlam2d() const
True if optimizing in SE(2) instead of SE(3).
static Optimizer * create(const ParametersMap ¶meters)
Factory: build an optimizer from a ParametersMap.
std::map< int, Transform > optimize(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).
-
bool isCovarianceIgnored() const
If true, all edges share an identity information matrix.
+
bool isCovarianceIgnored() const
If true, all edges share an identity information matrix.
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.
virtual Type type() const =0
Returns the concrete back-end identifier (one of Type).
std::map< int, Transform > optimizeBA(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 ®istrationParameters=ParametersMap())
BA convenience wrapper: like the overload above but ignores the refined 3D points and observation map...
-
float gravitySigma() const
Std-dev (rad) of the gravity prior on roll/pitch; 0 disables it.
-
Transform optimizeBA(const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)
Refine a single two-frame link via BA.
-
bool priorsIgnored() const
If true, unary priors on poses are dropped.
+
float gravitySigma() const
Std-dev (rad) of the gravity prior on roll/pitch; 0 disables it.
+
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.
+
bool priorsIgnored() const
If true, unary priors on poses are dropped.
static Optimizer * create(Optimizer::Type type, const ParametersMap ¶meters=ParametersMap())
Factory: build an optimizer of a specific type. Caller owns the result.
virtual std::map< int, Transform > optimize(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.
static bool isAvailable(Optimizer::Type type)
Returns whether type was compiled in (its third-party dependency was found).
diff --git a/api/latest/Parameters_8h_source.html b/api/latest/Parameters_8h_source.html
index 289af9fe..fe1ff872 100644
--- a/api/latest/Parameters_8h_source.html
+++ b/api/latest/Parameters_8h_source.html
@@ -1077,7 +1077,7 @@ $(document).ready(function(){initNavTree('Parameters_8h_source.html',''); initRe
Good-features-to-track detector (Shi–Tomasi / Harris).
KAZE detector and descriptor (OpenCV 3+).
ORB detector and descriptor (optional GPU).
-
Abstract base for pose-graph and bundle-adjustment optimizers.
+
Abstract base for pose-graph and bundle-adjustment optimizers.
static std::string getType(const std::string ¶mKey)
static ParametersMap filterParameters(const ParametersMap ¶meters, const std::string &group, bool remove=false)
diff --git a/api/latest/Rtabmap_8h_source.html b/api/latest/Rtabmap_8h_source.html
index 01e45418..5bff7e8a 100644
--- a/api/latest/Rtabmap_8h_source.html
+++ b/api/latest/Rtabmap_8h_source.html
@@ -477,7 +477,7 @@ $(document).ready(function(){initNavTree('Rtabmap_8h_source.html',''); initResiz
Represents 2D or 3D laser scan data with support for multiple point data formats.
Directed constraint between two nodes in RTAB-Map's pose graph.
Three-tiered memory management (STM, WM, LTM) for RTAB-Map.
-
Abstract base for pose-graph and bundle-adjustment optimizers.
+
Abstract base for pose-graph and bundle-adjustment optimizers.
Top-level RTAB-Map SLAM pipeline (mapping, localization and loop closure).
bool setUserData(int id, const cv::Mat &data)
Attaches user data to signature id, compressing it on the fly if needed.
diff --git a/api/latest/classrtabmap_1_1FeatureBA.html b/api/latest/classrtabmap_1_1FeatureBA.html
index b1df7ce1..29cec357 100644
--- a/api/latest/classrtabmap_1_1FeatureBA.html
+++ b/api/latest/classrtabmap_1_1FeatureBA.html
@@ -133,9 +133,9 @@ Public Attributes
A single bundle adjustment feature observation: one keypoint seen in one frame.
-
Used as the per-frame value in the wordReferences map (<wordId, <frameId, FeatureBA >>) passed to Optimizer::optimizeBA() . depth is in meters when available (RGB-D / stereo with disparity) or 0 if unknown (monocular). descriptor and cameraIndex are optional; cameraIndex selects which CameraModel of a multi-camera rig the keypoint belongs to.
+
Used as the per-frame value in the wordReferences map (<wordId, <frameId, FeatureBA >>) passed to Optimizer::optimizeBA() . depth is in meters when available (RGB-D / stereo with disparity) or 0 if unknown (monocular). descriptor and cameraIndex are optional; cameraIndex selects which CameraModel of a multi-camera rig the keypoint belongs to.
-
Definition at line 50 of file Optimizer.h .
+
Definition at line 51 of file Optimizer.h .
◆ FeatureBA()
@@ -183,7 +183,7 @@ Public Attributes
@@ -202,7 +202,7 @@ Public Attributes
2D image keypoint.
-
Definition at line 61 of file Optimizer.h .
+
Definition at line 62 of file Optimizer.h .
@@ -220,7 +220,7 @@ Public Attributes
Depth at kpt in meters, or 0 if unknown (monocular).
-
Definition at line 62 of file Optimizer.h .
+
Definition at line 63 of file Optimizer.h .
@@ -238,7 +238,7 @@ Public Attributes
Optional descriptor for the keypoint (used when re-matching is enabled).
-
Definition at line 63 of file Optimizer.h .
+
Definition at line 64 of file Optimizer.h .
@@ -256,7 +256,7 @@ Public Attributes
Index into the frame's camera model list for multi-camera rigs.
-
Definition at line 64 of file Optimizer.h .
+
Definition at line 65 of file Optimizer.h .
diff --git a/api/latest/classrtabmap_1_1Optimizer-members.html b/api/latest/classrtabmap_1_1Optimizer-members.html
index 1c10f819..27a3faaf 100644
--- a/api/latest/classrtabmap_1_1Optimizer-members.html
+++ b/api/latest/classrtabmap_1_1Optimizer-members.html
@@ -124,10 +124,10 @@ $(document).ready(function(){initNavTree('classrtabmap_1_1Optimizer.html',''); i
landmarksIgnored () constrtabmap::Optimizer inline
optimize (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)rtabmap::Optimizer
optimize (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)rtabmap::Optimizer virtual
- 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, std::set< int > *outliers=0)rtabmap::Optimizer virtual
+ 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)rtabmap::Optimizer virtual
optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
- optimizeBA (const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)rtabmap::Optimizer
+ 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)rtabmap::Optimizer
optimizeIncremental (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)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()) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
Optimizer (const ParametersMap ¶meters) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
diff --git a/api/latest/classrtabmap_1_1Optimizer.html b/api/latest/classrtabmap_1_1Optimizer.html
index 65c57b51..6c0b396f 100644
--- a/api/latest/classrtabmap_1_1Optimizer.html
+++ b/api/latest/classrtabmap_1_1Optimizer.html
@@ -166,9 +166,9 @@ Public Member Functions
virtual std::map< int, Transform > optimize (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.
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
- Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
-
+virtual std::map< int, Transform > 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)
+ Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
std::map< int, Transform > optimizeBA (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 ®istrationParameters=ParametersMap ())
BA wrapper that derives camera models and correspondences from signatures.
@@ -176,9 +176,9 @@ Public Member Functions
std::map< int, Transform > optimizeBA (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 ®istrationParameters=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, std::set< int > *outliers=0)
- Refine a single two-frame link via BA.
-
+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.
@@ -252,11 +252,11 @@ Protected Member Functions
Optimizer is a factory + interface in front of several third-party back-ends (TORO , g2o , GTSAM , Ceres , cvsba ). Use create() to instantiate one based on the Optimizer/Strategy parameter; use isAvailable() to check whether a given back-end was compiled in.
Two families of methods are exposed:
Pose-graph optimization (optimize / optimizeIncremental ) — refines poses given relative-pose constraints. Subclasses override optimize() with covariance output.
-Bundle adjustment (optimizeBA ) — jointly refines poses and 3D points using reprojection error. Subclasses override the lowest-level overload; the others are convenience wrappers that fill in models/correspondences from Signature data.
+Bundle adjustment (optimizeBA ) — jointly refines poses and 3D points using reprojection error. Subclasses override the lowest-level overload; the others are convenience wrappers that fill in models/correspondences from Signature data.
Common knobs (iterations, robust kernels, 2D-vs-3D, etc.) are configured through parseParameters() or per-attribute setters and apply to whichever back-end is selected.
-Definition at line 87 of file Optimizer.h .
+Definition at line 90 of file Optimizer.h .
◆ Type
@@ -286,7 +286,7 @@ Protected Member Functions
-Definition at line 91 of file Optimizer.h .
+Definition at line 94 of file Optimizer.h .
@@ -314,7 +314,7 @@ Protected Member Functions
@@ -480,7 +480,7 @@ Protected Member Functions
Max solver iterations.
-Definition at line 142 of file Optimizer.h .
+Definition at line 145 of file Optimizer.h .
@@ -509,7 +509,7 @@ Protected Member Functions
True if optimizing in SE(2) instead of SE(3).
-Definition at line 143 of file Optimizer.h .
+Definition at line 146 of file Optimizer.h .
@@ -538,7 +538,7 @@ Protected Member Functions
If true, all edges share an identity information matrix.
-Definition at line 144 of file Optimizer.h .
+Definition at line 147 of file Optimizer.h .
@@ -567,7 +567,7 @@ Protected Member Functions
Convergence threshold on cost decrease.
-Definition at line 145 of file Optimizer.h .
+Definition at line 148 of file Optimizer.h .
@@ -596,7 +596,7 @@ Protected Member Functions
If true, use a robust kernel / switchable factors against bad loop closures.
-Definition at line 146 of file Optimizer.h .
+Definition at line 149 of file Optimizer.h .
@@ -625,7 +625,7 @@ Protected Member Functions
If true, unary priors on poses are dropped.
-Definition at line 147 of file Optimizer.h .
+Definition at line 150 of file Optimizer.h .
@@ -654,7 +654,7 @@ Protected Member Functions
If true, landmark/marker observations are dropped.
-Definition at line 148 of file Optimizer.h .
+Definition at line 151 of file Optimizer.h .
@@ -683,7 +683,7 @@ Protected Member Functions
Std-dev (rad) of the gravity prior on roll/pitch; 0 disables it.
-Definition at line 149 of file Optimizer.h .
+Definition at line 152 of file Optimizer.h .
@@ -711,7 +711,7 @@ Protected Member Functions
@@ -739,7 +739,7 @@ Protected Member Functions
@@ -767,7 +767,7 @@ Protected Member Functions
@@ -795,7 +795,7 @@ Protected Member Functions
@@ -823,7 +823,7 @@ Protected Member Functions
@@ -851,7 +851,7 @@ Protected Member Functions
@@ -879,7 +879,7 @@ Protected Member Functions
@@ -907,7 +907,7 @@ Protected Member Functions
@@ -1148,8 +1148,8 @@ Protected Member Functions
-
-◆ optimizeBA() [1/3]
+
+◆ optimizeBA() [1/3]
@@ -1196,7 +1196,7 @@ Protected Member Functions
- std::set< int > *
+ BAOutliers *
outliers = 0
@@ -1213,7 +1213,7 @@ Protected Member Functions
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.
+
Concrete subclasses (g2o, Ceres, cvsba) override this; the base implementation errors out. The other optimizeBA() overloads ultimately funnel here.
Parameters
rootId Pose to hold fixed. If negative, ALL poses other than the (positive) lowest id are held fixed.
@@ -1228,7 +1228,7 @@ Protected Member Functions
Returns Refined poses, or empty on failure.
-Reimplemented in rtabmap::OptimizerCeres , rtabmap::OptimizerCVSBA , rtabmap::OptimizerG2O , and rtabmap::OptimizerGTSAM .
+Reimplemented in rtabmap::OptimizerCeres , rtabmap::OptimizerCVSBA , rtabmap::OptimizerG2O , and rtabmap::OptimizerGTSAM .
@@ -1306,8 +1306,8 @@ Protected Member Functions
-
-◆ optimizeBA() [3/3]
+
+◆ optimizeBA() [3/3]
@@ -1339,7 +1339,7 @@ Protected Member Functions
- std::set< int > *
+ BAOutliers *
outliers = 0
diff --git a/api/latest/classrtabmap_1_1Optimizer.js b/api/latest/classrtabmap_1_1Optimizer.js
index af084ed1..443a3e4e 100644
--- a/api/latest/classrtabmap_1_1Optimizer.js
+++ b/api/latest/classrtabmap_1_1Optimizer.js
@@ -22,9 +22,9 @@ var classrtabmap_1_1Optimizer =
[ "optimizeIncremental", "classrtabmap_1_1Optimizer.html#a278f42e0d250085ac6fe9ed425627acf", null ],
[ "optimize", "classrtabmap_1_1Optimizer.html#a7e3aff943e77603493a358ff522fa2dc", null ],
[ "optimize", "classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3", null ],
- [ "optimizeBA", "classrtabmap_1_1Optimizer.html#a038e8df970ab744f6f4ba7027f62b263", null ],
+ [ "optimizeBA", "classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5", null ],
[ "optimizeBA", "classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0", null ],
[ "optimizeBA", "classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc", null ],
- [ "optimizeBA", "classrtabmap_1_1Optimizer.html#ad6b32a9697837f03941773f6a5bbf91c", null ],
+ [ "optimizeBA", "classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605", null ],
[ "computeBACorrespondences", "classrtabmap_1_1Optimizer.html#a93fb09dac068e64de000f692bcb8216f", null ]
];
\ No newline at end of file
diff --git a/api/latest/classrtabmap_1_1OptimizerCVSBA-members.html b/api/latest/classrtabmap_1_1OptimizerCVSBA-members.html
index e196e7bb..f9ad188a 100644
--- a/api/latest/classrtabmap_1_1OptimizerCVSBA-members.html
+++ b/api/latest/classrtabmap_1_1OptimizerCVSBA-members.html
@@ -125,10 +125,10 @@ $(document).ready(function(){initNavTree('classrtabmap_1_1OptimizerCVSBA.html','
landmarksIgnored () constrtabmap::Optimizer inline
optimize (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)rtabmap::Optimizer
optimize (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)rtabmap::Optimizer virtual
-
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, std::set< int > *outliers=0)rtabmap::OptimizerCVSBA virtual
+
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)rtabmap::OptimizerCVSBA virtual
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
-
rtabmap::Optimizer::optimizeBA (const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)rtabmap::Optimizer
+
rtabmap::Optimizer::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)rtabmap::Optimizer
optimizeIncremental (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)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()) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
Optimizer (const ParametersMap ¶meters) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
diff --git a/api/latest/classrtabmap_1_1OptimizerCVSBA.html b/api/latest/classrtabmap_1_1OptimizerCVSBA.html
index 08f17849..5b694b78 100644
--- a/api/latest/classrtabmap_1_1OptimizerCVSBA.html
+++ b/api/latest/classrtabmap_1_1OptimizerCVSBA.html
@@ -135,9 +135,9 @@ Public Member Functions
virtual Type type () const
Returns the concrete back-end identifier (one of Type ).
-
virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
-
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
-
+
virtual std::map< int, Transform > 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)
+
Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
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.
@@ -161,9 +161,9 @@ Public Member Functions
std::map< int,
Transform >
optimizeBA (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 ®istrationParameters=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, std::set< int > *outliers=0)
-
Refine a single two-frame link via BA.
-
+
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.
@@ -383,8 +383,8 @@ Additional Inherited Members
-
-◆ optimizeBA()
+
+◆ optimizeBA()
@@ -431,7 +431,7 @@ Additional Inherited Members
- std::set< int > *
+ BAOutliers *
outliers = 0
@@ -448,7 +448,7 @@ Additional Inherited Members
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.
+
Concrete subclasses (g2o, Ceres, cvsba) override this; the base implementation errors out. The other optimizeBA() overloads ultimately funnel here.
Parameters
rootId Pose to hold fixed. If negative, ALL poses other than the (positive) lowest id are held fixed.
@@ -463,7 +463,7 @@ Additional Inherited Members
Returns Refined poses, or empty on failure.
-Reimplemented from rtabmap::Optimizer .
+Reimplemented from rtabmap::Optimizer .
diff --git a/api/latest/classrtabmap_1_1OptimizerCVSBA.js b/api/latest/classrtabmap_1_1OptimizerCVSBA.js
index 0cc0e539..5628d003 100644
--- a/api/latest/classrtabmap_1_1OptimizerCVSBA.js
+++ b/api/latest/classrtabmap_1_1OptimizerCVSBA.js
@@ -1,5 +1,5 @@
var classrtabmap_1_1OptimizerCVSBA =
[
[ "type", "classrtabmap_1_1OptimizerCVSBA.html#afbf58e60900671630e0974a13e49b2b0", null ],
- [ "optimizeBA", "classrtabmap_1_1OptimizerCVSBA.html#ad6ff3fec8e75ab76290da5763022a903", null ]
+ [ "optimizeBA", "classrtabmap_1_1OptimizerCVSBA.html#a48fce33707a004a0d89db99c1c39d999", null ]
];
\ No newline at end of file
diff --git a/api/latest/classrtabmap_1_1OptimizerCeres-members.html b/api/latest/classrtabmap_1_1OptimizerCeres-members.html
index 1b584697..83834a90 100644
--- a/api/latest/classrtabmap_1_1OptimizerCeres-members.html
+++ b/api/latest/classrtabmap_1_1OptimizerCeres-members.html
@@ -125,10 +125,10 @@ $(document).ready(function(){initNavTree('classrtabmap_1_1OptimizerCeres.html','
landmarksIgnored () constrtabmap::Optimizer inline
optimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, cv::Mat &outputCovariance, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)rtabmap::OptimizerCeres virtual
rtabmap::Optimizer::optimize (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)rtabmap::Optimizer
- 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, std::set< int > *outliers=0)rtabmap::OptimizerCeres virtual
+ 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)rtabmap::OptimizerCeres virtual
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
- rtabmap::Optimizer::optimizeBA (const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)rtabmap::Optimizer
+ rtabmap::Optimizer::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)rtabmap::Optimizer
optimizeIncremental (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)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()) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
Optimizer (const ParametersMap ¶meters) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
diff --git a/api/latest/classrtabmap_1_1OptimizerCeres.html b/api/latest/classrtabmap_1_1OptimizerCeres.html
index 5db9345a..947f8fab 100644
--- a/api/latest/classrtabmap_1_1OptimizerCeres.html
+++ b/api/latest/classrtabmap_1_1OptimizerCeres.html
@@ -142,9 +142,9 @@ Public Member Functions
virtual std::map< int, Transform > optimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, 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.
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
- Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
-
+virtual std::map< int, Transform > 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)
+ Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
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.
@@ -162,9 +162,9 @@ Public Member Functions
std::map< int, Transform > optimizeBA (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 ®istrationParameters=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, std::set< int > *outliers=0)
- Refine a single two-frame link via BA.
-
+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.
@@ -477,8 +477,8 @@ Additional Inherited Members
-
-◆ optimizeBA()
+
+◆ optimizeBA()
@@ -525,7 +525,7 @@ Additional Inherited Members
- std::set< int > *
+ BAOutliers *
outliers = 0
@@ -542,7 +542,7 @@ Additional Inherited Members
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.
+
Concrete subclasses (g2o, Ceres, cvsba) override this; the base implementation errors out. The other optimizeBA() overloads ultimately funnel here.
Parameters
rootId Pose to hold fixed. If negative, ALL poses other than the (positive) lowest id are held fixed.
@@ -557,7 +557,7 @@ Additional Inherited Members
Returns Refined poses, or empty on failure.
-Reimplemented from rtabmap::Optimizer .
+Reimplemented from rtabmap::Optimizer .
diff --git a/api/latest/classrtabmap_1_1OptimizerCeres.js b/api/latest/classrtabmap_1_1OptimizerCeres.js
index be06bbfe..dc12c8f4 100644
--- a/api/latest/classrtabmap_1_1OptimizerCeres.js
+++ b/api/latest/classrtabmap_1_1OptimizerCeres.js
@@ -3,5 +3,5 @@ var classrtabmap_1_1OptimizerCeres =
[ "type", "classrtabmap_1_1OptimizerCeres.html#ad6d6c0a0cdbea0ee5082d3aaa94d8e7a", null ],
[ "parseParameters", "classrtabmap_1_1OptimizerCeres.html#aaa1128eeb38451086c7abd58ae6142ac", null ],
[ "optimize", "classrtabmap_1_1OptimizerCeres.html#ab988decf55da4a8821931855ddaa1c1a", null ],
- [ "optimizeBA", "classrtabmap_1_1OptimizerCeres.html#a5057dd09f74610f3092bb597f6af0413", null ]
+ [ "optimizeBA", "classrtabmap_1_1OptimizerCeres.html#af5c6d465dc4fa7c9045cd241dae5d077", null ]
];
\ No newline at end of file
diff --git a/api/latest/classrtabmap_1_1OptimizerG2O-members.html b/api/latest/classrtabmap_1_1OptimizerG2O-members.html
index 4d3852e9..7999d37a 100644
--- a/api/latest/classrtabmap_1_1OptimizerG2O-members.html
+++ b/api/latest/classrtabmap_1_1OptimizerG2O-members.html
@@ -128,10 +128,10 @@ $(document).ready(function(){initNavTree('classrtabmap_1_1OptimizerG2O.html','')
loadGraph (const std::string &fileName, std::map< int, Transform > &poses, std::multimap< int, Link > &edgeConstraints) (defined in rtabmap::OptimizerG2O )rtabmap::OptimizerG2O static
optimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, cv::Mat &outputCovariance, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)rtabmap::OptimizerG2O virtual
rtabmap::Optimizer::optimize (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)rtabmap::Optimizer
- 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, std::set< int > *outliers=0)rtabmap::OptimizerG2O virtual
+ 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)rtabmap::OptimizerG2O virtual
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
- rtabmap::Optimizer::optimizeBA (const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)rtabmap::Optimizer
+ rtabmap::Optimizer::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)rtabmap::Optimizer
optimizeIncremental (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)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()) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
Optimizer (const ParametersMap ¶meters) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
diff --git a/api/latest/classrtabmap_1_1OptimizerG2O.html b/api/latest/classrtabmap_1_1OptimizerG2O.html
index 000eeb5c..2c5698e8 100644
--- a/api/latest/classrtabmap_1_1OptimizerG2O.html
+++ b/api/latest/classrtabmap_1_1OptimizerG2O.html
@@ -140,9 +140,9 @@ Public Member Functions
virtual std::map< int, Transform > optimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, 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.
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
- Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
-
+virtual std::map< int, Transform > 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)
+ Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
bool saveGraph (const std::string &fileName, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints)
@@ -163,9 +163,9 @@ bool saveGraph (const
std::map< int, Transform > optimizeBA (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 ®istrationParameters=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, std::set< int > *outliers=0)
- Refine a single two-frame link via BA.
-
+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.
@@ -437,8 +437,8 @@ Additional Inherited Members
-
-◆ optimizeBA()
+
+◆ optimizeBA()
@@ -485,7 +485,7 @@ Additional Inherited Members
- std::set< int > *
+ BAOutliers *
outliers = 0
@@ -502,7 +502,7 @@ Additional Inherited Members
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.
+
Concrete subclasses (g2o, Ceres, cvsba) override this; the base implementation errors out. The other optimizeBA() overloads ultimately funnel here.
Parameters
rootId Pose to hold fixed. If negative, ALL poses other than the (positive) lowest id are held fixed.
@@ -517,7 +517,7 @@ Additional Inherited Members
Returns Refined poses, or empty on failure.
-Reimplemented from rtabmap::Optimizer .
+Reimplemented from rtabmap::Optimizer .
diff --git a/api/latest/classrtabmap_1_1OptimizerG2O.js b/api/latest/classrtabmap_1_1OptimizerG2O.js
index 491ffe58..925c7f55 100644
--- a/api/latest/classrtabmap_1_1OptimizerG2O.js
+++ b/api/latest/classrtabmap_1_1OptimizerG2O.js
@@ -3,5 +3,5 @@ var classrtabmap_1_1OptimizerG2O =
[ "type", "classrtabmap_1_1OptimizerG2O.html#af69edaad65a7f7f936fa99f8c617e10b", null ],
[ "parseParameters", "classrtabmap_1_1OptimizerG2O.html#a07b598444b99584b6f2bed6baca5e8bb", null ],
[ "optimize", "classrtabmap_1_1OptimizerG2O.html#a9400bdf57331af310cf6b02e661d0a03", null ],
- [ "optimizeBA", "classrtabmap_1_1OptimizerG2O.html#a17edfbaeee93d32153782f61212a88f0", null ]
+ [ "optimizeBA", "classrtabmap_1_1OptimizerG2O.html#af808c77c716d30691670c18955f08f61", null ]
];
\ No newline at end of file
diff --git a/api/latest/classrtabmap_1_1OptimizerGTSAM-members.html b/api/latest/classrtabmap_1_1OptimizerGTSAM-members.html
index c21e1e5f..9ee1925c 100644
--- a/api/latest/classrtabmap_1_1OptimizerGTSAM-members.html
+++ b/api/latest/classrtabmap_1_1OptimizerGTSAM-members.html
@@ -125,10 +125,10 @@ $(document).ready(function(){initNavTree('classrtabmap_1_1OptimizerGTSAM.html','
landmarksIgnored () constrtabmap::Optimizer inline
optimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, cv::Mat &outputCovariance, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)rtabmap::OptimizerGTSAM virtual
rtabmap::Optimizer::optimize (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)rtabmap::Optimizer
- 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, std::set< int > *outliers=0)rtabmap::OptimizerGTSAM virtual
+ 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)rtabmap::OptimizerGTSAM virtual
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
rtabmap::Optimizer::optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
- rtabmap::Optimizer::optimizeBA (const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)rtabmap::Optimizer
+ rtabmap::Optimizer::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)rtabmap::Optimizer
optimizeIncremental (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)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()) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
Optimizer (const ParametersMap ¶meters) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
diff --git a/api/latest/classrtabmap_1_1OptimizerGTSAM.html b/api/latest/classrtabmap_1_1OptimizerGTSAM.html
index 5fa3e18c..60729d25 100644
--- a/api/latest/classrtabmap_1_1OptimizerGTSAM.html
+++ b/api/latest/classrtabmap_1_1OptimizerGTSAM.html
@@ -141,9 +141,9 @@ Public Member Functions
virtual std::map< int, Transform > optimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, 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.
-virtual std::map< int, Transform > 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, std::set< int > *outliers=0)
- Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
-
+virtual std::map< int, Transform > 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)
+ Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
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.
@@ -161,9 +161,9 @@ Public Member Functions
std::map< int, Transform > optimizeBA (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 ®istrationParameters=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, std::set< int > *outliers=0)
- Refine a single two-frame link via BA.
-
+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.
@@ -398,8 +398,8 @@ Additional Inherited Members
-
-◆ optimizeBA()
+
+◆ optimizeBA()
@@ -446,7 +446,7 @@ Additional Inherited Members
- std::set< int > *
+ BAOutliers *
outliers = 0
@@ -463,7 +463,7 @@ Additional Inherited Members
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.
+
Concrete subclasses (g2o, Ceres, cvsba) override this; the base implementation errors out. The other optimizeBA() overloads ultimately funnel here.
Parameters
rootId Pose to hold fixed. If negative, ALL poses other than the (positive) lowest id are held fixed.
@@ -478,7 +478,7 @@ Additional Inherited Members
Returns Refined poses, or empty on failure.
-Reimplemented from rtabmap::Optimizer .
+Reimplemented from rtabmap::Optimizer .
diff --git a/api/latest/classrtabmap_1_1OptimizerGTSAM.js b/api/latest/classrtabmap_1_1OptimizerGTSAM.js
index b4612044..91e78e45 100644
--- a/api/latest/classrtabmap_1_1OptimizerGTSAM.js
+++ b/api/latest/classrtabmap_1_1OptimizerGTSAM.js
@@ -3,5 +3,5 @@ var classrtabmap_1_1OptimizerGTSAM =
[ "type", "classrtabmap_1_1OptimizerGTSAM.html#a422fe2960e4b71832e2108d5ab2aee46", null ],
[ "parseParameters", "classrtabmap_1_1OptimizerGTSAM.html#a9ac24a2315e15b16270151c3aae9d8f0", null ],
[ "optimize", "classrtabmap_1_1OptimizerGTSAM.html#a4905d84cfc59516eef21ea89064c31ba", null ],
- [ "optimizeBA", "classrtabmap_1_1OptimizerGTSAM.html#a7a2033a466505f8c2191b8329b5b342c", null ]
+ [ "optimizeBA", "classrtabmap_1_1OptimizerGTSAM.html#a8009ace7ad9f50214bc359421546a54b", null ]
];
\ No newline at end of file
diff --git a/api/latest/classrtabmap_1_1OptimizerTORO-members.html b/api/latest/classrtabmap_1_1OptimizerTORO-members.html
index 19daed72..fd679aec 100644
--- a/api/latest/classrtabmap_1_1OptimizerTORO-members.html
+++ b/api/latest/classrtabmap_1_1OptimizerTORO-members.html
@@ -126,10 +126,10 @@ $(document).ready(function(){initNavTree('classrtabmap_1_1OptimizerTORO.html',''
loadGraph (const std::string &fileName, std::map< int, Transform > &poses, std::multimap< int, Link > &edgeConstraints) (defined in rtabmap::OptimizerTORO )rtabmap::OptimizerTORO static
optimize (int rootId, const std::map< int, Transform > &poses, const std::multimap< int, Link > &edgeConstraints, cv::Mat &outputCovariance, std::list< std::map< int, Transform > > *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)rtabmap::OptimizerTORO virtual
rtabmap::Optimizer::optimize (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)rtabmap::Optimizer
- 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, std::set< int > *outliers=0)rtabmap::Optimizer virtual
+ 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)rtabmap::Optimizer virtual
optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
optimizeBA (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 ®istrationParameters=ParametersMap())rtabmap::Optimizer
- optimizeBA (const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)rtabmap::Optimizer
+ 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)rtabmap::Optimizer
optimizeIncremental (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)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()) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
Optimizer (const ParametersMap ¶meters) (defined in rtabmap::Optimizer )rtabmap::Optimizer protected
diff --git a/api/latest/classrtabmap_1_1OptimizerTORO.html b/api/latest/classrtabmap_1_1OptimizerTORO.html
index 800bb667..13e3ea62 100644
--- a/api/latest/classrtabmap_1_1OptimizerTORO.html
+++ b/api/latest/classrtabmap_1_1OptimizerTORO.html
@@ -154,9 +154,9 @@ bool saveGraph (const
std::map< int, Transform > optimize (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, Transform > 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, std::set< int > *outliers=0)
- Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
-
+virtual std::map< int, Transform > 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)
+ Bundle adjustment: jointly refine poses and 3D points (back-end-level entry point).
+
std::map< int, Transform > optimizeBA (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 ®istrationParameters=ParametersMap ())
BA wrapper that derives camera models and correspondences from signatures.
@@ -164,9 +164,9 @@ bool saveGraph (const
std::map< int, Transform > optimizeBA (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 ®istrationParameters=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, std::set< int > *outliers=0)
- Refine a single two-frame link via BA.
-
+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.
diff --git a/api/latest/functions_func_o.html b/api/latest/functions_func_o.html
index e72ec2ab..d33fdc46 100644
--- a/api/latest/functions_func_o.html
+++ b/api/latest/functions_func_o.html
@@ -119,7 +119,7 @@ $(document).ready(function(){initNavTree('functions_func_o.html',''); initResiza
operator+=() : rtabmap::LaserScan
opticalRotation() : rtabmap::CameraModel
optimize() : rtabmap::Optimizer , rtabmap::OptimizerCeres , rtabmap::OptimizerG2O , rtabmap::OptimizerGTSAM , rtabmap::OptimizerTORO
-optimizeBA() : rtabmap::Optimizer , rtabmap::OptimizerCeres , rtabmap::OptimizerCVSBA , rtabmap::OptimizerG2O , rtabmap::OptimizerGTSAM
+optimizeBA() : rtabmap::Optimizer , rtabmap::OptimizerCeres , rtabmap::OptimizerCVSBA , rtabmap::OptimizerG2O , rtabmap::OptimizerGTSAM
optimizeIncremental() : rtabmap::Optimizer
orientation() : rtabmap::IMU
orientationCovariance() : rtabmap::IMU
diff --git a/api/latest/functions_o.html b/api/latest/functions_o.html
index 3b9b102d..fe2eed27 100644
--- a/api/latest/functions_o.html
+++ b/api/latest/functions_o.html
@@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('functions_o.html',''); initResizable()
operator+=() : rtabmap::LaserScan
opticalRotation() : rtabmap::CameraModel
optimize() : rtabmap::Optimizer , rtabmap::OptimizerCeres , rtabmap::OptimizerG2O , rtabmap::OptimizerGTSAM , rtabmap::OptimizerTORO
-optimizeBA() : rtabmap::Optimizer , rtabmap::OptimizerCeres , rtabmap::OptimizerCVSBA , rtabmap::OptimizerG2O , rtabmap::OptimizerGTSAM
+optimizeBA() : rtabmap::Optimizer , rtabmap::OptimizerCeres , rtabmap::OptimizerCVSBA , rtabmap::OptimizerG2O , rtabmap::OptimizerGTSAM
optimizeIncremental() : rtabmap::Optimizer
orientation() : rtabmap::IMU
orientationCovariance() : rtabmap::IMU
diff --git a/api/latest/namespacertabmap.html b/api/latest/namespacertabmap.html
index 0eb29338..a8adfb68 100644
--- a/api/latest/namespacertabmap.html
+++ b/api/latest/namespacertabmap.html
@@ -496,6 +496,8 @@ Typedefs
typedef std::map< int, Landmark > Landmarks
Map of landmark id → Landmark (typically positive keys).
+typedef std::map< int, std::set< int > > BAOutliers
+
typedef std::map< std::string, std::string > ParametersMap
Parameter keys mapped to their values, as used by every configurable class (see Parameters ).
@@ -661,6 +663,22 @@ Variables
Definition at line 113 of file Landmark.h .
+
+
+
+◆ BAOutliers
+
+
+
+
+
+ typedef std::map<int, std::set<int> > rtabmap::BAOutliers
+
+
+
diff --git a/api/latest/navtreeindex7.js b/api/latest/navtreeindex7.js
index 5929bf43..e2ffafc4 100644
--- a/api/latest/navtreeindex7.js
+++ b/api/latest/navtreeindex7.js
@@ -130,16 +130,16 @@ var NAVTREEINDEX7 =
"classrtabmap_1_1OdometryVINSFusion.html#ac7e841322ccadfcfdec61cc3b698754a":[6,0,0,93,1],
"classrtabmap_1_1OdometryViso2.html":[7,0,1,92],
"classrtabmap_1_1OdometryViso2.html":[6,0,0,94],
-"classrtabmap_1_1OdometryViso2.html#ad442b8186b72e220feace5fb0b0fec5c":[7,0,1,92,0],
"classrtabmap_1_1OdometryViso2.html#ad442b8186b72e220feace5fb0b0fec5c":[6,0,0,94,0],
+"classrtabmap_1_1OdometryViso2.html#ad442b8186b72e220feace5fb0b0fec5c":[7,0,1,92,0],
"classrtabmap_1_1OdometryViso2.html#ae9bf8422bbf6d2c880098b828b5d6187":[7,0,1,92,1],
"classrtabmap_1_1OdometryViso2.html#ae9bf8422bbf6d2c880098b828b5d6187":[6,0,0,94,1],
"classrtabmap_1_1Optimizer.html":[6,0,0,95],
"classrtabmap_1_1Optimizer.html":[7,0,1,93],
-"classrtabmap_1_1Optimizer.html#a038e8df970ab744f6f4ba7027f62b263":[6,0,0,95,15],
-"classrtabmap_1_1Optimizer.html#a038e8df970ab744f6f4ba7027f62b263":[7,0,1,93,15],
"classrtabmap_1_1Optimizer.html#a0a942bd7902c8d2f9444b8eba6a648a3":[6,0,0,95,11],
"classrtabmap_1_1Optimizer.html#a0a942bd7902c8d2f9444b8eba6a648a3":[7,0,1,93,11],
+"classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5":[7,0,1,93,15],
+"classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5":[6,0,0,95,15],
"classrtabmap_1_1Optimizer.html#a178bb719b0e22863e29add12c85e14a5":[7,0,1,93,3],
"classrtabmap_1_1Optimizer.html#a178bb719b0e22863e29add12c85e14a5":[6,0,0,95,3],
"classrtabmap_1_1Optimizer.html#a18ae8ac76346d1adc68ab176a5b02d16":[6,0,0,95,0],
@@ -182,46 +182,46 @@ var NAVTREEINDEX7 =
"classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc":[7,0,1,93,17],
"classrtabmap_1_1Optimizer.html#aceb68e0f692b81c4a978e46f804515d7":[6,0,0,95,10],
"classrtabmap_1_1Optimizer.html#aceb68e0f692b81c4a978e46f804515d7":[7,0,1,93,10],
-"classrtabmap_1_1Optimizer.html#ad6b32a9697837f03941773f6a5bbf91c":[7,0,1,93,18],
-"classrtabmap_1_1Optimizer.html#ad6b32a9697837f03941773f6a5bbf91c":[6,0,0,95,18],
+"classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605":[7,0,1,93,18],
+"classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605":[6,0,0,95,18],
"classrtabmap_1_1Optimizer.html#aeebd0d5575ab7e9f492b095c05ddb237":[7,0,1,93,8],
"classrtabmap_1_1Optimizer.html#aeebd0d5575ab7e9f492b095c05ddb237":[6,0,0,95,8],
"classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3":[7,0,1,93,14],
"classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3":[6,0,0,95,14],
"classrtabmap_1_1OptimizerCVSBA.html":[7,0,1,95],
"classrtabmap_1_1OptimizerCVSBA.html":[6,0,0,97],
-"classrtabmap_1_1OptimizerCVSBA.html#ad6ff3fec8e75ab76290da5763022a903":[6,0,0,97,1],
-"classrtabmap_1_1OptimizerCVSBA.html#ad6ff3fec8e75ab76290da5763022a903":[7,0,1,95,1],
+"classrtabmap_1_1OptimizerCVSBA.html#a48fce33707a004a0d89db99c1c39d999":[6,0,0,97,1],
+"classrtabmap_1_1OptimizerCVSBA.html#a48fce33707a004a0d89db99c1c39d999":[7,0,1,95,1],
"classrtabmap_1_1OptimizerCVSBA.html#afbf58e60900671630e0974a13e49b2b0":[6,0,0,97,0],
"classrtabmap_1_1OptimizerCVSBA.html#afbf58e60900671630e0974a13e49b2b0":[7,0,1,95,0],
"classrtabmap_1_1OptimizerCeres.html":[7,0,1,94],
"classrtabmap_1_1OptimizerCeres.html":[6,0,0,96],
-"classrtabmap_1_1OptimizerCeres.html#a5057dd09f74610f3092bb597f6af0413":[6,0,0,96,3],
-"classrtabmap_1_1OptimizerCeres.html#a5057dd09f74610f3092bb597f6af0413":[7,0,1,94,3],
-"classrtabmap_1_1OptimizerCeres.html#aaa1128eeb38451086c7abd58ae6142ac":[7,0,1,94,1],
"classrtabmap_1_1OptimizerCeres.html#aaa1128eeb38451086c7abd58ae6142ac":[6,0,0,96,1],
+"classrtabmap_1_1OptimizerCeres.html#aaa1128eeb38451086c7abd58ae6142ac":[7,0,1,94,1],
"classrtabmap_1_1OptimizerCeres.html#ab988decf55da4a8821931855ddaa1c1a":[6,0,0,96,2],
"classrtabmap_1_1OptimizerCeres.html#ab988decf55da4a8821931855ddaa1c1a":[7,0,1,94,2],
-"classrtabmap_1_1OptimizerCeres.html#ad6d6c0a0cdbea0ee5082d3aaa94d8e7a":[7,0,1,94,0],
"classrtabmap_1_1OptimizerCeres.html#ad6d6c0a0cdbea0ee5082d3aaa94d8e7a":[6,0,0,96,0],
-"classrtabmap_1_1OptimizerG2O.html":[6,0,0,98],
+"classrtabmap_1_1OptimizerCeres.html#ad6d6c0a0cdbea0ee5082d3aaa94d8e7a":[7,0,1,94,0],
+"classrtabmap_1_1OptimizerCeres.html#af5c6d465dc4fa7c9045cd241dae5d077":[6,0,0,96,3],
+"classrtabmap_1_1OptimizerCeres.html#af5c6d465dc4fa7c9045cd241dae5d077":[7,0,1,94,3],
"classrtabmap_1_1OptimizerG2O.html":[7,0,1,96],
+"classrtabmap_1_1OptimizerG2O.html":[6,0,0,98],
"classrtabmap_1_1OptimizerG2O.html#a07b598444b99584b6f2bed6baca5e8bb":[6,0,0,98,1],
"classrtabmap_1_1OptimizerG2O.html#a07b598444b99584b6f2bed6baca5e8bb":[7,0,1,96,1],
-"classrtabmap_1_1OptimizerG2O.html#a17edfbaeee93d32153782f61212a88f0":[6,0,0,98,3],
-"classrtabmap_1_1OptimizerG2O.html#a17edfbaeee93d32153782f61212a88f0":[7,0,1,96,3],
-"classrtabmap_1_1OptimizerG2O.html#a9400bdf57331af310cf6b02e661d0a03":[7,0,1,96,2],
"classrtabmap_1_1OptimizerG2O.html#a9400bdf57331af310cf6b02e661d0a03":[6,0,0,98,2],
-"classrtabmap_1_1OptimizerG2O.html#af69edaad65a7f7f936fa99f8c617e10b":[7,0,1,96,0],
+"classrtabmap_1_1OptimizerG2O.html#a9400bdf57331af310cf6b02e661d0a03":[7,0,1,96,2],
"classrtabmap_1_1OptimizerG2O.html#af69edaad65a7f7f936fa99f8c617e10b":[6,0,0,98,0],
+"classrtabmap_1_1OptimizerG2O.html#af69edaad65a7f7f936fa99f8c617e10b":[7,0,1,96,0],
+"classrtabmap_1_1OptimizerG2O.html#af808c77c716d30691670c18955f08f61":[7,0,1,96,3],
+"classrtabmap_1_1OptimizerG2O.html#af808c77c716d30691670c18955f08f61":[6,0,0,98,3],
"classrtabmap_1_1OptimizerGTSAM.html":[6,0,0,99],
"classrtabmap_1_1OptimizerGTSAM.html":[7,0,1,97],
"classrtabmap_1_1OptimizerGTSAM.html#a422fe2960e4b71832e2108d5ab2aee46":[7,0,1,97,0],
"classrtabmap_1_1OptimizerGTSAM.html#a422fe2960e4b71832e2108d5ab2aee46":[6,0,0,99,0],
"classrtabmap_1_1OptimizerGTSAM.html#a4905d84cfc59516eef21ea89064c31ba":[7,0,1,97,2],
"classrtabmap_1_1OptimizerGTSAM.html#a4905d84cfc59516eef21ea89064c31ba":[6,0,0,99,2],
-"classrtabmap_1_1OptimizerGTSAM.html#a7a2033a466505f8c2191b8329b5b342c":[6,0,0,99,3],
-"classrtabmap_1_1OptimizerGTSAM.html#a7a2033a466505f8c2191b8329b5b342c":[7,0,1,97,3],
+"classrtabmap_1_1OptimizerGTSAM.html#a8009ace7ad9f50214bc359421546a54b":[6,0,0,99,3],
+"classrtabmap_1_1OptimizerGTSAM.html#a8009ace7ad9f50214bc359421546a54b":[7,0,1,97,3],
"classrtabmap_1_1OptimizerGTSAM.html#a9ac24a2315e15b16270151c3aae9d8f0":[6,0,0,99,1],
"classrtabmap_1_1OptimizerGTSAM.html#a9ac24a2315e15b16270151c3aae9d8f0":[7,0,1,97,1],
"classrtabmap_1_1OptimizerTORO.html":[6,0,0,100],
diff --git a/api/latest/search/all_11.js b/api/latest/search/all_11.js
index 00a65ec6..8ef2ee40 100644
--- a/api/latest/search/all_11.js
+++ b/api/latest/search/all_11.js
@@ -67,7 +67,7 @@ var searchData=
['operator_3c_3c_64',['operator<<',['../namespacertabmap.html#a087b7a1b89acb679edee23883653f1a7',1,'rtabmap::operator<<(std::ostream &os, const CameraModel &model)'],['../namespacertabmap.html#a6138748ef83b742105e47c9275885e4a',1,'rtabmap::operator<<(std::ostream &os, const StereoCameraModel &model)'],['../namespacertabmap.html#aef0e1f1b121a9199e7511becbc8f1e32',1,'rtabmap::operator<<(std::ostream &os, const Transform &s)']]],
['opticalrotation_65',['opticalRotation',['../classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2',1,'rtabmap::CameraModel']]],
['optimize_66',['optimize',['../classrtabmap_1_1OptimizerG2O.html#a9400bdf57331af310cf6b02e661d0a03',1,'rtabmap::OptimizerG2O::optimize()'],['../classrtabmap_1_1Optimizer.html#a7e3aff943e77603493a358ff522fa2dc',1,'rtabmap::Optimizer::optimize(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)'],['../classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3',1,'rtabmap::Optimizer::optimize(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)'],['../classrtabmap_1_1OptimizerCeres.html#ab988decf55da4a8821931855ddaa1c1a',1,'rtabmap::OptimizerCeres::optimize()'],['../classrtabmap_1_1OptimizerGTSAM.html#a4905d84cfc59516eef21ea89064c31ba',1,'rtabmap::OptimizerGTSAM::optimize()'],['../classrtabmap_1_1OptimizerTORO.html#a025b40902f0ea048bdbfee9ed4ebc0f3',1,'rtabmap::OptimizerTORO::optimize()']]],
- ['optimizeba_67',['optimizeba',['../classrtabmap_1_1Optimizer.html#a038e8df970ab744f6f4ba7027f62b263',1,'rtabmap::Optimizer::optimizeBA()'],['../classrtabmap_1_1OptimizerGTSAM.html#a7a2033a466505f8c2191b8329b5b342c',1,'rtabmap::OptimizerGTSAM::optimizeBA()'],['../classrtabmap_1_1OptimizerG2O.html#a17edfbaeee93d32153782f61212a88f0',1,'rtabmap::OptimizerG2O::optimizeBA()'],['../classrtabmap_1_1OptimizerCVSBA.html#ad6ff3fec8e75ab76290da5763022a903',1,'rtabmap::OptimizerCVSBA::optimizeBA()'],['../classrtabmap_1_1OptimizerCeres.html#a5057dd09f74610f3092bb597f6af0413',1,'rtabmap::OptimizerCeres::optimizeBA()'],['../classrtabmap_1_1Optimizer.html#ad6b32a9697837f03941773f6a5bbf91c',1,'rtabmap::Optimizer::optimizeBA(const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)'],['../classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())'],['../classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())']]],
+ ['optimizeba_67',['optimizeba',['../classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5',1,'rtabmap::Optimizer::optimizeBA()'],['../classrtabmap_1_1OptimizerGTSAM.html#a8009ace7ad9f50214bc359421546a54b',1,'rtabmap::OptimizerGTSAM::optimizeBA()'],['../classrtabmap_1_1OptimizerG2O.html#af808c77c716d30691670c18955f08f61',1,'rtabmap::OptimizerG2O::optimizeBA()'],['../classrtabmap_1_1OptimizerCVSBA.html#a48fce33707a004a0d89db99c1c39d999',1,'rtabmap::OptimizerCVSBA::optimizeBA()'],['../classrtabmap_1_1OptimizerCeres.html#af5c6d465dc4fa7c9045cd241dae5d077',1,'rtabmap::OptimizerCeres::optimizeBA()'],['../classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605',1,'rtabmap::Optimizer::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)'],['../classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())'],['../classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())']]],
['optimizeincremental_68',['optimizeIncremental',['../classrtabmap_1_1Optimizer.html#a278f42e0d250085ac6fe9ed425627acf',1,'rtabmap::Optimizer']]],
['optimizer_69',['optimizer',['../parameters.html#autotoc_md29',1,'Optimizer'],['../classrtabmap_1_1Optimizer.html',1,'rtabmap::Optimizer']]],
['optimizerceres_70',['OptimizerCeres',['../classrtabmap_1_1OptimizerCeres.html',1,'rtabmap']]],
diff --git a/api/latest/search/functions_e.js b/api/latest/search/functions_e.js
index 1a016df8..65f8805f 100644
--- a/api/latest/search/functions_e.js
+++ b/api/latest/search/functions_e.js
@@ -22,7 +22,7 @@ var searchData=
['operator_3c_3c_19',['operator<<',['../namespacertabmap.html#a087b7a1b89acb679edee23883653f1a7',1,'rtabmap::operator<<(std::ostream &os, const CameraModel &model)'],['../namespacertabmap.html#a6138748ef83b742105e47c9275885e4a',1,'rtabmap::operator<<(std::ostream &os, const StereoCameraModel &model)'],['../namespacertabmap.html#aef0e1f1b121a9199e7511becbc8f1e32',1,'rtabmap::operator<<(std::ostream &os, const Transform &s)']]],
['opticalrotation_20',['opticalRotation',['../classrtabmap_1_1CameraModel.html#a0853af9d0117565311da4ffc3965f8d2',1,'rtabmap::CameraModel']]],
['optimize_21',['optimize',['../classrtabmap_1_1Optimizer.html#a7e3aff943e77603493a358ff522fa2dc',1,'rtabmap::Optimizer::optimize(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)'],['../classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3',1,'rtabmap::Optimizer::optimize(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)'],['../classrtabmap_1_1OptimizerCeres.html#ab988decf55da4a8821931855ddaa1c1a',1,'rtabmap::OptimizerCeres::optimize()'],['../classrtabmap_1_1OptimizerG2O.html#a9400bdf57331af310cf6b02e661d0a03',1,'rtabmap::OptimizerG2O::optimize()'],['../classrtabmap_1_1OptimizerGTSAM.html#a4905d84cfc59516eef21ea89064c31ba',1,'rtabmap::OptimizerGTSAM::optimize()'],['../classrtabmap_1_1OptimizerTORO.html#a025b40902f0ea048bdbfee9ed4ebc0f3',1,'rtabmap::OptimizerTORO::optimize()']]],
- ['optimizeba_22',['optimizeba',['../classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())'],['../classrtabmap_1_1Optimizer.html#a038e8df970ab744f6f4ba7027f62b263',1,'rtabmap::Optimizer::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, std::set< int > *outliers=0)'],['../classrtabmap_1_1Optimizer.html#ad6b32a9697837f03941773f6a5bbf91c',1,'rtabmap::Optimizer::optimizeBA(const Link &link, const CameraModel &model, std::map< int, cv::Point3f > &points3DMap, const std::map< int, std::map< int, FeatureBA > > &wordReferences, std::set< int > *outliers=0)'],['../classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())'],['../classrtabmap_1_1OptimizerGTSAM.html#a7a2033a466505f8c2191b8329b5b342c',1,'rtabmap::OptimizerGTSAM::optimizeBA()'],['../classrtabmap_1_1OptimizerG2O.html#a17edfbaeee93d32153782f61212a88f0',1,'rtabmap::OptimizerG2O::optimizeBA()'],['../classrtabmap_1_1OptimizerCVSBA.html#ad6ff3fec8e75ab76290da5763022a903',1,'rtabmap::OptimizerCVSBA::optimizeBA()'],['../classrtabmap_1_1OptimizerCeres.html#a5057dd09f74610f3092bb597f6af0413',1,'rtabmap::OptimizerCeres::optimizeBA()']]],
+ ['optimizeba_22',['optimizeba',['../classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())'],['../classrtabmap_1_1Optimizer.html#a1122f017f10105f7e6c14039d41709e5',1,'rtabmap::Optimizer::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)'],['../classrtabmap_1_1Optimizer.html#aedaeb7cc371f3685f8595d9a151f6605',1,'rtabmap::Optimizer::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)'],['../classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc',1,'rtabmap::Optimizer::optimizeBA(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 ®istrationParameters=ParametersMap())'],['../classrtabmap_1_1OptimizerGTSAM.html#a8009ace7ad9f50214bc359421546a54b',1,'rtabmap::OptimizerGTSAM::optimizeBA()'],['../classrtabmap_1_1OptimizerG2O.html#af808c77c716d30691670c18955f08f61',1,'rtabmap::OptimizerG2O::optimizeBA()'],['../classrtabmap_1_1OptimizerCVSBA.html#a48fce33707a004a0d89db99c1c39d999',1,'rtabmap::OptimizerCVSBA::optimizeBA()'],['../classrtabmap_1_1OptimizerCeres.html#af5c6d465dc4fa7c9045cd241dae5d077',1,'rtabmap::OptimizerCeres::optimizeBA()']]],
['optimizeincremental_23',['optimizeIncremental',['../classrtabmap_1_1Optimizer.html#a278f42e0d250085ac6fe9ed425627acf',1,'rtabmap::Optimizer']]],
['orientation_24',['orientation',['../classrtabmap_1_1IMU.html#a2160e6d59e4f9e3ffc84a2b7d62bdabd',1,'rtabmap::IMU']]],
['orientationcovariance_25',['orientationCovariance',['../classrtabmap_1_1IMU.html#ab7668040b92bfa5532c5e1c19ddbf429',1,'rtabmap::IMU']]]
diff --git a/index.html b/index.html
index 6f2da922..63c8430e 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
-
+
RTAB-Map | Real-Time Appearance-Based Mapping