MRPT  1.9.9
mrpt::slam::CMetricMapBuilderICP Class Reference

Detailed Description

A class for very simple 2D SLAM based on ICP.

This is a non-probabilistic pose tracking algorithm. Map are stored as in files as binary dumps of "mrpt::maps::CSimpleMap" objects. The methods are thread-safe.

Definition at line 25 of file CMetricMapBuilderICP.h.

#include <mrpt/slam/CMetricMapBuilderICP.h>

Inheritance diagram for mrpt::slam::CMetricMapBuilderICP:

Classes

struct  TConfigParams
 Algorithm configuration params. More...
 
struct  TDist
 Traveled distances from last map update / ICP-based localization. More...
 

Public Member Functions

 CMetricMapBuilderICP ()
 Default constructor - Upon construction, you can set the parameters in ICP_options, then call "initialize". More...
 
 ~CMetricMapBuilderICP () override
 Destructor: More...
 
void initialize (const mrpt::maps::CSimpleMap &initialMap=mrpt::maps::CSimpleMap(), const mrpt::poses::CPosePDF *x0=nullptr) override
 Initialize the method, starting with a known location PDF "x0"(if supplied, set to nullptr to left unmodified) and a given fixed, past map. More...
 
mrpt::poses::CPose3DPDF::Ptr getCurrentPoseEstimation () const override
 Returns a copy of the current best pose estimation as a pose PDF. More...
 
void setCurrentMapFile (const char *mapFile)
 Sets the "current map file", thus that map will be loaded if it exists or a new one will be created if it does not, and the updated map will be save to that file when destroying the object. More...
 
void processActionObservation (mrpt::obs::CActionCollection &action, mrpt::obs::CSensoryFrame &in_SF) override
 Appends a new action and observations to update this map: See the description of the class at the top of this page to see a more complete description. More...
 
void processObservation (const mrpt::obs::CObservation::Ptr &obs)
 The main method of this class: Process one odometry or sensor observation. More...
 
void getCurrentlyBuiltMap (mrpt::maps::CSimpleMap &out_map) const override
 Fills "out_map" with the set of "poses"-"sensory-frames", thus the so far built map. More...
 
void getCurrentMapPoints (std::vector< float > &x, std::vector< float > &y)
 Returns the 2D points of current local map. More...
 
const mrpt::maps::CMultiMetricMapgetCurrentlyBuiltMetricMap () const override
 Returns the map built so far. More...
 
unsigned int getCurrentlyBuiltMapSize () override
 Returns just how many sensory-frames are stored in the currently build map. More...
 
void saveCurrentEstimationToImage (const std::string &file, bool formatEMF_BMP=true) override
 A useful method for debugging: the current map (and/or poses) estimation is dumped to an image file. More...
 
void clear ()
 Clear all elements of the maps, and reset localization to (0,0,0deg). More...
 
void enableMapUpdating (bool enable)
 Enables or disables the map updating (default state is enabled) More...
 
void loadCurrentMapFromFile (const std::string &fileName)
 Load map (mrpt::maps::CSimpleMap) from a ".simplemap" file. More...
 
void saveCurrentMapToFile (const std::string &fileName, bool compressGZ=true) const
 Save map (mrpt::maps::CSimpleMap) to a ".simplemap" file. More...
 

Static Public Member Functions

static std::array< mrpt::system::TConsoleColor, NUMBER_OF_VERBOSITY_LEVELS > & logging_levels_to_colors ()
 Map from VerbosityLevels to their corresponding mrpt::system::TConsoleColor. More...
 
static std::array< std::string, NUMBER_OF_VERBOSITY_LEVELS > & logging_levels_to_names ()
 Map from VerbosityLevels to their corresponding names. More...
 

Public Attributes

TConfigParams ICP_options
 Options for the ICP-SLAM application. More...
 
CICP::TConfigParams ICP_params
 Options for the ICP algorithm itself. More...
 
TOptions options
 

Protected Member Functions

void enterCriticalSection ()
 Enter critical section for map updating. More...
 
void leaveCriticalSection ()
 Leave critical section for map updating. More...
 

Protected Attributes

std::mutex critZoneChangingMap
 Critical zones. More...
 
VerbosityLevel m_min_verbosity_level {LVL_INFO}
 Provided messages with VerbosityLevel smaller than this value shall be ignored. More...
 

Private Member Functions

void accumulateRobotDisplacementCounters (const mrpt::poses::CPose2D &new_pose)
 
