Dummy version of a generic linear factor to be injected into a nonlinear factor graph.
This factor does have the ability to perform relinearization under small-angle and linearity assumptions if a linearization point is added.
|
| LinearContainerFactor (const JacobianFactor &factor, const Values &linearizationPoint=Values()) |
| Primary constructor: store a linear factor with optional linearization point.
|
|
| LinearContainerFactor (const HessianFactor &factor, const Values &linearizationPoint=Values()) |
| Primary constructor: store a linear factor with optional linearization point.
|
|
| LinearContainerFactor (const GaussianFactor::shared_ptr &factor, const Values &linearizationPoint=Values()) |
| Constructor from shared_ptr.
|
|
const GaussianFactor::shared_ptr & | factor () const |
|
void | print (const std::string &s="", const KeyFormatter &keyFormatter=gtsam::DefaultKeyFormatter) const |
| print
|
|
bool | equals (const NonlinearFactor &f, double tol=1e-9) const |
| Check if two factors are equal.
|
|
double | error (const Values &c) const |
| Calculate the nonlinear error for the factor, where the error is computed by passing the delta between linearization point and c, where delta = linearizationPoint_.localCoordinates(c), into the error function of the stored linear factor. More...
|
|
size_t | dim () const |
| get the dimension of the factor: rows of linear factor
|
|
const boost::optional< Values > & | linearizationPoint () const |
| Extract the linearization point used in recalculating error.
|
|
GaussianFactor::shared_ptr | linearize (const Values &c) const |
| Linearize to a GaussianFactor, with method depending on the presence of a linearizationPoint. More...
|
|
GaussianFactor::shared_ptr | negateToGaussian () const |
| Creates an anti-factor directly.
|
|
NonlinearFactor::shared_ptr | negateToNonlinear () const |
| Creates the equivalent anti-factor as another LinearContainerFactor.
|
|
NonlinearFactor::shared_ptr | clone () const |
| Creates a shared_ptr clone of the factor - needs to be specialized to allow for subclasses. More...
|
|
bool | hasLinearizationPoint () const |
|
bool | isJacobian () const |
| Simple checks whether this is a Jacobian or Hessian factor.
|
|
bool | isHessian () const |
|
boost::shared_ptr< JacobianFactor > | toJacobian () const |
| Casts to JacobianFactor.
|
|
boost::shared_ptr< HessianFactor > | toHessian () const |
| Casts to HessianFactor.
|
|
| 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.
|
|
virtual | ~NonlinearFactor () |
| Destructor.
|
|
virtual bool | active (const Values &) const |
| Checks whether a factor should be used based on a set of values. More...
|
|
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.
|
|
shared_ptr | rekey (const KeyVector &new_keys) const |
| Clones a factor and fully replaces its keys. More...
|
|
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 |
|
void | print (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print
|
|
void | printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print only keys
|
|
KeyVector & | keys () |
|
iterator | begin () |
| Iterator at beginning of involved variable keys.
|
|
iterator | end () |
| Iterator at end of involved variable keys.
|
|
Linearize to a GaussianFactor, with method depending on the presence of a linearizationPoint.
- With no linearization point, returns a cloned version of the stored linear factor.
- With a linearization point provided, returns a relinearized version of the linearized factor.
The relinearization approach used computes a linear delta between the original linearization point and the new values c, where delta = linearizationPoint_.localCoordinates(c), and substitutes this change into the system. This substitution is only really valid for linear variable manifolds, and for any variables based on a non-commutative manifold (such as Pose2, Pose3), the relinearized version will be effective for only small angles.
TODO: better approximation of relinearization TODO: switchable modes for approximation technique
Implements gtsam::NonlinearFactor.