|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
Unscented method: \( 2L + 1 \) sigma points over the joint input space of dimension \( L \), spread by \( \lambda = \alpha^2 (L + \kappa) - L \). More...
#include <EmrysFilter/Models/Methods.h>
Static Public Member Functions | |
| template<typename Scalar> | |
| static constexpr UnscentedParams< Scalar > | params (Eigen::Index) |
Static Public Attributes | |
| static constexpr double | alpha = Alpha |
| Alpha | |
| static constexpr double | beta = Beta |
| Beta | |
| static constexpr double | kappa = Kappa |
| Kappa | |
Unscented method: \( 2L + 1 \) sigma points over the joint input space of dimension \( L \), spread by \( \lambda = \alpha^2 (L + \kappa) - L \).
The defaults \( \alpha = 1, \beta = 2, \kappa = 0 \) give a zero center mean weight and positive weights otherwise, so the covariance is positive semidefinite by construction; \( \beta = 2 \) is optimal for Gaussian inputs. The other points sit at \( \sqrt{L} \) standard deviations, 2 over four coordinates and 3.9 over fifteen, so over a large input f is evaluated far into the tails. Sigma points are normalized in their inputs' spaces before f sees them, and the output mean is a tangent-space mean in the output space.
The scaled unscented transform of Julier and Uhlmann (2004), as given in Särkkä (2013), §5.5, equations (5.74) to (5.77), with their \( \alpha \), \( \beta \), and \( \kappa \); the weights are in internal::sigmaWeights().
The parameters are compile-time constants, as a Periodic coordinate's interval is (unscented<0.5>()), so the method is an empty tag and a float filter converts them to float constants where it computes the weights, holding no double. They are the same over every number of coordinates; FourthMomentUnscented, or an UnscentedRule of the user's own, chooses them by it.
| Alpha | the spread of the points about the mean, in \( (0, 1] \) |
| Beta | the center point's extra covariance weight; 2 for Gaussian inputs |
| Kappa | the secondary scaling, usually 0 |
|
inlinestaticnodiscardconstexpr |