|
gtsam
3.2.1
gtsam
|
A non-linear factor graph is a graph of non-Gaussian, i.e.
non-linear factors, which derive from NonlinearFactor. The values structures are typically (in SAM) more general than just vectors, e.g., Rot3 or Pose3, which are objects in non-linear manifolds. Linearizing the non-linear factor graph creates a linear factor graph on the tangent vector space at the linearization point. Because the tangent space is a true vector space, the config type will be an VectorValues in that linearized factor graph.
Inheritance diagram for gtsam::NonlinearFactorGraph:Public Member Functions | |
| NonlinearFactorGraph () | |
| Default constructor. | |
| template<typename ITERATOR > | |
| NonlinearFactorGraph (ITERATOR firstFactor, ITERATOR lastFactor) | |
| Construct from iterator over factors. | |
| template<class CONTAINER > | |
| NonlinearFactorGraph (const CONTAINER &factors) | |
| Construct from container of factors (shared_ptr or plain objects) | |
| template<class DERIVEDFACTOR > | |
| NonlinearFactorGraph (const FactorGraph< DERIVEDFACTOR > &graph) | |
| Implicit copy/downcast constructor to override explicit template container constructor. | |
| void | print (const std::string &str="NonlinearFactorGraph: ", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
| print just calls base class | |
| bool | equals (const NonlinearFactorGraph &other, double tol=1e-9) const |
| Test equality. | |
| void | saveGraph (std::ostream &stm, const Values &values=Values(), const GraphvizFormatting &graphvizFormatting=GraphvizFormatting(), const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
| Write the graph in GraphViz format for visualization. | |
| FastSet< Key > | keys () const |
| return keys as an ordered set - ordering is by key value | |
| double | error (const Values &c) const |
| unnormalized error, \( 0.5 \sum_i (h_i(X_i)-z)^2/\sigma^2 \) in the most common case | |
| double | probPrime (const Values &c) const |
| Unnormalized probability. More... | |
|
boost::shared_ptr < SymbolicFactorGraph > | symbolic () const |
| Create a symbolic factor graph. | |
| Ordering | orderingCOLAMD () const |
| Compute a fill-reducing ordering using COLAMD. | |
| Ordering | orderingCOLAMDConstrained (const FastMap< Key, int > &constraints) const |
| Compute a fill-reducing ordering with constraints using CCOLAMD. More... | |
|
boost::shared_ptr < GaussianFactorGraph > | linearize (const Values &linearizationPoint) const |
| linearize a nonlinear factor graph | |
| NonlinearFactorGraph | clone () const |
| Clone() performs a deep-copy of the graph, including all of the factors. | |
| NonlinearFactorGraph | rekey (const std::map< Key, Key > &rekey_mapping) const |
| Rekey() performs a deep-copy of all of the factors, and changes keys according to a mapping. More... | |
Public Member Functions inherited from gtsam::FactorGraph< NonlinearFactor > | |
| void | reserve (size_t size) |
| Reserve space for the specified number of factors if you know in advance how many there will be (works like FastVector::reserve). | |
|
boost::enable_if < boost::is_base_of < FactorType, DERIVEDFACTOR > >::type | push_back (boost::shared_ptr< DERIVEDFACTOR > factor) |
| Add a factor directly using a shared_ptr. | |
| void | push_back (const sharedFactor &factor) |
| Add a factor directly using a shared_ptr. | |
|
boost::enable_if < boost::is_base_of < FactorType, typename ITERATOR::value_type::element_type > >::type | push_back (ITERATOR firstFactor, ITERATOR lastFactor) |
| push back many factors with an iterator over shared_ptr (factors are not copied) | |
|
boost::enable_if < boost::is_base_of < FactorType, typename CONTAINER::value_type::element_type > >::type | push_back (const CONTAINER &container) |
| push back many factors as shared_ptr's in a container (factors are not copied) | |
| boost::enable_if < boost::is_base_of< This, typename CLIQUE::FactorGraphType > >::type | push_back (const BayesTree< CLIQUE > &bayesTree) |
| push back a BayesTree as a collection of factors. More... | |
| boost::enable_if < boost::is_base_of < FactorType, DERIVEDFACTOR > >::type | push_back (const DERIVEDFACTOR &factor) |
| Add a factor by value, will be copy-constructed (use push_back with a shared_ptr to avoid the copy). More... | |
|
boost::enable_if < boost::is_base_of < FactorType, typename ITERATOR::value_type > >::type | push_back (ITERATOR firstFactor, ITERATOR lastFactor) |
| push back many factors with an iterator over plain factors (factors are copied) | |
|
boost::enable_if < boost::is_base_of < FactorType, typename CONTAINER::value_type > >::type | push_back (const CONTAINER &container) |
| push back many factors as non-pointer objects in a container (factors are copied) | |
|
boost::enable_if < boost::is_base_of < FactorType, DERIVEDFACTOR > , boost::assign::list_inserter < RefCallPushBack< This > > >::type | operator+= (boost::shared_ptr< DERIVEDFACTOR > factor) |
| Add a factor directly using a shared_ptr. | |
|
boost::assign::list_inserter < CRefCallPushBack< This > > | operator+= (const sharedFactor &factor) |
| Add a factor directly using a shared_ptr. | |
| boost::assign::list_inserter < CRefCallPushBack< This > > | operator+= (const FACTOR_OR_CONTAINER &factorOrContainer) |
| Add a factor or container of factors, including STL collections, BayesTrees, etc. More... | |
|
boost::enable_if < boost::is_base_of < FactorType, DERIVEDFACTOR > >::type | add (boost::shared_ptr< DERIVEDFACTOR > factor) |
| Add a factor directly using a shared_ptr. | |
| void | add (const sharedFactor &factor) |
| Add a factor directly using a shared_ptr. | |
| void | add (const FACTOR_OR_CONTAINER &factorOrContainer) |
| Add a factor or container of factors, including STL collections, BayesTrees, etc. More... | |
| size_t | size () const |
| return the number of factors (including any null factors set by remove() ). More... | |
| bool | empty () const |
| Check if the graph is empty (null factors set by remove() will cause this to return false). More... | |
| const sharedFactor | at (size_t i) const |
| Get a specific factor by index (this checks array bounds and may throw an exception, as opposed to operator[] which does not). | |
| sharedFactor & | at (size_t i) |
| Get a specific factor by index (this checks array bounds and may throw an exception, as opposed to operator[] which does not). | |
| const sharedFactor | operator[] (size_t i) const |
| Get a specific factor by index (this does not check array bounds, as opposed to at() which does). | |
| sharedFactor & | operator[] (size_t i) |
| Get a specific factor by index (this does not check array bounds, as opposed to at() which does). | |
| const_iterator | begin () const |
| Iterator to beginning of factors. More... | |
| const_iterator | end () const |
| Iterator to end of factors. More... | |
| sharedFactor | front () const |
| Get the first factor. | |
| sharedFactor | back () const |
| Get the last factor. | |
| iterator | begin () |
| non-const STL-style begin() | |
| iterator | end () |
| non-const STL-style end() | |
| void | resize (size_t size) |
| Directly resize the number of factors in the graph. More... | |
| void | remove (size_t i) |
| delete factor without re-arranging indexes by inserting a NULL pointer | |
| void | replace (size_t index, sharedFactor factor) |
| replace a factor by index | |
| void | erase (iterator item) |
| Erase factor and rearrange other factors to take up the empty space. | |
| void | erase (iterator first, iterator last) |
| Erase factors and rearrange other factors to take up the empty space. | |
| size_t | nrFactors () const |
| return the number of non-null factors | |
| FastSet< Key > | keys () const |
| Potentially very slow function to return all keys involved. | |
| bool | exists (size_t idx) const |
| MATLAB interface utility: Checks whether a factor index idx exists in the graph and is a live pointer. | |
| void | print (const std::string &s="FactorGraph", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print out graph | |
Public Types | |
|
typedef FactorGraph < NonlinearFactor > | Base |
| typedef NonlinearFactorGraph | This |
| typedef boost::shared_ptr< This > | shared_ptr |
Public Types inherited from gtsam::FactorGraph< NonlinearFactor > | |
| typedef NonlinearFactor | FactorType |
| factor type | |
|
typedef boost::shared_ptr < NonlinearFactor > | sharedFactor |
| Shared pointer to a factor. | |
| typedef sharedFactor | value_type |
|
typedef FastVector < sharedFactor >::iterator | iterator |
|
typedef FastVector < sharedFactor > ::const_iterator | const_iterator |
Friends | |
| class | boost::serialization::access |
| Serialization function. | |
Additional Inherited Members | |
Protected Member Functions inherited from gtsam::FactorGraph< NonlinearFactor > | |
| FactorGraph () | |
| Default constructor. | |
| FactorGraph (ITERATOR firstFactor, ITERATOR lastFactor) | |
| Constructor from iterator over factors (shared_ptr or plain objects) | |
| FactorGraph (const CONTAINER &factors) | |
| Construct from container of factors (shared_ptr or plain objects) | |
| bool | equals (const This &fg, double tol=1e-9) const |
| Check equality. | |
Protected Attributes inherited from gtsam::FactorGraph< NonlinearFactor > | |
| FastVector< sharedFactor > | factors_ |
| concept check, makes sure FACTOR defines print and equals More... | |
| Ordering gtsam::NonlinearFactorGraph::orderingCOLAMDConstrained | ( | const FastMap< Key, int > & | constraints | ) | const |
Compute a fill-reducing ordering with constraints using CCOLAMD.
| constraints | is a map of Key->group, where 0 is unconstrained, and higher group numbers are further back in the ordering. Only keys with nonzero group indices need to appear in the constraints, unconstrained is assumed for all other variables |
| double gtsam::NonlinearFactorGraph::probPrime | ( | const Values & | c | ) | const |
Unnormalized probability.
O(n)
| NonlinearFactorGraph gtsam::NonlinearFactorGraph::rekey | ( | const std::map< Key, Key > & | rekey_mapping | ) | const |
Rekey() performs a deep-copy of all of the factors, and changes keys according to a mapping.
Keys not specified in the mapping will remain unchanged.
| rekey_mapping | is a map of old->new keys |