gtsam 4.1.1
gtsam
gtsam::ShonanAveraging3 Class Reference
+ Inheritance diagram for gtsam::ShonanAveraging3:

Public Member Functions

 ShonanAveraging3 (const Measurements &measurements, const Parameters &parameters=Parameters())
 
 ShonanAveraging3 (std::string g2oFile, const Parameters &parameters=Parameters())
 
 ShonanAveraging3 (const BetweenFactorPose3s &factors, const Parameters &parameters=Parameters())
 
- Public Member Functions inherited from gtsam::ShonanAveraging< 3 >
Values roundSolutionS (const Matrix &S) const
 
Values roundSolutionS (const Matrix &S) const
 
Values projectFrom (size_t p, const Values &values) const
 
Values projectFrom (size_t p, const Values &values) const
 
std::vector< BinaryMeasurement< T > > maybeRobust (const std::vector< BinaryMeasurement< T > > &measurements, bool useRobustModel=false) const
 Helper function to convert measurements to robust noise model if flag is set. More...
 
 ShonanAveraging (const Measurements &measurements, const Parameters &parameters=Parameters())
 Construct from set of relative measurements (given as BetweenFactor<Rot3> for now) NoiseModel must be isotropic.
 
size_t nrUnknowns () const
 Return number of unknowns.
 
size_t nrMeasurements () const
 Return number of measurements.
 
const BinaryMeasurement< Rot > & measurement (size_t k) const
 k^th binary measurement
 
Measurements makeNoiseModelRobust (const Measurements &measurements, double k=1.345) const
 Update factors to use robust Huber loss. More...
 
const Rot & measured (size_t k) const
 k^th measurement, as a Rot.
 
const KeyVectorkeys (size_t k) const
 Keys for k^th measurement, as a vector of Key values.
 
double cost (const Values &values) const
 Calculate cost for SO(3) Values should be of type Rot3.
 
Values initializeRandomly (std::mt19937 &rng) const
 Initialize randomly at SO(d) More...
 
Values initializeRandomly () const
 Random initialization for wrapper, fixed random seed.
 
std::pair< Values, double > run (const Values &initialEstimate, size_t pMin=d, size_t pMax=10) const
 Optimize at different values of p until convergence. More...
 
Sparse D () const
 Sparse version of D.
 
Matrix denseD () const
 Dense version of D.
 
Sparse Q () const
 Sparse version of Q.
 
Matrix denseQ () const
 Dense version of Q.
 
Sparse L () const
 Sparse version of L.
 
Matrix denseL () const
 Dense version of L.
 
Sparse computeLambda (const Matrix &S) const
 Version that takes pxdN Stiefel manifold elements.
 
Matrix computeLambda_ (const Values &values) const
 Dense versions of computeLambda for wrapper/testing.
 
Matrix computeLambda_ (const Matrix &S) const
 Dense versions of computeLambda for wrapper/testing.
 
Sparse computeA (const Values &values) const
 Compute A matrix whose Eigenvalues we will examine.
 
Sparse computeA (const Matrix &S) const
 Version that takes pxdN Stiefel manifold elements.
 
Matrix computeA_ (const Values &values) const
 Dense version of computeA for wrapper/testing.
 
double computeMinEigenValue (const Values &values, Vector *minEigenVector=nullptr) const
 Compute minimum eigenvalue for optimality check. More...
 
double computeMinEigenValueAP (const Values &values, Vector *minEigenVector=nullptr) const
 Compute minimum eigenvalue with accelerated power method. More...
 
Values roundSolutionS (const Matrix &S) const
 Project pxdN Stiefel manifold matrix S to Rot3^N.
 
Matrix riemannianGradient (size_t p, const Values &values) const
 Calculate the riemannian gradient of F(values) at values.
 
Values initializeWithDescent (size_t p, const Values &values, const Vector &minEigenVector, double minEigenValue, double gradienTolerance=1e-2, double preconditionedGradNormTolerance=1e-4) const
 Given some values at p-1, return new values at p, by doing a line search along the descent direction, computed from the minimum eigenvector at p-1. More...
 
Sparse computeLambda (const Values &values) const
 Given an estimated local minimum Yopt for the (possibly lifted) relaxation, this function computes and returns the block-diagonal elements of the corresponding Lagrange multiplier.
 
NonlinearFactorGraph buildGraphAt (size_t p) const
 Build graph for SO(p) More...
 
Values initializeRandomlyAt (size_t p, std::mt19937 &rng) const
 Create initial Values of type SO(p) More...
 
Values initializeRandomlyAt (size_t p) const
 Version of initializeRandomlyAt with fixed random seed.
 
double costAt (size_t p, const Values &values) const
 Calculate cost for SO(p) Values should be of type SO(p)
 
std::pair< double, Vector > computeMinEigenVector (const Values &values) const
 Compute minimum eigenvalue for optimality check. More...
 
bool checkOptimality (const Values &values) const
 Check optimality. More...
 
boost::shared_ptr< LevenbergMarquardtOptimizercreateOptimizerAt (size_t p, const Values &initial) const
 Try to create optimizer at SO(p) More...
 
Values tryOptimizingAt (size_t p, const Values &initial) const
 Try to optimize at SO(p) More...
 
Values projectFrom (size_t p, const Values &values) const
 Project from SO(p) to Rot2 or Rot3 Values should be of type SO(p)
 
Values roundSolution (const Values &values) const
 Project from SO(p)^N to Rot2^N or Rot3^N Values should be of type SO(p)
 

Additional Inherited Members

- Static Public Member Functions inherited from gtsam::ShonanAveraging< 3 >
static Matrix StiefelElementMatrix (const Values &values)
 Project to pxdN Stiefel manifold.
 
static VectorValues TangentVectorValues (size_t p, const Vector &v)
 Create a VectorValues with eigenvector v_i.
 
static Values LiftwithDescent (size_t p, const Values &values, const Vector &minEigenVector)
 Lift up the dimension of values in type SO(p-1) with descent direction provided by minEigenVector and return new values in type SO(p)
 
static Values LiftTo (size_t p, const Values &values)
 Lift Values of type T to SO(p)
 
- Public Types inherited from gtsam::ShonanAveraging< 3 >
using Sparse = Eigen::SparseMatrix< double >
 
using Parameters = ShonanAveragingParameters< d >
 
using Rot = typename Parameters::Rot
 
using Measurements = std::vector< BinaryMeasurement< Rot > >
 

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