25 #ifndef INCLUDED_RunningData_h_GUID_6B3479E5_9D56_4BA9_DEC0_84AF53842168
26 #define INCLUDED_RunningData_h_GUID_6B3479E5_9D56_4BA9_DEC0_84AF53842168
28 #ifdef OSVR_VIDEOIMUFUSION_VERBOSE
32 inline void dumpKalmanDebugOuput(
const char name[],
const char expr[],
34 std::cout <<
"\n(Kalman Debug Output) " << name <<
" [" << expr <<
"]:\n"
35 << value << std::endl;
38 #define OSVR_KALMAN_DEBUG_OUTPUT(Name, Value) \
39 dumpKalmanDebugOuput(Name, #Value, Value)
41 #endif // OSVR_VIDEOIMUFUSION_VERBOSE
68 using AbsoluteOrientationMeasurement =
70 using AbsolutePositionMeasurement =
72 using AngularVelocityMeasurement =
77 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
79 Eigen::Isometry3d
const &rTc,
87 const Eigen::Vector3d &angVel);
94 Eigen::Quaterniond getOrientation()
const {
95 return state().getQuaternion();
97 Eigen::Vector3d getPosition()
const {
return state().position(); }
99 Eigen::Isometry3d takeCameraPoseToRoom(
OSVR_PoseState const &pose) {
100 return m_rTc * osvr::util::eigen_interop::map(pose);
103 Eigen::Matrix<double, 12, 12>
const &getErrorCovariance()
const {
109 FilterState const &state()
const {
return m_state; }
111 ProcessModel const &processModel()
const {
return m_processModel; }
115 AbsoluteOrientationMeasurement m_imuMeas;
116 AngularVelocityMeasurement m_imuMeasVel;
117 AbsoluteOrientationMeasurement m_cameraMeasOri;
118 AbsolutePositionMeasurement m_cameraMeasPos;
120 const Eigen::Isometry3d m_rTc;
124 #endif // INCLUDED_RunningData_h_GUID_6B3479E5_9D56_4BA9_DEC0_84AF53842168
Header wrapping include of and for warning quieting.
A structure defining a quaternion, often a unit quaternion representing 3D rotation.
StateSquareMatrix const & errorCovariance() const
P.
Report type for an orientation callback on a tracker interface.
bool preReport(const OSVR_TimeValue ×tamp)
Returns true if we succeeded and can filter in some data.
Header providing a C++ wrapper around TimeValueC.h.
Internal, configured header file for verbosity macros.
A structure defining a 3D (6DOF) rigid body pose: translation and rotation.
Header for interoperation between the Eigen math library, the internal mini math library, and VRPN's quatlib.
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Header for measurements of absolute orientation.
Report type for a pose (position and orientation) callback on a tracker interface.