void resetRobotDisplacementCounters (const mrpt::poses::CPose2D &new_pose)
 

Private Attributes

mrpt::maps::CSimpleMap SF_Poses_seq
 The set of observations that leads to current map: More...
 
mrpt::maps::CMultiMetricMap metricMap
 The metric map representation as a points map: More...
 
std::string currentMapFile
 Current map file. More...
 
mrpt::poses::CRobot2DPoseEstimator m_lastPoseEst
 The pose estimation by the alignment algorithm (ICP). More...
 
mrpt::math::CMatrixDouble33 m_lastPoseEst_cov
 Last pose estimation (covariance) More...
 
std::deque< mrpt::math::TPose2Dm_estRobotPath
 The estimated robot path: More...
 
mrpt::poses::CPose2D m_auxAccumOdometry
 
TDist m_distSinceLastICP
 
std::map< std::string, TDistm_distSinceLastInsertion
 Indexed by sensor label. More...
 
bool m_there_has_been_an_odometry {false}
 

Logging methods

bool logging_enable_console_output {true}
 [Default=true] Set it to false in case you don't want the logged messages to be dumped to the output automatically. More...
 
bool logging_enable_keep_record {false}
 [Default=false] Enables storing all messages into an internal list. More...
 
void logStr (const VerbosityLevel level, const std::string &msg_str) const
 Main method to add the specified message string to the logger. More...
 
