GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <MultiProjectionFactor.h>
Public Types | |
typedef NoiseModelFactor | Base |
shorthand for base class type | |
typedef MultiProjectionFactor< POSE, LANDMARK, CALIBRATION > | This |
shorthand for this class | |
typedef std::shared_ptr< This > | shared_ptr |
shorthand for a smart pointer to a factor | |
typedef KeyVector::iterator | iterator |
Iterator over keys. | |
typedef KeyVector::const_iterator | const_iterator |
Const iterator over keys. | |
Public Member Functions | |
MultiProjectionFactor () | |
Default constructor. | |
MultiProjectionFactor (const Vector &measured, const SharedNoiseModel &model, KeySet poseKeys, Key pointKey, const std::shared_ptr< CALIBRATION > &K, std::optional< POSE > body_P_sensor={}) | |
MultiProjectionFactor (const Vector &measured, const SharedNoiseModel &model, KeySet poseKeys, Key pointKey, const std::shared_ptr< CALIBRATION > &K, bool throwCheirality, bool verboseCheirality, std::optional< POSE > body_P_sensor={}) | |
~MultiProjectionFactor () override | |
NonlinearFactor::shared_ptr | clone () const override |
void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override |
bool | equals (const NonlinearFactor &p, double tol=1e-9) const override |
equals | |
Vector | unwhitenedError (const Values &x, OptionalMatrixVecType H=nullptr) const override |
Evaluate error h(x)-z and optionally derivatives. | |
Vector | evaluateError (const Pose3 &pose, const Point3 &point, OptionalJacobian< 2, 6 > H1={}, OptionalJacobian< 2, 3 > H2={}) const |
const Vector & | measured () const |
const std::shared_ptr< CALIBRATION > | calibration () const |
bool | verboseCheirality () const |
bool | throwCheirality () const |
size_t | dim () const override |
const SharedNoiseModel & | noiseModel () const |
access to the noise model | |
Vector | unwhitenedError (const Values &x, std::vector< Matrix > &H) const |
Vector | whitenedError (const Values &c) const |
Vector | unweightedWhitenedError (const Values &c) const |
double | weight (const Values &c) const |
double | error (const Values &c) const override |
std::shared_ptr< GaussianFactor > | linearize (const Values &x) const override |
shared_ptr | cloneWithNewNoiseModel (const SharedNoiseModel newNoise) const |
Testable | |
bool | equals (const This &other, double tol=1e-9) const |
check equality | |
virtual void | printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
print only keys | |
Standard Interface | |
double | error (const HybridValues &c) const override |
virtual bool | active (const Values &) const |
virtual shared_ptr | rekey (const std::map< Key, Key > &rekey_mapping) const |
virtual shared_ptr | rekey (const KeyVector &new_keys) const |
virtual bool | sendable () const |
Standard Interface | |
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 |
const_iterator | end () const |
size_t | size () const |
Advanced Interface | |
KeyVector & | keys () |
iterator | begin () |
iterator | end () |
Static Protected Member Functions | |
Standard Constructors | |
template<typename CONTAINER > | |
static Factor | FromKeys (const CONTAINER &keys) |
template<typename ITERATOR > | |
static Factor | FromIterators (ITERATOR first, ITERATOR last) |
Protected Attributes | |
Vector | measured_ |
2D measurement for each of the n views | |
std::shared_ptr< CALIBRATION > | K_ |
shared pointer to calibration object | |
std::optional< POSE > | body_P_sensor_ |
The pose of the sensor in the body frame. | |
bool | throwCheirality_ |
If true, rethrows Cheirality exceptions (default: false) | |
bool | verboseCheirality_ |
If true, prints text for Cheirality exceptions (default: false) | |
SharedNoiseModel | noiseModel_ |
KeyVector | keys_ |
The keys involved in this factor. | |
Non-linear factor for a constraint derived from a 2D measurement. The calibration is known here. i.e. the main building block for visual SLAM.
|
inline |
Constructor TODO: Mark argument order standard (keys, measurement, parameters)
measured | is the 2n dimensional location of the n points in the n views (the measurements) |
model | is the standard deviation (current version assumes that the uncertainty is the same for all views) |
poseKeys | is the set of indices corresponding to the cameras observing the same landmark |
pointKey | is the index of the landmark |
K | shared pointer to the constant calibration |
body_P_sensor | is the transform from body to sensor frame (default identity) |
|
inline |
Constructor with exception-handling flags TODO: Mark argument order standard (keys, measurement, parameters)
measured | is the 2 dimensional location of point in image (the measurement) |
model | is the standard deviation |
poseKey | is the index of the camera |
pointKey | is the index of the landmark |
K | shared pointer to the constant calibration |
throwCheirality | determines whether Cheirality exceptions are rethrown |
verboseCheirality | determines whether exceptions are printed for Cheirality |
body_P_sensor | is the transform from body to sensor frame (default identity) |
|
inlineoverride |
Virtual destructor
|
inlinevirtualinherited |
Checks whether a factor should be used based on a set of values. This is primarily used to implement inequality constraints that require a variable active set. For all others, the default implementation returning true solves this problem.
In an inequality/bounding constraint, this active() returns true when the constraint is NOT fulfilled.
Reimplemented in gtsam::BoundingConstraint2< VALUE1, VALUE2 >, gtsam::AntiFactor, and gtsam::BoundingConstraint1< VALUE >.
|
inlineinherited |
Iterator at beginning of involved variable keys
|
inlineinherited |
Iterator at beginning of involved variable keys
|
inline |
return the calibration object
|
inlineoverridevirtual |
Reimplemented from gtsam::NonlinearFactor.
|
inherited |
Creates a shared_ptr clone of the factor with a new noise model
|
inlineoverridevirtualinherited |
get the dimension of the factor (number of rows on linearization)
Implements gtsam::NonlinearFactor.
|
inlineinherited |
Iterator at end of involved variable keys
|
inlineinherited |
Iterator at end of involved variable keys
|
overridevirtualinherited |
All factor types need to implement an error function. In factor graphs, this is the negative log-likelihood.
Reimplemented from gtsam::Factor.
|
overridevirtualinherited |
Calculate the error of the factor. This is the log-likelihood, e.g. \( 0.5(h(x)-z)^2/\sigma^2 \) in case of Gaussian. In this class, we take the raw prediction error \( h(x)-z \), ask the noise model to transform it to \( (h(x)-z)^2/\sigma^2 \), and then multiply by 0.5.
Reimplemented from gtsam::NonlinearFactor.
|
inlinestaticprotectedinherited |
Construct factor from iterator keys. This is called internally from derived factor static factor methods, as a workaround for not being able to call the protected constructors above.
|
inlinestaticprotectedinherited |
Construct factor from container of keys. This is called internally from derived factor static factor methods, as a workaround for not being able to call the protected constructors above.
|
inlineinherited |
|
overridevirtualinherited |
Linearize a non-linearFactorN to get a GaussianFactor, \( Ax-b \approx h(x+\delta x)-z = h(x) + A \delta x - z \) Hence \( b = z - h(x) = - \mathtt{error\_vector}(x) \)
Implements gtsam::NonlinearFactor.
Reimplemented in gtsam::TriangulationFactor< CAMERA >, gtsam::GeneralSFMFactor< CAMERA, LANDMARK >, gtsam::ExpressionFactor< BearingRange< A1, A2 > >, and gtsam::ExpressionFactor< double >.
|
inline |
return the measurements
|
inlineoverridevirtual |
s | optional string naming the factor |
keyFormatter | optional formatter useful for printing Symbols |
Reimplemented from gtsam::NoiseModelFactor.
|
virtualinherited |
Creates a shared_ptr clone of the factor with different keys using a map from old->new keys
Reimplemented in gtsam::LinearContainerFactor.
|
virtualinherited |
Clones a factor and fully replaces its keys
new_keys | is the full replacement set of keys |
Reimplemented in gtsam::LinearContainerFactor.
|
inlinevirtualinherited |
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)
Reimplemented in gtsam::CustomFactor.
|
inlineinherited |
|
inline |
return flag for throwing cheirality exceptions
|
inherited |
Vector of errors, whitened, but unweighted by any loss function
|
inlineinherited |
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;
|
inline |
return verbosity
|
inherited |
Compute the effective weight of the factor from the noise model.
|
inherited |
Vector of errors, whitened This is the raw error, i.e., i.e. \( (h(x)-z)/\sigma \) in case of a Gaussian