Skip to content

Commit 1d34c8d

Browse files
committed
Revise the ground truth in Roh's angulation dataset
1 parent d18aee0 commit 1d34c8d

13 files changed

+23
-23
lines changed
Loading
Loading
Loading

dataset_mrclam/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
## MRCLAM Dataset
22
UTIAS Multi-Robot Cooperative Localization and Mapping Dataset (a.k.a. MRCLAM dataset) consists of 9 sets of data including odometry, distance and bearing measurements of 15 landmarks from 5 robots. The dataset originally aims cooperative localization and SLAM, but we utilize it for landmark-based localization from instantaneously available observation.
33

4-
We convert MRCLAM dataset to easily apply to landmark-based localization. The instantaneously available data are defined as all measurements acquired during very small motion (0.01 meters and 0.01 radians) and at most 1 second. We reject the observation whose number of measurements is less than 3. Outlier measurements are also removed during conversion. Its conversion for each set is presented in [`run_conv_mrclam.m`](https://github.com/SunglokChoi/Triangulation-Toolbox/blob/master/run_conv_mrclam.m). The converted sets of data are written in MATLAB MAT files such as `mrclam1.mat`.
4+
We convert MRCLAM dataset to easily apply to landmark-based localization. The instantaneously available data are extracted as observed measurements during very small motion (0.01 meters and 0.01 radians) and short time (at most 1 second). We reject the observation whose number of measurements is less than 3. Outlier measurements are also removed during conversion. Its conversion for each set is presented in [`run_conv_mrclam.m`](https://github.com/SunglokChoi/Triangulation-Toolbox/blob/master/run_conv_mrclam.m). The converted sets of data are written in MATLAB MAT files such as `mrclam1.mat`.
55

66
You can get more detail on MRCLAM dataset from its website and paper [1]. Please cite their paper if you use this dataset.
77

88
#### Landmark Map, Ground Truth, and Measurements
9-
The data files, _mrclam?.mat_, contains three variables: _landmark_, _groundtruth_, and _measurement_. The variable _landmark_ contains 15 lines of information with 3 columns which sequentially mean landmark ID and 2D position. In contrast to the original dataset, the landmark IDs are rearranged to begin with 1. The variable _groundtruth_ contains 4 columns of data which are experiment ID and true 2D pose (position and orientation) of the robot. The experiment IDs start from 1 and its number is same with the number of lines. The variable _measurement_ includes 4 columns of data which represent the experiment ID, observed landmark ID, and its range and bearing measurements. Observations with same experiment ID mean a single set of experiments. Units of all values are meter for distance and radian for angle. In overall, three variables are aligned as follows.
9+
The data files, `mrclam?.mat`, contains three variables: _landmark_, _groundtruth_, and _measurement_. The variable _landmark_ contains 15 lines of information with 3 columns which sequentially mean landmark ID and 2D position. In contrast to the original dataset, the landmark IDs are rearranged to begin with 1. The variable _groundtruth_ contains 4 columns of data which are experiment ID and true 2D pose (position and orientation) of the robot. The experiment IDs start from 1 and its number is same with the number of lines. The variable _measurement_ includes 4 columns of data which represent the experiment ID, observed landmark ID, and its range and bearing measurements. Observations with same experiment ID mean a single set of experiments. Units of all values are meter for distance and radian for angle. In overall, three variables contains the following.
1010
* _landmark_: landmark ID, position X, position Y (of each landmark)
1111
* _groundtruth_: experiment ID, position X, position Y, orientation (of each robot's true pose)
1212
* _measurement_: experiment ID, observed landmark ID, observed distance, observed bearing (from each robot's true pose to a landmark)
1313

1414
#### Reference
15-
* [1] K. Leung, Y. Halpern, T. Barfoot, and H. Liu, __The UTIAS Multi-Robot Cooperative Localization and Mapping Dataset__, The International Journal of Robotics Research, Vol. 30, No. 8, 2011 [Website](http://asrl.utias.utoronto.ca/datasets/mrclam/) [IJRR Online](http://ijr.sagepub.com/content/30/8/969)
15+
* [1] K. Leung, Y. Halpern, T. Barfoot, and H. Liu, __The UTIAS Multi-Robot Cooperative Localization and Mapping Dataset__, The International Journal of Robotics Research, Vol. 30, No. 8, 2011 [IJRR Online](http://ijr.sagepub.com/content/30/8/969) [Website](http://asrl.utias.utoronto.ca/datasets/mrclam/)

dataset_mrclam/noise_bearing.png

241 Bytes
Loading

dataset_mrclam/noise_distance.png

346 Bytes
Loading

dataset_roh/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Roh's Angulation Dataset
22

3-
_Roh's angulation dataset_ is a set of measurements acquired from an IR detector and four IRED landmarks. The sensor system aims at 2D bearing-based localization, which is described in Roh's thesis [1] and paper [2] in detail.
3+
_Roh's angulation dataset_ is a set of measurements acquired from a rotating IR detector and four IRED landmarks. The sensor system aims at 2D bearing-based localization, which is described in Roh's thesis [1] and paper [2] in detail.
44

55
#### Landmark Map
66
The map file, _landmark.csv_, contains position of four landmarks.

dataset_roh/noise_bearing.png

1.17 KB
Loading

error_orientation.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
function [rad] = error_orientation(p, q)
2-
%ERROR_ORIENTATION Calculate angular difference between two orientations.
2+
%ERROR_ORIENTATION Calculate angular difference between two sets of Euler angles.
33
%
44
% D = ERROR_ORIENTATION(P, Q)
55
% (matrix) P: An Euler angle (1x3 matrix)

run_eval_roh.m

+9-9
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@
1919
};
2020
config.pose = ... % A list of ground truth
2121
[ ...
22-
1.5, 1.5, 0, 0, 0, pi/2; ...
23-
1.5, 3.0, 0, 0, 0, pi/2; ...
24-
1.5, 4.5, 0, 0, 0, pi/2; ...
25-
3.0, 1.5, 0, 0, 0, pi/2; ...
26-
3.0, 3.0, 0, 0, 0, pi/2; ...
27-
3.0, 4.5, 0, 0, 0, pi/2; ...
28-
4.5, 1.5, 0, 0, 0, pi/2; ...
29-
4.5, 3.0, 0, 0, 0, pi/2; ...
30-
4.5, 4.5, 0, 0, 0, pi/2; ...
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); ...
3131
];
3232
config.algorithm = ... % Description of localization algorithms
3333
{ ...

run_example.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
fprintf(' %.1f [deg]\n', tran_rad2deg(errOri));
4444

4545
% Visualize results
46-
figure();
46+
figure('Color', [1, 1, 1]);
4747
hold on;
4848
plot3(trueMap(:,1), trueMap(:,2), trueMap(:,3), 'b.', 'MarkerSize', 20); % All landmarks
4949
plot3(obsMap(:,1), obsMap(:,2), obsMap(:,3), 'ro', 'LineWidth', 2); % The observed landmarks

run_test_aux.m

+4-4
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@
103103
% observe_bearing
104104
disp('==== observe_bearing ====');
105105
[obsData, obsMap] = observe_bearing(map, pose);
106-
test_is_near(obsData(1,:), [tran_deg2rad( 135), acos(-5 / sqrt(75))]);
107-
test_is_near(obsData(2,:), [tran_deg2rad(-180), tran_deg2rad( 90)]);
108-
test_is_near(obsData(3,:), [tran_deg2rad( 0), tran_deg2rad( 180)]);
109-
test_is_near(obsData(4,:), [tran_deg2rad( 90), tran_deg2rad( 90)]);
106+
test_is_near(obsData(1,:), [tran_deg2rad( 135), -acos(sqrt(2/3))]);
107+
test_is_near(obsData(2,:), [tran_deg2rad(-180), 0]);
108+
test_is_near(obsData(3,:), [tran_deg2rad( 0), -pi / 2]);
109+
test_is_near(obsData(4,:), [tran_deg2rad( 90), 0]);
110110

111111
% observe_pose
112112
disp('==== observe_pose ====');

test_is_near.m

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
function [result] = test_is_near(a, b, tol, verbose)
2-
%TEST_IS_TRUE Check whether the given two values are near or not
2+
%TEST_IS_TRUE Check whether two given values are near or not
33
%
44
% RESULT = TEST_IS_NEAR(A, B, TOL, VERBOSE)
5-
% (matrix) A : The given value
6-
% (matrix) B : The given value
5+
% (matrix) A : The 1st given value
6+
% (matrix) B : The 2nd given value
77
% (scalar) TOL : Tolerance (default: 1.0e-8)
88
% (scalar) VERBOSE: A flag to print its result (default: true)
99
% (scalar) RESULT : The test result
@@ -15,7 +15,7 @@
1515
% t = test_is_near(pi, pi + eps)
1616
% t = test_is_near([3, 29], [3 + eps, 29 - eps])
1717
%
18-
% See also test_is_near.
18+
% See also test_is_true.
1919

2020
if nargin < 3
2121
tol = 1e-8;

0 commit comments

Comments
 (0)