25 #ifndef INCLUDED_RoomCalibration_h_GUID_D53BD552_47D4_4390_C6AC_C6819180D4AF 26 #define INCLUDED_RoomCalibration_h_GUID_D53BD552_47D4_4390_C6AC_C6819180D4AF 37 #include <boost/optional.hpp> 51 bool cameraIsForward =
true);
61 Eigen::Vector3d
const &xlate,
72 bool calibrationComplete()
const {
return m_calibComplete; }
80 boost::optional<util::Angle>
81 getCalibrationYaw(
BodyId const &body)
const;
88 bool finished()
const;
91 std::ostream &msgStream()
const;
93 std::ostream &msg()
const;
97 std::ostream &instructions()
const;
98 void endInstructions()
const;
100 bool haveVideoData()
const {
return !m_videoTarget.first.empty(); }
101 bool haveIMUData()
const {
return !m_imuBody.empty(); }
102 std::size_t m_steadyVideoReports = 0;
106 void handleExcessVelocity(
double zTranslation);
107 enum class InstructionState {
112 InstructionState m_instructionState = InstructionState::Uninstructed;
125 Eigen::Vector3d m_rTc_ln_accum = Eigen::Vector3d::Zero();
132 Eigen::Vector3d m_suppliedCamPosition;
133 bool m_cameraIsForward;
136 bool m_calibComplete =
false;
150 #endif // INCLUDED_RoomCalibration_h_GUID_D53BD552_47D4_4390_C6AC_C6819180D4AF AngleRadiansd Angle
Default angle type.
Definition: Angles.h:63
static Quaternion Identity()
Definition: Quaternion.h:133
Parameters needed for the one-euro filter.
Definition: EigenFilters.h:121
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
std::pair< BodyId, TargetId > BodyTargetId
Type-safe zero-based target ID qualified with its body ID.
Definition: BodyIdTypes.h:67
bool wantVideoData(TrackingSystem const &sys, BodyTargetId const &target) const
Since during startup, we only want video data on a single target, we can save processing power by ask...
Definition: RoomCalibration.cpp:80
Header wrapping include of <Eigen/Core> and <Eigen/Geometry> for warning quieting.
Header defining some filters for Eigen datatypes.
Definition: TrackingSystem.h:54
bool isRoomCalibrationComplete(TrackingSystem const &sys)
A standalone function that looks at the camera and IMUs in a tracking system to determine whether all...
Definition: RoomCalibration.cpp:394
Takes care of the initial room calibration startup step, when we learn the pose of the camera in spac...
Definition: RoomCalibration.h:48
Header providing a C++ wrapper around TimeValueC.h.
void processVideoData(TrackingSystem const &sys, BodyTargetId const &target, util::time::TimeValue const ×tamp, Eigen::Vector3d const &xlate, Eigen::Quaterniond const &quat)
Definition: RoomCalibration.cpp:101
Eigen::Isometry3d getCameraPose() const
Gets the pose of the camera in the room (the transform from camera space to room space) ...
Definition: RoomCalibration.cpp:371
Definition: Quaternion.h:47
Combines a one-euro filter for position and a one-euro filter for orientation for the common use case...
Definition: EigenFilters.h:226
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Definition: TimeValueC.h:81
bool postCalibrationUpdate(TrackingSystem &sys)
When completed feeding data, this method will check to see if calibration has finished and perform up...
Definition: RoomCalibration.cpp:299