2013-02-03 22:12:02 +00:00
|
|
|
/*
|
2016-07-17 21:57:10 -04:00
|
|
|
Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke
|
2014-08-11 17:00:55 +00:00
|
|
|
All rights reserved.
|
|
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
|
|
|
modification, are permitted provided that the following conditions are met:
|
|
|
|
|
* Redistributions of source code must retain the above copyright
|
|
|
|
|
notice, this list of conditions and the following disclaimer.
|
|
|
|
|
* Redistributions in binary form must reproduce the above copyright
|
|
|
|
|
notice, this list of conditions and the following disclaimer in the
|
|
|
|
|
documentation and/or other materials provided with the distribution.
|
|
|
|
|
* Neither the name of the Universite de Sherbrooke nor the
|
|
|
|
|
names of its contributors may be used to endorse or promote products
|
|
|
|
|
derived from this software without specific prior written permission.
|
|
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
|
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
|
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
|
|
|
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
|
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
|
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
|
|
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
*/
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
#ifndef STATISTICS_H_
|
|
|
|
|
#define STATISTICS_H_
|
|
|
|
|
|
|
|
|
|
#include "rtabmap/core/RtabmapExp.h" // DLL export/import defines
|
|
|
|
|
|
|
|
|
|
#include <opencv2/core/core.hpp>
|
|
|
|
|
#include <opencv2/features2d/features2d.hpp>
|
|
|
|
|
#include <opencv2/imgproc/imgproc.hpp>
|
|
|
|
|
#include <list>
|
|
|
|
|
#include <vector>
|
2014-10-26 21:47:29 +00:00
|
|
|
#include <rtabmap/core/Signature.h>
|
2014-02-11 23:04:22 +00:00
|
|
|
#include <rtabmap/core/Link.h>
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
namespace rtabmap {
|
|
|
|
|
|
|
|
|
|
#define RTABMAP_STATS(PREFIX, NAME, UNIT) \
|
|
|
|
|
public: \
|
|
|
|
|
static std::string k##PREFIX##NAME() {return #PREFIX "/" #NAME "/" #UNIT;} \
|
|
|
|
|
private: \
|
|
|
|
|
class Dummy##PREFIX##NAME { \
|
|
|
|
|
public: \
|
|
|
|
|
Dummy##PREFIX##NAME() {if(!_defaultDataInitialized)_defaultData.insert(std::pair<std::string, float>(#PREFIX "/" #NAME "/" #UNIT, 0.0f));} \
|
|
|
|
|
}; \
|
|
|
|
|
Dummy##PREFIX##NAME dummy##PREFIX##NAME;
|
|
|
|
|
|
|
|
|
|
class RTABMAP_EXP Statistics
|
|
|
|
|
{
|
|
|
|
|
RTABMAP_STATS(Loop, RejectedHypothesis,);
|
2015-04-27 02:43:06 -04:00
|
|
|
RTABMAP_STATS(Loop, Accepted_hypothesis_id,);
|
2013-02-03 22:12:02 +00:00
|
|
|
RTABMAP_STATS(Loop, Highest_hypothesis_id,);
|
|
|
|
|
RTABMAP_STATS(Loop, Highest_hypothesis_value,);
|
|
|
|
|
RTABMAP_STATS(Loop, Vp_hypothesis,);
|
2015-09-03 12:37:14 -04:00
|
|
|
RTABMAP_STATS(Loop, Reactivate_id,);
|
2013-02-03 22:12:02 +00:00
|
|
|
RTABMAP_STATS(Loop, Hypothesis_ratio,);
|
2013-12-11 00:12:44 +00:00
|
|
|
RTABMAP_STATS(Loop, Hypothesis_reactivated,);
|
2015-09-03 12:37:14 -04:00
|
|
|
RTABMAP_STATS(Loop, Visual_inliers,);
|
2017-02-15 19:07:10 -05:00
|
|
|
RTABMAP_STATS(Loop, Visual_matches,);
|
2015-02-13 15:25:40 -05:00
|
|
|
RTABMAP_STATS(Loop, Last_id,);
|
2015-09-03 12:37:14 -04:00
|
|
|
RTABMAP_STATS(Loop, Optimization_max_error, m);
|
2017-11-30 16:52:03 -05:00
|
|
|
RTABMAP_STATS(Loop, Optimization_max_error_ratio, );
|
2015-11-18 19:40:46 -05:00
|
|
|
RTABMAP_STATS(Loop, Optimization_error, );
|
|
|
|
|
RTABMAP_STATS(Loop, Optimization_iterations, );
|
2013-12-11 00:12:44 +00:00
|
|
|
|
2016-03-11 17:54:01 -05:00
|
|
|
RTABMAP_STATS(Proximity, Time_detections,);
|
|
|
|
|
RTABMAP_STATS(Proximity, Space_last_detection_id,);
|
|
|
|
|
RTABMAP_STATS(Proximity, Space_paths,);
|
2016-08-12 18:43:12 -04:00
|
|
|
RTABMAP_STATS(Proximity, Space_visual_paths_checked,);
|
|
|
|
|
RTABMAP_STATS(Proximity, Space_scan_paths_checked,);
|
2016-03-11 17:54:01 -05:00
|
|
|
RTABMAP_STATS(Proximity, Space_detections_added_visually,);
|
|
|
|
|
RTABMAP_STATS(Proximity, Space_detections_added_icp_only,);
|
2013-02-03 22:12:02 +00:00
|
|
|
|
2015-11-26 16:22:46 -05:00
|
|
|
RTABMAP_STATS(NeighborLinkRefining, Accepted,);
|
|
|
|
|
RTABMAP_STATS(NeighborLinkRefining, Inliers,);
|
2017-09-11 13:17:53 -04:00
|
|
|
RTABMAP_STATS(NeighborLinkRefining, ICP_inliers_ratio,);
|
|
|
|
|
RTABMAP_STATS(NeighborLinkRefining, ICP_rotation, rad);
|
|
|
|
|
RTABMAP_STATS(NeighborLinkRefining, ICP_translation, m);
|
|
|
|
|
RTABMAP_STATS(NeighborLinkRefining, ICP_complexity,);
|
2015-11-26 16:22:46 -05:00
|
|
|
RTABMAP_STATS(NeighborLinkRefining, Variance,);
|
|
|
|
|
RTABMAP_STATS(NeighborLinkRefining, Pts,);
|
2015-05-01 07:30:09 -04:00
|
|
|
|
2013-02-03 22:12:02 +00:00
|
|
|
RTABMAP_STATS(Memory, Working_memory_size,);
|
|
|
|
|
RTABMAP_STATS(Memory, Short_time_memory_size,);
|
2016-02-15 19:35:24 -05:00
|
|
|
RTABMAP_STATS(Memory, Database_memory_used, MB);
|
2013-02-03 22:12:02 +00:00
|
|
|
RTABMAP_STATS(Memory, Signatures_removed,);
|
2015-05-04 16:00:21 -04:00
|
|
|
RTABMAP_STATS(Memory, Immunized_globally,);
|
|
|
|
|
RTABMAP_STATS(Memory, Immunized_locally,);
|
|
|
|
|
RTABMAP_STATS(Memory, Immunized_locally_max,);
|
2013-02-03 22:12:02 +00:00
|
|
|
RTABMAP_STATS(Memory, Signatures_retrieved,);
|
|
|
|
|
RTABMAP_STATS(Memory, Images_buffered,);
|
2013-12-11 00:12:44 +00:00
|
|
|
RTABMAP_STATS(Memory, Rehearsal_sim,);
|
2015-08-28 23:05:45 -04:00
|
|
|
RTABMAP_STATS(Memory, Rehearsal_id,);
|
2013-12-11 00:12:44 +00:00
|
|
|
RTABMAP_STATS(Memory, Rehearsal_merged,);
|
2015-05-03 18:16:55 -04:00
|
|
|
RTABMAP_STATS(Memory, Local_graph_size,);
|
2015-09-14 11:31:26 -04:00
|
|
|
RTABMAP_STATS(Memory, Small_movement,);
|
2017-09-28 13:34:55 -04:00
|
|
|
RTABMAP_STATS(Memory, Fast_movement,);
|
2017-01-03 21:05:00 -05:00
|
|
|
RTABMAP_STATS(Memory, Odometry_variance_ang,);
|
|
|
|
|
RTABMAP_STATS(Memory, Odometry_variance_lin,);
|
2015-10-13 16:57:02 -04:00
|
|
|
RTABMAP_STATS(Memory, Distance_travelled, m);
|
Update 0.15.4.
Parameters:
-Added "GridGlobal/MaxNodes=0", "Rtabmap/PublishRAMUsage=false", "Mem/DepthAsMask=true", "Kp/FlannRebalancingFactor=2.0", "Vis/DepthAsMask=true".
-Modified "Kp/DetectorStrategy=6", "Kp/MaxFeatures=500", "Mem/UseOdomFeatures=true", "GFTT/QualityLevel=0.001", "GFTT/MinDistance=3", "RGBD/OptimizeMaxError=1", "RGBD/ProximityPathFilteringRadius=1", "Odom/GuessMotion=true", "Odom/VisKeyFrameThr=150", "OdomF2M/BundleAdjustment=1", "Vis/Iterations=300" if built with g2o, "OdomF2M/BundleAdjustmentMaxFrames=10", "OdomFovis/MinFeaturesForEstimate=20", "OdomORBSLAM2/MapSize=3000", "Reg/RepeatOnce=true", "Vis/PnPRefineIterations=0" if built with g2o, "Vis/CorGuessMatchToProjection=true", "Vis/BundleAdjustment=1" if built with g2o, "Icp/MaxCorrespondenceDistance=0.1", "Icp/PointToPlaneK=5", "Icp/PointToPlaneRadius=1", "Icp/PM=true" if built with libpointmatcher, "Stereo/MaxLevel=5", "Stereo/MinDisparity=0.5".
BayesFilter: optimized prediction matrix update. Use of new argument "ignoreLocalSpaceLoopIds" of Memory::getNeighborsId() to ignore loop closure link by space in prediction update.
CameraThread: Added stereo exposure compensation option.
CameraRGB: Added forceGroundNormalsUp option and added support of ground truth from EuRoC dataset.
Statistics: Added "Memory/RAM_usage/MB".
Transform: Added clone() method to do deep copy.
Graph::importPoses(): EuRoC format support (9).
Rtabmap: Local visual loop closures are now identified as GlobalClosure link type.
OccupancyGrid/OctoMap: updated how cache is used (old node retrieved can be re-added to map without re-assembling the whole map).
OdometryF2F: when using ICP, increasing correspondence distance for first two frames. If Vis/CorType=1 and registration fails, second guess without motion is done with Vis/CorType=0.
OdometryF2M/RegVis: updated how features are removed from the map, using new projectedIDs filled in RegistrationInfo by RegistrationVis.
OdometryORBSLAM2: Maximum size of the feature map can be set with "OdomORBSLAM2/MapSize" parameter.
CloudViewer: fixed opengl camera drifting in follow mode.
DatabaseViewer: Added optimization scale option. ConstraintsView: hide loop closure links if type is ignored in gui parameters.
MainWindow: Support of "GridGlobal/MaxNodes" parameters when updating the maps.
UPlot: don't show ellipses when not in graphics view mode, updated how "random" colors are attributed to curves
Added rtabmap-euroc_dataset tool. Updated rtabmap-kitti_dataset and rtabmap-rgbd_dataset tools.
Added rtabmap-reprocess tool.
2018-02-01 22:17:46 -05:00
|
|
|
RTABMAP_STATS(Memory, RAM_usage, MB);
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
RTABMAP_STATS(Timing, Memory_update, ms);
|
2015-11-26 16:22:46 -05:00
|
|
|
RTABMAP_STATS(Timing, Neighbor_link_refining, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Proximity_by_time, ms);
|
2018-02-20 17:33:48 -05:00
|
|
|
RTABMAP_STATS(Timing, Proximity_by_space_visual, ms);
|
2015-11-26 16:22:46 -05:00
|
|
|
RTABMAP_STATS(Timing, Proximity_by_space, ms);
|
2013-02-03 22:12:02 +00:00
|
|
|
RTABMAP_STATS(Timing, Cleaning_neighbors, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Reactivation, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Add_loop_closure_link, ms);
|
2013-12-11 00:12:44 +00:00
|
|
|
RTABMAP_STATS(Timing, Map_optimization, ms);
|
2013-02-03 22:12:02 +00:00
|
|
|
RTABMAP_STATS(Timing, Likelihood_computation, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Posterior_computation, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Hypotheses_creation, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Hypotheses_validation, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Statistics_creation, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Memory_cleanup, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Total, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Forgetting, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Joining_trash, ms);
|
|
|
|
|
RTABMAP_STATS(Timing, Emptying_trash, ms);
|
|
|
|
|
|
2013-12-11 00:12:44 +00:00
|
|
|
RTABMAP_STATS(TimingMem, Pre_update, ms);
|
|
|
|
|
RTABMAP_STATS(TimingMem, Signature_creation, ms);
|
|
|
|
|
RTABMAP_STATS(TimingMem, Rehearsal, ms);
|
2014-10-20 02:14:31 +00:00
|
|
|
RTABMAP_STATS(TimingMem, Keypoints_detection, ms);
|
2015-04-23 22:01:41 -04:00
|
|
|
RTABMAP_STATS(TimingMem, Subpixel, ms);
|
2014-10-20 02:14:31 +00:00
|
|
|
RTABMAP_STATS(TimingMem, Stereo_correspondences, ms);
|
|
|
|
|
RTABMAP_STATS(TimingMem, Descriptors_extraction, ms);
|
|
|
|
|
RTABMAP_STATS(TimingMem, Keypoints_3D, ms);
|
|
|
|
|
RTABMAP_STATS(TimingMem, Joining_dictionary_update, ms);
|
|
|
|
|
RTABMAP_STATS(TimingMem, Add_new_words, ms);
|
|
|
|
|
RTABMAP_STATS(TimingMem, Compressing_data, ms);
|
2016-08-14 19:19:32 -04:00
|
|
|
RTABMAP_STATS(TimingMem, Post_decimation, ms);
|
2018-02-16 19:20:54 -05:00
|
|
|
RTABMAP_STATS(TimingMem, Scan_filtering, ms);
|
2016-08-14 19:19:32 -04:00
|
|
|
RTABMAP_STATS(TimingMem, Occupancy_grid, ms);
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
RTABMAP_STATS(Keypoint, Dictionary_size, words);
|
2015-09-09 12:08:51 -04:00
|
|
|
RTABMAP_STATS(Keypoint, Indexed_words, words);
|
|
|
|
|
RTABMAP_STATS(Keypoint, Index_memory_usage, KB);
|
2013-02-03 22:12:02 +00:00
|
|
|
|
2017-11-09 12:03:01 -05:00
|
|
|
RTABMAP_STATS(Gt, Translational_rmse, m);
|
|
|
|
|
RTABMAP_STATS(Gt, Translational_mean, m);
|
|
|
|
|
RTABMAP_STATS(Gt, Translational_median, m);
|
|
|
|
|
RTABMAP_STATS(Gt, Translational_std, m);
|
|
|
|
|
RTABMAP_STATS(Gt, Translational_min, m);
|
|
|
|
|
RTABMAP_STATS(Gt, Translational_max, m);
|
|
|
|
|
RTABMAP_STATS(Gt, Rotational_rmse, deg);
|
|
|
|
|
RTABMAP_STATS(Gt, Rotational_mean, deg);
|
|
|
|
|
RTABMAP_STATS(Gt, Rotational_median, deg);
|
|
|
|
|
RTABMAP_STATS(Gt, Rotational_std, deg);
|
|
|
|
|
RTABMAP_STATS(Gt, Rotational_min, deg);
|
|
|
|
|
RTABMAP_STATS(Gt, Rotational_max, deg);
|
|
|
|
|
|
2013-02-03 22:12:02 +00:00
|
|
|
public:
|
|
|
|
|
static const std::map<std::string, float> & defaultData();
|
2016-09-20 11:19:34 -04:00
|
|
|
static std::string serializeData(const std::map<std::string, float> & data);
|
|
|
|
|
static std::map<std::string, float> deserializeData(const std::string & data);
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
Statistics();
|
|
|
|
|
virtual ~Statistics();
|
|
|
|
|
|
|
|
|
|
// name format = "Grp/Name/unit"
|
|
|
|
|
void addStatistic(const std::string & name, float value);
|
|
|
|
|
|
|
|
|
|
// setters
|
|
|
|
|
void setExtended(bool extended) {_extended = extended;}
|
|
|
|
|
void setRefImageId(int refImageId) {_refImageId = refImageId;}
|
|
|
|
|
void setLoopClosureId(int loopClosureId) {_loopClosureId = loopClosureId;}
|
2016-03-11 17:54:01 -05:00
|
|
|
void setProximityDetectionId(int id) {_proximiyDetectionId = id;}
|
2016-07-17 19:58:32 -04:00
|
|
|
void setStamp(double stamp) {_stamp = stamp;}
|
2014-01-08 16:11:00 +00:00
|
|
|
|
2015-05-30 20:05:35 -04:00
|
|
|
void setSignatures(const std::map<int, Signature> & signatures) {_signatures = signatures;}
|
2014-01-08 16:11:00 +00:00
|
|
|
|
2013-12-11 00:12:44 +00:00
|
|
|
void setPoses(const std::map<int, Transform> & poses) {_poses = poses;}
|
2014-02-11 23:04:22 +00:00
|
|
|
void setConstraints(const std::multimap<int, Link> & constraints) {_constraints = constraints;}
|
2013-12-11 00:12:44 +00:00
|
|
|
void setMapCorrection(const Transform & mapCorrection) {_mapCorrection = mapCorrection;}
|
|
|
|
|
void setLoopClosureTransform(const Transform & loopClosureTransform) {_loopClosureTransform = loopClosureTransform;}
|
2013-02-03 22:12:02 +00:00
|
|
|
void setWeights(const std::map<int, int> & weights) {_weights = weights;}
|
|
|
|
|
void setPosterior(const std::map<int, float> & posterior) {_posterior = posterior;}
|
|
|
|
|
void setLikelihood(const std::map<int, float> & likelihood) {_likelihood = likelihood;}
|
|
|
|
|
void setRawLikelihood(const std::map<int, float> & rawLikelihood) {_rawLikelihood = rawLikelihood;}
|
2015-02-03 11:09:10 -05:00
|
|
|
void setLocalPath(const std::vector<int> & localPath) {_localPath=localPath;}
|
2015-05-03 18:16:55 -04:00
|
|
|
void setCurrentGoalId(int goal) {_currentGoalId=goal;}
|
2015-10-24 17:03:44 -04:00
|
|
|
void setReducedIds(const std::map<int, int> & reducedIds) {_reducedIds = reducedIds;}
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
// getters
|
|
|
|
|
bool extended() const {return _extended;}
|
|
|
|
|
int refImageId() const {return _refImageId;}
|
|
|
|
|
int loopClosureId() const {return _loopClosureId;}
|
2016-03-11 17:54:01 -05:00
|
|
|
int proximityDetectionId() const {return _proximiyDetectionId;}
|
2016-07-17 19:58:32 -04:00
|
|
|
double stamp() const {return _stamp;}
|
2014-01-08 16:11:00 +00:00
|
|
|
|
2015-05-30 20:05:35 -04:00
|
|
|
const std::map<int, Signature> & getSignatures() const {return _signatures;}
|
2014-01-08 16:11:00 +00:00
|
|
|
|
2013-12-11 00:12:44 +00:00
|
|
|
const std::map<int, Transform> & poses() const {return _poses;}
|
2014-02-11 23:04:22 +00:00
|
|
|
const std::multimap<int, Link> & constraints() const {return _constraints;}
|
2013-12-11 00:12:44 +00:00
|
|
|
const Transform & mapCorrection() const {return _mapCorrection;}
|
|
|
|
|
const Transform & loopClosureTransform() const {return _loopClosureTransform;}
|
2013-02-03 22:12:02 +00:00
|
|
|
const std::map<int, int> & weights() const {return _weights;}
|
|
|
|
|
const std::map<int, float> & posterior() const {return _posterior;}
|
|
|
|
|
const std::map<int, float> & likelihood() const {return _likelihood;}
|
|
|
|
|
const std::map<int, float> & rawLikelihood() const {return _rawLikelihood;}
|
2015-02-03 11:09:10 -05:00
|
|
|
const std::vector<int> & localPath() const {return _localPath;}
|
2015-05-03 18:16:55 -04:00
|
|
|
int currentGoalId() const {return _currentGoalId;}
|
2015-10-24 17:03:44 -04:00
|
|
|
const std::map<int, int> & reducedIds() const {return _reducedIds;}
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
const std::map<std::string, float> & data() const {return _data;}
|
|
|
|
|
|
|
|
|
|
private:
|
2013-12-11 00:12:44 +00:00
|
|
|
bool _extended; // 0 -> only loop closure and last signature ID fields are filled
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
int _refImageId;
|
|
|
|
|
int _loopClosureId;
|
2016-03-11 17:54:01 -05:00
|
|
|
int _proximiyDetectionId;
|
2016-07-17 19:58:32 -04:00
|
|
|
double _stamp;
|
2013-02-03 22:12:02 +00:00
|
|
|
|
2015-05-30 20:05:35 -04:00
|
|
|
std::map<int, Signature> _signatures;
|
2013-12-11 00:12:44 +00:00
|
|
|
|
|
|
|
|
std::map<int, Transform> _poses;
|
2014-02-11 23:04:22 +00:00
|
|
|
std::multimap<int, Link> _constraints;
|
2013-12-11 00:12:44 +00:00
|
|
|
Transform _mapCorrection;
|
|
|
|
|
Transform _loopClosureTransform;
|
2013-02-03 22:12:02 +00:00
|
|
|
|
|
|
|
|
std::map<int, int> _weights;
|
|
|
|
|
std::map<int, float> _posterior;
|
|
|
|
|
std::map<int, float> _likelihood;
|
|
|
|
|
std::map<int, float> _rawLikelihood;
|
|
|
|
|
|
2015-02-03 11:09:10 -05:00
|
|
|
std::vector<int> _localPath;
|
2015-05-03 18:16:55 -04:00
|
|
|
int _currentGoalId;
|
2015-02-03 11:09:10 -05:00
|
|
|
|
2015-10-24 17:03:44 -04:00
|
|
|
std::map<int, int> _reducedIds;
|
|
|
|
|
|
2013-02-03 22:12:02 +00:00
|
|
|
// Format for statistics (Plottable statistics must go in that map) :
|
|
|
|
|
// {"Group/Name/Unit", value}
|
|
|
|
|
// Example : {"Timing/Total time/ms", 500.0f}
|
|
|
|
|
std::map<std::string, float> _data;
|
|
|
|
|
static std::map<std::string, float> _defaultData;
|
|
|
|
|
static bool _defaultDataInitialized;
|
|
|
|
|
// end extended data
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}// end namespace rtabmap
|
|
|
|
|
|
|
|
|
|
#endif /* STATISTICS_H_ */
|