EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
GaussianHistory.h File Reference

Smoothing the Kalman family (decisions.md [smoothing]): smoothStep(), the Rauch-Tung-Striebel backward step in the tangent space; and GaussianHistory, the record of a Kalman filter's forward pass that a caller keeps, whose smooth() runs the backward pass over it, fixed-interval or fixed-lag. More...

#include <list>
#include <optional>
#include <utility>
#include <Eigen/Cholesky>
#include <EmrysFilter/Core/Allocation.h>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Core/Math.h>
#include <EmrysFilter/Core/Multiply.h>
#include <EmrysFilter/Core/Solve.h>
#include <EmrysFilter/Distributions/Gaussian.h>
#include <EmrysFilter/Models/ProcessModel.h>
#include <EmrysFilter/Smoothers/Lag.h>
#include <EmrysFilter/Spaces/Reset.h>
#include <EmrysFilter/Spaces/Space.h>

Go to the source code of this file.

Classes

class  Emrys::GaussianHistory< Space_, Scalar_, Allocator_ >
 The record of a Kalman filter's forward pass that a smoother runs backward over: one PredictedJoint per prediction, each with room for its smoothed Gaussian. More...
struct  Emrys::GaussianHistory< Space_, Scalar_, Allocator_ >::Step
 One recorded prediction and its smoothed Gaussian. More...

Functions

template<typename Space_, typename Scalar_>
GaussianParams< Space_, Scalar_ > Emrys::smoothStep (PredictedJoint< Space_, Scalar_ > const &joint, typename GaussianParams< Space_, Scalar_ >::MatrixType const &gain, GaussianParams< Space_, Scalar_ > const &smoothedNext)
template<typename Space_, typename Scalar_>
GaussianParams< Space_, Scalar_ > Emrys::smoothStep (PredictedJoint< Space_, Scalar_ > const &joint, GaussianParams< Space_, Scalar_ > const &smoothedNext)
 smoothStep() with the gain computed here, from joint alone (internal::rtsGain()): the form for one step; a history keeps the gain with the step and applies it at every smooth().

Detailed Description

Smoothing the Kalman family (decisions.md [smoothing]): smoothStep(), the Rauch-Tung-Striebel backward step in the tangent space; and GaussianHistory, the record of a Kalman filter's forward pass that a caller keeps, whose smooth() runs the backward pass over it, fixed-interval or fixed-lag.

The filter is unchanged but for predictJoint() (see PredictedJoint in ProcessModel.h). The other histories follow its shape. Read KalmanFilter.h first, and HybridGaussianHistory.h next; the design review is docs/guide/smoothing.md.