MERGE branch STM 325:449 into trunk

git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@450 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
matlabbe
2012-03-03 01:46:30 +00:00
parent c4aff5f20a
commit a2eb8bcab6
100 changed files with 76652 additions and 5164 deletions

View File

@@ -1,4 +1,5 @@
function [LogF LogI] = showlogs(PathPrefix, GT_file)
% [LogF LogI] = showlogs(PathPrefix, GT_file)
% SHOWLOGS Plot a RTAB-Map results (LogI.txt, LogF.txt). Just put this
% file in the same directory as LogF.txt and LogI.txt files
% generated by RTAB-Map (RTAB-Map's working directory). The files
@@ -46,13 +47,15 @@ LogF = importfile([PathPrefix '/' 'LogF.txt']);
% 14 mean likelihood
% 15 stddev likelihood
% 16 vp hypothesis
% 17 timeEmtyingTrash
% 17 timeJoiningTrash
% 18 rehearsalValue
% 19 timeEmptyingTrash
% 20 timeRetrievalDbAccess
LogI = importfile([PathPrefix '/' 'LogI.txt']);
% COLUMN HEADERS :
% 1 lcHypothesisId,
% 2 mostLikelihoodId,
% 2 highestHypothesisId,
% 3 signaturesRemoved,
% 4 hessianThr,
% 5 wordsNewSign,
@@ -94,16 +97,16 @@ end
% xlabel('Location indexes')
figure
plot(sum(LogF(:,2:7),2)*1000);
plot((sum(LogF(:,2:7),2)+LogF(:,17))*1000);
hold on
ylabel('Time (ms)')
xlabel('Location indexes')
%meanTime = mean(LogF(:,1))*1000
%plot([1 length(LogF(:,1))], [700 700], 'r')
%plot([1 length(LogF(:,1))], [1000 1000], 'k')
%legend('Processing time', 'Time limit', 'Acquisition rate (1 Hz)')
meanTime = mean(LogF(:,1))*1000
plot([1 length(LogF(:,1))], [700 700], 'r')
plot([1 length(LogF(:,1))], [1000 1000], 'k--')
legend('Processing time', 'Time limit', 'Acquisition rate (1 Hz)')
maxTime = max(sum(LogF(:,2:7),2))
maxTime = max(sum(LogF(:,2:7),2)+LogF(:,17))
maxDict = max(LogI(:, 6))
maxWM = max(LogI(:,7))
%%
@@ -142,14 +145,14 @@ title('timeStatsCreation (ms)')
if size(LogF, 2) > 16
subplot(8,1,8)
plot(LogF(:,17)*1000)
title('timeEmptyingTrash (ms)')
title('timeJoiningTrash (ms)')
end
xlabel('Location indexes')
% -------------------------
%% -------------------------
figure
plot([LogF(:,2) sum(LogF(:,2:3),2) sum(LogF(:,2:4),2) sum(LogF(:,2:5),2) sum(LogF(:,2:6),2) sum(LogF(:,2:7),2) sum(LogF(:,2:8),2)]);
legend('timeMemoryUpdate', 'timeReactivations', 'timeLikelihoodCalculation', 'timePosteriorCalculation', 'timeHypothesesCreation', 'timeHypothesesValidation', 'timeRealTimeLimitReachedProcess')
plot([LogF(:,2) sum(LogF(:,2:3),2) sum(LogF(:,2:4),2) sum(LogF(:,2:5),2) sum(LogF(:,2:6),2) sum(LogF(:,2:7),2) sum(LogF(:,2:8),2), sum(LogF(:,2:8),2)+LogF(:,17)]);
legend('timeMemoryUpdate', 'timeReactivations', 'timeLikelihoodCalculation', 'timePosteriorCalculation', 'timeHypothesesCreation', 'timeHypothesesValidation', 'timeRealTimeLimitReachedProcess', 'timeJoiningTrash')
title('Process time details')
ylabel('s')
xlabel('Location indexes')
@@ -164,7 +167,7 @@ plot(LogI(:,11),'.')
ylabel('Locations reactivated')
xlabel('Location indexes')
% -------------------------
%% -------------------------
figure
subplot(211)
plot(LogI(:, 6));
@@ -172,7 +175,7 @@ title('dictionary size')
ylabel('words')
subplot(212)
plot([LogI(:, 9)/1000000 LogI(:, 10)/1000000]);
plot([LogI(:, 9) LogI(:, 10)]);
title('Memory usage (in MB)')
legend('Process', 'Database')
ylabel('MB')
@@ -197,9 +200,19 @@ meanDict = mean(LogI(:,6))
% xlabel('Location indexes')
meanWordsPerSign = mean(LogI(:,5))
%% -------------------------
figure
subplot(211)
plot(LogF(:,20) + LogF(:,17)); %17 join or 19 empty trash
ylabel('Time (s)')
xlabel('Location indexes')
subplot(212)
plot(LogI(:,7));
ylabel('WM size (locations)')
xlabel('Location indexes')
% -------------------------
%% -------------------------
% Detected/Accepted/Rejected loop closures
figure;
@@ -322,7 +335,7 @@ lcRejected = sum(LogI(:, 8) == 1)
%Precision-Recall graph
GroundTruthFile = [GT_file];
if ~isempty(GT_file) && exist(GroundTruthFile, 'file')
PR = getPrecisionRecall(LogI, LogF, GroundTruthFile, 1.0);
PR = getPrecisionRecall(LogI, LogF, GroundTruthFile, 0.09);
Precision = PR(:,1);
Recall = PR(:,2);