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.