|
| SmartStereoProjectionPoseFactor (const SharedNoiseModel &sharedNoiseModel, const SmartStereoProjectionParams ¶ms=SmartStereoProjectionParams(), const boost::optional< Pose3 > body_P_sensor=boost::none) |
| Constructor. More...
|
|
virtual | ~SmartStereoProjectionPoseFactor () |
| Virtual destructor.
|
|
void | add (const StereoPoint2 measured, const Key poseKey, const boost::shared_ptr< Cal3_S2Stereo > K) |
| add a new measurement and pose key More...
|
|
void | add (std::vector< StereoPoint2 > measurements, KeyVector poseKeys, std::vector< boost::shared_ptr< Cal3_S2Stereo > > Ks) |
| Variant of the previous one in which we include a set of measurements. More...
|
|
void | add (std::vector< StereoPoint2 > measurements, KeyVector poseKeys, const boost::shared_ptr< Cal3_S2Stereo > K) |
| Variant of the previous one in which we include a set of measurements with the same noise and calibration. More...
|
|
void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
| print More...
|
|
virtual bool | equals (const NonlinearFactor &p, double tol=1e-9) const |
| equals
|
|
virtual double | error (const Values &values) const |
| error calculates the error of the factor.
|
|
const std::vector< boost::shared_ptr< Cal3_S2Stereo > > | calibration () const |
| return the calibration object
|
|
Base::Cameras | cameras (const Values &values) const |
| Collect all cameras involved in this factor. More...
|
|
| SmartStereoProjectionFactor (const SharedNoiseModel &sharedNoiseModel, const SmartStereoProjectionParams ¶ms=SmartStereoProjectionParams(), const boost::optional< Pose3 > body_P_sensor=boost::none) |
| Constructor. More...
|
|
virtual | ~SmartStereoProjectionFactor () |
| Virtual destructor.
|
|
bool | decideIfTriangulate (const Cameras &cameras) const |
| Check if the new linearization point_ is the same as the one used for previous triangulation.
|
|
TriangulationResult | triangulateSafe (const Cameras &cameras) const |
| triangulateSafe
|
|
bool | triangulateForLinearize (const Cameras &cameras) const |
| triangulate
|
|
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)
|
|
boost::shared_ptr< JacobianFactor > | createJacobianSVDFactor (const Cameras &cameras, double lambda) const |
| different (faster) way to compute Jacobian factor
|
|
boost::shared_ptr< GaussianFactor > | linearizeDamped (const Cameras &cameras, const double lambda=0.0) const |
| Linearize to Gaussian Factor. More...
|
|
boost::shared_ptr< GaussianFactor > | linearizeDamped (const Values &values, const double lambda=0.0) const |
| Linearize to Gaussian Factor. More...
|
|
virtual boost::shared_ptr< GaussianFactor > | linearize (const Values &values) const |
| linearize
|
|
bool | triangulateAndComputeE (Matrix &E, const Cameras &cameras) const |
| Triangulate and compute derivative of error with respect to point. More...
|
|
bool | triangulateAndComputeE (Matrix &E, const Values &values) const |
| Triangulate and compute derivative of error with respect to point. More...
|
|
void | computeJacobiansWithTriangulatedPoint (FBlocks &Fs, Matrix &E, Vector &b, const Cameras &cameras) const |
| 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.
|
|
bool | triangulateAndComputeJacobians (FBlocks &Fs, Matrix &E, Vector &b, const Values &values) const |
| Version that takes values, and creates the point.
|
|
bool | triangulateAndComputeJacobiansSVD (FBlocks &Fs, Matrix &Enull, Vector &b, const Values &values) const |
| takes values
|
|
Vector | reprojectionErrorAfterTriangulation (const Values &values) const |
| Calculate vector of re-projection errors, before applying noise model.
|
|
double | totalReprojectionError (const Cameras &cameras, boost::optional< Point3 > externalPoint=boost::none) const |
| Calculate the error of the factor. More...
|
|
virtual void | correctForMissingMeasurements (const Cameras &cameras, Vector &ue, boost::optional< typename Cameras::FBlocks & > Fs=boost::none, boost::optional< Matrix & > E=boost::none) const |
| This corrects the Jacobians and error vector for the case in which the right pixel in the monocular camera is missing (nan)
|
|
TriangulationResult | point () const |
| return the landmark
|
|
TriangulationResult | point (const Values &values) const |
| COMPUTE the landmark.
|
|
bool | isValid () const |
| Is result valid?
|
|
bool | isDegenerate () const |
| return the degenerate state
|
|
bool | isPointBehindCamera () const |
| return the cheirality status flag
|
|
bool | isOutlier () const |
| return the outlier state
|
|
bool | isFarPoint () const |
| return the farPoint state
|
|
| SmartFactorBase () |
| Default Constructor, for serialization.
|
|
| SmartFactorBase (const SharedNoiseModel &sharedNoiseModel, boost::optional< Pose3 > body_P_sensor=boost::none, size_t expectedNumberCameras=10) |
| Constructor.
|
|
virtual | ~SmartFactorBase () |
| Virtual destructor, subclasses from NonlinearFactor.
|
|
void | add (const Z &measured_i, const Key &cameraKey_i) |
| Add a new measurement and pose key. More...
|
|
void | add (ZVector &measurements, KeyVector &cameraKeys) |
| Add a bunch of measurements, together with the camera keys.
|
|
void | add (const SFM_TRACK &trackToAdd) |
| Adds an entire SfM_track (collection of cameras observing a single point). More...
|
|
virtual size_t | dim () const |
| get the dimension (number of rows!) of the factor
|
|
const ZVector & | measured () const |
| return the measurements
|
|
void | print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const |
| print More...
|
|
Vector | unwhitenedError (const Cameras &cameras, const POINT &point, boost::optional< typename Cameras::FBlocks & > Fs=boost::none, boost::optional< Matrix & > E=boost::none) const |
| Compute reprojection errors [h(x)-z] = [cameras.project(p)-z] and derivatives.
|
|
Vector | whitenedError (const Cameras &cameras, const POINT &point) const |
| Calculate vector of re-projection errors [h(x)-z] = [cameras.project(p) - z] Noise model applied.
|
|
double | totalReprojectionError (const Cameras &cameras, const POINT &point) const |
| Calculate the error of the factor. More...
|
|
void | computeJacobians (FBlocks &Fs, Matrix &E, Vector &b, const Cameras &cameras, const POINT &point) const |
| Compute F, E, and b (called below in both vanilla and SVD versions), where F is a vector of derivatives wrpt the cameras, and E the stacked derivatives with respect to the point. More...
|
|
void | computeJacobiansSVD (FBlocks &Fs, Matrix &Enull, Vector &b, const Cameras &cameras, const POINT &point) const |
| SVD version.
|
|
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.
|
|
void | updateAugmentedHessian (const Cameras &cameras, const Point3 &point, const double lambda, bool diagonalDamping, SymmetricBlockMatrix &augmentedHessian, const KeyVector allKeys) const |
| Add the contribution of the smart factor to a pre-allocated Hessian, using sparse linear algebra. More...
|
|
void | whitenJacobians (FBlocks &F, Matrix &E, Vector &b) const |
| Whiten the Jacobians computed by computeJacobians using noiseModel_.
|
|
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.
|
|
boost::shared_ptr< JacobianFactorQ< Dim, ZDim > > | createJacobianQFactor (const Cameras &cameras, const Point3 &point, double lambda=0.0, bool diagonalDamping=false) const |
| Return Jacobians as JacobianFactorQ.
|
|
boost::shared_ptr< JacobianFactor > | createJacobianSVDFactor (const Cameras &cameras, const Point3 &point, double lambda=0.0) const |
| Return Jacobians as JacobianFactorSVD TODO lambda is currently ignored.
|
|
Pose3 | body_P_sensor () const |
|
| NonlinearFactor () |
| Default constructor for I/O only.
|
|
template<typename CONTAINER > |
| NonlinearFactor (const CONTAINER &keys) |
| Constructor from a collection of the keys involved in this factor.
|
|
virtual | ~NonlinearFactor () |
| Destructor.
|
|
virtual bool | active (const Values &) const |
| Checks whether a factor should be used based on a set of values. More...
|
|
virtual shared_ptr | clone () const |
| Creates a shared_ptr clone of the factor - needs to be specialized to allow for subclasses. More...
|
|
shared_ptr | rekey (const std::map< Key, Key > &rekey_mapping) const |
| Creates a shared_ptr clone of the factor with different keys using a map from old->new keys.
|
|
shared_ptr | rekey (const KeyVector &new_keys) const |
| Clones a factor and fully replaces its keys. More...
|
|
Key | front () const |
| First key.
|
|
Key | back () const |
| Last key.
|
|
const_iterator | find (Key key) const |
| find
|
|
const KeyVector & | keys () const |
| Access the factor's involved variable keys.
|
|
const_iterator | begin () const |
| Iterator at beginning of involved variable keys.
|
|
const_iterator | end () const |
| Iterator at end of involved variable keys.
|
|
size_t | size () const |
|
void | print (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print
|
|
void | printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const |
| print only keys
|
|
KeyVector & | keys () |
|
iterator | begin () |
| Iterator at beginning of involved variable keys.
|
|
iterator | end () |
| Iterator at end of involved variable keys.
|
|