gtsam
Loading...
Searching...
No Matches
gtsam::LocationRecovery Class Reference
Inheritance diagram for gtsam::LocationRecovery:

Public Member Functions

 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.

Public Types

using DirectionEdges = std::vector<BinaryMeasurement<Unit3>>

Static Protected Member Functions

static SharedNoiseModel convertNoiseModel (const SharedNoiseModel &unit3NoiseModel)
 Convert Unit3 (2D manifold) noise to Point3 (3D ambient) noise.

Protected Attributes

LevenbergMarquardtParams lmParams_

Member Function Documentation

◆ addAnchorPrior()

void LocationRecovery::addAnchorPrior ( Key anchorKey,
NonlinearFactorGraph * graph,
const SharedNoiseModel & priorNoiseModel = noiseModel::Isotropic::Sigma(3, 0.01) ) const

Add a prior pinning one key to the origin.

Fixes 3 translation DOF. Does not assume the key is a camera or landmark — it just pins a Point3.

◆ buildGraph()

NonlinearFactorGraph LocationRecovery::buildGraph ( const DirectionEdges & edges,
bool bilinear = true ) const

Build factor graph from direction measurements.

If bilinear is true, uses BilinearAngleTranslationFactor (BATA) with per-observation scale variables Symbol('S', i). Otherwise uses the chordal TranslationFactor.

Parameters
edgesUnit3 direction measurements between Point3 unknowns.
bilinearif true, use BATA factors (default: true).
Returns
NonlinearFactorGraph

◆ initializeRandomly()

Values LocationRecovery::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.

Point3 keys are initialized uniformly in [-1, 1]^3. If bilinear is true, also creates numEdges scale variables initialized to 1.0.

Parameters
keysPoint3 keys to initialize.
numEdgesnumber of edges (for scale variable count).
bilinearwhether to create BATA scale variables.
rngrandom number generator.
initialValuesoptional seed values for specific keys.
Returns
Values

The documentation for this class was generated from the following files: