DataRecorder: fixed record in RAM option.

This commit is contained in:
matlabbe
2026-01-31 13:33:23 -08:00
parent 040de14ec8
commit e23c38f471
2 changed files with 16 additions and 6 deletions
+6 -4
View File
@@ -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))
+10 -2
View File
@@ -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)