void logFmt (const VerbosityLevel level, const char *fmt,...) const MRPT_printf_format_check(3
 Alternative logging method, which mimics the printf behavior. More...
 
void void logCond (const VerbosityLevel level, bool cond, const std::string &msg_str) const
 Log the given message only if the condition is satisfied. More...
 
void setLoggerName (const std::string &name)
 Set the name of the COutputLogger instance. More...
 
std::string getLoggerName () const
 Return the name of the COutputLogger instance. More...
 
void setMinLoggingLevel (const VerbosityLevel level)
 Set the minimum logging level for which the incoming logs are going to be taken into account. More...
 
void setVerbosityLevel (const VerbosityLevel level)
 alias of setMinLoggingLevel() More...
 
VerbosityLevel getMinLoggingLevel () const
 
bool isLoggingLevelVisible (VerbosityLevel level) const
 
void getLogAsString (std::string &log_contents) const
 Fill the provided string with the contents of the logger's history in std::string representation. More...
 
std::string getLogAsString () const
 Get the history of COutputLogger instance in a string representation. More...
 
void writeLogToFile (const std::string *fname_in=nullptr) const
 Write the contents of the COutputLogger instance to an external file. More...
 
void dumpLogToConsole () const
 Dump the current contents of the COutputLogger instance in the terminal window. More...
 
std::string getLoggerLastMsg () const
 Return the last Tmsg instance registered in the logger history. More...
 
void getLoggerLastMsg (std::string &msg_str) const
 Fill inputtted string with the contents of the last message in history. More...
 
void loggerReset ()
 Reset the contents of the logger instance. More...
 
void logRegisterCallback (output_logger_callback_t userFunc)
 
bool logDeregisterCallback (output_logger_callback_t userFunc)
 

Constructor & Destructor Documentation

◆ CMetricMapBuilderICP()

CMetricMapBuilderICP::CMetricMapBuilderICP ( )

Default constructor - Upon construction, you can set the parameters in ICP_options, then call "initialize".

Definition at line 32 of file CMetricMapBuilderICP.cpp.

References initialize(), and mrpt::system::COutputLogger::setLoggerName().

Here is the call graph for this function:

◆ ~CMetricMapBuilderICP()

CMetricMapBuilderICP::~CMetricMapBuilderICP ( )
override

Destructor:

Definition at line 42 of file CMetricMapBuilderICP.cpp.

References mrpt::slam::CMetricMapBuilder::enterCriticalSection(), mrpt::slam::CMetricMapBuilder::leaveCriticalSection(), and setCurrentMapFile().

Here is the call graph for this function:

Member Function Documentation

◆ accumulateRobotDisplacementCounters()

void CMetricMapBuilderICP::accumulateRobotDisplacementCounters ( const mrpt::poses::CPose2D new_pose)
private

Definition at line 682 of file CMetricMapBuilderICP.cpp.

References m_distSinceLastICP, m_distSinceLastInsertion, and mrpt::slam::CMetricMapBuilderICP::TDist::updateDistances().

Referenced by processObservation().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clear()

void CMetricMapBuilder::clear ( )
inherited

Clear all elements of the maps, and reset localization to (0,0,0deg).

Definition at line 43 of file CMetricMapBuilder.cpp.

References mrpt::slam::CMetricMapBuilder::initialize(), and MRPT_LOG_DEBUG.

Here is the call graph for this function:

◆ dumpLogToConsole()

void COutputLogger::dumpLogToConsole ( ) const
inherited

Dump the current contents of the COutputLogger instance in the terminal window.

See also
writeToFile

Definition at line 190 of file COutputLogger.cpp.

◆ enableMapUpdating()

void mrpt::slam::CMetricMapBuilder::enableMapUpdating ( bool  enable)
inlineinherited

Enables or disables the map updating (default state is enabled)

Definition at line 104 of file CMetricMapBuilder.h.

References mrpt::slam::CMetricMapBuilder::TOptions::enableMapUpdating, and mrpt::slam::CMetricMapBuilder::options.

◆ enterCriticalSection()

void mrpt::slam::CMetricMapBuilder::enterCriticalSection ( )
inlineprotectedinherited

Enter critical section for map updating.

Definition at line 38 of file CMetricMapBuilder.h.

References mrpt::slam::CMetricMapBuilder::critZoneChangingMap.

Referenced by getCurrentMapPoints(), and ~CMetricMapBuilderICP().

Here is the caller graph for this function:

◆ getCurrentlyBuiltMap()

void CMetricMapBuilderICP::getCurrentlyBuiltMap ( mrpt::maps::CSimpleMap out_map) const
overridevirtual

Fills "out_map" with the set of "poses"-"sensory-frames", thus the so far built map.

Implements mrpt::slam::CMetricMapBuilder.

Definition at line 612 of file CMetricMapBuilderICP.cpp.

References SF_Poses_seq.

◆ getCurrentlyBuiltMapSize()

unsigned int CMetricMapBuilderICP::getCurrentlyBuiltMapSize ( )
overridevirtual

Returns just how many sensory-frames are stored in the currently build map.

Implements mrpt::slam::CMetricMapBuilder.

Definition at line 625 of file CMetricMapBuilderICP.cpp.

References SF_Poses_seq, and mrpt::maps::CSimpleMap::size().

Here is the call graph for this function:

◆ getCurrentlyBuiltMetricMap()

const CMultiMetricMap * CMetricMapBuilderICP::getCurrentlyBuiltMetricMap ( ) const
overridevirtual

Returns the map built so far.

NOTE that for efficiency a pointer to the internal object is passed, DO NOT delete nor modify the object in any way, if desired, make a copy of ir with "clone()".

Implements mrpt::slam::CMetricMapBuilder.

Definition at line 617 of file CMetricMapBuilderICP.cpp.

References metricMap.

◆ getCurrentMapPoints()

void CMetricMapBuilderICP::getCurrentMapPoints ( std::vector< float > &  x,
std::vector< float > &  y 
)

Returns the 2D points of current local map.

Definition at line 594 of file CMetricMapBuilderICP.cpp.

References ASSERT_, mrpt::slam::CMetricMapBuilder::enterCriticalSection(), mrpt::slam::CMetricMapBuilder::leaveCriticalSection(), mrpt::maps::CMultiMetricMap::mapByClass(), and metricMap.

Here is the call graph for this function:

◆ getCurrentPoseEstimation()

CPose3DPDF::Ptr CMetricMapBuilderICP::getCurrentPoseEstimation ( ) const
overridevirtual

Returns a copy of the current best pose estimation as a pose PDF.

Implements mrpt::slam::CMetricMapBuilder.

Definition at line 512 of file CMetricMapBuilderICP.cpp.

References mrpt::poses::CPosePDFGaussian::cov, mrpt::poses::CRobot2DPoseEstimator::getLatestRobotPose(), m_lastPoseEst, m_lastPoseEst_cov, and mrpt::poses::CPosePDFGaussian::mean.

Here is the call graph for this function:

◆ getLogAsString() [1/2]

void COutputLogger::getLogAsString ( std::string log_contents) const
inherited

Fill the provided string with the contents of the logger's history in std::string representation.

Definition at line 154 of file COutputLogger.cpp.

◆ getLogAsString() [2/2]

std::string COutputLogger::getLogAsString ( ) const
inherited

Get the history of COutputLogger instance in a string representation.

Definition at line 159 of file COutputLogger.cpp.

Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport().

Here is the caller graph for this function:

◆ getLoggerLastMsg() [1/2]

std::string COutputLogger::getLoggerLastMsg ( ) const
inherited

Return the last Tmsg instance registered in the logger history.

Definition at line 195 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::TMsg::getAsString().

Here is the call graph for this function:

◆ getLoggerLastMsg() [2/2]

void COutputLogger::getLoggerLastMsg ( std::string msg_str) const
inherited

Fill inputtted string with the contents of the last message in history.

Definition at line 201 of file COutputLogger.cpp.

◆ getLoggerName()

std::string COutputLogger::getLoggerName ( ) const
inherited

Return the name of the COutputLogger instance.

See also
setLoggerName

Definition at line 143 of file COutputLogger.cpp.

◆ getMinLoggingLevel()

VerbosityLevel mrpt::system::COutputLogger::getMinLoggingLevel ( ) const
inlineinherited
See also
setMinLoggingLevel

Definition at line 200 of file system/COutputLogger.h.

References mrpt::system::COutputLogger::m_min_verbosity_level.

Referenced by mrpt::maps::CRandomFieldGridMap2D::isEnabledVerbose(), and mrpt::slam::CMetricMapBuilderRBPF::processActionObservation().

Here is the caller graph for this function:

◆ initialize()

void CMetricMapBuilderICP::initialize ( const mrpt::maps::CSimpleMap initialMap = mrpt::maps::CSimpleMap(),
const mrpt::poses::CPosePDF x0 = nullptr 
)
overridevirtual

Initialize the method, starting with a known location PDF "x0"(if supplied, set to nullptr to left unmodified) and a given fixed, past map.

This method MUST be called if using the default constructor, after loading the configuration into ICP_options. In particular, TConfigParams::mapInitializers

Implements mrpt::slam::CMetricMapBuilder.

Definition at line 526 of file CMetricMapBuilderICP.cpp.

References mrpt::slam::CMetricMapBuilderICP::TDist::ang, mrpt::poses::CPose2D::asTPose(), mrpt::slam::CMetricMapBuilder::critZoneChangingMap, mrpt::maps::CSimpleMap::get(), mrpt::math::CProbabilityDensityFunction< TDATA, STATE_LEN >::getMeanVal(), ICP_options, mrpt::slam::CMetricMapBuilderICP::TDist::lin, m_auxAccumOdometry, m_distSinceLastICP, m_distSinceLastInsertion, m_estRobotPath, m_lastPoseEst, m_there_has_been_an_odometry, mrpt::slam::CMetricMapBuilderICP::TConfigParams::mapInitializers, metricMap, MRPT_END, MRPT_LOG_INFO, MRPT_START, mrpt::Clock::now(), mrpt::poses::CRobot2DPoseEstimator::processUpdateNewPoseLocalization(), mrpt::poses::CRobot2DPoseEstimator::reset(), mrpt::maps::CMultiMetricMap::setListOfMaps(), SF_Poses_seq, and mrpt::maps::CSimpleMap::size().

Referenced by CMetricMapBuilderICP().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isLoggingLevelVisible()

bool mrpt::system::COutputLogger::isLoggingLevelVisible ( VerbosityLevel  level) const
inlineinherited

Definition at line 201 of file system/COutputLogger.h.

References mrpt::system::COutputLogger::m_min_verbosity_level.

Referenced by mrpt::slam::CMetricMapBuilderRBPF::processActionObservation(), and mrpt::system::COutputLoggerStreamWrapper::~COutputLoggerStreamWrapper().

Here is the caller graph for this function:

◆ leaveCriticalSection()

void mrpt::slam::CMetricMapBuilder::leaveCriticalSection ( )
inlineprotectedinherited

Leave critical section for map updating.

Definition at line 40 of file CMetricMapBuilder.h.

References mrpt::slam::CMetricMapBuilder::critZoneChangingMap.

Referenced by getCurrentMapPoints(), and ~CMetricMapBuilderICP().

Here is the caller graph for this function:

◆ loadCurrentMapFromFile()

void CMetricMapBuilder::loadCurrentMapFromFile ( const std::string fileName)
inherited

Load map (mrpt::maps::CSimpleMap) from a ".simplemap" file.

Definition at line 56 of file CMetricMapBuilder.cpp.

References mrpt::serialization::archiveFrom(), mrpt::maps::CSimpleMap::clear(), mrpt::system::fileExists(), mrpt::slam::CMetricMapBuilder::initialize(), MRPT_LOG_INFO_STREAM, and MRPT_LOG_WARN_STREAM.

Referenced by setCurrentMapFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ logCond()

void COutputLogger::logCond ( const VerbosityLevel  level,
bool  cond,
const std::string msg_str 
) const
inherited

Log the given message only if the condition is satisfied.

See also
log, logFmt

Definition at line 131 of file COutputLogger.cpp.

◆ logDeregisterCallback()

bool COutputLogger::logDeregisterCallback ( output_logger_callback_t  userFunc)
inherited
Returns
true if an entry was found and deleted.

Definition at line 291 of file COutputLogger.cpp.

References getAddress(), and mrpt::system::COutputLogger::m_listCallbacks.

Here is the call graph for this function:

◆ logFmt()

void COutputLogger::logFmt ( const VerbosityLevel  level,
const char *  fmt,
  ... 
) const
inherited

◆ loggerReset()

void COutputLogger::loggerReset ( )
inherited

Reset the contents of the logger instance.

Called upon construction.

Definition at line 206 of file COutputLogger.cpp.

References mrpt::system::LVL_INFO.

◆ logging_levels_to_colors()

std::array< mrpt::system::TConsoleColor, NUMBER_OF_VERBOSITY_LEVELS > & COutputLogger::logging_levels_to_colors ( )
staticinherited

Map from VerbosityLevels to their corresponding mrpt::system::TConsoleColor.

Handy for coloring the input based on the verbosity of the message

Definition at line 47 of file COutputLogger.cpp.

References logging_levels_to_colors.

Referenced by mrpt::system::COutputLogger::TMsg::dumpToConsole().

Here is the caller graph for this function:

◆ logging_levels_to_names()

std::array< std::string, NUMBER_OF_VERBOSITY_LEVELS > & COutputLogger::logging_levels_to_names ( )
staticinherited

Map from VerbosityLevels to their corresponding names.

Handy for printing the current message VerbosityLevel along with the actual content

Definition at line 60 of file COutputLogger.cpp.

References logging_levels_to_names.

Referenced by mrpt::system::COutputLogger::TMsg::getAsString().

Here is the caller graph for this function:

◆ logRegisterCallback()

void COutputLogger::logRegisterCallback ( output_logger_callback_t  userFunc)
inherited

Definition at line 278 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::m_listCallbacks.

◆ logStr()

void COutputLogger::logStr ( const VerbosityLevel  level,
const std::string msg_str 
) const
inherited

Main method to add the specified message string to the logger.

See also
logCond, logFmt

Definition at line 72 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::TMsg::body, mrpt::system::COutputLogger::TMsg::dumpToConsole(), mrpt::system::COutputLogger::TMsg::level, mrpt::system::COutputLogger::TMsg::name, and mrpt::system::COutputLogger::TMsg::timestamp.

Referenced by mrpt::slam::PF_implementation< mrpt::math::TPose3D, CMonteCarloLocalization3D, mrpt::bayes::particle_storage_mode::VALUE >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), mrpt::nav::CReactiveNavigationSystem::STEP1_InitPTGs(), mrpt::system::COutputLoggerStreamWrapper::~COutputLoggerStreamWrapper(), and mrpt::system::CTimeLoggerSaveAtDtor::~CTimeLoggerSaveAtDtor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ processActionObservation()

