ClintNode.cpp
boost::shared_ptr<cslam::ClientSystem> pCSys{new cslam::ClientSystem(Nh,NhPrivate,argv[1],argv[2])};
主函数入口,创建一个CSLAM client node:即ClientSystem类型的shared_ptr:pCSys
ClientSystem.cpp
ClientSystem的构造
//load params
mNhPrivate.param("ClientId",ClientId,-1);
//Check settings files
cv::FileStorage fsSettingsCam(strCamFile.c_str(), cv::FileStorage::READ);
//load vocabulary 载入词袋模型
this->LoadVocabulary(strVocFile);
/*Create KeyFrame Database 创造关键帧的数据库,用于Intra-Map Place Recognition和Inter-Map Place Recognition*/
mpKFDB.reset(new KeyFrameDatabase(mpVoc));
//Create the Map 对应map.cpp函数
mpMap.reset(new Map(mNh,mNhPrivate,mClientId,eSystemState::CLIENT));
//Initialize Agent 对应于ClientHandler.cpp
mpAgent.reset(new ClientHandler(mNh,mNhPrivate,mpVoc,mpKFDB,mpMap,mClientId,mpUID,eSystemState::CLIENT,strCamFile,nullptr));