mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-04 00:37:46 +08:00
minor refactoring...
git-svn-id: http://rtabmap.googlecode.com/svn/branches/0.3/rtabmap@78 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
@@ -111,6 +111,8 @@ private:
|
|||||||
virtual void killCleanup();
|
virtual void killCleanup();
|
||||||
virtual void startInit();
|
virtual void startInit();
|
||||||
void process();
|
void process();
|
||||||
|
void resetMemory();
|
||||||
|
void deleteMemory();
|
||||||
void addSMState(SMState * data); // ownership is transferred
|
void addSMState(SMState * data); // ownership is transferred
|
||||||
SMState * getSMState();
|
SMState * getSMState();
|
||||||
void setupLogFiles();
|
void setupLogFiles();
|
||||||
|
|||||||
+36
-31
@@ -445,23 +445,7 @@ void Rtabmap::mainLoop()
|
|||||||
this->parseParameters(parameters);
|
this->parseParameters(parameters);
|
||||||
break;
|
break;
|
||||||
case kStateReseting:
|
case kStateReseting:
|
||||||
if(_memory)
|
this->resetMemory();
|
||||||
{
|
|
||||||
if(_memory)
|
|
||||||
{
|
|
||||||
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing));
|
|
||||||
_memory->init(DB_TYPE, _wDir + DB_NAME);
|
|
||||||
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitialized));
|
|
||||||
}
|
|
||||||
if(_bayesFilter)
|
|
||||||
{
|
|
||||||
_bayesFilter->reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_reactivateId = 0;
|
|
||||||
_highestHypothesisValue = 0;
|
|
||||||
_spreadMargin = 0;
|
|
||||||
this->setupLogFiles();
|
|
||||||
break;
|
break;
|
||||||
case kStateDumpingMemory:
|
case kStateDumpingMemory:
|
||||||
if(_memory)
|
if(_memory)
|
||||||
@@ -483,6 +467,38 @@ void Rtabmap::mainLoop()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kStateDeletingMemory:
|
case kStateDeletingMemory:
|
||||||
|
this->deleteMemory();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
uSleep(100);
|
||||||
|
ULOGGER_ERROR("not supposed to be here...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Rtabmap::resetMemory()
|
||||||
|
{
|
||||||
|
if(_memory)
|
||||||
|
{
|
||||||
|
if(_memory)
|
||||||
|
{
|
||||||
|
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing));
|
||||||
|
_memory->init(DB_TYPE, _wDir + DB_NAME);
|
||||||
|
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitialized));
|
||||||
|
}
|
||||||
|
if(_bayesFilter)
|
||||||
|
{
|
||||||
|
_bayesFilter->reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_reactivateId = 0;
|
||||||
|
_highestHypothesisValue = 0;
|
||||||
|
_spreadMargin = 0;
|
||||||
|
this->setupLogFiles();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Rtabmap::deleteMemory()
|
||||||
|
{
|
||||||
if(_memory)
|
if(_memory)
|
||||||
{
|
{
|
||||||
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing));
|
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing));
|
||||||
@@ -501,22 +517,11 @@ void Rtabmap::mainLoop()
|
|||||||
_highestHypothesisValue = 0;
|
_highestHypothesisValue = 0;
|
||||||
_spreadMargin = 0;
|
_spreadMargin = 0;
|
||||||
this->setupLogFiles();
|
this->setupLogFiles();
|
||||||
break;
|
|
||||||
default:
|
|
||||||
uSleep(100);
|
|
||||||
ULOGGER_ERROR("not supposed to be here...");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Rtabmap::handleEvent(UEvent* event)
|
void Rtabmap::handleEvent(UEvent* event)
|
||||||
{
|
{
|
||||||
if(this->isKilled())
|
if(this->isRunning())
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(_state.empty()) // If empty, RTAB-Map is detecting
|
|
||||||
{
|
{
|
||||||
if(event->getClassName().compare("SMStateEvent") == 0)
|
if(event->getClassName().compare("SMStateEvent") == 0)
|
||||||
{
|
{
|
||||||
@@ -525,7 +530,7 @@ void Rtabmap::handleEvent(UEvent* event)
|
|||||||
this->addSMState(data);
|
this->addSMState(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(event->getClassName().compare("RtabmapEventCmd") == 0)
|
else if(event->getClassName().compare("RtabmapEventCmd") == 0)
|
||||||
{
|
{
|
||||||
RtabmapEventCmd * rtabmapEvent = (RtabmapEventCmd*)event;
|
RtabmapEventCmd * rtabmapEvent = (RtabmapEventCmd*)event;
|
||||||
RtabmapEventCmd::Cmd cmd = rtabmapEvent->getCmd();
|
RtabmapEventCmd::Cmd cmd = rtabmapEvent->getCmd();
|
||||||
@@ -568,7 +573,7 @@ void Rtabmap::handleEvent(UEvent* event)
|
|||||||
pushNewState(kStateDeletingMemory);
|
pushNewState(kStateDeletingMemory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(event->getClassName().compare("ParamEvent") == 0)
|
else if(event->getClassName().compare("ParamEvent") == 0)
|
||||||
{
|
{
|
||||||
ULOGGER_DEBUG("changing parameters");
|
ULOGGER_DEBUG("changing parameters");
|
||||||
pushNewState(kStateChangingParameters, ((ParamEvent*)event)->getParameters());
|
pushNewState(kStateChangingParameters, ((ParamEvent*)event)->getParameters());
|
||||||
|
|||||||
Reference in New Issue
Block a user