OSVR-Core
Enumerations | Functions
TestIMU_UKF.cpp File Reference

Implementation. More...

#include "TestIMU_Common.h"
#include "FlexibleUnscentedCorrect.h"
#include <Eigen/Eigenvalues>

Enumerations

enum  Axis : std::size_t { X = 0, Y = 1, Z = 2 }
 

Functions

template<typename Derived >
bool isPositiveDefinite (MatrixBase< Derived > const &m)
 
template<typename Derived >
void checkSigmaPoints (MatrixBase< Derived > const &m)
 
template<typename Derived >
void thenCheckCovariance (MatrixBase< Derived > const &c)
 
template<typename Reconstruction >
void thenCheckReconstruction (Reconstruction const &recon)
 
template<typename Reconstruction >
void andThenCheckReconstruction (Reconstruction const &recon)
 
template<typename GeneratorType >
void generatorChecks (GeneratorType const &gen)
 
template<typename GeneratorType >
void thenCheckSigmaPointGenerator (GeneratorType const &gen)
 
template<typename GeneratorType >
void andThenCheckSigmaPointGenerator (GeneratorType const &gen)
 
 TEST_CASE ("Sigma point reconstruction validity")
 
double zeroOrValueForAxis (Axis rotationAxis, Axis currentAxis, double value)
 
Vector3d ZeroVec3dExceptAtAxis (Axis rotationAxis, double value)
 
Vector3d Vec3dSmallValueAt (Axis rotationAxis)
 
Vector3d Vec3dUnit (Axis rotationAxis)
 
double getSignCorrect (bool positive)
 
template<typename MeasurementType , typename InProgressType >
void commonSmallSingleAxisChecks (TestData *data, MeasurementType &kalmanMeas, InProgressType &inProgress, Axis const rotationAxis, bool const positive=true)
 
template<typename MeasurementType >
void unscentedSmallSingleAxisChecks (TestData *data, MeasurementType &kalmanMeas, Axis rotationAxis, bool positive=true)
 
template<typename MeasurementType >
void checkEffectiveIdentityMeasurement (TestData *data, MeasurementType &kalmanMeas)
 
template<typename F , typename... Args>
void allSmallSingleAxisRotations (F &&f, Args &&... args)
 
 TEST_CASE ("unscented with identity calibration output", "[ukf]")
 
 TEST_CASE ("unscented with small x rotation calibration output", "[ukf]")
 
 TEST_CASE ("conceptual transformation orders")
 

Detailed Description

Implementation.

Date
2016
Author
Sensics, Inc. http://sensics.com/osvr

Function Documentation

§ commonSmallSingleAxisChecks()

template<typename MeasurementType , typename InProgressType >
void commonSmallSingleAxisChecks ( TestData data,
MeasurementType &  kalmanMeas,
InProgressType &  inProgress,
Axis const  rotationAxis,
bool const  positive = true 
)
inline

This is our rotation axis - correction should be in (0, SMALL_VALUE)

Not our rotation axis, correction should be approx 0.

This is our rotation axis - correction should be >= 0 if positive rotation.

Not our rotation axis, correction should be approx 0.

§ isPositiveDefinite()

template<typename Derived >
bool isPositiveDefinite ( MatrixBase< Derived > const &  m)
inline

not square!

Not symmetric!

§ TEST_CASE() [1/2]

TEST_CASE ( "unscented with identity calibration output"  ,
""  [ukf] 
)

Do the rest of the checks for a small rotation about y

Do the rest of the checks for a small rotation about y

§ TEST_CASE() [2/2]

TEST_CASE ( "unscented with small x rotation calibration output"  ,
""  [ukf] 
)

Do the rest of the checks for a small rotation about a single axis