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 
121 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION
122  friend class boost::serialization::access;
124  template<class ARCHIVE>
125  void serialize(ARCHIVE & ar, const unsigned int version) {
126  ar & BOOST_SERIALIZATION_NVP(linearizationMode);
127  ar & BOOST_SERIALIZATION_NVP(degeneracyMode);
128  ar & BOOST_SERIALIZATION_NVP(triangulation);
129  ar & BOOST_SERIALIZATION_NVP(retriangulationThreshold);
130  ar & BOOST_SERIALIZATION_NVP(throwCheirality);
131  ar & BOOST_SERIALIZATION_NVP(verboseCheirality);
132  }
133 #endif
134 };
135 
136 } // \ namespace gtsam
std::string serialize(const T &input)
serializes to a string
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.
DegeneracyMode getDegeneracyMode() const
void setRankTolerance(double rankTol)
bool throwCheirality
If true, re-throws Cheirality exceptions (default: false)
bool verboseCheirality
If true, prints text for Cheirality exceptions (default: false)
static const double rankTol
double getRetriangulationThreshold() const
SmartProjectionParams(LinearizationMode linMode=HESSIAN, DegeneracyMode degMode=IGNORE_DEGENERACY, bool throwCheirality=false, bool verboseCheirality=false, double retriangulationTh=1e-5)
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:1403
Functions for triangulation.
void setLandmarkDistanceThreshold(double landmarkDistanceThreshold)
Array< double, 1, 3 > e(1./3., 0.5, 2.)
LinearizationMode linearizationMode
How to linearize the factor.
traits
Definition: chartTesting.h:28
void setDegeneracyMode(DegeneracyMode degMode)
void setLinearizationMode(LinearizationMode linMode)
LinearizationMode getLinearizationMode() const
DegeneracyMode
How to manage degeneracy.
void setDynamicOutlierRejectionThreshold(double dynOutRejectionThreshold)
void print(const std::string &str="") const
TriangulationParameters getTriangulationParameters() const
double retriangulationThreshold
threshold to decide whether to re-triangulate


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:35:50