|
19 | 19 | };
|
20 | 20 | config.pose = ... % A list of ground truth
|
21 | 21 | [ ...
|
22 |
| - 1.50, 1.44, 0, 0, 0, tran_deg2rad(90.7); ... |
23 |
| - 1.50, 2.92, 0, 0, 0, tran_deg2rad(90.9); ... |
24 |
| - 1.58, 4.54, 0, 0, 0, tran_deg2rad(85.5); ... |
25 |
| - 3.01, 1.43, 0, 0, 0, tran_deg2rad(87.1); ... |
26 |
| - 3.05, 2.93, 0, 0, 0, tran_deg2rad(88.9); ... |
27 |
| - 3.09, 4.55, 0, 0, 0, tran_deg2rad(91.3); ... |
28 |
| - 4.50, 1.39, 0, 0, 0, tran_deg2rad(88.5); ... |
29 |
| - 4.53, 2.98, 0, 0, 0, tran_deg2rad(89.9); ... |
30 |
| - 4.51, 4.47, 0, 0, 0, tran_deg2rad(90.5); ... |
| 22 | + 1.50, 1.50, 0, 0, 0, tran_deg2rad(90.0); ... |
| 23 | + 1.50, 3.00, 0, 0, 0, tran_deg2rad(90.0); ... |
| 24 | + 1.50, 4.50, 0, 0, 0, tran_deg2rad(90.0); ... |
| 25 | + 3.00, 1.50, 0, 0, 0, tran_deg2rad(90.0); ... |
| 26 | + 3.00, 3.00, 0, 0, 0, tran_deg2rad(90.0); ... |
| 27 | + 3.00, 4.50, 0, 0, 0, tran_deg2rad(90.0); ... |
| 28 | + 4.50, 1.50, 0, 0, 0, tran_deg2rad(90.0); ... |
| 29 | + 4.50, 3.00, 0, 0, 0, tran_deg2rad(90.0); ... |
| 30 | + 4.50, 4.50, 0, 0, 0, tran_deg2rad(90.0); ... |
31 | 31 | ];
|
32 | 32 | config.algorithm = ... % Description of localization algorithms
|
33 | 33 | { ...
|
34 |
| - % #, Dim, Name, Local. Function, Observation Function, Min. N, Valid, Line Sytle; ... |
| 34 | + % #, Dim, Name, Local. Function, Observation Function, Min. N, Valid, Line Sytle; ... |
35 | 35 | 1, 2, 'Betke97', @localize2d_betke97, @observe_bearing, 3, [1 1 0 0 0 1], 'gd-'; ...
|
36 | 36 | 2, 2, 'Shim02-Alg', @localize2d_shimshoni02_algebraic, @observe_bearing, 3, [1 1 0 0 0 1], 'b--'; ...
|
37 | 37 | 3, 2, 'Shim02-Imp', @localize2d_shimshoni02_improved, @observe_bearing, 3, [1 1 0 0 0 1], 'b+-'; ...
|
38 | 38 | };
|
39 | 39 | config.matFile = 'run_eval_roh.mat';
|
40 | 40 |
|
41 |
| -criteria.name = {'Position Error [m]', 'Orientation Error [deg]', ... |
42 |
| - 'Computing Time [msec]', 'Number of Failures'}; % Name of evaluation criteria |
43 |
| -criteria.repr = {@median, @median, @median, @sum}; % Functions for calculating representive values |
44 |
| - % (e.g. mean, median, std, and sum) |
45 |
| -criteria.format = {'%.6f', '%.3f', '%.6f', '%d'}; % Format for printing text |
| 41 | +criteria.name = {'Position Error [m]', 'Orientation Error [deg]', 'Reprojection Error [deg]', ... |
| 42 | + 'Computing Time [msec]', 'Number of Failures'}; % Name of evaluation criteria |
| 43 | +criteria.repr = {@median, @median, @median, @median, @sum}; % Functions for calculating representive values |
| 44 | + % (e.g. mean, median, std, and sum) |
| 45 | +criteria.format = {'%.6f', '%.3f', '%.3f', '%.6f', '%d'}; % Format for printing text |
46 | 46 |
|
47 | 47 | % Perform experiments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
48 | 48 | config.algoDims = 2;
|
|
75 | 75 | elapse = toc * 1000; % [sec] to [msec]
|
76 | 76 | set.perf(1,1,m) = error_position(truth(1:3), pose(1:3));
|
77 | 77 | set.perf(1,2,m) = tran_rad2deg(error_orientation(truth(4:6), pose(4:6))); % [rad] to [deg]
|
78 |
| - set.perf(1,3,m) = elapse; |
79 |
| - set.perf(1,4,m) = ~isequal(valid, config.algorithm{m,config.algoVald}); |
| 78 | + projection = observe_bearing(map, pose); |
| 79 | + set.perf(1,3,m) = tran_rad2deg(norm(trim_rad(obsData - projection))); % [rad] to [deg] |
| 80 | + set.perf(1,4,m) = elapse; |
| 81 | + set.perf(1,5,m) = ~isequal(valid, config.algorithm{m,config.algoVald}); |
80 | 82 | set.pose(1,:,m) = pose;
|
81 | 83 | end
|
82 | 84 | record.perf{1,1} = [record.perf{1,1}; set.perf];
|
|
0 commit comments