void CMetricMapBuilderICP::processActionObservation ( mrpt::obs::CActionCollection action,
mrpt::obs::CSensoryFrame in_SF 
)
overridevirtual

Appends a new action and observations to update this map: See the description of the class at the top of this page to see a more complete description.

Parameters
actionThe estimation of the incremental pose change in the robot pose.
in_SFThe set of observations that robot senses at the new pose. See params in CMetricMapBuilder::options and CMetricMapBuilderICP::ICP_options
See also
processObservation

Implements mrpt::slam::CMetricMapBuilder.

Definition at line 472 of file CMetricMapBuilderICP.cpp.

References mrpt::poses::CPose2D::composeFrom(), mrpt::obs::CActionCollection::getBestMovementEstimation(), m_auxAccumOdometry, and processObservation().

Here is the call graph for this function:

◆ processObservation()

void CMetricMapBuilderICP::processObservation ( const mrpt::obs::CObservation::Ptr obs)

The main method of this class: Process one odometry or sensor observation.

The new entry point of the algorithm (the old one was processActionObservation, which now is a wrapper to this method). See params in CMetricMapBuilder::options and CMetricMapBuilderICP::ICP_options

Definition at line 134 of file CMetricMapBuilderICP.cpp.

References accumulateRobotDisplacementCounters(), mrpt::slam::CMetricMapsAlignmentAlgorithm::Align(), mrpt::maps::CPointsMap::TInsertionOptions::also_interpolate, mrpt::slam::CMetricMapBuilder::TOptions::alwaysInsertByClass, mrpt::slam::CMetricMapBuilderICP::TDist::ang, ASSERT_, ASSERTMSG_, mrpt::poses::CPose2D::asString(), mrpt::poses::CPose2D::asTPose(), mrpt::rtti::CListOfClasses::contains(), mrpt::poses::CPosePDFGaussian::copyFrom(), mrpt::maps::CMultiMetricMap::countMapsByClass(), mrpt::poses::CPosePDFGaussian::cov, mrpt::slam::CMetricMapBuilder::critZoneChangingMap, mrpt::containers::empty(), mrpt::slam::CMetricMapBuilder::TOptions::enableMapUpdating, mrpt::format(), mrpt::system::formatTimeInterval(), mrpt::poses::CRobot2DPoseEstimator::getCurrentEstimate(), mrpt::poses::CRobot2DPoseEstimator::getLatestRobotPose(), mrpt::math::CProbabilityDensityFunction< TDATA, STATE_LEN >::getMeanVal(), mrpt::slam::CICP::TReturnInfo::goodness, ICP_options, ICP_params, mrpt::maps::CSimpleMap::insert(), mrpt::slam::CMetricMapBuilderICP::TConfigParams::insertionAngDistance, mrpt::slam::CMetricMapBuilderICP::TConfigParams::insertionLinDistance, mrpt::maps::CPointsMap::insertionOptions, mrpt::maps::COccupancyGridMap2D::insertionOptions, mrpt::maps::CMetricMap::insertObservationPtr(), INVALID_TIMESTAMP, IS_CLASS, IS_DERIVED, mrpt::maps::CMetricMap::isEmpty(), mrpt::slam::CMetricMapBuilderICP::TDist::lin, mrpt::slam::CMetricMapBuilderICP::TConfigParams::localizationAngDistance, mrpt::slam::CMetricMapBuilderICP::TConfigParams::localizationLinDistance, m_distSinceLastICP, m_distSinceLastInsertion, m_estRobotPath, m_lastPoseEst, m_lastPoseEst_cov, m_there_has_been_an_odometry, mrpt::maps::COccupancyGridMap2D::TInsertionOptions::mapAltitude, mrpt::maps::CMultiMetricMap::mapByClass(), mrpt::slam::CMetricMapBuilderICP::TConfigParams::matchAgainstTheGrid, mrpt::poses::CPosePDFGaussian::mean, metricMap, min, mrpt::maps::CPointsMap::TInsertionOptions::minDistBetweenLaserPoints, mrpt::slam::CMetricMapBuilderICP::TConfigParams::minICPgoodnessToAccept, MRPT_END, MRPT_LOG_DEBUG, MRPT_LOG_DEBUG_STREAM, MRPT_LOG_INFO, MRPT_LOG_INFO_STREAM, MRPT_LOG_WARN, MRPT_LOG_WARN_STREAM, MRPT_START, mrpt::slam::CICP::TReturnInfo::nIterations, mrpt::slam::CMetricMapBuilder::options, mrpt::slam::CICP::options, mrpt::poses::CRobot2DPoseEstimator::processUpdateNewOdometry(), mrpt::poses::CRobot2DPoseEstimator::processUpdateNewPoseLocalization(), resetRobotDisplacementCounters(), SF_Poses_seq, mrpt::system::CTicTac::Tac(), mrpt::system::CTicTac::Tic(), mrpt::slam::CMetricMapBuilderICP::TDist::updatePose(), and mrpt::maps::COccupancyGridMap2D::TInsertionOptions::useMapAltitude.

