27 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
28 typedef std::shared_ptr<Feature>
Ptr;
50 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
51 typedef std::shared_ptr<MapPoint>
Ptr;
60 static std::size_t pointNum = 0;
62 point->m_id = pointNum++;
78 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
79 typedef std::shared_ptr<Frame>
Ptr;
87 Frame(cv::Mat leftIMG, cv::Mat rightIMG)
90 static std::size_t frameNum = 0;
123 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
125 typedef std::shared_ptr<Map>
Ptr;
126 typedef std::unordered_map<std::size_t, Frame::Ptr>
FramesType;
127 typedef std::unordered_map<std::size_t, MapPoint::Ptr>
PointsType;
133 for (
auto &point : mapPoints)
134 m_points.insert(std::make_pair(point->m_id, point));
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< Camera > Ptr
Definition camera.h:27
Frame维护了一帧内的信息
Definition map.h:76
SE3d m_pose
Frame的位姿Tcw
Definition map.h:107
SE3d & pose()
Definition map.h:101
int initKeyFrame(const Camera::Ptr &camera)
设定关键帧,并进行特征检测、匹配
Definition map.cc:14
std::size_t m_keyID
关键帧id,如果fram是关键帧
Definition map.h:110
std::size_t m_id
索引(唯一)
Definition map.h:111
static double distance(const Frame &left, const Frame &right)
计算两个位姿之间的距离,以left为参考
Definition map.cc:89
std::vector< Feature::Ptr > m_leftFeatures
左图特征点
Definition map.h:105
std::vector< Feature::Ptr > & getLeftFeatures()
Definition map.h:94
std::vector< Feature::Ptr > & getRightFeatures()
Definition map.h:95
const SE3d & pose() const
Definition map.h:102
bool m_isKeyFrame
关键帧标识
Definition map.h:114
cv::Mat m_leftIMG
左图
Definition map.h:112
std::vector< Feature::Ptr > m_rightFeatures
右图特征点(不关联MapPoint)
Definition map.h:106
cv::Mat m_rightIMG
右图
Definition map.h:113
Frame(cv::Mat leftIMG, cv::Mat rightIMG)
Frame只提供左右图的构造方式
Definition map.h:87
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< Frame > Ptr
Definition map.h:79
Map用作前端、展示和后端的交互中心(单例设计模式)
Definition map.h:121
void cleanMap()
在后端优化后,移除无用地图点
Definition map.cc:131
FramesType & getActiveFrames()
获取激活关键帧
Definition map.h:152
std::unordered_map< std::size_t, Frame::Ptr > FramesType
Definition map.h:126
std::condition_variable m_cond
条件变量,保证后端优化效率
Definition map.h:178
std::mutex m_mutex
地图锁,保证后端、前端和Viewer的线程安全
Definition map.h:177
Map(const Map &other)=delete
FramesType m_frames
存储slam过程中的关键帧
Definition map.h:171
PointsType m_points
存储slam过程中的地图点MapPoints
Definition map.h:172
void removeOldFrame(const Frame::Ptr &keyFrame)
移除关键帧(满足时间连续,空间展开原则)
Definition map.cc:95
bool m_isReady
搭配条件变量一起使 用
Definition map.h:179
Map & operator=(const Map &other)=delete
static Ptr getInstance()
Definition map.h:146
PointsType m_activePoints
存储待后端优化的points
Definition map.h:174
FramesType & getAllFrames()
获取地图中所有关键帧
Definition map.h:158
void insertMapPoints(const std::vector< MapPoint::Ptr > &mapPoints)
Definition map.h:132
PointsType & getActivePoints()
获取激活地图点
Definition map.h:155
FramesType m_activeFrames
存储待后端优化的frames
Definition map.h:173
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< Map > Ptr
Definition map.h:125
std::unordered_map< std::size_t, MapPoint::Ptr > PointsType
Definition map.h:127
PointsType & getAllPoints()
获取地图中所有地图点
Definition map.h:161
void insertKeyFrame(const Frame::Ptr &keyFrame)
添加关键帧到Map中
Definition map.cc:146
#define NAMESPACE_END
Definition common_include.h:41
#define NAMESPACE_BEGIN
Definition common_include.h:40
NAMESPACE_BEGIN typedef Eigen::Vector2d Vec2d
Definition common_include.h:46
Sophus::SE3d SE3d
Definition common_include.h:57
Eigen::Vector3d Vec3d
Definition common_include.h:47
Feature维护了帧的特征点信息
Definition map.h:26
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< Feature > Ptr
Definition map.h:28
std::weak_ptr< MapPoint > m_mapPoint
维护的MapPoint的weak_ptr
Definition map.h:40
static Ptr create()
Frame的简单工厂设计模式
Definition map.h:35
Vec2d m_position
维护了像素坐标系下的位置信息
Definition map.h:41
MapPoint为地图点
Definition map.h:49
static Ptr create()
MapPoint的简单工厂设计模式
Definition map.h:59
Vec3d m_position
世界坐标系上位置信息
Definition map.h:69
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< MapPoint > Ptr
Definition map.h:51
bool m_isOutlier
outlier标识
Definition map.h:66
std::size_t m_id
唯一的id信息
Definition map.h:68
int m_featureNum
维护由**关键帧**指向地图点的Feature
Definition map.h:67