gtsam 4.1.1
gtsam
gtsam::IncrementalFixedLagSmoother Class Reference

Detailed Description

This is a base class for the various HMF2 implementations.

The HMF2 eliminates the factor graph such that the active states are placed in/near the root. This base class implements a function to calculate the ordering, and an update function to incorporate new factors into the HMF.

+ Inheritance diagram for gtsam::IncrementalFixedLagSmoother:

Public Member Functions

 IncrementalFixedLagSmoother (double smootherLag=0.0, const ISAM2Params &parameters=DefaultISAM2Params())
 default constructor
 
 ~IncrementalFixedLagSmoother () override
 destructor
 
void print (const std::string &s="IncrementalFixedLagSmoother:\n", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override
 Print the factor for debugging and testing (implementing Testable) More...
 
bool equals (const FixedLagSmoother &rhs, double tol=1e-9) const override
 Check if two IncrementalFixedLagSmoother Objects are equal. More...
 
Result update (const NonlinearFactorGraph &newFactors=NonlinearFactorGraph(), const Values &newTheta=Values(), const KeyTimestampMap &timestamps=KeyTimestampMap(), const FactorIndices &factorsToRemove=FactorIndices()) override
 Add new factors, updating the solution and re-linearizing as needed. More...
 
Values calculateEstimate () const override
 Compute an estimate from the incomplete linear delta computed during the last update. More...
 
template<class VALUE >
VALUE calculateEstimate (Key key) const
 Compute an estimate for a single variable using its incomplete linear delta computed during the last update. More...
 
const ISAM2Paramsparams () const
 return the current set of iSAM2 parameters
 
const NonlinearFactorGraphgetFactors () const
 Access the current set of factors.
 
const ValuesgetLinearizationPoint () const
 Access the current linearization point.
 
const VectorValuesgetDelta () const
 Access the current set of deltas to the linearization point.
 
Matrix marginalCovariance (Key key) const
 Calculate marginal covariance on given variable.
 
const ISAM2ResultgetISAM2Result () const
 Get results of latest isam2 update.
 
- Public Member Functions inherited from gtsam::FixedLagSmoother
 FixedLagSmoother (double smootherLag=0.0)
 default constructor
 
virtual ~FixedLagSmoother ()
 destructor
 
virtual void print (const std::string &s="FixedLagSmoother:\n", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 Print the factor for debugging and testing (implementing Testable) More...
 
virtual bool equals (const FixedLagSmoother &rhs, double tol=1e-9) const
 Check if two IncrementalFixedLagSmoother Objects are equal. More...
 
double smootherLag () const
 read the current smoother lag
 
double & smootherLag ()
 write to the current smoother lag
 
const KeyTimestampMaptimestamps () const
 Access the current set of timestamps associated with each variable.
 
virtual Result update (const NonlinearFactorGraph &newFactors=NonlinearFactorGraph(), const Values &newTheta=Values(), const KeyTimestampMap &timestamps=KeyTimestampMap(), const FactorIndices &factorsToRemove=FactorIndices())=0
 Add new factors, updating the solution and relinearizing as needed. More...
 
virtual Values calculateEstimate () const =0
 Compute an estimate from the incomplete linear delta computed during the last update. More...
 

Public Types

typedef boost::shared_ptr< IncrementalFixedLagSmoothershared_ptr
 Typedef for a shared pointer to an Incremental Fixed-Lag Smoother.
 
- Public Types inherited from gtsam::FixedLagSmoother
typedef boost::shared_ptr< FixedLagSmoothershared_ptr
 Typedef for a shared pointer to an Incremental Fixed-Lag Smoother.
 
typedef std::map< Key, double > KeyTimestampMap
 Typedef for a Key-Timestamp map/database.
 
typedef std::multimap< double, KeyTimestampKeyMap
 

Protected Member Functions

void eraseKeysBefore (double timestamp)
 Erase any keys associated with timestamps before the provided time.
 
void createOrderingConstraints (const KeyVector &marginalizableKeys, boost::optional< FastMap< Key, int > > &constrainedKeys) const
 Fill in an iSAM2 ConstrainedKeys structure such that the provided keys are eliminated before all others.
 
- Protected Member Functions inherited from gtsam::FixedLagSmoother
void updateKeyTimestampMap (const KeyTimestampMap &newTimestamps)
 Update the Timestamps associated with the keys.
 
void eraseKeyTimestampMap (const KeyVector &keys)
 Erase keys from the Key-Timestamps database.
 
double getCurrentTimestamp () const
 Find the most recent timestamp of the system.
 
KeyVector findKeysBefore (double timestamp) const
 Find all of the keys associated with timestamps before the provided time.
 
KeyVector findKeysAfter (double timestamp) const
 Find all of the keys associated with timestamps before the provided time.
 

Static Protected Member Functions

static ISAM2Params DefaultISAM2Params ()
 Create default parameters.
 

Protected Attributes

ISAM2 isam_
 An iSAM2 object used to perform inference. More...
 
ISAM2Result isamResult_
 Store results of latest isam2 update.
 
- Protected Attributes inherited from gtsam::FixedLagSmoother
double smootherLag_
 The length of the smoother lag. More...
 
TimestampKeyMap timestampKeyMap_
 The current timestamp associated with each tracked key.
 
KeyTimestampMap keyTimestampMap_
 

Member Function Documentation

◆ calculateEstimate() [1/2]

Values gtsam::IncrementalFixedLagSmoother::calculateEstimate ( ) const
inlineoverridevirtual

Compute an estimate from the incomplete linear delta computed during the last update.

This delta is incomplete because it was not updated below wildfire_threshold. If only a single variable is needed, it is faster to call calculateEstimate(const KEY&).

Implements gtsam::FixedLagSmoother.

◆ calculateEstimate() [2/2]

template<class VALUE >
VALUE gtsam::IncrementalFixedLagSmoother::calculateEstimate ( Key  key) const
inline

Compute an estimate for a single variable using its incomplete linear delta computed during the last update.

This is faster than calling the no-argument version of calculateEstimate, which operates on all variables.

Parameters
key
Returns

◆ equals()

bool gtsam::IncrementalFixedLagSmoother::equals ( const FixedLagSmoother rhs,
double  tol = 1e-9 
) const
overridevirtual

Check if two IncrementalFixedLagSmoother Objects are equal.

Reimplemented from gtsam::FixedLagSmoother.

◆ print()

void gtsam::IncrementalFixedLagSmoother::print ( const std::string &  s = "IncrementalFixedLagSmoother:\n",
const KeyFormatter keyFormatter = DefaultKeyFormatter 
) const
overridevirtual

Print the factor for debugging and testing (implementing Testable)

Reimplemented from gtsam::FixedLagSmoother.

◆ update()

FixedLagSmoother::Result gtsam::IncrementalFixedLagSmoother::update ( const NonlinearFactorGraph newFactors = NonlinearFactorGraph(),
const Values newTheta = Values(),
const KeyTimestampMap timestamps = KeyTimestampMap(),
const FactorIndices factorsToRemove = FactorIndices() 
)
overridevirtual

Add new factors, updating the solution and re-linearizing as needed.

Parameters
newFactorsnew factors on old and/or new variables
newThetanew values for new variables only
timestampsan (optional) map from keys to real time stamps
factorsToRemovean (optional) list of factors to remove.

Implements gtsam::FixedLagSmoother.

Member Data Documentation

◆ isam_

ISAM2 gtsam::IncrementalFixedLagSmoother::isam_
protected

An iSAM2 object used to perform inference.

The smoother lag is controlled by what factors are removed each iteration


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