OpenCV  5.0.0-pre
Open Source Computer Vision
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
cv::detail::SubmapManager< MatType > Class Template Reference

: Manages all the created submaps for a particular scene More...

#include <opencv2/3d/detail/submap.hpp>

Classes

struct  ActiveSubmapData
 

Public Types

typedef std::unordered_map< int, ActiveSubmapDataIdToActiveSubmaps
 
typedef std::map< int, Ptr< SubmapT > > IdToSubmapPtr
 
typedef Submap< MatType > SubmapT
 
enum  Type {
  Type::NEW = 0,
  Type::CURRENT = 1,
  Type::RELOCALISATION = 2,
  Type::LOOP_CLOSURE = 3,
  Type::LOST = 4
}
 

Public Member Functions

 SubmapManager (const VolumeSettings &_volumeSettings)
 
virtual ~SubmapManager ()=default
 
bool addEdgeToCurrentSubmap (const int currentSubmapID, const int tarSubmapID)
 
int createNewSubmap (bool isCurrentActiveMap, const int currFrameId=0, const Affine3f &pose=cv::Affine3f::Identity())
 Adds a new submap/volume into the current list of managed/Active submaps. More...
 
int estimateConstraint (int fromSubmapId, int toSubmapId, int &inliers, Affine3f &inlierPose)
 
Ptr< SubmapTgetCurrentSubmap (void) const
 
Ptr< SubmapTgetSubmap (int _id) const
 
Ptr< detail::PoseGraphMapToPoseGraph ()
 
size_t numOfActiveSubmaps (void) const
 
size_t numOfSubmaps (void) const
 
void PoseGraphToMap (const Ptr< detail::PoseGraph > &updatedPoseGraph)
 
void removeSubmap (int _id)
 
void reset ()
 
bool shouldChangeCurrSubmap (int _frameId, int toSubmapId)
 
bool shouldCreateSubmap (int frameId)
 
bool updateMap (int frameId, const OdometryFrame &frame)
 

Public Attributes

IdToActiveSubmaps activeSubmaps
 
Ptr< detail::PoseGraphposeGraph
 
std::vector< Ptr< SubmapT > > submapList
 
VolumeSettings volumeSettings
 

Detailed Description

template<typename MatType>
class cv::detail::SubmapManager< MatType >

: Manages all the created submaps for a particular scene

Member Typedef Documentation

◆ IdToActiveSubmaps

template<typename MatType >
typedef std::unordered_map<int, ActiveSubmapData> cv::detail::SubmapManager< MatType >::IdToActiveSubmaps

◆ IdToSubmapPtr

template<typename MatType >
typedef std::map<int, Ptr<SubmapT> > cv::detail::SubmapManager< MatType >::IdToSubmapPtr

◆ SubmapT

template<typename MatType >
typedef Submap<MatType> cv::detail::SubmapManager< MatType >::SubmapT

Member Enumeration Documentation

◆ Type

template<typename MatType >
enum cv::detail::SubmapManager::Type
strong
Enumerator
NEW 
CURRENT 
RELOCALISATION 
LOOP_CLOSURE 
LOST 

Constructor & Destructor Documentation

◆ SubmapManager()

template<typename MatType >
cv::detail::SubmapManager< MatType >::SubmapManager ( const VolumeSettings _volumeSettings)
inlineexplicit

◆ ~SubmapManager()

template<typename MatType >
virtual cv::detail::SubmapManager< MatType >::~SubmapManager ( )
virtualdefault

Member Function Documentation

◆ addEdgeToCurrentSubmap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::addEdgeToCurrentSubmap ( const int  currentSubmapID,
const int  tarSubmapID 
)

◆ createNewSubmap()

template<typename MatType >
int cv::detail::SubmapManager< MatType >::createNewSubmap ( bool  isCurrentActiveMap,
const int  currFrameId = 0,
const Affine3f pose = cv::Affine3f::Identity() 
)

Adds a new submap/volume into the current list of managed/Active submaps.

◆ estimateConstraint()

template<typename MatType >
int cv::detail::SubmapManager< MatType >::estimateConstraint ( int  fromSubmapId,
int  toSubmapId,
int &  inliers,
Affine3f inlierPose 
)

thresh = HUBER_THRESH

◆ getCurrentSubmap()

template<typename MatType >
Ptr< Submap< MatType > > cv::detail::SubmapManager< MatType >::getCurrentSubmap ( void  ) const

◆ getSubmap()

template<typename MatType >
Ptr< Submap< MatType > > cv::detail::SubmapManager< MatType >::getSubmap ( int  _id) const

◆ MapToPoseGraph()

template<typename MatType >
Ptr< detail::PoseGraph > cv::detail::SubmapManager< MatType >::MapToPoseGraph ( )

◆ numOfActiveSubmaps()

template<typename MatType >
size_t cv::detail::SubmapManager< MatType >::numOfActiveSubmaps ( void  ) const
inline

◆ numOfSubmaps()

template<typename MatType >
size_t cv::detail::SubmapManager< MatType >::numOfSubmaps ( void  ) const
inline

◆ PoseGraphToMap()

template<typename MatType >
void cv::detail::SubmapManager< MatType >::PoseGraphToMap ( const Ptr< detail::PoseGraph > &  updatedPoseGraph)

◆ removeSubmap()

template<typename MatType >
void cv::detail::SubmapManager< MatType >::removeSubmap ( int  _id)

◆ reset()

template<typename MatType >
void cv::detail::SubmapManager< MatType >::reset ( )
inline

◆ shouldChangeCurrSubmap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::shouldChangeCurrSubmap ( int  _frameId,
int  toSubmapId 
)

TODO: Check for a specific threshold?

◆ shouldCreateSubmap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::shouldCreateSubmap ( int  frameId)

TODO: This shouldn't be happening? since there should always be one active current submap

◆ updateMap()

template<typename MatType >
bool cv::detail::SubmapManager< MatType >::updateMap ( int  frameId,
const OdometryFrame frame 
)

TODO: Add a new type called NEW_LOST?

Member Data Documentation

◆ activeSubmaps

template<typename MatType >
IdToActiveSubmaps cv::detail::SubmapManager< MatType >::activeSubmaps

◆ poseGraph

template<typename MatType >
Ptr<detail::PoseGraph> cv::detail::SubmapManager< MatType >::poseGraph

◆ submapList

template<typename MatType >
std::vector<Ptr<SubmapT> > cv::detail::SubmapManager< MatType >::submapList

◆ volumeSettings

template<typename MatType >
VolumeSettings cv::detail::SubmapManager< MatType >::volumeSettings

The documentation for this class was generated from the following file: