载入中...
搜索中...
未找到
Map类 参考

Map用作前端、展示和后端的交互中心(单例设计模式) 更多...

#include <map.h>

Public 类型

typedef std::unordered_map< std::size_t, Frame::PtrFramesType
 
typedef std::unordered_map< std::size_t, MapPoint::PtrPointsType
 

Public 成员函数

 Map (const Map &other)=delete
 
Mapoperator= (const Map &other)=delete
 
void insertMapPoints (const std::vector< MapPoint::Ptr > &mapPoints)
 
void insertKeyFrame (const Frame::Ptr &keyFrame)
 添加关键帧到Map中
 
FramesTypegetActiveFrames ()
 获取激活关键帧
 
PointsTypegetActivePoints ()
 获取激活地图点
 
FramesTypegetAllFrames ()
 获取地图中所有关键帧
 
PointsTypegetAllPoints ()
 获取地图中所有地图点
 
void removeOldFrame (const Frame::Ptr &keyFrame)
 移除关键帧(满足时间连续,空间展开原则)
 
void cleanMap ()
 在后端优化后,移除无用地图点
 

静态 Public 成员函数

static Ptr getInstance ()
 

Public 属性

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr< MapPtr
 
std::mutex m_mutex
 地图锁,保证后端、前端和Viewer的线程安全
 
std::condition_variable m_cond
 条件变量,保证后端优化效率
 
bool m_isReady = false
 搭配条件变量一起使 用
 

Private 成员函数

 Map ()=default
 

Private 属性

FramesType m_frames
 存储slam过程中的关键帧
 
PointsType m_points
 存储slam过程中的地图点MapPoints
 
FramesType m_activeFrames
 存储待后端优化的frames
 
PointsType m_activePoints
 存储待后端优化的points
 

详细描述

Map用作前端、展示和后端的交互中心(单例设计模式)

注意
使用m_mutex和m_cond来保证Map的线程安全

成员类型定义说明

◆ FramesType

typedef std::unordered_map<std::size_t, Frame::Ptr> Map::FramesType

◆ PointsType

typedef std::unordered_map<std::size_t, MapPoint::Ptr> Map::PointsType

构造及析构函数说明

◆ Map() [1/2]

Map::Map ( const Map other)
delete

◆ Map() [2/2]

Map::Map ( )
privatedefault

成员函数说明

◆ cleanMap()

void Map::cleanMap ( )

在后端优化后,移除无用地图点

当没有Feature指向MapPoint时,删除MapPoint

注解
在异常点剔除之后使用(后端优化后)

◆ getActiveFrames()

FramesType & Map::getActiveFrames ( )
inline

获取激活关键帧

◆ getActivePoints()

PointsType & Map::getActivePoints ( )
inline

获取激活地图点

◆ getAllFrames()

FramesType & Map::getAllFrames ( )
inline

获取地图中所有关键帧

◆ getAllPoints()

PointsType & Map::getAllPoints ( )
inline

获取地图中所有地图点

◆ getInstance()

static Ptr Map::getInstance ( )
inlinestatic

◆ insertKeyFrame()

void Map::insertKeyFrame ( const Frame::Ptr keyFrame)

添加关键帧到Map中

完成m_frames、m_activeFrames和m_activePoints的初始化

参数
[in]

待添加到Map中的关键帧

◆ insertMapPoints()

void Map::insertMapPoints ( const std::vector< MapPoint::Ptr > &  mapPoints)
inline

◆ operator=()

Map & Map::operator= ( const Map other)
delete

◆ removeOldFrame()

void Map::removeOldFrame ( const Frame::Ptr keyFrame)

移除关键帧(满足时间连续,空间展开原则)

注解
保证激活的关键帧的位姿之间,时间连续,空间展开

类成员变量说明

◆ m_activeFrames

FramesType Map::m_activeFrames
private

存储待后端优化的frames

◆ m_activePoints

PointsType Map::m_activePoints
private

存储待后端优化的points

◆ m_cond

std::condition_variable Map::m_cond

条件变量,保证后端优化效率

◆ m_frames

FramesType Map::m_frames
private

存储slam过程中的关键帧

◆ m_isReady

bool Map::m_isReady = false

搭配条件变量一起使 用

◆ m_mutex

std::mutex Map::m_mutex

地图锁,保证后端、前端和Viewer的线程安全

◆ m_points

PointsType Map::m_points
private

存储slam过程中的地图点MapPoints

◆ Ptr

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::shared_ptr<Map> Map::Ptr

该类的文档由以下文件生成: