Loceva
Overview
Trace files generated by Loctrace are used by Loceva to evaluate different kinds of positioning algorithms. A large number of state-of-the-art positioning algorithms are supported by Loceva. Loceva contains a lot of filters and generators to set up different scenarios and enable emulation.
Management
To make it easy to evaluate and compare algorithms currently under research, Loceva contains a management part that enables emulation in general and allows to easily select different kinds of scenarios. For this, Loceva utilizes trace files created with Loctrace to emulate a specific scenario. Such an emulated scenario can then be used for a comparison of different positioning algorithms. This makes sure that differences in the results are based on the positioning algorithms and not on the environment that changed over time in a way beneficially for one particular algorithm.
The creation and management of various scenarios is enabled by so-called filters. Filters create different scenarios by disabling or selecting different objects of a trace file. For instance, a MAC filter artificially switches off access points even if they have been part of the trace file. Another example is the position filter that disables different reference points of the fingerprint database based on their coordinates.
Algorithms
The positioning part contains various positioning algorithms to make it easy to compare newly envisioned algorithms with state-of-the-art ones. The following list shows the positioning algorithms that are part of Loceva. The list is grouped by the research projects that have invented them:
- RADAR: Nearest neighbor(s) in signal space, k nearest neighbors in signal space
- PlaceLab: K nearest neighbors p unknown, Ranking
- Rice: Histogram, Gaussian
- Horus: Horus
Although the main focus of Loceva is on positioning algorithms, it also contains a few continuous user tracking algorithms:
- RADAR: Viterbi-like algorithm
- Rice: Tracking
- Horus: Horus
Analysis
After selecting a certain scenario and positioning algorithm, Loceva computes the position error that would have occurred in this setting. The position error is defined as the Euclidean distance between the actual position of the user and the position estimate calculated by the algorithm. At the end of each emulation the average position error is printed, and a graph showing a cumulative distribution function of the position error (as shown in the figure below) is generated. Such a graph can be used to compare the position accuracy of different positioning algorithms by determining the median, 95th percentile and so on. Additionally, Loceva can be enabled to create a file that contains a log of intermediate results computed by the selected positioning algorithm. This log can be used with Locana to analyze the behavior of the positioning algorithm in question.
Usage
Loceva can be controlled by a so-called property file. In Java a property file contains key-value-pairs with a equals character as seperator. Most configurable values of Loceva are accessible by properties so that the same jar file can be used to emulate a wide range of different scenarios. The download website lists an example property file that can be used to play around with Loceva.
After downloading and unpacking the jar archive Loceva can be run with the following command:
java -cp loceva-0.5.1.jar:locutil1-0.5.1.jar:locutil2-0.5.2.jar org.pi4.loceva.Loceva -offline FILENAME -online FILENAME [-prop PROPERTY]
FILENAME can be a trace file containing offline traces as well as online traces. Both parameters -offline and -online are required. The -prop parameter can be used optionally to define a property file.