SLAMflex SE  0.1.0
SLAMflex provides detection and tracking of dominant planes for smartphone devices. This plane can then be used to show AR content relative to the plane orientation. The detection of plane is performed in the field of view of the smartphone camera. In subsequent frames it is tracked. The interface returns the plane position and orientation.
Classes | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Tracker Class Reference

#include <Tracker.h>

Classes

struct  Command
 

Public Member Functions

 Tracker (CVD::ImageRef irVideoSize, const ATANCamera &c, Map &m, MapMaker &mm)
 
void TrackFrame (CVD::Image< CVD::byte > &imFrame, uint hnd, bool bDraw)
 
SE3 GetCurrentPose ()
 
std::string GetMessageForUser ()
 
void StartTracking ()
 
void StopTracking ()
 
std::string getVCorners ()
 
void SetSendMessageToUnity (SendMessage sm)
 
DetectionState GetCurrentDetectionState ()
 

Protected Types

enum  { TRAIL_TRACKING_NOT_STARTED, TRAIL_TRACKING_STARTED, TRAIL_TRACKING_COMPLETE }
 
enum  { BAD, DODGY, GOOD }
 

Protected Member Functions

void Reset ()
 
void GetEulerAnglesFromRotationMatrix (Matrix< 3, 3, double > &m, float &heading, float &attitude, float &bank)
 
float RadiansToDegrees (float r)
 
void TrackForInitialMap ()
 
void TrailTracking_Start ()
 
int TrailTracking_Advance ()
 
void TrackMap ()
 
void AssessTrackingQuality ()
 
void ApplyMotionModel ()
 
void UpdateMotionModel ()
 
int SearchForPoints (std::vector< TrackerData * > &vTD, int nRange, int nFineIts)
 
Vector< 6 > CalcPoseUpdate (std::vector< TrackerData * > vTD, double dOverrideSigma=0.0, bool bMarkOutliers=false)
 
void AddNewKeyFrame ()
 
bool AttemptRecovery ()
 
void CalcSBIRotation ()
 
void GUICommandHandler (std::string sCommand, std::string sParams)
 

Static Protected Member Functions

static void GUICommandCallBack (void *ptr, std::string sCommand, std::string sParams)
 

Protected Attributes

KeyFrame mCurrentKF
 
MapmMap
 
MapMakermMapMaker
 
ATANCamera mCamera
 
Relocaliser mRelocaliser
 
CVD::ImageRef mirSize
 
enum Tracker:: { ... }  mnInitialStage
 
std::list< TrailmlTrails
 
KeyFrame mFirstKF
 
KeyFrame mPreviousFrameKF
 
SE3 mse3CamFromWorld
 
SE3 mse3StartPos
 
Vector< 6 > mv6CameraVelocity
 
double mdVelocityMagnitude
 
double mdMSDScaledVelocityMagnitude
 
bool mbDidCoarse
 
bool mbDraw
 
int mnFrame
 
int mnLastKeyFrameDropped
 
int manMeasAttempted [LEVELS]
 
int manMeasFound [LEVELS]
 
enum Tracker:: { ... }  mTrackingQuality
 
int mnLostFrames
 
bool mbJustRecoveredSoUseCoarse
 
SmallBlurryImagempSBILastFrame
 
SmallBlurryImagempSBIThisFrame
 
Vector< 6 > mv6SBIRot
 
bool mbUseSBIInit
 
bool mbUserPressedSpacebar
 
std::ostringstream mMessageForUser
 
std::vector< CommandmvQueuedCommands
 
SendMessage sendToUnity
 
int threshold
 
bool thresholdReached
 
DetectionState currentState
 

Detailed Description

Definition at line 46 of file Tracker.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
TRAIL_TRACKING_NOT_STARTED 
TRAIL_TRACKING_STARTED 
TRAIL_TRACKING_COMPLETE 

Definition at line 80 of file Tracker.h.

anonymous enum
protected
Enumerator
BAD 
DODGY 
GOOD 

Definition at line 117 of file Tracker.h.

Constructor & Destructor Documentation

Tracker::Tracker ( CVD::ImageRef  irVideoSize,
const ATANCamera c,
Map m,
MapMaker mm 
)

Definition at line 28 of file Tracker.cpp.

Member Function Documentation

void Tracker::AddNewKeyFrame ( )
protected

Definition at line 966 of file Tracker.cpp.

void Tracker::ApplyMotionModel ( )
protected

Definition at line 932 of file Tracker.cpp.

void Tracker::AssessTrackingQuality ( )
protected

Definition at line 975 of file Tracker.cpp.

bool Tracker::AttemptRecovery ( )
protected

Definition at line 279 of file Tracker.cpp.

Vector< 6 > Tracker::CalcPoseUpdate ( std::vector< TrackerData * >  vTD,
double  dOverrideSigma = 0.0,
bool  bMarkOutliers = false 
)
protected

Definition at line 839 of file Tracker.cpp.

void Tracker::CalcSBIRotation ( )
protected

Definition at line 1032 of file Tracker.cpp.

DetectionState Tracker::GetCurrentDetectionState ( )

Definition at line 65 of file Tracker.cpp.

SE3 Tracker::GetCurrentPose ( )
inline

Definition at line 54 of file Tracker.h.

void Tracker::GetEulerAnglesFromRotationMatrix ( Matrix< 3, 3, double > &  m,
float &  heading,
float &  attitude,
float &  bank 
)
protected

