Go to the documentation of this file.
36 class CLSLAMAlgorithmBase;
95 void dumpToConsole( )
const;
173 void clearInputQueue();
178 bool isInputQueueEmpty();
183 size_t inputQueueSize();
189 void pushAction(
const mrpt::obs::CActionCollectionPtr &acts );
195 void pushObservations(
const mrpt::obs::CSensoryFramePtr &sf );
201 void pushObservation(
const mrpt::obs::CObservationPtr &obs );
212 mrpt::utils::CSerializablePtr getNextObjectFromInputQueue();
232 void thread_LSLAM( );
238 void thread_3D_viewer( );
295 void registerLoopClosureDetector(
296 const std::string &name,
317 bool m_terminationFlag_LSLAM,
319 m_terminationFlag_3D_viewer;
322 static std::string generateUniqueAreaLabel();
325 static TPoseID generatePoseID();
350 bool abortedDueToErrors();
357 void loadOptions(
const std::string &configFile );
362 void initializeEmptyMap();
385 void generateLogFiles(
unsigned int nIteration);
485 virtual void processOneLMH(
487 const mrpt::obs::CActionCollectionPtr &act,
488 const mrpt::obs::CSensoryFramePtr &sf ) = 0;
493 virtual void prediction_and_update_pfAuxiliaryPFOptimal(
500 virtual void prediction_and_update_pfOptimalProposal(
536 const mrpt::obs::CActionCollectionPtr &act,
537 const mrpt::obs::CSensoryFramePtr &sf );
540 void prediction_and_update_pfAuxiliaryPFOptimal(
547 void prediction_and_update_pfOptimalProposal(
567 void dumpToStdOut()
const;
573 void loadTPathBinFromPath(
580 int findTPathBinIntoSet(
582 std::deque<TPathBin> &theSet
587 static double particlesEvaluator_AuxPFOptimal(
592 const void *observation );
596 static double auxiliarComputeObservationLikelihood(
599 size_t particleIndexForMap,
Declares a class that represents a Probability Density function (PDF) of a 3D(6D) pose .
Options for a TLC-detector of type gridmap-matching, used from CHMTSLAM.
mrpt::maps::TSetOfMetricMapInitializers defaultMapsInitializers
The default set of maps to be created in each particle.
#define THROW_EXCEPTION(msg)
std::vector< TPoseID > TPoseIDList
Configuration of the algorithm:
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.
CLSLAMAlgorithmBase * m_LSLAM_method
An instance of a local SLAM method, to be applied to each LMH - initialized by "initializeEmptyMap" o...
std::vector< TPoseIDList > partitions
float MIN_ODOMETRY_STD_XY
[LSLAM] Minimum uncertainty (1 sigma, meters) in x and y for odometry increments (Default=0)
Declares a class that represents a Probability Density function (PDF) of a 3D pose .
stlplus::smart_ptr< TMessageLSLAMfromAA > TMessageLSLAMfromAAPtr
mrpt::slam::CIncrementalMapPartitioner::TOptions AA_options
[AA] The options for the partitioning algorithm
TNodeIDList areaIDs
The areas to consider.
CHMHMapNode::TNodeID cur_area
The area for who the loop-closure has been computed.
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction.
An implementation of Hybrid Metric Topological SLAM (HMT-SLAM).
std::vector< std::string > vector_string
A type for passing a vector of strings.
std::deque< CTopLCDetectorBase * > m_topLCdets
The list of LC modules in operation - initialized by "initializeEmptyMap" or "loadState".
This class allows the user to create, load, save, and render 3D scenes using OpenGL primitives.
int random_seed
0 means randomize, use any other value to have repetitive experiments.
Option set for KLD algorithm.
synch::CCriticalSection m_topLCdets_cs
The critical section for accessing m_topLCdets.
mrpt::math::CVectorFloat stds_Q_no_odo
A 3-length vector with the std.
class HMTSLAM_IMPEXP CLSLAM_RBPF_2DLASER
synch::CCriticalSection m_LMHs_cs
Critical section for accessing m_LMHs.
static int64_t m_nextAreaLabel
utils::CMessageQueue m_LSLAM_queue
LSLAM thread input queue, messages of type CHMTSLAM::TMessageLSLAMfromAA.
int64_t THypothesisID
An integer number uniquely identifying each of the concurrent hypotheses for the robot topological pa...
Declares a class for storing a collection of robot actions.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
static TPoseID m_nextPoseID
synch::CCriticalSection m_inputQueue_cs
Critical section for accessing m_inputQueue.
std::string LOG_OUTPUT_DIR
[LOGGING] If it is not an empty string (""), a directory with that name will be created and log files...
stlplus::smart_ptr< TMessageLSLAMfromTBI > TMessageLSLAMfromTBIPtr
CHierarchicalMHMap m_map
The hiearchical, multi-hypothesis graph-based map.
A set of TMetricMapInitializer structures, passed to the constructor CMultiMetricMap::CMultiMetricMap...
mrpt::slam::TKLDParams KLD_params
A thread-safe template queue for object passing between threads; for a template argument of T,...
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximat...
mrpt::poses::CPose3DPDFSOG delta_new_cur
Depending on the loop-closure engine, an guess of the relative pose of "area_new" relative to "cur_ar...
std::map< CHMHMapNode::TNodeID, TBI_info > loopClosureData
The meat is here: only feasible loop closures from "cur_area" are included here, with associated data...
This virtual class defines the interface that any particles based PDF class must implement in order t...
std::map< TYPE1, TYPE2, std::less< TYPE1 >, Eigen::aligned_allocator< std::pair< const TYPE1, TYPE2 > > > map_t
CTopLCDetector_FabMap::TOptions TLC_fabmap_options
Options passed to this TLC constructor.
This class provides simple critical sections functionality.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
float MIN_ODOMETRY_STD_PHI
[LSLAM] Minimum uncertainty (1 sigma, rads) in phi for odometry increments (Default=0)
This class allows loading and storing values and vectors of different types from a configuration text...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
A class used to store a 2D pose.
int LOG_FREQUENCY
[LOGGING] One SLAM iteration out of "LOGGING_logFrequency", a log file will be generated.
A class that contain generic messages, that can be sent and received from a "CClientTCPSocket" object...
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
Virtual base for local SLAM methods, used in mrpt::slam::CHMTSLAM.
Options for a TLC-detector of type FabMap, used from CHMTSLAM.
uint64_t TPoseID
An integer number uniquely identifying each robot pose stored in HMT-SLAM.
mrpt::system::TThreadHandle m_hThread_TBI
std::map< std::string, TLopLCDetectorFactory > m_registeredLCDetectors
The virtual base class which provides a unified interface for all persistent objects in MRPT.
mrpt::utils::safe_ptr< CHMTSLAM > m_parent
This structure contains the information needed to interface the threads API on each platform:
bayes::CParticleFilter::TParticleFilterOptions pf_options
These params are used from every LMH object.
float VIEW3D_AREA_SPHERES_RADIUS
[VIEW3D] The radius of the areas' spheres.
CTopLCDetector_GridMatching::TOptions TLC_grid_options
Options passed to this TLC constructor.
#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...
std::vector< int32_t > vector_int
virtual ~CLSLAMAlgorithmBase()
Destructor.
THypothesisID hypothesisID
The hypothesis ID (LMH) for these results.
CLSLAMAlgorithmBase(CHMTSLAM *parent)
Constructor.
std::queue< mrpt::utils::CSerializablePtr > m_inputQueue
The queue of pending actions/observations supplied by the user waiting for being processed.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
TLSlamMethod SLAM_METHOD
[LSLAM] The method to use for local SLAM
aligned_containers< THypothesisID, CLocalMetricHypothesis >::map_t m_LMHs
The list of LMHs at each instant.
A wrapper class for pointers that can be safely copied with "=" operator without problems.
double log_lik
Log likelihood for this loop-closure.
bool m_terminationFlag_TBI
vector_string TLC_detectors
A list of topological loop-closure detectors to use: can be one or more from this list: 'gridmaps': O...
A variety of options and configuration params (private, use loadOptions).
CHMTSLAM(const CHMTSLAM &)
THypothesisID hypothesisID
The hypothesis ID (LMH) for these results.
CLocalMetricHypothesis * LMH
The LMH.
class HMTSLAM_IMPEXP CHMTSLAM
float SLAM_MIN_HEADING_BETWEEN_OBS
mrpt::utils::TNodeID TNodeID
The type of the IDs of nodes.
bool m_terminateThreads
Termination flag for signaling all threads to terminate.
mrpt::aligned_containers< TPoseID, mrpt::poses::CPose3D >::map_t TMapPoseID2Pose3D
The most high level class for storing hybrid, multi-hypothesis maps in a graph-based model.
The virtual base class for Topological Loop-closure Detectors; used in HMT-SLAM.
static THypothesisID m_nextHypID
The configuration of a particle filter.
bool m_insertNewRobotPose
For use within PF callback methods.
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
stlplus::smart_ptr< TMessageLSLAMtoTBI > TMessageLSLAMtoTBIPtr
float VIEW3D_AREA_SPHERES_HEIGHT
[VIEW3D] The height of the areas' spheres.
synch::CCriticalSection m_map_cs
Critical section for accessing m_map.
Page generated by Doxygen 1.8.16 for MRPT 1.4.0 SVN: at Mon Oct 14 22:32:58 UTC 2019 | | |