OSVR-Core
Classes | Public Member Functions | List of all members
VideoIMUFusion Class Reference

The core of the fusion code - doesn't deal with getting data in or reporting it out, for easier use in testing. More...

#include <VideoIMUFusion.h>

Classes

class  RunningData
 
class  StartupData
 

Public Member Functions

 VideoIMUFusion (VideoIMUFusionParams const &params=VideoIMUFusionParams())
 Constructor.
 
 ~VideoIMUFusion ()
 Out-of-line destructor required for unique_ptr pimpl idiom.
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW void handleIMUData (const OSVR_TimeValue &timestamp, const OSVR_OrientationReport &report)
 Call with each new IMU report, whether or not fusion is in running state. More...
 
void handleIMUVelocity (const OSVR_TimeValue &timestamp, const Eigen::Vector3d &angVel)
 
void handleVideoTrackerDataWhileRunning (const OSVR_TimeValue &timestamp, const OSVR_PoseReport &report)
 Call with each new video tracker report once we've entered running state. More...
 
void handleVideoTrackerDataDuringStartup (const OSVR_TimeValue &timestamp, const OSVR_PoseReport &report, const OSVR_OrientationState &orientation)
 Call with each new video tracker report, as well as the most recent IMU orientation state, while the filter has not yet entered running state. More...
 
bool running () const
 
OSVR_PoseState const & getLatestPose () const
 Returns the latest (fusion result, if available) pose.
 
osvr::util::time::TimeValue const & getLatestTime () const
 Returns the timestamp associated with the latest (fusion result, if available) pose. More...
 
OSVR_VelocityState const & getLatestVelocity () const
 
osvr::util::time::TimeValue const & getLatestVelocityTime () const
 
OSVR_PoseState const & getLatestReorientedVideoPose () const
 Returns the latest video-tracker pose, re-oriented to be in room space. More...
 
OSVR_PoseState const & getLatestCameraPose () const
 Returns the latest pose of the camera in the room. More...
 
Eigen::Matrix< double, 12, 12 > const & getErrorCovariance () const
 Returns the current state error covariance matrix Only valid once running state is entered!
 

Detailed Description

The core of the fusion code - doesn't deal with getting data in or reporting it out, for easier use in testing.

Member Function Documentation

§ getLatestCameraPose()

OSVR_PoseState const& VideoIMUFusion::getLatestCameraPose ( ) const
inline

Returns the latest pose of the camera in the room.

Only valid once running state is entered!

Currently constant once running state is entered.

§ getLatestReorientedVideoPose()

OSVR_PoseState const& VideoIMUFusion::getLatestReorientedVideoPose ( ) const
inline

Returns the latest video-tracker pose, re-oriented to be in room space.

Only valid once running state is entered!

§ getLatestTime()

osvr::util::time::TimeValue const& VideoIMUFusion::getLatestTime ( ) const
inline

Returns the timestamp associated with the latest (fusion result, if available) pose.

§ handleIMUData()

void VideoIMUFusion::handleIMUData ( const OSVR_TimeValue timestamp,
const OSVR_OrientationReport report 
)

Call with each new IMU report, whether or not fusion is in running state.

§ handleIMUVelocity()

void VideoIMUFusion::handleIMUVelocity ( const OSVR_TimeValue timestamp,
const Eigen::Vector3d &  angVel 
)

Arbitrary, chosen to avoid aliasing

Todo:
Do we need a factor of 0.5 to turn angular velocity vector into quaternion derivative?

Just report the angular velocity

§ handleVideoTrackerDataDuringStartup()

void VideoIMUFusion::handleVideoTrackerDataDuringStartup ( const OSVR_TimeValue timestamp,
const OSVR_PoseReport report,
const OSVR_OrientationState orientation 
)

Call with each new video tracker report, as well as the most recent IMU orientation state, while the filter has not yet entered running state.

The IMU state is required to compute a filtered estimate of the position/orientation of the camera relative to the room and IMU

§ handleVideoTrackerDataWhileRunning()

void VideoIMUFusion::handleVideoTrackerDataWhileRunning ( const OSVR_TimeValue timestamp,
const OSVR_PoseReport report 
)

Call with each new video tracker report once we've entered running state.


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