Classes | |
| class | Anchor2d_Node |
| class | Anchor3d_Node |
| class | Cholesky |
| class | CholeskyImpl |
| class | CholeskyImplCSparse |
| class | ChowLiuTree |
| class | ChowLiuTreeInfo |
| class | ChowLiuTreeNode |
| class | Covariance |
| class | CovarianceCache |
| class | Covariances |
| struct | DeleteOnReturn |
| class | Depthmono_Factor |
| class | DepthmonoCamera |
| class | DepthmonoMeasurement |
| class | Element |
| class | Factor |
| class | FactorT |
| class | Function |
| class | GLC_Factor |
| class | GLC_Reparam |
| class | GLC_RootShift |
| class | Graph |
| class | Information |
| class | Jacobian |
| class | MI |
| class | Monocular_Factor |
| class | MonocularCamera |
| class | MonocularMeasurement |
| class | Node |
| class | NodeT |
| class | Noise |
| class | OptimizationInterface |
| class | Optimizer |
| class | OrderedSparseMatrix |
| class | Point2d |
| class | Point2d_Factor |
| class | Point3d |
| class | Point3dh |
| class | Point3dT_Node |
| class | Pose2d |
| class | Pose2d_Factor |
| class | Pose2d_Point2d_Factor |
| class | Pose2d_Pose2d_Factor |
| class | Pose3d |
| class | Pose3d_Factor |
| class | Pose3d_Point3d_Factor |
| class | Pose3d_Pose3d_Factor |
| class | Properties |
| class | Rot3d |
| class | Slam |
| class | SparseMatrix |
| class | SparseSystem |
| class | SparseVector |
| class | SparseVectorIter |
| class | SqrtInformation |
| class | Stereo_Factor |
| class | StereoCamera |
| class | StereoMeasurement |
| class | Term |
| class | Timing |
| class | UpdateStats |
Typedefs | |
| typedef double(* | cost_func_t )(double) |
| typedef std::vector< std::pair < int, int > > | entry_list_t |
| typedef std::vector < std::vector< int > > | index_lists_t |
| typedef NodeT< Point2d > | Point2d_Node |
| typedef Point3dT_Node< Point3d > | Point3d_Node |
| typedef Point3dT_Node< Point3dh > | Point3dh_Node |
| typedef NodeT< Pose2d > | Pose2d_Node |
| typedef NodeT< Pose3d > | Pose3d_Node |
| typedef SparseVector * | SparseVector_p |
| typedef std::list< Term > | Terms |
| typedef std::tr1::unordered_map< int, double > | umap |
| typedef Eigen::Matrix< double, 6, 1 > | Vector6d |
Enumerations | |
| enum | Method { GAUSS_NEWTON, LEVENBERG_MARQUARDT, DOG_LEG } |
| enum | Selector { LINPOINT, ESTIMATE } |
Functions | |
| double | cost_blake_zisserman (double d, double e) |
| double | cost_cauchy (double d, double b=1.) |
| double | cost_corrupted_gaussian (double d, double w, double a) |
| double | cost_huber (double d, double b) |
| double | cost_l1 (double d, double b=0.5) |
| double | cost_pseudo_huber (double d, double b) |
| double | cost_squared (double d) |
| std::list< Eigen::MatrixXd > | cov_marginal (const SparseMatrix &R, CovarianceCache &cache, const index_lists_t &index_lists, bool debug=false, int step=-1) |
| std::list< double > | cov_marginal (const SparseMatrix &R, CovarianceCache &cache, const entry_list_t &entry_list) |
| double | deg_to_rad (double d) |
| Eigen::MatrixXd | exmap_jacobian (const std::vector< Node * > &nodes) |
| Eigen::MatrixXd | eye (int num) |
| const SparseVector & | get_row (const SparseMatrix &R, CovarianceCache &cache, int i) |
| void | givens (const double a, const double b, double &c, double &s) |
| MatrixXd | glc_cholcov (MatrixXd A, double eps=numeric_limits< float >::epsilon()) |
| std::vector< isam::Node * > | glc_elim_clique_nodes (Node *node) |
| std::vector< Factor * > | glc_elim_factors (Node *node) |
| Factor * | glc_factor (const MatrixXd &L, const vector< Node * > &clique_nodes, GLC_Reparam *rp) |
| MatrixXd | glc_get_weighted_jacobian (isam::Factor *f) |
| vector< Factor * > | glc_intra_clique_factors (vector< Node * > clique_nodes, Node *node) |
| vector< Factor * > | glc_lift_factors (const MatrixXd &L, const vector< Node * > &clique_nodes, bool sparse, GLC_Reparam *rp) |
| std::vector< Factor * > | glc_remove_node (Slam &slam, Node *node, bool sparse=false, GLC_Reparam *rp=NULL) |
| MatrixXd | glc_target_info (Node *node, vector< Node * > &clique_nodes, vector< Factor * > &ic_factors) |
| Eigen::MatrixXd | matrix_of_sparseMatrix (const SparseMatrix &s) |
| MatrixXd | matslice (const MatrixXd A, vector< int > ii, vector< int > jj) |
| bool | mi_sort (MI &first, MI &second) |
| Eigen::VectorXd | mul_SparseMatrixTrans_Vector (const SparseMatrix &lhs, const Eigen::VectorXd &rhs) |
| VectorXd | mul_SparseMatrixTrans_Vector (const SparseMatrix &lhs, const VectorXd &rhs) |
| std::string | noise_to_string (const Noise &noise) |
| Eigen::MatrixXd | numericalDiff (Function &func) |
| const Eigen::VectorXd | operator* (const SparseMatrix &lhs, const Eigen::VectorXd &rhs) |
| const VectorXd | operator* (const SparseMatrix &lhs, const VectorXd &rhs) |
| template<typename T > | |
| T | pinv (const T &a, double eps=std::numeric_limits< typename T::Scalar >::epsilon()) |
| template<typename T > | |
| T | posdef_pinv (const T &a, double eps=std::numeric_limits< typename T::Scalar >::epsilon()) |
| void | prepare (const SparseMatrix &R, CovarianceCache &cache) |
| double | rad_to_deg (double r) |
| double | recover (const SparseMatrix &R, CovarianceCache &cache, int n, int i, int l) |
| SparseMatrix | sparseMatrix_of_matrix (const Eigen::MatrixXd &m) |
| SparseMatrix | sparseMatrix_of_matrix (const MatrixXd &m) |
| double | standardRad (double t) |
| double | sum_j (const SparseMatrix &R, CovarianceCache &cache, int n, int l, int i) |
| double | tic () |
| double | tic (std::string id) |
| double | tic (string id) |
| double | tictoc (std::string id) |
| double | tictoc (string id) |
| void | tictoc_print () |
| double | toc (double t0) |
| double | toc (std::string id) |
| double | toc (string id) |
Variables | |
| const double | epsilon = 0.0001 |
| const double | HALFPI = PI/2.0 |
| const int | INITIAL_ENTRIES = 50 |
| const int | MIN_NUM_COLS = 10 |
| const int | MIN_NUM_ROWS = 10 |
| const double | NUMERICAL_ZERO = 1e-12 |
| const double | PI = 3.14159265358979323846 |
| Timing | timing |
| const double | TWOPI = 2.0*PI |
| typedef double(* isam::cost_func_t)(double) |
Definition at line 34 of file Jacobian.h.
| typedef std::vector< std::pair<int, int> > isam::entry_list_t |
Definition at line 74 of file covariance.h.
| typedef std::vector< std::vector<int> > isam::index_lists_t |
Definition at line 73 of file covariance.h.
| typedef NodeT<Point2d> isam::Point2d_Node |
| typedef Point3dT_Node<Point3d> isam::Point3d_Node |
| typedef Point3dT_Node<Point3dh> isam::Point3dh_Node |
| typedef NodeT< Pose2d > isam::Pose2d_Node |
| typedef NodeT< Pose3d > isam::Pose3d_Node |
| typedef SparseVector* isam::SparseVector_p |
Definition at line 37 of file SparseMatrix.h.
| typedef std::list<Term> isam::Terms |
Definition at line 70 of file Jacobian.h.
| typedef std::tr1::unordered_map<int, double> isam::umap |
Definition at line 49 of file covariance.h.
| typedef Eigen::Matrix< double, 6, 1> isam::Vector6d |
| enum isam::Method |
Definition at line 32 of file Properties.h.
| enum isam::Selector |
| double isam::cost_blake_zisserman | ( | double | d, |
| double | e | ||
| ) | [inline] |
| double isam::cost_cauchy | ( | double | d, |
| double | b = 1. |
||
| ) | [inline] |
| double isam::cost_corrupted_gaussian | ( | double | d, |
| double | w, | ||
| double | a | ||
| ) | [inline] |
| double isam::cost_huber | ( | double | d, |
| double | b | ||
| ) | [inline] |
| double isam::cost_l1 | ( | double | d, |
| double | b = 0.5 |
||
| ) | [inline] |
| double isam::cost_pseudo_huber | ( | double | d, |
| double | b | ||
| ) | [inline] |
| double isam::cost_squared | ( | double | d | ) | [inline] |
| list< MatrixXd > isam::cov_marginal | ( | const SparseMatrix & | R, |
| CovarianceCache & | cache, | ||
| const index_lists_t & | index_lists, | ||
| bool | debug = false, |
||
| int | step = -1 |
||
| ) |
Takes a list of variable indices, and returns the marginal covariance matrix.
| R | Sparse factor matrix. |
| cache | Covariance cache object. |
| index_lists | List of lists of indices; a block will be recovered for each list. |
| debug | Optional parameter to print timing information. |
| step | Optional parameter to print statistics (default=-1, no stats printed). |
Definition at line 119 of file covariance.cpp.
| list< double > isam::cov_marginal | ( | const SparseMatrix & | R, |
| CovarianceCache & | cache, | ||
| const entry_list_t & | entry_list | ||
| ) |
Takes a list of pairs of integers and returns the corresonding entries of the covariance matrix.
| R | Sparse factor matrix. |
| cache | Covariance cache object. |
| entry_lists | List of pairs of integers refering to covariance matrix entries. |
| debug | Optional parameter to print timing information. |
| step | Optional parameter to print statistics (default=-1, no stats printed). |
Definition at line 170 of file covariance.cpp.
| double isam::deg_to_rad | ( | double | d | ) | [inline] |
| Eigen::MatrixXd isam::exmap_jacobian | ( | const std::vector< Node * > & | nodes | ) |
| Eigen::MatrixXd isam::eye | ( | int | num | ) |
| const SparseVector& isam::get_row | ( | const SparseMatrix & | R, |
| CovarianceCache & | cache, | ||
| int | i | ||
| ) |
Definition at line 64 of file covariance.cpp.
| void isam::givens | ( | const double | a, |
| const double | b, | ||
| double & | c, | ||
| double & | s | ||
| ) |
| MatrixXd isam::glc_cholcov | ( | MatrixXd | A, |
| double | eps = numeric_limits<float>::epsilon() |
||
| ) |
| std::vector<isam::Node*> isam::glc_elim_clique_nodes | ( | Node * | node | ) |
| vector< Factor * > isam::glc_elim_factors | ( | Node * | node | ) |
Find the factors that will be eliminated and replaced when node is removed IMPORTANT: must be called before node is removed using glc_remove_node()
| node | Pointer to node to be removed. |
| Factor* isam::glc_factor | ( | const MatrixXd & | L, |
| const vector< Node * > & | clique_nodes, | ||
| GLC_Reparam * | rp | ||
| ) |
| MatrixXd isam::glc_get_weighted_jacobian | ( | isam::Factor * | f | ) |
| vector<Factor*> isam::glc_intra_clique_factors | ( | vector< Node * > | clique_nodes, |
| Node * | node | ||
| ) |
| vector<Factor*> isam::glc_lift_factors | ( | const MatrixXd & | L, |
| const vector< Node * > & | clique_nodes, | ||
| bool | sparse, | ||
| GLC_Reparam * | rp | ||
| ) |
| vector< Factor * > isam::glc_remove_node | ( | Slam & | slam, |
| Node * | node, | ||
| bool | sparse = false, |
||
| GLC_Reparam * | rp = NULL |
||
| ) |
Removes a node (variable) and all factors within in its elimination clique replaces these factors with either a dense GLC factor or a set of sparse GLC factors Note that the node itself and the removed factors are not deallocated.
We usually use GLC with USE_QUATERNIONS turned off in Rot3d.h. This avoids having to account for the state transformation between euler and angle axis representations. This is currently done numerically (see exmap_jacobian()) and produces slightly higher KLD in the GLC results.
| node | Pointer to node to be removed. |
| sparse | Bool flag if new factors should be sparse approximate or dense |
| rp | functor to reparamertize variables before linearization |
| MatrixXd isam::glc_target_info | ( | Node * | node, |
| vector< Node * > & | clique_nodes, | ||
| vector< Factor * > & | ic_factors | ||
| ) |
| MatrixXd isam::matrix_of_sparseMatrix | ( | const SparseMatrix & | s | ) |
Definition at line 424 of file SparseMatrix.cpp.
| MatrixXd isam::matslice | ( | const MatrixXd | A, |
| vector< int > | ii, | ||
| vector< int > | jj | ||
| ) |
Definition at line 37 of file ChowLiuTree.cpp.
| bool isam::mi_sort | ( | MI & | first, |
| MI & | second | ||
| ) |
Definition at line 135 of file ChowLiuTree.cpp.
| Eigen::VectorXd isam::mul_SparseMatrixTrans_Vector | ( | const SparseMatrix & | lhs, |
| const Eigen::VectorXd & | rhs | ||
| ) |
| VectorXd isam::mul_SparseMatrixTrans_Vector | ( | const SparseMatrix & | lhs, |
| const VectorXd & | rhs | ||
| ) |
Definition at line 400 of file SparseMatrix.cpp.
| std::string isam::noise_to_string | ( | const Noise & | noise | ) | [inline] |
| MatrixXd isam::numericalDiff | ( | Function & | func | ) |
Takes a general vector valued function and returns the Jacobian at the linearization point given by x0.
| func | Function object with evaluation function that takes and returns vectors. |
Definition at line 41 of file numericalDiff.cpp.
| const Eigen::VectorXd isam::operator* | ( | const SparseMatrix & | lhs, |
| const Eigen::VectorXd & | rhs | ||
| ) |
| const VectorXd isam::operator* | ( | const SparseMatrix & | lhs, |
| const VectorXd & | rhs | ||
| ) |
Definition at line 386 of file SparseMatrix.cpp.
| T isam::pinv | ( | const T & | a, |
| double | eps = std::numeric_limits<typename T::Scalar>::epsilon() |
||
| ) |
| T isam::posdef_pinv | ( | const T & | a, |
| double | eps = std::numeric_limits<typename T::Scalar>::epsilon() |
||
| ) |
| void isam::prepare | ( | const SparseMatrix & | R, |
| CovarianceCache & | cache | ||
| ) |
Definition at line 40 of file covariance.cpp.
| double isam::rad_to_deg | ( | double | r | ) | [inline] |
| double isam::recover | ( | const SparseMatrix & | R, |
| CovarianceCache & | cache, | ||
| int | n, | ||
| int | i, | ||
| int | l | ||
| ) |
Definition at line 94 of file covariance.cpp.
| SparseMatrix isam::sparseMatrix_of_matrix | ( | const Eigen::MatrixXd & | m | ) |
| SparseMatrix isam::sparseMatrix_of_matrix | ( | const MatrixXd & | m | ) |
Definition at line 414 of file SparseMatrix.cpp.
| double isam::standardRad | ( | double | t | ) | [inline] |
| double isam::sum_j | ( | const SparseMatrix & | R, |
| CovarianceCache & | cache, | ||
| int | n, | ||
| int | l, | ||
| int | i | ||
| ) | [inline] |
Definition at line 76 of file covariance.cpp.
| double isam::tic | ( | std::string | id | ) |
Remember and return system time in seconds.
| id | Name of time slot. |
| double isam::tictoc | ( | std::string | id | ) |
Return the accumulated time.
| id | Name of time slot. |
| double isam::tictoc | ( | string | id | ) |
| void isam::tictoc_print | ( | ) |
| double isam::toc | ( | double | t0 | ) |
| double isam::toc | ( | std::string | id | ) |
Return difference between current system time and remembered time in seconds, and add to accumulated time.
| id | Name of time slot. |
| const double isam::epsilon = 0.0001 |
Definition at line 115 of file GLCReparam.cpp.
| const double isam::HALFPI = PI/2.0 |
| const int isam::INITIAL_ENTRIES = 50 |
Definition at line 46 of file SparseVector.cpp.
| const int isam::MIN_NUM_COLS = 10 |
Definition at line 44 of file SparseMatrix.cpp.
| const int isam::MIN_NUM_ROWS = 10 |
Definition at line 45 of file SparseMatrix.cpp.
| const double isam::NUMERICAL_ZERO = 1e-12 |
| const double isam::TWOPI = 2.0*PI |