Classes | Typedefs | Enumerations | Functions | Variables
isam Namespace Reference

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< Point2dPoint2d_Node
typedef Point3dT_Node< Point3dPoint3d_Node
typedef Point3dT_Node< Point3dhPoint3dh_Node
typedef NodeT< Pose2dPose2d_Node
typedef NodeT< Pose3dPose3d_Node
typedef SparseVectorSparseVector_p
typedef std::list< TermTerms
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 SparseVectorget_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)
Factorglc_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 >
pinv (const T &a, double eps=std::numeric_limits< typename T::Scalar >::epsilon())
template<typename 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 Documentation

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.

Definition at line 48 of file slam2d.h.

Definition at line 55 of file slam3d.h.

Definition at line 56 of file slam3d.h.

Definition at line 40 of file Anchor.h.

Definition at line 41 of file Anchor.h.

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

Definition at line 67 of file Pose3d.h.


Enumeration Type Documentation

Enumerator:
GAUSS_NEWTON 
LEVENBERG_MARQUARDT 
DOG_LEG 

Definition at line 32 of file Properties.h.

Enumerator:
LINPOINT 
ESTIMATE 

Definition at line 41 of file Node.h.


Function Documentation

double isam::cost_blake_zisserman ( double  d,
double  e 
) [inline]

Robust Blake-Zisserman cost function.

Parameters:
dUnmodified cost/distance.
eApproximate crossover between inliers and outliers: d^2 = -log(e).

Definition at line 60 of file robust.h.

double isam::cost_cauchy ( double  d,
double  b = 1. 
) [inline]

Robust Cauchy cost function.

Parameters:
dUnmodified cost/distance.
bDetermines for which range of d the function closely approximates the squared error function.

Definition at line 82 of file robust.h.

double isam::cost_corrupted_gaussian ( double  d,
double  w,
double  a 
) [inline]

Robust cost function using corrupted Gaussian.

Parameters:
dUnmodified cost/distance.
wRatio of standard deviations of the outliers to the inliers.
aExpected fraction of inliers.

Definition at line 70 of file robust.h.

double isam::cost_huber ( double  d,
double  b 
) [inline]

Robust Huber cost function.

Parameters:
dUnmodified cost/distance.
bApproximately the outlier threshold.

Definition at line 101 of file robust.h.

double isam::cost_l1 ( double  d,
double  b = 0.5 
) [inline]

Robust L1 cost function, the sum of absolute errors.

Parameters:
dUnmodified cost/distance.
b?

Definition at line 92 of file robust.h.

double isam::cost_pseudo_huber ( double  d,
double  b 
) [inline]

Robust Pseudo-Huber cost function.

Parameters:
dUnmodified cost/distance.
b?

Definition at line 115 of file robust.h.

double isam::cost_squared ( double  d) [inline]

Standard squared cost function.

Parameters:
dUnmodified cost/distance.

Definition at line 51 of file robust.h.

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.

Parameters:
RSparse factor matrix.
cacheCovariance cache object.
index_listsList of lists of indices; a block will be recovered for each list.
debugOptional parameter to print timing information.
stepOptional parameter to print statistics (default=-1, no stats printed).
Returns:
List of dense marginal covariance matrices.

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.

Parameters:
RSparse factor matrix.
cacheCovariance cache object.
entry_listsList of pairs of integers refering to covariance matrix entries.
debugOptional parameter to print timing information.
stepOptional parameter to print statistics (default=-1, no stats printed).
Returns:
List of doubles corresponding to the requested covariance matrix entries.

Definition at line 170 of file covariance.cpp.

double isam::deg_to_rad ( double  d) [inline]

Definition at line 110 of file util.h.

Eigen::MatrixXd isam::exmap_jacobian ( const std::vector< Node * > &  nodes)
Eigen::MatrixXd isam::eye ( int  num)

Return identity matrix.

Definition at line 110 of file util.cpp.

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 
)

Calculate Givens rotation so that a specific entry becomes 0.

Parameters:
aDiagonal entry from above.
bEntry to be zeroed out.
cResulting cosine part.
sResulting sine part.

Definition at line 114 of file util.cpp.

MatrixXd isam::glc_cholcov ( MatrixXd  A,
double  eps = numeric_limits<float>::epsilon() 
)

Definition at line 98 of file glc.cpp.

std::vector<isam::Node*> isam::glc_elim_clique_nodes ( Node *  node)

Definition at line 174 of file glc.cpp.

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()

