OSVR-Core
Classes | Namespaces | Typedefs | Functions
PoseStateExponentialMap.h File Reference

Header defining a state that uses the "Exponential Map" rotation formalism" instead of the "internal incremental rotation, externalized quaternion" representation. More...

#include "FlexibleKalmanBase.h"
#include "MatrixExponentialMap.h"

Go to the source code of this file.

Classes

class  osvr::kalman::pose_exp_map::State
 

Namespaces

 osvr
 The main namespace for all C++ elements of the framework, internal and external.
 
 osvr::kalman
 Header-only framework for building Kalman-style filters, prediction, and sensor fusion.
 

Typedefs

using osvr::kalman::pose_exp_map::Dimension = types::DimensionConstant< 12 >
 
using osvr::kalman::pose_exp_map::StateVector = types::DimVector< Dimension >
 
using osvr::kalman::pose_exp_map::StateVectorBlock3 = StateVector::FixedSegmentReturnType< 3 >::Type
 
using osvr::kalman::pose_exp_map::ConstStateVectorBlock3 = StateVector::ConstFixedSegmentReturnType< 3 >::Type
 
using osvr::kalman::pose_exp_map::StateVectorBlock6 = StateVector::FixedSegmentReturnType< 6 >::Type
 
using osvr::kalman::pose_exp_map::StateSquareMatrix = types::DimSquareMatrix< Dimension >
 

Functions

StateSquareMatrix osvr::kalman::pose_exp_map::stateTransitionMatrix (double dt)
 This returns A(deltaT), though if you're just predicting xhat-, use applyVelocity() instead for performance. More...
 
double osvr::kalman::pose_exp_map::computeAttenuation (double damping, double dt)
 
StateSquareMatrix osvr::kalman::pose_exp_map::stateTransitionMatrixWithVelocityDamping (double dt, double damping)
 
StateVector osvr::kalman::pose_exp_map::applyVelocity (StateVector const &state, double dt)
 Computes A(deltaT)xhat(t-deltaT) More...
 
void osvr::kalman::pose_exp_map::dampenVelocities (StateVector &state, double damping, double dt)
 
template<typename OutputStream >
OutputStream & osvr::kalman::pose_exp_map::operator<< (OutputStream &os, State const &state)
 Stream insertion operator, for displaying the state of the state class. More...
 
Accessors to blocks in the state vector.
StateVectorBlock3 osvr::kalman::pose_exp_map::position (StateVector &vec)
 
ConstStateVectorBlock3 osvr::kalman::pose_exp_map::position (StateVector const &vec)
 
StateVectorBlock3 osvr::kalman::pose_exp_map::orientation (StateVector &vec)
 
ConstStateVectorBlock3 osvr::kalman::pose_exp_map::orientation (StateVector const &vec)
 
StateVectorBlock3 osvr::kalman::pose_exp_map::velocity (StateVector &vec)
 
ConstStateVectorBlock3 osvr::kalman::pose_exp_map::velocity (StateVector const &vec)
 
StateVectorBlock3 osvr::kalman::pose_exp_map::angularVelocity (StateVector &vec)
 
ConstStateVectorBlock3 osvr::kalman::pose_exp_map::angularVelocity (StateVector const &vec)
 
StateVectorBlock6 osvr::kalman::pose_exp_map::velocities (StateVector &vec)
 both translational and angular velocities
 

Detailed Description

Header defining a state that uses the "Exponential Map" rotation formalism" instead of the "internal incremental rotation, externalized quaternion" representation.

Todo:
incomplete
Date
2015
Author
Sensics, Inc. http://sensics.com/osvr

Function Documentation

§ applyVelocity()

StateVector osvr::kalman::pose_exp_map::applyVelocity ( StateVector const &  state,
double  dt 
)
inline

Computes A(deltaT)xhat(t-deltaT)

Todo:
benchmark - assuming for now that the manual small calcuations are faster than the matrix ones.

§ operator<<()

template<typename OutputStream >
OutputStream& osvr::kalman::pose_exp_map::operator<< ( OutputStream &  os,
State const &  state 
)
inline

Stream insertion operator, for displaying the state of the state class.

§ stateTransitionMatrix()

StateSquareMatrix osvr::kalman::pose_exp_map::stateTransitionMatrix ( double  dt)
inline

This returns A(deltaT), though if you're just predicting xhat-, use applyVelocity() instead for performance.