gtsam  4.0.0 gtsam
gtsam::CameraSet< CAMERA > Class Template Reference

## Detailed Description

### template<class CAMERA> class gtsam::CameraSet< CAMERA >

A set of cameras, all with their own calibration.

Inheritance diagram for gtsam::CameraSet< CAMERA >:

## Public Member Functions

virtual void print (const std::string &s="") const
print More...

bool equals (const CameraSet &p, double tol=1e-9) const
equals

template<class POINT >
ZVector project2 (const POINT &point, boost::optional< FBlocks & > Fs=boost::none, boost::optional< Matrix & > E=boost::none) const
Project a point (possibly Unit3 at infinity), with derivatives Note that F is a sparse block-diagonal matrix, so instead of a large dense matrix this function returns the diagonal blocks. More...

template<class POINT >
Vector reprojectionError (const POINT &point, const ZVector &measured, boost::optional< FBlocks & > Fs=boost::none, boost::optional< Matrix & > E=boost::none) const
Calculate vector [project2(point)-z] of re-projection errors.

## Static Public Member Functions

template<int N>
static SymmetricBlockMatrix SchurComplement (const FBlocks &Fs, const Matrix &E, const Eigen::Matrix< double, N, N > &P, const Vector &b)
Do Schur complement, given Jacobian as Fs,E,P, return SymmetricBlockMatrix G = F' * F - F' * E * P * E' * F g = F' * (b - E * P * E' * b) Fixed size version.

template<int N>
static void ComputePointCovariance (Eigen::Matrix< double, N, N > &P, const Matrix &E, double lambda, bool diagonalDamping=false)
Computes Point Covariance P, with lambda parameter.

static Matrix PointCov (const Matrix &E, const double lambda=0.0, bool diagonalDamping=false)
Computes Point Covariance P, with lambda parameter, dynamic version.

static SymmetricBlockMatrix SchurComplement (const FBlocks &Fblocks, const Matrix &E, const Vector &b, const double lambda=0.0, bool diagonalDamping=false)
Do Schur complement, given Jacobian as Fs,E,P, return SymmetricBlockMatrix Dynamic version.

template<int N>
static void UpdateSchurComplement (const FBlocks &Fs, const Matrix &E, const Eigen::Matrix< double, N, N > &P, const Vector &b, const KeyVector &allKeys, const KeyVector &keys, SymmetricBlockMatrix &augmentedHessian)
Applies Schur complement (exploiting block structure) to get a smart factor on cameras, and adds the contribution of the smart factor to a pre-allocated augmented Hessian.

## Public Types

typedef Eigen::Matrix< double, ZDim, DMatrixZD
Definitions for blocks of F.

typedef std::vector< MatrixZD, Eigen::aligned_allocator< MatrixZD > > FBlocks

## Protected Types

typedef CAMERA::Measurement Z
2D measurement and noise model for each of the m views The order is kept the same as the keys that we use to create the factor.

typedef CAMERA::MeasurementVector ZVector

## Static Protected Member Functions

static Vector ErrorVector (const ZVector &predicted, const ZVector &measured)
Make a vector of re-projection errors.

## Static Protected Attributes

static const int D = traits<CAMERA>::dimension
Camera dimension.

static const int ZDim = traits<Z>::dimension
Measurement dimension.

## Friends

class boost::serialization::access
Serialization function.

## ◆ print()

template<class CAMERA>
 virtual void gtsam::CameraSet< CAMERA >::print ( const std::string & s = "" ) const
inlinevirtual

print

Parameters
 s optional string naming the factor keyFormatter optional formatter useful for printing Symbols

Reimplemented in gtsam::PinholeSet< CAMERA >.

## ◆ project2()

template<class CAMERA>
template<class POINT >
 ZVector gtsam::CameraSet< CAMERA >::project2 ( const POINT & point, boost::optional< FBlocks & > Fs = boost::none, boost::optional< Matrix & > E = boost::none ) const
inline

Project a point (possibly Unit3 at infinity), with derivatives Note that F is a sparse block-diagonal matrix, so instead of a large dense matrix this function returns the diagonal blocks.

throws CheiralityException

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