mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-03 10:00:23 +08:00
Added confidence threshold parameter
git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@310 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
@@ -133,6 +133,7 @@ class RTABMAP_EXP Parameters
|
||||
RTABMAP_PARAM(Rtabmap, MaxRetrieved, unsigned int, 2); // Maximum locations retrieved at the same time from LTM
|
||||
RTABMAP_PARAM(Rtabmap, ActionsByTime, bool, false); // Select next actions using directly the more recent neighbor of the current node, otherwise, highest hypothesis is used
|
||||
RTABMAP_PARAM(Rtabmap, ActionsSentRejectHyp, bool, false); // Actions sent also on rejected hypotheses (on decreasing hypotheses)
|
||||
RTABMAP_PARAM(Rtabmap, ConfidenceThr, float, 0.0); // Actions are not sent when the loop closure hypothesis is under the confidence threshold
|
||||
|
||||
// Hypotheses selection
|
||||
RTABMAP_PARAM(Rtabmap, LoopThr, float, 0.10); // Loop closing threshold
|
||||
|
||||
@@ -135,6 +135,7 @@ private:
|
||||
unsigned int _maxRetrieved;
|
||||
bool _actionsByTime;
|
||||
bool _actionsSentRejectHyp;
|
||||
float _confidenceThr;
|
||||
|
||||
int _lcHypothesisId;
|
||||
int _reactivateId;
|
||||
|
||||
@@ -65,6 +65,7 @@ Rtabmap::Rtabmap() :
|
||||
_maxRetrieved(Parameters::defaultRtabmapMaxRetrieved()),
|
||||
_actionsByTime(Parameters::defaultRtabmapActionsByTime()),
|
||||
_actionsSentRejectHyp(Parameters::defaultRtabmapActionsSentRejectHyp()),
|
||||
_confidenceThr(Parameters::defaultRtabmapConfidenceThr()),
|
||||
_lcHypothesisId(0),
|
||||
_reactivateId(0),
|
||||
_highestHypothesisValue(0),
|
||||
@@ -283,6 +284,10 @@ void Rtabmap::parseParameters(const ParametersMap & parameters)
|
||||
{
|
||||
_actionsSentRejectHyp = uStr2Bool(iter->second.c_str());
|
||||
}
|
||||
if((iter=parameters.find(Parameters::kRtabmapConfidenceThr())) != parameters.end())
|
||||
{
|
||||
_confidenceThr = std::atof(iter->second.c_str());
|
||||
}
|
||||
|
||||
// By default, we create our strategies if they are not already created.
|
||||
// If they already exists, we check the parameters if a change is requested
|
||||
@@ -946,7 +951,7 @@ void Rtabmap::process()
|
||||
}
|
||||
|
||||
// only send actions if rejectLoopReason!=3 (decreasing hypotheses)
|
||||
if(sLoop && (_actionsSentRejectHyp || !rejectedHypothesis))
|
||||
if(sLoop && (_actionsSentRejectHyp || !rejectedHypothesis) && (_highestHypothesisValue > _confidenceThr))
|
||||
{
|
||||
// select the actions of the neighbor with the highest
|
||||
// weight (select the more recent if some have the same weight)
|
||||
|
||||
Reference in New Issue
Block a user