Public Types | Public Member Functions | Private Member Functions | Private Attributes
isam::Covariances Class Reference

#include <Covariances.h>

List of all members.

Public Types

typedef std::list< std::list
< Node * > > 
node_lists_t
typedef std::list< std::pair
< Node *, Node * > > 
node_pair_list_t

Public Member Functions

virtual std::list
< Eigen::MatrixXd > 
access (const node_pair_list_t &node_pair_list) const
virtual Covariances clone () const
 Covariances (Slam *slam)
virtual std::list
< Eigen::MatrixXd > 
marginal (const node_lists_t &node_lists) const
virtual Eigen::MatrixXd marginal (const std::list< Node * > &nodes) const
virtual ~Covariances ()

Private Member Functions

 Covariances (Slam &slam)
int get_dim (Node *node) const
int get_start (Node *node) const

Private Attributes

CovarianceCache _cache
std::map< Node *, std::pair
< int, int > > 
_index
SparseSystem _R
Slam_slam

Detailed Description

Definition at line 42 of file Covariances.h.


Member Typedef Documentation

typedef std::list<std::list<Node*> > isam::Covariances::node_lists_t

Definition at line 80 of file Covariances.h.

typedef std::list<std::pair<Node*, Node*> > isam::Covariances::node_pair_list_t

Definition at line 81 of file Covariances.h.


Constructor & Destructor Documentation

isam::Covariances::Covariances ( Slam slam) [private]

Definition at line 42 of file Covariances.cpp.

isam::Covariances::Covariances ( Slam slam) [inline]

Create an instance based on a Slam object, that always refers to the latest state of slam.

Definition at line 66 of file Covariances.h.

virtual isam::Covariances::~Covariances ( ) [inline, virtual]

Definition at line 68 of file Covariances.h.


Member Function Documentation

list< MatrixXd > isam::Covariances::access ( const node_pair_list_t node_pair_list) const [virtual]

Calculates individual entries of the covariance matrix (as opposed to marginal_covariance, which calculates blocks containing select variables). Note that a single call with a long list of entries is significantly more efficient than repeatedly calling this function, as intermediate results are being reused.

Parameters:
entry_listList of pairs of nodes, indexing entries in the covariance matrix in (column, row) format.
Returns:
List of matrices.

Definition at line 107 of file Covariances.cpp.

virtual Covariances isam::Covariances::clone ( ) const [inline, virtual]

Create a stand-alone copy, useful for calculating covariances in a separate thread. Copies all necessary data structures to work independently of the Slam object.

Returns:
Covariances object that is independent of Slam object.

Definition at line 76 of file Covariances.h.

int isam::Covariances::get_dim ( Node node) const [private]

Definition at line 62 of file Covariances.cpp.

int isam::Covariances::get_start ( Node node) const [private]

Definition at line 54 of file Covariances.cpp.

list< MatrixXd > isam::Covariances::marginal ( const node_lists_t node_lists) const [virtual]

Calculates marginal covariance over a list of lists. Significantly more efficient than calling marginal_covariance multiple times with separate lists, as intermediate results are being reused.

Parameters:
node_listsList of list of nodes.
Returns:
List of marginal covariance matrices.

Definition at line 70 of file Covariances.cpp.

virtual Eigen::MatrixXd isam::Covariances::marginal ( const std::list< Node * > &  nodes) const [virtual]

Calculates marginal covariance over a list of nodes.

Parameters:
nodesList of nodes. return Marginal covariance matrix.

Member Data Documentation

Definition at line 51 of file Covariances.h.

std::map<Node*, std::pair<int, int> > isam::Covariances::_index [private]

Definition at line 49 of file Covariances.h.

Definition at line 48 of file Covariances.h.

Definition at line 45 of file Covariances.h.


The documentation for this class was generated from the following files:


demo_lidar
Author(s): Ji Zhang
autogenerated on Sun Mar 1 2015 11:30:50