50 using KeyPair = std::pair<Key, Key>;
51 using TranslationEdges = std::vector<BinaryMeasurement<Unit3>>;
55 TranslationEdges relativeTranslations_;
57 const bool use_bilinear_translation_factor_ =
false;
66 bool use_bilinear_translation_factor =
false)
68 use_bilinear_translation_factor_(use_bilinear_translation_factor) {}
122 std::mt19937 *rng,
const Values &initialValues =
Values())
const;
158 const TranslationEdges &relativeTranslations,
const double scale = 1.0,
171 static TranslationEdges SimulateMeasurements(
172 const Values &poses,
const std::vector<KeyPair> &edges);
Recover absolute Point3 locations from pairwise Unit3 direction measurements, using either chordal or...
Global functions in a separate testing namespace.
Definition chartTesting.h:28
noiseModel::Base::shared_ptr SharedNoiseModel
Aliases.
Definition NoiseModel.h:846
static shared_ptr Sigma(size_t dim, double sigma, bool smart=true)
An isotropic noise model created by specifying a standard deviation sigma.
Definition NoiseModel.cpp:706
Parameters for Levenberg-Marquardt optimization.
Definition LevenbergMarquardtParams.h:36
Definition NonlinearFactorGraph.h:57
A non-templated config holding any types of Manifold-group elements.
Definition Values.h:65
Definition BinaryMeasurement.h:37
LocationRecovery(const LevenbergMarquardtParams &lmParams)
Construct with LM parameters.
Definition LocationRecovery.h:58
NonlinearFactorGraph buildGraph(const std::vector< BinaryMeasurement< Unit3 > > &relativeTranslations) const
Build the factor graph to do the optimization.
Definition TranslationRecovery.cpp:97
TranslationRecovery()=default
Default constructor.
Values run(const TranslationEdges &relativeTranslations, const double scale=1.0, const std::vector< BinaryMeasurement< Point3 > > &betweenTranslations={}, const Values &initialValues=Values()) const
Build and optimize factor graph.
Definition TranslationRecovery.cpp:156
void addPrior(const std::vector< BinaryMeasurement< Unit3 > > &relativeTranslations, const double scale, const std::vector< BinaryMeasurement< Point3 > > &betweenTranslations, NonlinearFactorGraph *graph, const SharedNoiseModel &priorNoiseModel=noiseModel::Isotropic::Sigma(3, 0.01)) const
Add 3 factors to the graph:
Definition TranslationRecovery.cpp:103
TranslationRecovery(const LevenbergMarquardtParams &lmParams, bool use_bilinear_translation_factor=false)
Construct a new Translation Recovery object.
Definition TranslationRecovery.h:65
Values initializeRandomly(const std::vector< BinaryMeasurement< Unit3 > > &relativeTranslations, const std::vector< BinaryMeasurement< Point3 > > &betweenTranslations, std::mt19937 *rng, const Values &initialValues=Values()) const
Create random initial translations.
Definition TranslationRecovery.cpp:128