DOI: 10.5281/zenodo.10600587
title: Semantic Place Labeling

description: Semantic Place Labeling

File formats



Scans.Scan filenames have the form scans_XXX, where XXX indicates the place in which they were taken inside the environment (corridor, door, room, hallway). The scans cover the complete 360 degree field of view around the mobile robot. The scans are simulated inside the maps using the CARMEN toolkit. The simulated robot was equipped with a front laser and a rear laser.

The scan files are text files. They contain one line for each scan in the following format:

class_id [space] x_world_coordinate [space] y_world_coordinate [space] robot_orientation [space] n1_number_front_beams [space] n2_number_rear_beams [space] front_beam_1 [space] ... [space] front_beam_n2 [space] back_beam_1 [space] ... [space] back_beam_n2 [newline]......

where:



[space] indicates a blank space.

[newline] indicates the new line character (end of the line).

class_id is an integer. It identifies the class of the place where the scan was taken. In my case 0=room, 1=corridor, 2=door, 3=hall

x_world_coordinate is the x coordinate of the position of the robot where the scan was taken.

y_world_coordinate is the y coordinate of the position of the robot where the scan was taken.

robot_orientation is the orientation of the robot where the scan was taken. For each position, the orientation of the robot was randomly selected.

n1_number_front_beams is the number (n1) of beams in front of the robot.

n2_number_front_beams is the number (n2) of beams in the rear part of the robot.

front_beam_1 is the first bean of the front laser.

front_beam_n1 is the last bean of the front laser.

rear_beam_1 is the first bean of the rear laser.

front_beam_n2 is the last bean of the rear laser.


The front laser covers 180 degrees in front of the robot. The resolution of the beams is then 180/(n1-1). That is 1 degree when n1=181.The rear laser covers 180 degrees on the back of the robot. The resolution of the beams is then 180/(n2-1). That is 1 degree when n2=181.

As an example, the following code can be used to transform the scan into a polygon:

double flaser_resolution = M_PI / (double)( (re->flaser).num_readings -1 );
double rlaser_resolution = M_PI / (double)( (re->rlaser).num_readings -1 );
double theta;
carmen_point_t point;

// store the points in an array
int index = 0;
for (int j=0; j<(re->flaser).num_readings; j++) {
	theta = (re->flaser).theta -M_PI_2 + j*flaser_resolution;
	polar_to_rect( (re->flaser).range[j], theta, &point.x, &point.y );
	V[index].x = point.x;
	V[index].y = point.y;
	if( index == 0 ) {
		V[n].x = point.x;
		V[n].y = point.y;
	}
	index++;
}

for (int j=0; j<(re->rlaser).num_readings; j++) {
	theta = (re->rlaser).theta -M_PI_2 + j*rlaser_resolution;
	polar_to_rect( (re->rlaser).range[j], theta, &point.x, &point.y);
	V[index].x = point.x;
	V[index].y = point.y;
	index++;
}		
		







Features.Feature filenames have the form features_XXX, where XXX indicates the place in which the corresponding scans were taken inside the environment (corridor, door, room, hallway). Each feature file contains the features of the corresponding XXX scan file, and they follow the same order (the first set of features corresponds to the first scan in the equivalent scan_XXX file). The feature files contain the set of geometrical features calculated from each scan. Each feature is represented by a real value.

The features files are text files. They contain one line for each set of features calculated from one scan in the following format:

class_id [space] m_total_number_of_features [space] feature_1 [space] ... feature_m [newline]......

where:



[space] indicates a blank space.

[newline] indicates the new line character (end of the line).

class_id is an integer. It identifies the class of the place where the scan was taken. In my case 0=room, 1=corridor, 2=door, 3=hall.

m_total_number_of_features is the number (m) of features calculated from the scan.

feature_1 is the first feature.

feature_m is the last feature.


The features are a subset extracted from the sets B and P presented in section 3.4 of my PhD thesis



feature_1 corresponds to feature B.1

feature_2 corresponds to feature B.2

feature_3 corresponds to feature B.3

feature_4 corresponds to feature P.1

feature_5 corresponds to feature P.2

feature_6 corresponds to feature P.3

feature_7 corresponds to feature B.5

feature_8 corresponds to feature B.6

feature_9 corresponds to feature P.4

feature_10 corresponds to feature P.5

feature_11 to feature_30 correspond to feature B.7 with thresholds 0.5m to 10.0m (0.5m steps)

feature_31 to feature_129 correspond to feature P.6 with Fourier coefficients 2 to 100

feature_130 to feature P.7

feature_131 to feature P.8

feature_132 to feature P.9

feature_133 to feature B.11

feature_134 to feature B.12

feature_135 to feature B.13

feature_136 to feature B.14

feature_137 to feature P.16

feature_138 to feature P.17

feature_139 to feature_148 correspond to feature B.15 with thresholds 0.1m to 1.0m (0.1m steps)

feature_149 to feature P.15

feature_150 to feature B.16








MapsMap files are presented in two formats: PPM raw format (.ppm) and CARMEN format (.map). The resolution of the maps is 1pixel=5cm.



Training maps are named XXX_training_map.EEE, where XXX indicates the environment from which this map was acquired, and EEE is the extension representing the format of the file. The poses for the training examples are marked with colors in the maps: Blue for room, red for corridor, yellow for door, and cyan for hallway.

Test maps are named XXX_test_map.EEE, where XXX indicates the environment from which this map was acquired, and EEE is the extension representing the format of the file. The poses for the test examples are marked with colors in the maps: Blue for room, red for corridor, yellow for door, and cyan for hallway.




 



Of course, the division of the space was according to my opinion. Probably other people would fine other divisions. This is completely subjective.


 



Training and test setsFiles corresponding to the training set are found under the subdirectory training.Files corresponding to the test set are found under the subdirectory test.


 

Data Sets



Building 79, University of Freiburg. 

Data set corresponding to building 79 at the University of Freiburg. The map was submitted by Cyrill Stachniss to the Radish repository under the name "fr079." The resolution of this map is 1pixel=5cm. 

Map image.



Data.



Building 52, University of Freiburg.

Data set corresponding to building 52 at the University of Freiburg. This map was provided by Steffen Gutmann. The resolution of this map is 1pixel=5cm. 

Map image.
Data.






Building 101, University of Freiburg.

Data set corresponding to building 101 at the University of Freiburg. The hall and corridors in this map are the original from the building 101. However the rooms are manually added from other maps. The resolution of this map is 1pixel=5cm

Map image.
Data






Intel Research Lab in Seattle.

Data set corresponding to the interior of the Intel Research Lab in Seattle. The map was submitted by Dieter Fox to the Radish repository under the name "intel_lab." This is a test data set, and for this reason there is no classification of places in the observations. All scans are classified as class 0. The resolution of this map is 1pixel=5cm

Map image.
Data.






The SDR site B.

Data set corresponding to an empty building in Virginia. The map was submitted by Andrew Howard to the Radish repository under the name "sdr_site_b." This is a test data set, and for this reason there is no classification of places in the observations. All scans are classified as class 0. The resolution of this map is 1pixel=5cm

Map image.
Data.