|
gtsam
|
Public Member Functions | |
| TranslationRecovery (const LevenbergMarquardtParams &lmParams, bool use_bilinear_translation_factor=false) | |
| Construct a new Translation Recovery object. | |
| TranslationRecovery ()=default | |
| Default constructor. | |
| NonlinearFactorGraph | buildGraph (const std::vector< BinaryMeasurement< Unit3 > > &relativeTranslations) const |
| Build the factor graph to do the optimization. | |
| 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: | |
| 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. | |
| Values | initializeRandomly (const std::vector< BinaryMeasurement< Unit3 > > &relativeTranslations, const std::vector< BinaryMeasurement< Point3 > > &betweenTranslations, const Values &initialValues=Values()) const |
| Version of initializeRandomly with a fixed seed. | |
| 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. | |
| Public Member Functions inherited from gtsam::LocationRecovery | |
| LocationRecovery (const LevenbergMarquardtParams &lmParams) | |
| Construct with LM parameters. | |
| LocationRecovery ()=default | |
| Default constructor. | |
| NonlinearFactorGraph | buildGraph (const DirectionEdges &edges, bool bilinear=true) const |
| Build factor graph from direction measurements. | |
| void | addAnchorPrior (Key anchorKey, NonlinearFactorGraph *graph, const SharedNoiseModel &priorNoiseModel=noiseModel::Isotropic::Sigma(3, 0.01)) const |
| Add a prior pinning one key to the origin. | |
| Values | initializeRandomly (const std::set< Key > &keys, size_t numEdges, bool bilinear, std::mt19937 *rng, const Values &initialValues=Values()) const |
| Random initialization of Point3 keys and BATA scale variables. | |
| Values | initializeRandomly (const std::set< Key > &keys, size_t numEdges, bool bilinear, const Values &initialValues=Values()) const |
| Version of initializeRandomly with a fixed seed. | |
Static Public Member Functions | |
| static TranslationEdges | SimulateMeasurements (const Values &poses, const std::vector< KeyPair > &edges) |
| Simulate translation direction measurements. | |
Public Types | |
| using | KeyPair = std::pair<Key, Key> |
| using | TranslationEdges = std::vector<BinaryMeasurement<Unit3>> |
| Public Types inherited from gtsam::LocationRecovery | |
| using | DirectionEdges = std::vector<BinaryMeasurement<Unit3>> |
Additional Inherited Members | |
| Static Protected Member Functions inherited from gtsam::LocationRecovery | |
| static SharedNoiseModel | convertNoiseModel (const SharedNoiseModel &unit3NoiseModel) |
| Convert Unit3 (2D manifold) noise to Point3 (3D ambient) noise. | |
| Protected Attributes inherited from gtsam::LocationRecovery | |
| LevenbergMarquardtParams | lmParams_ |
|
inline |
Construct a new Translation Recovery object.
| lmParams | parameters for optimization. |
| void TranslationRecovery::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:
| relativeTranslations | unit translation directions between translations to be estimated |
| scale | scale for first relative translation which fixes gauge. |
| graph | factor graph to which prior is added. |
| betweenTranslations | relative translations (with scale) between 2 points in world coordinate frame known a priori. |
| priorNoiseModel | the noise model to use with the prior. |
| NonlinearFactorGraph TranslationRecovery::buildGraph | ( | const std::vector< BinaryMeasurement< Unit3 > > & | relativeTranslations | ) | const |
Build the factor graph to do the optimization.
| relativeTranslations | unit translation directions between translations to be estimated |
| Values TranslationRecovery::initializeRandomly | ( | const std::vector< BinaryMeasurement< Unit3 > > & | relativeTranslations, |
| const std::vector< BinaryMeasurement< Point3 > > & | betweenTranslations, | ||
| const Values & | initialValues = Values() ) const |
Version of initializeRandomly with a fixed seed.
| relativeTranslations | unit translation directions between translations to be estimated |
| betweenTranslations | relative translations (with scale) between 2 points in world coordinate frame known a priori. |
| initialValues | (optional) initial values from a prior |
| Values TranslationRecovery::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.
| relativeTranslations | unit translation directions between translations to be estimated |
| betweenTranslations | relative translations (with scale) between 2 points in world coordinate frame known a priori. |
| rng | random number generator |
| initialValues | (optional) initial values from a prior |
| Values TranslationRecovery::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.
| relativeTranslations | the relative translations, in world coordinate frames, vector of BinaryMeasurements of Unit3, where each key of a measurement is a point in 3D. If a relative translation magnitude is zero, it is treated as a hard same-point constraint (the result of all nodes connected by a zero-magnitude edge will be the same). |
| scale | scale for first relative translation which fixes gauge. The scale is only used if betweenTranslations is empty. |
| betweenTranslations | relative translations (with scale) between 2 points in world coordinate frame known a priori. Unlike relativeTranslations, zero-magnitude betweenTranslations are not treated as hard constraints. |
| initialValues | initial values for optimization. Initializes randomly if not provided. |
|
static |
Simulate translation direction measurements.
| poses | SE(3) ground truth poses stored as Values |
| edges | pairs (a,b) for which a measurement w_aZb will be generated. |