Merge pull request #1517 from dllu/develop

release/4.3a0
Frank Dellaert 2023-09-04 15:06:10 -07:00 committed by GitHub
commit 52ecb09a4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View File

@ -1180,11 +1180,13 @@ class TriangulationParameters {
bool enableEPI; bool enableEPI;
double landmarkDistanceThreshold; double landmarkDistanceThreshold;
double dynamicOutlierRejectionThreshold; double dynamicOutlierRejectionThreshold;
bool useLOST;
gtsam::SharedNoiseModel noiseModel; gtsam::SharedNoiseModel noiseModel;
TriangulationParameters(const double rankTolerance = 1.0, TriangulationParameters(const double rankTolerance = 1.0,
const bool enableEPI = false, const bool enableEPI = false,
double landmarkDistanceThreshold = -1, double landmarkDistanceThreshold = -1,
double dynamicOutlierRejectionThreshold = -1, double dynamicOutlierRejectionThreshold = -1,
const bool useLOST = false,
const gtsam::SharedNoiseModel& noiseModel = nullptr); const gtsam::SharedNoiseModel& noiseModel = nullptr);
}; };

View File

@ -574,6 +574,11 @@ struct GTSAM_EXPORT TriangulationParameters {
*/ */
double dynamicOutlierRejectionThreshold; double dynamicOutlierRejectionThreshold;
/**
* if true, will use the LOST algorithm instead of DLT
*/
bool useLOST;
SharedNoiseModel noiseModel; ///< used in the nonlinear triangulation SharedNoiseModel noiseModel; ///< used in the nonlinear triangulation
/** /**
@ -588,10 +593,12 @@ struct GTSAM_EXPORT TriangulationParameters {
TriangulationParameters(const double _rankTolerance = 1.0, TriangulationParameters(const double _rankTolerance = 1.0,
const bool _enableEPI = false, double _landmarkDistanceThreshold = -1, const bool _enableEPI = false, double _landmarkDistanceThreshold = -1,
double _dynamicOutlierRejectionThreshold = -1, double _dynamicOutlierRejectionThreshold = -1,
const bool _useLOST = false,
const SharedNoiseModel& _noiseModel = nullptr) : const SharedNoiseModel& _noiseModel = nullptr) :
rankTolerance(_rankTolerance), enableEPI(_enableEPI), // rankTolerance(_rankTolerance), enableEPI(_enableEPI), //
landmarkDistanceThreshold(_landmarkDistanceThreshold), // landmarkDistanceThreshold(_landmarkDistanceThreshold), //
dynamicOutlierRejectionThreshold(_dynamicOutlierRejectionThreshold), dynamicOutlierRejectionThreshold(_dynamicOutlierRejectionThreshold),
useLOST(_useLOST),
noiseModel(_noiseModel){ noiseModel(_noiseModel){
} }
@ -604,6 +611,7 @@ struct GTSAM_EXPORT TriangulationParameters {
<< std::endl; << std::endl;
os << "dynamicOutlierRejectionThreshold = " os << "dynamicOutlierRejectionThreshold = "
<< p.dynamicOutlierRejectionThreshold << std::endl; << p.dynamicOutlierRejectionThreshold << std::endl;
os << "useLOST = " << p.useLOST << std::endl;
os << "noise model" << std::endl; os << "noise model" << std::endl;
return os; return os;
} }
@ -701,7 +709,7 @@ TriangulationResult triangulateSafe(const CameraSet<CAMERA>& cameras,
try { try {
Point3 point = Point3 point =
triangulatePoint3<CAMERA>(cameras, measured, params.rankTolerance, triangulatePoint3<CAMERA>(cameras, measured, params.rankTolerance,
params.enableEPI, params.noiseModel); params.enableEPI, params.noiseModel, params.useLOST);
// Check landmark distance and re-projection errors to avoid outliers // Check landmark distance and re-projection errors to avoid outliers
size_t i = 0; size_t i = 0;