#include <SmartStereoProjectionFactor.h>
Public Types | |
typedef CameraSet< StereoCamera > | Cameras |
Vector of cameras. More... | |
typedef PinholeCamera< Cal3_S2 > | MonoCamera |
Vector of monocular cameras (stereo treated as 2 monocular) More... | |
typedef CameraSet< MonoCamera > | MonoCameras |
typedef MonoCamera::MeasurementVector | MonoMeasurements |
typedef boost::shared_ptr< SmartStereoProjectionFactor > | shared_ptr |
shorthand for a smart pointer to a factor More... | |
Public Types inherited from gtsam::SmartFactorBase< StereoCamera > | |
typedef CameraSet< StereoCamera > | Cameras |
We use the new CameraSte data structure to refer to a set of cameras. More... | |
typedef std::vector< MatrixZD, Eigen::aligned_allocator< MatrixZD > > | FBlocks |
typedef Eigen::Matrix< double, ZDim, Dim > | MatrixZD |
Public Types inherited from gtsam::NonlinearFactor | |
typedef boost::shared_ptr< This > | shared_ptr |
Public Types inherited from gtsam::Factor | |
typedef KeyVector::const_iterator | const_iterator |
Const iterator over keys. More... | |
typedef KeyVector::iterator | iterator |
Iterator over keys. More... | |
Public Member Functions | |
void | computeJacobiansWithTriangulatedPoint (FBlocks &Fs, Matrix &E, Vector &b, const Cameras &cameras) const |
void | correctForMissingMeasurements (const Cameras &cameras, Vector &ue, boost::optional< typename Cameras::FBlocks & > Fs=boost::none, boost::optional< Matrix & > E=boost::none) const override |
boost::shared_ptr< RegularHessianFactor< Base::Dim > > | createHessianFactor (const Cameras &cameras, const double lambda=0.0, bool diagonalDamping=false) const |
linearize returns a Hessianfactor that is an approximation of error(p) More... | |
boost::shared_ptr< JacobianFactor > | createJacobianSVDFactor (const Cameras &cameras, double lambda) const |
different (faster) way to compute Jacobian factor More... | |
bool | decideIfTriangulate (const Cameras &cameras) const |
Check if the new linearization point_ is the same as the one used for previous triangulation. More... | |
bool | equals (const NonlinearFactor &p, double tol=1e-9) const override |
equals More... | |
double | error (const Values &values) const override |
Calculate total reprojection error. More... | |
bool | isDegenerate () const |
bool | isFarPoint () const |
bool | isOutlier () const |
bool | isPointBehindCamera () const |
bool | isValid () const |
Is result valid? More... | |
boost::shared_ptr< GaussianFactor > | linearize (const Values &values) const override |
linearize More... | |
boost::shared_ptr< GaussianFactor > | linearizeDamped (const Cameras &cameras, const double lambda=0.0) const |
boost::shared_ptr< GaussianFactor > | linearizeDamped (const Values &values, const double lambda=0.0) const |
TriangulationResult | point () const |
TriangulationResult | point (const Values &values) const |
void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override |
Vector | reprojectionErrorAfterTriangulation (const Values &values) const |
Calculate vector of re-projection errors, before applying noise model. More... | |
SmartStereoProjectionFactor (const SharedNoiseModel &sharedNoiseModel, const SmartStereoProjectionParams ¶ms=SmartStereoProjectionParams(), const boost::optional< Pose3 > body_P_sensor=boost::none) | |
double | totalReprojectionError (const Cameras &cameras, boost::optional< Point3 > externalPoint=boost::none) const |
bool | triangulateAndComputeE (Matrix &E, const Cameras &cameras) const |
bool | triangulateAndComputeE (Matrix &E, const Values &values) const |
bool | triangulateAndComputeJacobians (FBlocks &Fs, Matrix &E, Vector &b, const Values &values) const |
Version that takes values, and creates the point. More... | |
bool | triangulateAndComputeJacobiansSVD (FBlocks &Fs, Matrix &Enull, Vector &b, const Values &values) const |
takes values More... | |
bool | triangulateForLinearize (const Cameras &cameras) const |
triangulate More... | |
TriangulationResult | triangulateSafe (const Cameras &cameras) const |
triangulateSafe More... | |
~SmartStereoProjectionFactor () override | |
Public Member Functions inherited from gtsam::SmartFactorBase< StereoCamera > | |
void | add (const Z &measured, const Key &key) |
void | add (const ZVector &measurements, const KeyVector &cameraKeys) |
void | add (const SFM_TRACK &trackToAdd) |
Pose3 | body_P_sensor () const |
virtual Cameras | cameras (const Values &values) const |
Collect all cameras: important that in key order. More... | |
void | computeJacobians (FBlocks &Fs, Matrix &E, Vector &b, const Cameras &cameras, const POINT &point) const |
void | computeJacobiansSVD (FBlocks &Fs, Matrix &Enull, Vector &b, const Cameras &cameras, const POINT &point) const |
SVD version. More... | |
boost::shared_ptr< RegularHessianFactor< Dim > > | createHessianFactor (const Cameras &cameras, const Point3 &point, const double lambda=0.0, bool diagonalDamping=false) const |
Linearize to a Hessianfactor. More... | |
boost::shared_ptr< JacobianFactorQ< Dim, ZDim > > | createJacobianQFactor (const Cameras &cameras, const Point3 &point, double lambda=0.0, bool diagonalDamping=false) const |
boost::shared_ptr< JacobianFactor > | createJacobianSVDFactor (const Cameras &cameras, const Point3 &point, double lambda=0.0) const |
boost::shared_ptr< RegularImplicitSchurFactor< StereoCamera > > | createRegularImplicitSchurFactor (const Cameras &cameras, const Point3 &point, double lambda=0.0, bool diagonalDamping=false) const |
Return Jacobians as RegularImplicitSchurFactor with raw access. More... | |
size_t | dim () const override |
get the dimension (number of rows!) of the factor More... | |
bool | equals (const NonlinearFactor &p, double tol=1e-9) const override |
equals More... | |
const ZVector & | measured () const |
void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override |
SmartFactorBase () | |
Default Constructor, for serialization. More... | |
SmartFactorBase (const SharedNoiseModel &sharedNoiseModel, boost::optional< Pose3 > body_P_sensor=boost::none, size_t expectedNumberCameras=10) | |
Constructor. More... | |
double | totalReprojectionError (const Cameras &cameras, const POINT &point) const |
Vector | unwhitenedError (const Cameras &cameras, const POINT &point, boost::optional< typename Cameras::FBlocks & > Fs=boost::none, boost::optional< Matrix & > E=boost::none) const |
void | updateAugmentedHessian (const Cameras &cameras, const Point3 &point, const double lambda, bool diagonalDamping, SymmetricBlockMatrix &augmentedHessian, const KeyVector allKeys) const |
Vector | whitenedError (const Cameras &cameras, const POINT &point) const |
void | whitenJacobians (FBlocks &F, Matrix &E, Vector &b) const |
Whiten the Jacobians computed by computeJacobians using noiseModel_. More... | |
~SmartFactorBase () override | |
Virtual destructor, subclasses from NonlinearFactor. More... | |
Public Member Functions inherited from gtsam::NonlinearFactor | |
NonlinearFactor () | |
template<typename CONTAINER > | |
NonlinearFactor (const CONTAINER &keys) | |
virtual | ~NonlinearFactor () |
virtual bool | active (const Values &) const |
virtual shared_ptr | clone () const |
shared_ptr | rekey (const std::map< Key, Key > &rekey_mapping) const |
shared_ptr | rekey (const KeyVector &new_keys) const |
Public Member Functions inherited from gtsam::Factor | |
virtual | ~Factor ()=default |
Default destructor. More... | |
Key | front () const |
First key. More... | |
Key | back () const |
Last key. More... | |
const_iterator | find (Key key) const |
find More... | |
const KeyVector & | keys () const |
Access the factor's involved variable keys. More... | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
virtual void | printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
print only keys More... | |
KeyVector & | keys () |
iterator | begin () |
iterator | end () |
Protected Attributes | |
Parameters | |
const SmartStereoProjectionParams | params_ |
Caching triangulation | |
TriangulationResult | result_ |
result from triangulateSafe More... | |
std::vector< Pose3 > | cameraPosesTriangulation_ |
Protected Attributes inherited from gtsam::SmartFactorBase< StereoCamera > | |
boost::optional< Pose3 > | body_P_sensor_ |
Pose of the camera in the body frame. More... | |
FBlocks | Fs |
ZVector | measured_ |
SharedIsotropic | noiseModel_ |
Protected Attributes inherited from gtsam::Factor | |
KeyVector | keys_ |
The keys involved in this factor. More... | |
Private Types | |
typedef SmartFactorBase< StereoCamera > | Base |
Private Member Functions | |
template<class ARCHIVE > | |
void | serialize (ARCHIVE &ar, const unsigned int) |
Friends | |
class | boost::serialization::access |
Serialization function. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from gtsam::SmartFactorBase< StereoCamera > | |
static void | FillDiagonalF (const FBlocks &Fs, Matrix &F) |
Create BIG block-diagonal matrix F from Fblocks. More... | |
static Matrix | PointCov (Matrix &E) |
Computes Point Covariance P from E. More... | |
Public Attributes inherited from gtsam::SmartFactorBase< StereoCamera > | |
GTSAM_MAKE_ALIGNED_OPERATOR_NEW typedef boost::shared_ptr< This > | shared_ptr |
shorthand for a smart pointer to a factor More... | |
Static Public Attributes inherited from gtsam::SmartFactorBase< StereoCamera > | |
static const int | Dim |
Camera dimension. More... | |
static const int | ZDim |
Measurement dimension. More... | |
Protected Types inherited from gtsam::NonlinearFactor | |
typedef Factor | Base |
typedef NonlinearFactor | This |
Protected Member Functions inherited from gtsam::Factor | |
Factor () | |
template<typename CONTAINER > | |
Factor (const CONTAINER &keys) | |
template<typename ITERATOR > | |
Factor (ITERATOR first, ITERATOR last) | |
bool | equals (const This &other, double tol=1e-9) const |
check equality More... | |
Static Protected Member Functions inherited from gtsam::Factor | |
template<typename CONTAINER > | |
static Factor | FromKeys (const CONTAINER &keys) |
template<typename ITERATOR > | |
static Factor | FromIterators (ITERATOR first, ITERATOR last) |
SmartStereoProjectionFactor: triangulates point and keeps an estimate of it around. This factor operates with StereoCamera. This factor requires that values contains the involved StereoCameras. Calibration is assumed to be fixed, as this is also assumed in StereoCamera. If you'd like to store poses in values instead of cameras, use SmartStereoProjectionPoseFactor instead
Definition at line 52 of file SmartStereoProjectionFactor.h.
|
private |
Definition at line 55 of file SmartStereoProjectionFactor.h.
Vector of cameras.
Definition at line 76 of file SmartStereoProjectionFactor.h.
Vector of monocular cameras (stereo treated as 2 monocular)
Definition at line 79 of file SmartStereoProjectionFactor.h.
Definition at line 80 of file SmartStereoProjectionFactor.h.
Definition at line 81 of file SmartStereoProjectionFactor.h.
typedef boost::shared_ptr<SmartStereoProjectionFactor> gtsam::SmartStereoProjectionFactor::shared_ptr |
shorthand for a smart pointer to a factor
Definition at line 73 of file SmartStereoProjectionFactor.h.
|
inline |
Constructor
params | internal parameters of the smart factors |
Definition at line 87 of file SmartStereoProjectionFactor.h.
|
inlineoverride |
Virtual destructor
Definition at line 96 of file SmartStereoProjectionFactor.h.
|
inline |
Compute F, E only (called below in both vanilla and SVD versions) Assumes the point has been computed Note E can be 2m*3 or 2m*2, in case point is degenerate
Definition at line 359 of file SmartStereoProjectionFactor.h.
|
inlineoverridevirtual |
This corrects the Jacobians and error vector for the case in which the right pixel in the monocular camera is missing (nan)
Reimplemented from gtsam::SmartFactorBase< StereoCamera >.
Definition at line 452 of file SmartStereoProjectionFactor.h.
|
inline |
linearize returns a Hessianfactor that is an approximation of error(p)
Definition at line 199 of file SmartStereoProjectionFactor.h.
|
inline |
different (faster) way to compute Jacobian factor
Definition at line 269 of file SmartStereoProjectionFactor.h.
|
inline |
Check if the new linearization point_ is the same as the one used for previous triangulation.
Definition at line 122 of file SmartStereoProjectionFactor.h.
|
inlineoverridevirtual |
equals
Reimplemented from gtsam::NonlinearFactor.
Reimplemented in gtsam::SmartStereoProjectionPoseFactor.
Definition at line 114 of file SmartStereoProjectionFactor.h.
|
inlineoverridevirtual |
Calculate total reprojection error.
Implements gtsam::NonlinearFactor.
Reimplemented in gtsam::SmartStereoProjectionPoseFactor.
Definition at line 441 of file SmartStereoProjectionFactor.h.
|
inline |
return the degenerate state
Definition at line 490 of file SmartStereoProjectionFactor.h.
|
inline |
return the farPoint state
Definition at line 499 of file SmartStereoProjectionFactor.h.
|
inline |
return the outlier state
Definition at line 496 of file SmartStereoProjectionFactor.h.
|
inline |
return the cheirality status flag
Definition at line 493 of file SmartStereoProjectionFactor.h.
|
inline |
Is result valid?
Definition at line 487 of file SmartStereoProjectionFactor.h.
|
inlineoverridevirtual |
linearize
Implements gtsam::NonlinearFactor.
Definition at line 330 of file SmartStereoProjectionFactor.h.
|
inline |
Linearize to Gaussian Factor
values | Values structure which must contain camera poses for this factor |
Definition at line 300 of file SmartStereoProjectionFactor.h.
|
inline |
Linearize to Gaussian Factor
values | Values structure which must contain camera poses for this factor |
Definition at line 322 of file SmartStereoProjectionFactor.h.
|
inline |
return the landmark
Definition at line 476 of file SmartStereoProjectionFactor.h.
|
inline |
COMPUTE the landmark
Definition at line 481 of file SmartStereoProjectionFactor.h.
|
inlineoverridevirtual |
s | optional string naming the factor |
keyFormatter | optional formatter useful for printing Symbols |
Reimplemented from gtsam::NonlinearFactor.
Reimplemented in gtsam::SmartStereoProjectionPoseFactor.
Definition at line 104 of file SmartStereoProjectionFactor.h.
|
inline |
Calculate vector of re-projection errors, before applying noise model.
Definition at line 401 of file SmartStereoProjectionFactor.h.
|
inlineprivate |
Definition at line 506 of file SmartStereoProjectionFactor.h.
|
inline |
Calculate the error of the factor. This is the log-likelihood, e.g. in case of Gaussian. In this class, we take the raw prediction error , ask the noise model to transform it to , and then multiply by 0.5.
Definition at line 416 of file SmartStereoProjectionFactor.h.
|
inline |
Triangulate and compute derivative of error with respect to point
Definition at line 339 of file SmartStereoProjectionFactor.h.
|
inline |
Triangulate and compute derivative of error with respect to point
Definition at line 350 of file SmartStereoProjectionFactor.h.
|
inline |
Version that takes values, and creates the point.
Definition at line 379 of file SmartStereoProjectionFactor.h.
|
inline |
takes values
Definition at line 390 of file SmartStereoProjectionFactor.h.
|
inline |
triangulate
Definition at line 193 of file SmartStereoProjectionFactor.h.
|
inline |
triangulateSafe
Definition at line 163 of file SmartStereoProjectionFactor.h.
|
friend |
Serialization function.
Definition at line 504 of file SmartStereoProjectionFactor.h.
|
mutableprotected |
current triangulation poses
Definition at line 67 of file SmartStereoProjectionFactor.h.
|
protected |
Definition at line 61 of file SmartStereoProjectionFactor.h.
|
mutableprotected |
result from triangulateSafe
Definition at line 66 of file SmartStereoProjectionFactor.h.