ORB_SLAM2的Tracking类

(1) Tracking类的数据成员

public:
eTrackingState mState;
eTrackingState mLastProcessedState;

int mSensor;

Frame mCurrentFrame;
cv::Mat mImGray;

// 单目初始化
std::vector<int> mvIniLastMatches;
std::vector<int> mvIniMatches;
std::vector<cv::Point2f> mvbPrevMatched;
std::vector<cv::Point3f> mvIniP3D;
Frame mInitialFrame;

list<cv::Mat> mlRelativeFramePoses;
list<KeyFrame*> mlpReferences;
list<double> mlFrameTimes;
list<bool> mlbLost;

bool mbOnlyTracking;

protected:
bool mbVO;

//Other Thread Pointers
LocalMapping* mpLocalMapper;
LoopClosing* mpLoopClosing;

//ORB
ORBextractor* mpORBextractorLeft, *mpORBextractorRight;
ORBextractor* mpIniORBextractor;

//BoW
ORBVocabulary* mpORBVocabulary;
KeyFrameDatabase* mpKeyFrameDB;

// Initalization (only for monocular)
Initializer* mpInitializer;

//Local Map
KeyFrame* mpReferenceKF;
std::vector<KeyFrame*> mvpLocalKeyFrames;
std::vector<MapPoint*> mvpLocalMapPoints;
    
// System
System* mpSystem;
    
//Drawers
Viewer* mpViewer;
FrameDrawer* mpFrameDrawer;
MapDrawer* mpMapDrawer;

//Map
Map* mpMap;

//Calibration matrix
cv::Mat mK;
cv::Mat mDistCoef;
float mbf;

//New KeyFrame rules (according to fps)
int mMinFrames;
int mMaxFrames;

// Threshold close/far points
// Points seen as close by the stereo/RGBD sensor are considered reliable
// and inserted from just one frame. Far points requiere a match in two keyframes.
float mThDepth;

// For RGB-D inputs only. For some datasets (e.g. TUM) the depthmap values are scaled.
float mDepthMapFactor;

//Current matches in frame
int mnMatchesInliers;

//Last Frame, KeyFrame and Relocalisation Info
KeyFrame* mpLastKeyFrame;
Frame mLastFrame;
unsigned int mnLastKeyFrameId;
unsigned int mnLastRelocFrameId;
//Motion Model
cv::Mat mVelocity;

//Color order (true RGB, false BGR, ignored if grayscale)
bool mbRGB;

list<MapPoint*> mlpTemporalPoints;

(2) 构造函数

  1:

博客扩展接口

猜你喜欢

转载自www.cnblogs.com/npulzb/p/11605586.html