SmartFactorParams.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
20 #pragma once
21 
23 
24 namespace gtsam {
25 
29 enum LinearizationMode {
32 };
33 
37 };
38 
39 /*
40  * Parameters for the smart (stereo) projection factors
41  */
43 
46 
51 
57 
59  // Constructor
61  DegeneracyMode degMode = IGNORE_DEGENERACY, bool throwCheirality = false,
62  bool verboseCheirality = false, double retriangulationTh = 1e-5) :
63  linearizationMode(linMode), degeneracyMode(degMode), retriangulationThreshold(
64  retriangulationTh), throwCheirality(throwCheirality), verboseCheirality(
65  verboseCheirality) {
66  }
67 
69  }
70 
71  void print(const std::string& str = "") const {
72  std::cout << "linearizationMode: " << linearizationMode << "\n";
73  std::cout << " degeneracyMode: " << degeneracyMode << "\n";
74  std::cout << triangulation << std::endl;
75  }
76 
77  // get class variables
79  return linearizationMode;
80  }
82  return degeneracyMode;
83  }
85  return triangulation;
86  }
87  bool getVerboseCheirality() const {
88  return verboseCheirality;
89  }
90  bool getThrowCheirality() const {
91  return throwCheirality;
92  }
93  double getRetriangulationThreshold() const {
95  }
96  // set class variables
98  linearizationMode = linMode;
99  }
101  degeneracyMode = degMode;
102  }
103  void setRetriangulationThreshold(double retriangulationTh) {
104  retriangulationThreshold = retriangulationTh;
105  }
106  void setRankTolerance(double rankTol) {
107  triangulation.rankTolerance = rankTol;
108  }
109  void setEnableEPI(bool enableEPI) {
110  triangulation.enableEPI = enableEPI;
111  }
112  void setLandmarkDistanceThreshold(double landmarkDistanceThreshold) {
113  triangulation.landmarkDistanceThreshold = landmarkDistanceThreshold;
114  }
115  void setDynamicOutlierRejectionThreshold(double dynOutRejectionThreshold) {
116  triangulation.dynamicOutlierRejectionThreshold = dynOutRejectionThreshold;
117  }
118 
119 private:
120 
123  template<class ARCHIVE>
124  void serialize(ARCHIVE & ar, const unsigned int version) {
125  ar & BOOST_SERIALIZATION_NVP(linearizationMode);
126  ar & BOOST_SERIALIZATION_NVP(degeneracyMode);
127  ar & BOOST_SERIALIZATION_NVP(triangulation);
128  ar & BOOST_SERIALIZATION_NVP(retriangulationThreshold);
129  ar & BOOST_SERIALIZATION_NVP(throwCheirality);
130  ar & BOOST_SERIALIZATION_NVP(verboseCheirality);
131  }
132 };
133 
134 } // \ namespace gtsam
void serialize(ARCHIVE &ar, const unsigned int version)
DegeneracyMode degeneracyMode
How to linearize the factor.
void setRetriangulationThreshold(double retriangulationTh)
void setEnableEPI(bool enableEPI)
TriangulationParameters triangulation
LinearizationMode
Linearization mode: what factor to linearize to.
void setRankTolerance(double rankTol)
bool throwCheirality
If true, re-throws Cheirality exceptions (default: false)
friend class boost::serialization::access
Serialization function.
SmartProjectionParams(LinearizationMode linMode=HESSIAN, DegeneracyMode degMode=IGNORE_DEGENERACY, bool throwCheirality=false, bool verboseCheirality=false, double retriangulationTh=1e-5)
DegeneracyMode getDegeneracyMode() const
bool enableEPI
if set to true, will refine triangulation using LM
double rankTolerance
(the rank is the number of singular values of the triangulation matrix which are larger than rankTole...
Definition: pytypes.h:928
Functions for triangulation.
void setLandmarkDistanceThreshold(double landmarkDistanceThreshold)
Array< double, 1, 3 > e(1./3., 0.5, 2.)
LinearizationMode linearizationMode
How to linearize the factor.
static const double rankTol
TriangulationParameters getTriangulationParameters() const
LinearizationMode getLinearizationMode() const
traits
Definition: chartTesting.h:28
void setDegeneracyMode(DegeneracyMode degMode)
double getRetriangulationThreshold() const
void setLinearizationMode(LinearizationMode linMode)
void print(const std::string &str="") const
DegeneracyMode
How to manage degeneracy.
void setDynamicOutlierRejectionThreshold(double dynOutRejectionThreshold)


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:44:14