Referenced by processActionObservation().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ resetRobotDisplacementCounters()

void CMetricMapBuilderICP::resetRobotDisplacementCounters ( const mrpt::poses::CPose2D new_pose)
private

Definition at line 689 of file CMetricMapBuilderICP.cpp.

References m_distSinceLastICP, m_distSinceLastInsertion, and mrpt::slam::CMetricMapBuilderICP::TDist::updatePose().

Referenced by processObservation().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ saveCurrentEstimationToImage()

void CMetricMapBuilderICP::saveCurrentEstimationToImage ( const std::string file,
bool  formatEMF_BMP = true 
)
overridevirtual

A useful method for debugging: the current map (and/or poses) estimation is dumped to an image file.

Parameters
fileThe output file name
formatEMF_BMPOutput format = true:EMF, false:BMP

Implements mrpt::slam::CMetricMapBuilder.

Definition at line 633 of file CMetricMapBuilderICP.cpp.

References mrpt::img::CEnhancedMetaFile::drawImage(), mrpt::maps::COccupancyGridMap2D::getAsImage(), mrpt::img::CEnhancedMetaFile::line(), m_estRobotPath, mrpt::maps::CMultiMetricMap::mapByClass(), metricMap, MRPT_END, MRPT_START, and THROW_EXCEPTION.

