Indoor location estimation with Placelab
Harlan Hile (harlan@cs), Alan Liu (aliu@cs)
Project description
Our project investigated increasing Placelab's accuracy in determining
indoor location, using wi-fi access point measurements. This would allow
building-scale applications to be built that could use this increased
accuracy.
As a first cut, we focused on determining floor location, and then
tried to improve location accuracy in the allen center.
Platform
We did our testing on Tablet PCs
Placelab modifications
We extended Placelab's particle filter to understand the difference between
floors (before position of all APs and estimates were in two dimensions).
We also experimented with other methods for floor determination.
The major steps we took were
- Changing the Beacon class to support extra meta-data, in our case
floor. We found GPS coordinates and other data for the allen center AP's
and populated the database.
- Adding the notion of floor to each Particle estimate
- Changing the motion model to deal with walking indoors, instead of
driving outdoors
- Changing the sensor model to account for wireless signal attenuation
due to floors
Experiments
We logged measurements and ground truth on a tour around the CSE building,
and then compared the error of the Placelab particle filter tracker to the
following (separate) modifications:
- We first focused on floor estimation, using two techniques:
Placelab's original sensor model, with a floor attention factor of
0.8, and taking the mode of the stronger half of access points
- We then looked at location accuracy with a few techniques:
Placelab's standard particle filter, with the same floor attenuation
model;
Centroid of the access points of the floor (floor determined by above
mode method);
particle filter using only access points on the floor (floor
determined by above mode method)
- We then looked at increasing accuracy using improved sensor models.
Using our logs, we learned sensor models fit to the building. We followed
a binning (histogram) approach like placelab's original model, but
populated the bins with averages from our logs. In one model, we ignored
floors in calculating the signals, and then used the same 0.8 attenuation
as before. In another, we first binned on floor distance and then on
2d distance. We also tried a model where likelihood of particles was
influenced by the above mode method for determining floor. Below are
graphs, with comparison to original.


This is an animation of our multi floor mapping application. The orange
dot is reported position, small green dots are particles, and the cyan dot
is the average of the particles (particle filters final estimated
position). Red rings indicate access point strength.
Additional materials:
Our presentation, with extensions
Excel Graph of error from above
The modified placelab code, and some data
logs The main classes we changed were org.placelab.core.Beacon,
MapExporter, and MapLoader to enable the new database, and then we
extended classes from org.placelab.core.tracker for
TwoHalfDParticleFilterTracker, TwoHalfDMotionModel, TwoHalfDSensorModel
and a variety of support classes. The mapping and testing application is
called MultiFloorMap, in the default package.