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 |