mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-12 06:20:19 +08:00
DataRecorder: fixed record in RAM option.
This commit is contained in:
@@ -72,13 +72,15 @@ bool DataRecorder::init(const QString & path, bool recordInRAM)
|
||||
ParametersMap customParameters;
|
||||
customParameters.insert(ParametersPair(Parameters::kMemRehearsalSimilarity(), "1.0")); // deactivate rehearsal
|
||||
customParameters.insert(ParametersPair(Parameters::kKpMaxFeatures(), "-1")); // deactivate keypoints extraction
|
||||
customParameters.insert(ParametersPair(Parameters::kMemBinDataKept(), "true")); // to keep images
|
||||
customParameters.insert(ParametersPair(Parameters::kMemBinDataKept(), "true")); // make sure we keep images
|
||||
customParameters.insert(ParametersPair(Parameters::kMemMapLabelsAdded(), "false")); // don't create map labels
|
||||
customParameters.insert(ParametersPair(Parameters::kRGBDCreateOccupancyGrid(), "false")); // make sure we don't create local grids
|
||||
customParameters.insert(ParametersPair(Parameters::kMemBadSignaturesIgnored(), "true")); // make sure memory cleanup is done
|
||||
customParameters.insert(ParametersPair(Parameters::kMemIntermediateNodeDataKept(), "true"));
|
||||
if(!recordInRAM)
|
||||
customParameters.insert(ParametersPair(Parameters::kMemNotLinkedNodesKept(), "true")); // make sure we save every frame
|
||||
|
||||
if(recordInRAM)
|
||||
{
|
||||
customParameters.insert(ParametersPair(Parameters::kDbSqlite3InMemory(), "false"));
|
||||
customParameters.insert(ParametersPair(Parameters::kDbSqlite3InMemory(), "true"));
|
||||
}
|
||||
memory_ = new Memory();
|
||||
if(!memory_->init(path.toStdString(), true, customParameters))
|
||||
|
||||
@@ -52,7 +52,8 @@ void showUsage()
|
||||
" after modifying Source settings.\n"
|
||||
"Options:\n"
|
||||
" -debug Show debug log.\n"
|
||||
" -hide Don't display the current cloud recorded.\n");
|
||||
" -hide Don't display the current cloud recorded.\n"
|
||||
" -ram Record all frames in RAM before dumping on hard-drive on exit.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -105,6 +106,7 @@ int main (int argc, char * argv[])
|
||||
// parse arguments
|
||||
std::string fileName;
|
||||
bool show = true;
|
||||
bool recordInRAM = false;
|
||||
std::string configFile;
|
||||
|
||||
if(argc < 3)
|
||||
@@ -123,6 +125,11 @@ int main (int argc, char * argv[])
|
||||
show = false;
|
||||
continue;
|
||||
}
|
||||
if(strcmp(argv[i], "-ram") == 0)
|
||||
{
|
||||
recordInRAM = true;
|
||||
continue;
|
||||
}
|
||||
printf("Unrecognized option : %s\n", argv[i]);
|
||||
showUsage();
|
||||
}
|
||||
@@ -139,6 +146,7 @@ int main (int argc, char * argv[])
|
||||
|
||||
UINFO("Output = %s", fileName.c_str());
|
||||
UINFO("Show = %s", show?"true":"false");
|
||||
UINFO("RecordInRAM = %s", recordInRAM?"true":"false");
|
||||
UINFO("Config = %s", configFile.c_str());
|
||||
|
||||
app = new QApplication(argc, argv);
|
||||
@@ -207,7 +215,7 @@ int main (int argc, char * argv[])
|
||||
|
||||
DataRecorder recorder;
|
||||
|
||||
if(recorder.init(fileName.c_str()))
|
||||
if(recorder.init(fileName.c_str(), recordInRAM))
|
||||
{
|
||||
recorder.registerToEventsManager();
|
||||
if(show)
|
||||
|
||||
Reference in New Issue
Block a user