mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 00:57:46 +08:00
110 lines
2.5 KiB
Matlab
110 lines
2.5 KiB
Matlab
|
|
clear all
|
|
close all
|
|
|
|
# sudo apt install octave-signal
|
|
pkg load signal
|
|
|
|
# Use with files generated by export_stats.sh
|
|
|
|
dataDir = 'SET_PATH_TO_RESULTS_DIR';
|
|
prefix = 'Stat';
|
|
|
|
dataset = 6
|
|
sep = [0, 1000, 3000, 5000, 7000, 9000, 12000];
|
|
sepName = {'16:51', '17:31', '17:58', '18:30', '18:59', '19:42'};
|
|
|
|
statName = strrep('Loop/Distance_since_last_loc/','/','-');
|
|
|
|
data = dlmread([dataDir '/' prefix num2str(dataset) '-' statName '.txt'], '\t', 1, 0, "emptyvalue", 0);
|
|
|
|
sessions = size(data,2)-1
|
|
|
|
j = 1 % session #
|
|
x3 = data(:,1);
|
|
y3 = data(:,11);
|
|
y3 = y3(x3>=sep(j) & x3<=sep(j+1), :);
|
|
x3 = x3(x3>=sep(j) & x3<=sep(j+1), :);
|
|
|
|
max = 0;
|
|
for i=2:length(y3)
|
|
if isfinite(y3(i)) && isfinite(y3(i-1)) && (x3(i) - x3(i-1) < 1.5)
|
|
v = y3(i);
|
|
if v>max
|
|
max = v
|
|
endif
|
|
endif
|
|
endfor
|
|
xb = max/2:max:5;
|
|
[nn3, xx3] = hist (y3, xb);
|
|
nn3 = nn3/length(x3);
|
|
nn3(nn3==0) = NaN;
|
|
|
|
for j=1:6
|
|
|
|
x{j} = data(:,1);
|
|
y{j} = data(:,2);
|
|
y{j} = y{j}(x{j}>=sep(j) & x{j}<=sep(j+1), :);
|
|
x{j} = x{j}(x{j}>=sep(j) & x{j}<=sep(j+1), :);
|
|
[nn{j}, xx{j}] = hist (y{j}, xb);
|
|
%nn{j} = nn{j}/length(x{j});
|
|
%nn{j} = nn{j}/sum(nn{j});
|
|
|
|
for k=length(nn{j}):-1:1
|
|
if nn{j}(k) != 0
|
|
break;
|
|
else
|
|
nn{j}(k) = NaN;
|
|
endif
|
|
endfor
|
|
|
|
endfor
|
|
|
|
j = 6 % session #
|
|
x4 = data(:,1);
|
|
y4 = data(:,12);
|
|
y4 = y4(x4>=sep(j) & x4<=sep(j+1), :);
|
|
x4 = x4(x4>=sep(j) & x4<=sep(j+1), :);
|
|
[nn4, xx4] = hist (y4, xb);
|
|
nn4 = nn4/length(x4);
|
|
nn4(nn4==0) = NaN;
|
|
|
|
figure
|
|
hold on
|
|
%plot(x1,y1, '.-');
|
|
%plot(x2-x2(1),y2, '.-');
|
|
plot(x3-x3(1),y3, '.-');
|
|
%plot(x4-x4(1),y4, '.-');
|
|
%legend('Map1 -> LocA', 'Map1 -> LocF', 'Map1+2+3+4+5+6 -> LocF', 'Map1-2-3-4-5-6 -> LocF')
|
|
legend('Map1+2+3+4+5+6 -> LocA')
|
|
xlabel('Time')
|
|
ylabel('m')
|
|
title('Distance since last loc')
|
|
|
|
figure
|
|
hold on
|
|
%plot(x1,y1, '.-');
|
|
%plot(x2-x2(1),y2, '.-');
|
|
plot(x{6}-x{6}(1),y{6}, '.-');
|
|
%plot(x4-x4(1),y4, '.-');
|
|
%legend('Map1 -> LocA', 'Map1 -> LocF', 'Map1+2+3+4+5+6 -> LocF', 'Map1-2-3-4-5-6 -> LocF')
|
|
legend('Map1 -> LocF')
|
|
xlabel('Time')
|
|
ylabel('m')
|
|
title('Distance since last loc')
|
|
|
|
figure
|
|
hold on
|
|
for j=1:6
|
|
plot(xx{j},nn{j}, '-', 'linewidth', 3)
|
|
endfor
|
|
%plot(xx3,nn3, '.-', 'linewidth', 3)
|
|
%plot(xx4,nn4, '.-', 'linewidth', 3)
|
|
%legend('Loc-F', 'Loc-E', 'Loc-D', 'Loc-C', 'Loc-B', 'Loc-A')
|
|
legend('A-16:51', 'B-17:31', 'C-17:58', 'D-18:30', 'E-18:59', 'F-19:42', 'Map1+2+3+4+5+6 -> LocF', 'Map1-2-3-4-5-6 -> LocF')
|
|
%h = get(gca,'Children');
|
|
%set(gca,'Children',[h(6) h(5) h(4) h(3) h(2) h(1)])
|
|
%set(gca, 'YScale', 'log')
|
|
xlabel(['Distance not localized (m) Step ' num2str(max) ' m'])
|
|
ylabel('Re-Localization Probability on Map 1 (16:46)')
|