Here is the call graph for this function:

◆ saveCurrentMapToFile()

void CMetricMapBuilder::saveCurrentMapToFile ( const std::string fileName,
bool  compressGZ = true 
) const
inherited

Save map (mrpt::maps::CSimpleMap) to a ".simplemap" file.

Definition at line 88 of file CMetricMapBuilder.cpp.

References mrpt::serialization::archiveFrom(), mrpt::slam::CMetricMapBuilder::getCurrentlyBuiltMap(), and MRPT_LOG_INFO_STREAM.

Referenced by setCurrentMapFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setCurrentMapFile()

void CMetricMapBuilderICP::setCurrentMapFile ( const char *  mapFile)

Sets the "current map file", thus that map will be loaded if it exists or a new one will be created if it does not, and the updated map will be save to that file when destroying the object.

Definition at line 497 of file CMetricMapBuilderICP.cpp.

References currentMapFile, mrpt::slam::CMetricMapBuilder::loadCurrentMapFromFile(), and mrpt::slam::CMetricMapBuilder::saveCurrentMapToFile().

Referenced by ~CMetricMapBuilderICP().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLoggerName()

void COutputLogger::setLoggerName ( const std::string name)
inherited

Set the name of the COutputLogger instance.

See also
getLoggerName

Definition at line 138 of file COutputLogger.cpp.