Parameters:
nodePointer to node to be removed.
Returns:
vector of factors that will be eliminated.

Definition at line 468 of file glc.cpp.

Factor* isam::glc_factor ( const MatrixXd &  L,
const vector< Node * > &  clique_nodes,
GLC_Reparam *  rp 
)

Definition at line 330 of file glc.cpp.

Definition at line 149 of file glc.cpp.

vector<Factor*> isam::glc_intra_clique_factors ( vector< Node * >  clique_nodes,
Node *  node 
)

Definition at line 205 of file glc.cpp.

vector<Factor*> isam::glc_lift_factors ( const MatrixXd &  L,
const vector< Node * > &  clique_nodes,
bool  sparse,
GLC_Reparam *  rp 
)

Definition at line 416 of file glc.cpp.

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.

Parameters:
nodePointer to node to be removed.
sparseBool flag if new factors should be sparse approximate or dense
rpfunctor to reparamertize variables before linearization
Returns:
vector of new factors.

Definition at line 482 of file glc.cpp.

MatrixXd isam::glc_target_info ( Node *  node,
vector< Node * > &  clique_nodes,
vector< Factor * > &  ic_factors 
)

Definition at line 246 of file glc.cpp.

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]

Convert upper triangular square root information matrix to string.

Parameters:
sqrtinfUpper triangular square matrix.

Definition at line 168 of file Factor.h.

MatrixXd isam::numericalDiff ( Function &  func)

Takes a general vector valued function and returns the Jacobian at the linearization point given by x0.

Parameters:
funcFunction object with evaluation function that takes and returns vectors.
Returns:
Matrix containing the Jacobian of func, with dim(y) rows and dim(x) columns, where y=func(x).

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.

template<typename T >
T isam::pinv ( const T &  a,
double  eps = std::numeric_limits<typename T::Scalar>::epsilon() 
)

Calculate the pseudo inverse of an arbitrary matrix using the SVD a Eigen matrix to invert eps Numerical epsilon to determine zero singular values (defaults to std::numeric_limits::eps)

Returns:
Eigen matrix of same type as a

Definition at line 125 of file util.h.

template<typename T >
T isam::posdef_pinv ( const T &  a,
double  eps = std::numeric_limits<typename T::Scalar>::epsilon() 
)

Calculate the pseudo inverse of an positive semidefinite matrix using the eigenvalue decomposition a Eigen matrix to invert eps Numerical epsilon to determine zero singular values (defaults to std::numeric_limits::eps)

Returns:
Eigen matrix of same type as a

Definition at line 157 of file util.h.

void isam::prepare ( const SparseMatrix &  R,
CovarianceCache &  cache 
)

Definition at line 40 of file covariance.cpp.

double isam::rad_to_deg ( double  r) [inline]

Definition at line 114 of file util.h.

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]

Normalize angle to be within the interval [-pi,pi].

Definition at line 101 of file util.h.

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 ( )

Return current system time in seconds.

Definition at line 79 of file util.cpp.

double isam::tic ( std::string  id)

Remember and return system time in seconds.

Parameters:
idName of time slot.
double isam::tic ( string  id)

Definition at line 85 of file util.cpp.

double isam::tictoc ( std::string  id)

Return the accumulated time.

Parameters:
idName of time slot.
double isam::tictoc ( string  id)

Definition at line 106 of file util.cpp.

Print a list of accumulated times and additional statistics for each name used in tic/toc.

Definition at line 102 of file util.cpp.

double isam::toc ( double  t0)

Return difference between current system time and t in seconds.

Parameters:
t0Start time as returned by tic();

Definition at line 91 of file util.cpp.

double isam::toc ( std::string  id)

Return difference between current system time and remembered time in seconds, and add to accumulated time.

Parameters:
idName of time slot.
double isam::toc ( string  id)

Definition at line 96 of file util.cpp.


Variable Documentation

const double isam::epsilon = 0.0001

Definition at line 115 of file GLCReparam.cpp.

const double isam::HALFPI = PI/2.0

Definition at line 43 of file util.h.

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

Definition at line 46 of file util.h.

const double isam::PI = 3.14159265358979323846

Definition at line 40 of file util.h.

Definition at line 77 of file util.cpp.

const double isam::TWOPI = 2.0*PI

Definition at line 42 of file util.h.



demo_lidar
Author(s): Ji Zhang
autogenerated on Sun Oct 5 2014 23:22:43