this conversion uses conventions as described on page: http://www.euclideanspace.com/maths/geometry/rotations/euler/index.htm Coordinate System: right hand Positive angle: right hand Order of euler angles: heading first, then attitude, then bank matrix row column ordering: [m00 m01 m02] [m10 m11 m12] [m20 m21 m22]

Definition at line 254 of file Tracker.cpp.

string Tracker::GetMessageForUser ( )

Definition at line 1027 of file Tracker.cpp.

std::string Tracker::getVCorners ( )

Definition at line 1043 of file Tracker.cpp.

void Tracker::GUICommandCallBack ( void *  ptr,
std::string  sCommand,
std::string  sParams 
)
staticprotected

Definition at line 295 of file Tracker.cpp.

void Tracker::GUICommandHandler ( std::string  sCommand,
std::string  sParams 
)
protected

Definition at line 304 of file Tracker.cpp.

float Tracker::RadiansToDegrees ( float  r)
inlineprotected

Definition at line 77 of file Tracker.h.

void Tracker::Reset ( )
protected

Definition at line 74 of file Tracker.cpp.

int Tracker::SearchForPoints ( std::vector< TrackerData * > &  vTD,
int  nRange,
int  nFineIts 
)
protected

Definition at line 776 of file Tracker.cpp.

void Tracker::SetSendMessageToUnity ( SendMessage  sm)

Definition at line 60 of file Tracker.cpp.

void Tracker::StartTracking ( )

Definition at line 49 of file Tracker.cpp.

void Tracker::StopTracking ( )

Definition at line 54 of file Tracker.cpp.

void Tracker::TrackForInitialMap ( )
protected

Definition at line 345 of file Tracker.cpp.

void Tracker::TrackFrame ( CVD::Image< CVD::byte > &  imFrame,
uint  hnd,
bool  bDraw 
)

Definition at line 110 of file Tracker.cpp.

void Tracker::TrackMap ( )
protected

Definition at line 493 of file Tracker.cpp.

int Tracker::TrailTracking_Advance ( )
protected

Definition at line 442 of file Tracker.cpp.

void Tracker::TrailTracking_Start ( )
protected

Definition at line 413 of file Tracker.cpp.

void Tracker::UpdateMotionModel ( )
protected

Definition at line 948 of file Tracker.cpp.

Member Data Documentation

DetectionState Tracker::currentState
protected

Definition at line 144 of file Tracker.h.

int Tracker::manMeasAttempted[LEVELS]
protected

Definition at line 115 of file Tracker.h.

int Tracker::manMeasFound[LEVELS]
protected

Definition at line 116 of file Tracker.h.

bool Tracker::mbDidCoarse
protected

Definition at line 105 of file Tracker.h.

bool Tracker::mbDraw
protected

Definition at line 107 of file Tracker.h.

bool Tracker::mbJustRecoveredSoUseCoarse
protected

Definition at line 122 of file Tracker.h.

bool Tracker::mbUserPressedSpacebar
protected

Definition at line 132 of file Tracker.h.

bool Tracker::mbUseSBIInit
protected

Definition at line 129 of file Tracker.h.

ATANCamera Tracker::mCamera
protected

Definition at line 70 of file Tracker.h.

KeyFrame Tracker::mCurrentKF
protected

Definition at line 65 of file Tracker.h.

double Tracker::mdMSDScaledVelocityMagnitude
protected

Definition at line 104 of file Tracker.h.

double Tracker::mdVelocityMagnitude
protected

Definition at line 103 of file Tracker.h.

KeyFrame Tracker::mFirstKF
protected

Definition at line 86 of file Tracker.h.

CVD::ImageRef Tracker::mirSize
protected

Definition at line 73 of file Tracker.h.

std::list<Trail> Tracker::mlTrails
protected

Definition at line 85 of file Tracker.h.

Map& Tracker::mMap
protected

Definition at line 68 of file Tracker.h.

MapMaker& Tracker::mMapMaker
protected

Definition at line 69 of file Tracker.h.

std::ostringstream Tracker::mMessageForUser
protected

Definition at line 133 of file Tracker.h.

int Tracker::mnFrame
protected

Definition at line 110 of file Tracker.h.

enum { ... } Tracker::mnInitialStage
int Tracker::mnLastKeyFrameDropped
protected

Definition at line 111 of file Tracker.h.

int Tracker::mnLostFrames
protected

Definition at line 118 of file Tracker.h.

KeyFrame Tracker::mPreviousFrameKF
protected

Definition at line 87 of file Tracker.h.

SmallBlurryImage* Tracker::mpSBILastFrame
protected

Definition at line 125 of file Tracker.h.

SmallBlurryImage* Tracker::mpSBIThisFrame
protected

Definition at line 126 of file Tracker.h.

Relocaliser Tracker::mRelocaliser
protected

Definition at line 71 of file Tracker.h.

SE3 Tracker::mse3CamFromWorld
protected

Definition at line 100 of file Tracker.h.

SE3 Tracker::mse3StartPos
protected

Definition at line 101 of file Tracker.h.

enum { ... } Tracker::mTrackingQuality
Vector<6> Tracker::mv6CameraVelocity
protected

Definition at line 102 of file Tracker.h.

Vector<6> Tracker::mv6SBIRot
protected

Definition at line 128 of file Tracker.h.

std::vector<Command> Tracker::mvQueuedCommands
protected

Definition at line 139 of file Tracker.h.

SendMessage Tracker::sendToUnity
protected

Definition at line 141 of file Tracker.h.

int Tracker::threshold
protected

Definition at line 142 of file Tracker.h.

bool Tracker::thresholdReached
protected

Definition at line 143 of file Tracker.h.


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