report: added --ignore_inter_nodes option. CloudViewer: set max absolute scan intensity to 100 (was 0=auto). reprocess/replay db: ignore intermediate nodes if Rtabmap/CreateIntermediateNodes is false.

This commit is contained in:
matlabbe
2021-06-21 17:23:53 -04:00
parent f475f2d21c
commit 5167927d01
11 changed files with 57 additions and 19 deletions

View File

@@ -78,6 +78,7 @@ void showUsage()
" session for 1=min,2=max,4=mean,8=stddev,16=total,32=nonnull%%\n"
" --loc_delay # Delay to split sessions for localization statistics (default 60 seconds)\n"
" (it is a mask, we can combine those numbers, e.g., 63 for all) \n"
" --ignore_inter_nodes Ignore intermediate poses and statistics.\n"
" --help Show usage\n\n");
exit(1);
}
@@ -135,6 +136,7 @@ int main(int argc, char * argv[])
bool outputLoopAccuracy = false;
bool showAvailableStats = false;
bool invertFigures = false;
bool ignoreInterNodes = false;
bool useIds = false;
int startId = 0;
bool exportFigures = false;
@@ -191,6 +193,10 @@ int main(int argc, char * argv[])
{
useIds = true;
}
else if(strcmp(argv[i],"--ignore_inter_nodes") == 0)
{
ignoreInterNodes = true;
}
else if(strcmp(argv[i],"--export") == 0)
{
exportFigures = true;
@@ -372,7 +378,7 @@ int main(int argc, char * argv[])
params = driver->getLastParameters();
ULogger::setLevel(ULogger::kWarning);
std::set<int> ids;
driver->getAllNodeIds(ids);
driver->getAllNodeIds(ids, false, false, ignoreInterNodes);
std::map<int, std::pair<std::map<std::string, float>, double> > stats = driver->getAllStatistics();
std::map<int, Transform> odomPoses, gtPoses;
std::map<int, double> odomStamps;

View File

@@ -505,10 +505,12 @@ int main(int argc, char * argv[])
bool incrementalMemory = Parameters::defaultMemIncrementalMemory();
Parameters::parse(parameters, Parameters::kMemIncrementalMemory(), incrementalMemory);
Parameters::parse(parameters, Parameters::kDbTargetVersion(), targetVersion);
bool intermediateNodes = Parameters::defaultRtabmapCreateIntermediateNodes();
Parameters::parse(parameters, Parameters::kRtabmapCreateIntermediateNodes(), intermediateNodes);
int totalIds = 0;
std::set<int> ids;
dbDriver->getAllNodeIds(ids);
dbDriver->getAllNodeIds(ids, false, false, !intermediateNodes);
if(ids.empty())
{
printf("Input database doesn't have any nodes saved in it.\n");
@@ -532,7 +534,7 @@ int main(int argc, char * argv[])
return -1;
}
ids.clear();
dbDriver->getAllNodeIds(ids);
dbDriver->getAllNodeIds(ids, false, false, !intermediateNodes);
totalIds += ids.size();
dbDriver->closeConnection(false);
}
@@ -567,7 +569,7 @@ int main(int argc, char * argv[])
bool rgbdEnabled = Parameters::defaultRGBDEnabled();
Parameters::parse(parameters, Parameters::kRGBDEnabled(), rgbdEnabled);
bool odometryIgnored = !rgbdEnabled;
DBReader * dbReader = new DBReader(inputDatabasePath, useDatabaseRate?-1:0, odometryIgnored, false, false, startId, -1, stopId);
DBReader * dbReader = new DBReader(inputDatabasePath, useDatabaseRate?-1:0, odometryIgnored, false, false, startId, -1, stopId, !intermediateNodes);
dbReader->init();
OccupancyGrid grid(parameters);