25 #ifndef INCLUDED_VideoIMUFusion_h_GUID_85338EA5_58E6_4787_16D2_EC53201EFE9F 26 #define INCLUDED_VideoIMUFusion_h_GUID_85338EA5_58E6_4787_16D2_EC53201EFE9F 50 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
58 const Eigen::Vector3d &angVel);
72 bool running()
const {
return m_state == State::Running; }
84 return m_lastVelocity;
94 return m_reorientedVideo;
111 void enterCameraPoseAcquisitionState();
123 State m_state = State::AcquiringCameraPose;
126 std::unique_ptr<StartupData> m_startupData;
128 std::unique_ptr<RunningData> m_runningData;
141 #endif // INCLUDED_VideoIMUFusion_h_GUID_85338EA5_58E6_4787_16D2_EC53201EFE9F
void handleVideoTrackerDataWhileRunning(const OSVR_TimeValue ×tamp, const OSVR_PoseReport &report)
Call with each new video tracker report once we've entered running state.
Definition: VideoIMUFusion.cpp:153
Definition: FusionParams.h:37
VideoIMUFusion(VideoIMUFusionParams const ¶ms=VideoIMUFusionParams())
Constructor.
Definition: VideoIMUFusion.cpp:63
OSVR_PoseState const & getLatestReorientedVideoPose() const
Returns the latest video-tracker pose, re-oriented to be in room space.
Definition: VideoIMUFusion.h:92
OSVR_PoseState const & getLatestPose() const
Returns the latest (fusion result, if available) pose.
Definition: VideoIMUFusion.h:75
Eigen::Matrix< double, 12, 12 > const & getErrorCovariance() const
Returns the current state error covariance matrix Only valid once running state is entered! ...
Definition: VideoIMUFusion.cpp:70
EIGEN_MAKE_ALIGNED_OPERATOR_NEW void handleIMUData(const OSVR_TimeValue ×tamp, const OSVR_OrientationReport &report)
Call with each new IMU report, whether or not fusion is in running state.
Definition: VideoIMUFusion.cpp:103
Header wrapping include of <Eigen/Core> and <Eigen/Geometry> for warning quieting.
A structure defining a quaternion, often a unit quaternion representing 3D rotation.
Definition: QuaternionC.h:49
The core of the fusion code - doesn't deal with getting data in or reporting it out, for easier use in testing.
Definition: VideoIMUFusion.h:43
~VideoIMUFusion()
Out-of-line destructor required for unique_ptr pimpl idiom.
osvr::util::time::TimeValue const & getLatestTime() const
Returns the timestamp associated with the latest (fusion result, if available) pose.
Definition: VideoIMUFusion.h:79
void handleVideoTrackerDataDuringStartup(const OSVR_TimeValue ×tamp, const OSVR_PoseReport &report, const OSVR_OrientationState &orientation)
Call with each new video tracker report, as well as the most recent IMU orientation state...
Definition: VideoIMUFusion.cpp:262
Report type for an orientation callback on a tracker interface.
Definition: ClientReportTypesC.h:145
void handleIMUVelocity(const OSVR_TimeValue ×tamp, const Eigen::Vector3d &angVel)
Definition: VideoIMUFusion.cpp:118
Header providing a C++ wrapper around TimeValueC.h.
A structure defining a 3D (6DOF) rigid body pose: translation and rotation.
Definition: Pose3C.h:54
Struct for combined velocity state.
Definition: ClientReportTypesC.h:87
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Definition: TimeValueC.h:81
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:127
Definition: VideoIMUFusion.cpp:168
Definition: RunningData.h:75
Report type for a pose (position and orientation) callback on a tracker interface.
Definition: ClientReportTypesC.h:155
OSVR_PoseState const & getLatestCameraPose() const
Returns the latest pose of the camera in the room.
Definition: VideoIMUFusion.h:101