template<typename K>
class gtsam::EssentialTransferFactorK< K >
Transfers points between views using essential matrices, optimizes for calibrations of the views, as well.
Note that the EssentialMatrixFactor4 does something similar but without transfer.
- Note
- Derives calibration keys from edges, and uses symbol 'k'.
This factor is templated on the calibration class K and extends the TransferFactor for EssentialMatrices. It involves two essential matrices and three calibration objects (Ka, Kb, Kc). The evaluateError function calibrates the image points, calls the base class's transfer method, and computes the error using bulk numerical differentiation.
|
| | EssentialTransferFactorK (EdgeKey edge1, EdgeKey edge2, const std::vector< Triplet > &triplets, const SharedNoiseModel &model=nullptr) |
| | Constructor that accepts a vector of point triplets.
|
| | EssentialTransferFactorK (EdgeKey edge1, EdgeKey edge2, Key keyK, const std::vector< Triplet > &triplets, const SharedNoiseModel &model=nullptr) |
| | Constructor that accepts a vector of point triplets.
|
|
Vector2 | TransferError (const Matrix3 &Eca, const K &Ka, const Point2 &pa, const Matrix3 &Ecb, const K &Kb, const Point2 &pb, const K &Kc, const Point2 &pc) const |
| | Transfer points pa and pb to view c and evaluate error.
|
|
Vector | evaluateError (const EM &E1, const EM &E2, const K &Ka, const K &Kb, const K &Kc, OptionalMatrixType H1=nullptr, OptionalMatrixType H2=nullptr, OptionalMatrixType H3=nullptr, OptionalMatrixType H4=nullptr, OptionalMatrixType H5=nullptr) const override |
| | Evaluate error function.
|
| size_t | dim () const override |
| | Return the dimension of the factor.
|
| Key | key () const |
| | Returns a key.
|
|
Vector | unwhitenedError (const Values &x, std::vector< Matrix > &H) const |
| | support taking in the actual vector instead of the pointer as well to get access to this version of the function from derived classes one will need to use the "using" keyword and specify that like this: public: using NoiseModelFactor::unwhitenedError;
|
|
| NoiseModelFactorT () |
| | Default Constructor for I/O.
|
| | NoiseModelFactorT (const SharedNoiseModel &noiseModel, KeyType< ValueTypes >... keys) |
| | Constructor.
|
| | NoiseModelFactorT (const SharedNoiseModel &noiseModel, CONTAINER keys) |
| | Constructor.
|
| virtual Vector | evaluateError (const ValueTypes &... x, OptionalMatrixTypeT< ValueTypes >... H) const=0 |
| | Override evaluateError to finish implementing an n-way factor.
|
| Vector | evaluateError (const ValueTypes &... x, MatrixTypeT< ValueTypes > &... H) const |
| | If all the optional arguments are matrices then redirect the call to the one which takes pointers.
|
| Vector | evaluateError (const ValueTypes &... x) const |
| | No-Jacobians requested function overload.
|
| AreAllMatrixRefs< Vector, OptionalJacArgs... > | evaluateError (const ValueTypes &... x, OptionalJacArgs &&... H) const |
| | Some (but not all) optional Jacobians are omitted (function overload) and the jacobians are l-value references to matrices.
|
| AreAllMatrixPtrs< Vector, OptionalJacArgs... > | evaluateError (const ValueTypes &... x, OptionalJacArgs &&... H) const |
| | Some (but not all) optional Jacobians are omitted (function overload) and the jacobians are pointers to matrices.
|
|
Key | key1 () const |
|
Key | key2 () const |
|
Key | key3 () const |
|
Key | key4 () const |
|
Key | key5 () const |
|
Key | key6 () const |
| std::shared_ptr< GaussianFactor > | linearize (const Values &values) const override |
| | Linearize factors whose error and argument dimensions are all fixed to an arbitrary-arity FixedJacobianFactor.
|
| Vector | unwhitenedError (const Values &x, OptionalMatrixVecType H=nullptr) const override |
| | This implements the unwhitenedError virtual function by calling the n-key specific version of evaluateError, which is pure virtual so must be implemented in the derived class.
|
|
| NoiseModelFactor () |
| | Default constructor for I/O only.
|
|
| ~NoiseModelFactor () override |
| | Destructor.
|
|
template<typename CONTAINER> |
| | NoiseModelFactor (const SharedNoiseModel &noiseModel, const CONTAINER &keys) |
| | Constructor.
|
| void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override |
| | Print.
|
| bool | equals (const NonlinearFactor &f, double tol=1e-9) const override |
| | Check if two factors are equal.
|
| size_t | dim () const override |
| | get the dimension of the factor (number of rows on linearization)
|
|
const SharedNoiseModel & | noiseModel () const |
| | access to the noise model
|
|
Vector | unwhitenedError (const Values &x, std::vector< Matrix > &H) const |
| | support taking in the actual vector instead of the pointer as well to get access to this version of the function from derived classes one will need to use the "using" keyword and specify that like this: public: using NoiseModelFactor::unwhitenedError;
|
| Vector | whitenedError (const Values &c) const |
| | Vector of errors, whitened This is the raw error, i.e., i.e.
|
|
Vector | unweightedWhitenedError (const Values &c) const |
| | Vector of errors, whitened, but unweighted by any loss function.
|
|
double | weight (const Values &c) const |
| | Compute the effective weight of the factor from the noise model.
|
| double | error (const Values &c) const override |
| | Calculate the error of the factor.
|
|
shared_ptr | cloneWithNewNoiseModel (const SharedNoiseModel newNoise) const |
| | Creates a shared_ptr clone of the factor with a new noise model.
|
| double | error (const HybridValues &c) const override |
| | All factor types need to implement an error function.
|
|
| NonlinearFactor () |
| | Default constructor for I/O only.
|
|
template<typename CONTAINER> |
| | NonlinearFactor (const CONTAINER &keys) |
| | Constructor from a collection of the keys involved in this factor.
|
| void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override |
| | print
|
| double | error (const HybridValues &c) const override |
| | All factor types need to implement an error function.
|
| virtual bool | active (const Values &c) const |
| | Checks whether a factor should be used based on a set of values.
|
| virtual void | qcqpFactors (NonlinearFactorGraph *costs, NonlinearEqualityConstraints *constraints, size_t columnDimension=1) const |
| | Add this factor's QCQP cost and constraints over matrix-valued QCQP variables with the given column dimension.
|
| virtual shared_ptr | clone () const |
| | Creates a shared_ptr clone of the factor - needs to be specialized to allow for subclasses.
|
| virtual shared_ptr | rekey (const std::map< Key, Key > &rekey_mapping) const |
| | Creates a shared_ptr clone of the factor with different keys using a map from old->new keys.
|
| virtual shared_ptr | rekey (const KeyVector &new_keys) const |
| | Clones a factor and fully replaces its keys.
|
| virtual bool | sendable () const |
| | Should the factor be evaluated in the same thread as the caller This is to enable factors that has shared states (like the Python GIL lock).
|
|
virtual | ~Factor ()=default |
| | Default destructor.
|
|
bool | empty () const |
| | Whether the factor is empty (involves zero variables).
|
|
Key | front () const |
| | First key.
|
|
Key | back () const |
| | Last key.
|
|
const_iterator | find (Key key) const |
| | find
|
|
const KeyVector & | keys () const |
| | Access the factor's involved variable keys.
|
|
const_iterator | begin () const |
| | Iterator at beginning of involved variable keys.
|
|
const_iterator | end () const |
| | Iterator at end of involved variable keys.
|
| size_t | size () const |
| virtual void | printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| | print only keys
|
|
bool | equals (const This &other, double tol=1e-9) const |
| | check equality
|
| KeyVector & | keys () |
|
iterator | begin () |
| | Iterator at beginning of involved variable keys.
|
|
iterator | end () |
| | Iterator at end of involved variable keys.
|