SLAM对象的初始化

(1) SLAM对象的数据成员

// 传感器的类型
eSensor mSensor;

// ORB 字典 ORBVocabulary
* mpVocabulary;

// 用于重定位与回环检测的关键帧数据库
KeyFrameDatabase* mpKeyFrameDatabase;

// 存放所有关键帧与地图点的指针 Map
* mpMap;

// Tracker
// 1:计算每个帧对应的pose
// 2:决定什么时候插入关键帧
// 3:重定位
Tracking* mpTracker;

// Local Mapper
// 管理局部地图,局部BA
LocalMapping* mpLocalMapper;

// Loop Closer
// 为新的关键帧找回环,如果找到,对位姿图优化并进行全局BA
LoopClosing* mpLoopClosing;

// 绘出地图和当前帧姿态
View* mpViewer;
FrameDrawer* mpFrameDrawer;
MapDrawer* mpMapDrawer;

// 跟踪部分在主线中执行,除此之外还有其他三个线程:Local Mapping,Loop Closing, Viewer
std::thread* mpLocalMapping;
std::thread* mpLoopClosing;
std::thread* mpViewer;

// 复位标志位
std::mutex; //线程锁
bool mbReset;

// 模式切换标志位
std::mutex mMutexMode;
bool mbActivateLocalizationMode;
bool mbDeactivateLocalizationMode;

// 跟踪标志
std::mutex mMutexState;
int mTrackingState;
std::vector<MapPoint*> mTrackedMapPoints;
std::vector<cv::KeyPoint> mTrackedKeyPointsUn;

(2) SLAM对象的初始化

System::System(const string &strVocFile, const string &strSettingsFile, const eSensor sensor, const bool bUseViewer):
  mSensor(sensor), mpViewer(static_cast<View*>(NULL)), mbReset(false), mbActivateLocalizationMode(false), mbDeactivateLocalizationMode(false)

1

猜你喜欢

转载自www.cnblogs.com/npulzb/p/11605189.html
今日推荐