Go to the documentation of this file.
9 #ifndef CLocalMetricHypothesis_H
10 #define CLocalMetricHypothesis_H
27 namespace poses {
class CPose3DPDFParticles; }
49 metricMaps( mapsInitializers ),
72 public
mrpt::utils::CSerializable
95 std::map<TPoseID,mrpt::obs::CSensoryFrame>
m_SFs;
113 unsigned int pose2idx(
const TPoseID &
id)
const;
121 void getAs3DScene( mrpt::opengl::CSetOfObjectsPtr &objs )
const;
131 void getPathParticles( std::map< TPoseID, mrpt::poses::CPose3DPDFParticles > &outList )
const;
141 void getRelativePose(
152 void changeCoordinateOrigin(
const TPoseID &newOrigin );
155 void rebuildMetricMaps();
162 void clearRobotPoses();
188 void updateAreaFromLMH(
190 bool eraseSFsFromLMH =
false );
201 void prediction_and_update_pfAuxiliaryPFOptimal(
207 void prediction_and_update_pfOptimalProposal(
221 mutable std::vector<double> m_maxLikelihood;
227 mutable unsigned int m_movementDrawsIdx;
std::vector< TPoseID > TPoseIDList
This class is used in HMT-SLAM to represent each of the Local Metric Hypotheses (LMHs).
Implements a 2D local SLAM method based on a RBPF over an occupancy grid map.
THypothesisID m_ID
The unique ID of the hypothesis (Used for accessing mrpt::slam::CHierarchicalMHMap).
TMapPoseID2Pose3D robotPoses
std::deque< CParticleData > CParticleList
Use this type to refer to the list of particles m_particles.
bool m_accumRobotMovementIsValid
Used in CLSLAM_RBPF_2DLASER.
mrpt::maps::CMultiMetricMap metricMaps
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction.
An implementation of Hybrid Metric Topological SLAM (HMT-SLAM).
synch::CCriticalSection m_lock
Critical section for threads signaling they are working with the LMH.
mrpt::slam::CIncrementalMapPartitioner partitioner
mrpt::obs::CActionRobotMovement2D m_accumRobotMovement
Used in CLSLAM_RBPF_2DLASER.
int64_t THypothesisID
An integer number uniquely identifying each of the concurrent hypotheses for the robot topological pa...
Auxiliary class used in mrpt::slam::CLocalMetricHypothesis for HMT-SLAM; this class keeps the data re...
Declares a class for storing a collection of robot actions.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Represents a probabilistic 2D movement of the robot mobile base.
CLSLAMParticleData(const mrpt::maps::TSetOfMetricMapInitializers *mapsInitializers=NULL)
TPoseIDList m_posesPendingAddPartitioner
The list of poseIDs waiting to be added to the graph partitioner, what happens in the LSLAM thread ma...
A set of TMetricMapInitializer structures, passed to the constructor CMultiMetricMap::CMultiMetricMap...
TPoseID m_currentRobotPose
The current robot pose (its global unique ID) for this hypothesis.
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximat...
std::map< TYPE1, TYPE2, std::less< TYPE1 >, Eigen::aligned_allocator< std::pair< const TYPE1, TYPE2 > > > map_t
std::set< CHMHMapNode::TNodeID > TNodeIDSet
std::map< uint32_t, TPoseID > idx2pose
For the poses in "partitioner".
This class provides simple critical sections functionality.
This class stores any customizable set of metric maps.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
TNodeIDSet m_neighbors
The list of all areas sourronding the current one (this includes the current area itself).
uint64_t TPoseID
An integer number uniquely identifying each robot pose stored in HMT-SLAM.
Declares a class that represents a Probability Density function (PDF) of a 3D pose.
std::vector< std::map< TPoseID, double > > m_log_w_metric_history
The historic log-weights of the metric observations inserted in this LMH, for each particle.
mrpt::utils::safe_ptr< CHMTSLAM > m_parent
For quick access to our parent object.
virtual ~CLSLAMParticleData()
The virtual base class which provides a unified interface for all persistent objects in MRPT.
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
double m_log_w
Log-weight of this hypothesis.
This class can be used to make partitions on a map/graph build from observations taken at some poses/...
synch::CCriticalSection lock
CS to access the entire struct.
std::map< TPoseID, mrpt::obs::CSensoryFrame > m_SFs
The SF gathered at each robot pose.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
A wrapper class for pointers that can be safely copied with "=" operator without problems.
mrpt::aligned_containers< CPose2D >::vector_t StdVector_CPose2D
Eigen aligment-compatible container.
mrpt::utils::TNodeID TNodeID
The type of the IDs of nodes.
A class for storing a list of text lines.
mrpt::aligned_containers< TPoseID, mrpt::poses::CPose3D >::map_t TMapPoseID2Pose3D
TNodeIDList m_areasPendingTBI
The list of area IDs waiting to be processed by the TBI (topological bayesian inference) engines to s...
The configuration of a particle filter.
std::map< TPoseID, CHMHMapNode::TNodeID > m_nodeIDmemberships
The hybrid map node membership for each robot pose.
Page generated by Doxygen 1.8.16 for MRPT 1.4.0 SVN: at Mon Oct 14 23:11:08 UTC 2019 | | |