Referenced by CMetricMapBuilderICP(), mrpt::slam::CMetricMapBuilderRBPF::CMetricMapBuilderRBPF(), mrpt::slam::CMonteCarloLocalization2D::CMonteCarloLocalization2D(), mrpt::slam::CMonteCarloLocalization3D::CMonteCarloLocalization3D(), and mrpt::graphslam::CWindowManager::initCWindowManager().

Here is the caller graph for this function:

◆ setMinLoggingLevel()

void COutputLogger::setMinLoggingLevel ( const VerbosityLevel  level)
inherited

Set the minimum logging level for which the incoming logs are going to be taken into account.

String messages with specified VerbosityLevel smaller than the min, will not be outputted to the screen and neither will a record of them be stored in by the COutputLogger instance

Definition at line 144 of file COutputLogger.cpp.

Referenced by mrpt::maps::CRandomFieldGridMap2D::enableVerbose(), mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute(), mrpt::hwdrivers::CHokuyoURG::initialize(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::loadParams().

Here is the caller graph for this function:

◆ setVerbosityLevel()

void COutputLogger::setVerbosityLevel ( const VerbosityLevel  level)
inherited

alias of setMinLoggingLevel()

Definition at line 149 of file COutputLogger.cpp.

Referenced by mrpt::nav::CAbstractNavigator::CAbstractNavigator(), mrpt::slam::CMetricMapBuilderRBPF::CMetricMapBuilderRBPF(), mrpt::comms::CServerTCPSocket::CServerTCPSocket(), mrpt::slam::CMetricMapBuilderRBPF::processActionObservation(), and mrpt::math::ransac_detect_2D_lines().

Here is the caller graph for this function:

◆ writeLogToFile()

void COutputLogger::writeLogToFile ( const std::string fname_in = nullptr) const
inherited

Write the contents of the COutputLogger instance to an external file.

Upon call to this method, COutputLogger dumps the contents of all the logged commands so far to the specified external file. By default the filename is set to ${LOGGERNAME}.log except if the fname parameter is provided

See also
dumpToConsole, getAsString

Definition at line 165 of file COutputLogger.cpp.

References ASSERTMSG_, and mrpt::format().

Here is the call graph for this function:

Member Data Documentation

◆ critZoneChangingMap

◆ currentMapFile

std::string mrpt::slam::CMetricMapBuilderICP::currentMapFile
private

Current map file.

Definition at line 164 of file CMetricMapBuilderICP.h.

Referenced by setCurrentMapFile().

◆ ICP_options

TConfigParams mrpt::slam::CMetricMapBuilderICP::ICP_options

Options for the ICP-SLAM application.

See also
ICP_params

Definition at line 86 of file CMetricMapBuilderICP.h.

Referenced by initialize(), and processObservation().

◆ ICP_params

CICP::TConfigParams mrpt::slam::CMetricMapBuilderICP::ICP_params

Options for the ICP algorithm itself.

See also
ICP_options

Definition at line 88 of file CMetricMapBuilderICP.h.

Referenced by processObservation().

◆ logging_enable_console_output

bool mrpt::system::COutputLogger::logging_enable_console_output {true}
inherited

[Default=true] Set it to false in case you don't want the logged messages to be dumped to the output automatically.

Definition at line 239 of file system/COutputLogger.h.

◆ logging_enable_keep_record

bool mrpt::system::COutputLogger::logging_enable_keep_record {false}
inherited

[Default=false] Enables storing all messages into an internal list.

See also
writeLogToFile, getLogAsString

Definition at line 242 of file system/COutputLogger.h.

◆ m_auxAccumOdometry

mrpt::poses::CPose2D mrpt::slam::CMetricMapBuilderICP::m_auxAccumOdometry
private

Definition at line 175 of file CMetricMapBuilderICP.h.

Referenced by initialize(), and processActionObservation().

◆ m_distSinceLastICP

TDist mrpt::slam::CMetricMapBuilderICP::m_distSinceLastICP
private

◆ m_distSinceLastInsertion

std::map<std::string, TDist> mrpt::slam::CMetricMapBuilderICP::m_distSinceLastInsertion
private

◆ m_estRobotPath

std::deque<mrpt::math::TPose2D> mrpt::slam::CMetricMapBuilderICP::m_estRobotPath
private

The estimated robot path:

Definition at line 174 of file CMetricMapBuilderICP.h.

Referenced by initialize(), processObservation(), and saveCurrentEstimationToImage().

◆ m_lastPoseEst

mrpt::poses::CRobot2DPoseEstimator mrpt::slam::CMetricMapBuilderICP::m_lastPoseEst
private

The pose estimation by the alignment algorithm (ICP).

Last pose estimation (Mean)

Definition at line 168 of file CMetricMapBuilderICP.h.

Referenced by getCurrentPoseEstimation(), initialize(), and processObservation().

◆ m_lastPoseEst_cov

mrpt::math::CMatrixDouble33 mrpt::slam::CMetricMapBuilderICP::m_lastPoseEst_cov
private

Last pose estimation (covariance)

Definition at line 170 of file CMetricMapBuilderICP.h.

Referenced by getCurrentPoseEstimation(), and processObservation().

◆ m_min_verbosity_level

VerbosityLevel mrpt::system::COutputLogger::m_min_verbosity_level {LVL_INFO}
protectedinherited

Provided messages with VerbosityLevel smaller than this value shall be ignored.

Definition at line 252 of file system/COutputLogger.h.

Referenced by mrpt::system::COutputLogger::getMinLoggingLevel(), and mrpt::system::COutputLogger::isLoggingLevelVisible().

◆ m_there_has_been_an_odometry

bool mrpt::slam::CMetricMapBuilderICP::m_there_has_been_an_odometry {false}
private

Definition at line 191 of file CMetricMapBuilderICP.h.

Referenced by initialize(), and processObservation().

◆ metricMap

mrpt::maps::CMultiMetricMap mrpt::slam::CMetricMapBuilderICP::metricMap
private

The metric map representation as a points map:

Definition at line 161 of file CMetricMapBuilderICP.h.

Referenced by getCurrentlyBuiltMetricMap(), getCurrentMapPoints(), initialize(), processObservation(), and saveCurrentEstimationToImage().

◆ options

◆ SF_Poses_seq

mrpt::maps::CSimpleMap mrpt::slam::CMetricMapBuilderICP::SF_Poses_seq
private

The set of observations that leads to current map:

Definition at line 158 of file CMetricMapBuilderICP.h.

Referenced by getCurrentlyBuiltMap(), getCurrentlyBuiltMapSize(), initialize(), and processObservation().




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 1de0e027c Sat Sep 14 16:15:22 2019 +0200 at sáb sep 14 16:20:14 CEST 2019