Data Set htwddKogRob-TSDReal for Localization and Lifelong Mapping
Creators
- 1. University of Applied Sciences Dresden, Artificial Intelligence and Cognitive Robotics Labs
Description
This dataset represents a 4.7 km long tour (odometry path shown in htwddKogRob-TSDReal_path.png) in an environment whose representation (see map htwddKogRob-TSDReal.png | 1px \(\widehat{=}\) 0.1m) is now obsolete. Several static objects have been moved or removed, and there are varying numbers of dynamic obstacles (people walking around).
The work was first presented in:
- A Fuzzy-based Adaptive Environment Model for Indoor Robot Localization
- Authors: Frank Bahrmann, Sven Hellbach, Hans-Joachim Böhme
- Date of Publication: 2016/10/6
- Conference: Telehealth and Assistive Technology / 847: Intelligent Systems and Robotics
- Publisher: ACTA Press
Additionally, we present a video with the proposed algorithm and an insight of this dataset under:
- youtube.com/AugustDerSmarte
- https://www.youtube.com/watch?v=26NBFN_XeQg
Instructions for use
The zip archive contains ascii files, which hold the log files of the robot observations and robot poses. Since this data set was recorded in a real environment, the logfiles hold only the odometry based robot poses. For further information, please refer to the header of the logfiles. To simplify the parsing of the files, you can use these two Java snippets:
Laser Range Measurements:
List<Double> ranges = new ArrayList<>(numOfLaserRays);
List<Error> errors = new ArrayList<>(numOfLaserRays);
String s = line.substring(4);
String delimiter = "()";
StringTokenizer tokenizer = new StringTokenizer(s, delimiter);
while(tokenizer.hasMoreElements()){
String[] arr = tokenizer.nextToken().split(";");
boolean usable = (arr[0].equals("0")?false:true);
double range = Double.parseDouble(arr[1]);
ranges.add(range);
errors.add(usable?Error.OKAY:Error.INVALID_MEASUREMENT);
}
Poses:
String poseString = line.split(":")[2];
String[] elements = poseString.substring(1, poseString.length()-1).split(";");
double x = Double.parseDouble(elements[0]);
double y = Double.parseDouble(elements[1]);
double phi = Double.parseDouble(elements[2]);