Close

Trilateration

A project log for SubPos Positioning System

A "dataless" Wi-Fi positioning system that can be used anywhere GPS can't.

bleckyBlecky 04/14/2015 at 14:500 Comments

For the trilateration process in the Android application, I am using a tweaked path loss algorithm to determine the distance with various coefficients that will be selectable with 2 of the reserved bits.

This algorithm would be application dependent, but the schema will recommend that the node installer determines what type of environment surrounds it, to generate a more precise position calculation (more on this later).

Once the application has determined the distance between the receiving device and the nodes, it uses a non-linear weighted least squares analysis technique to reduce the error from nodes situated further away from the receiver, while also determining its position.

The above is currently implemented and running so far, although it's a little slow so I will update once I've optimised it further (this operation takes ~400ms on a mid range Android phone to calculate position from 5 points).

Here are some simulated points running through the trilateration algorithm (actual code output to verify it's working). The person indicates the actual client position and the blue point is the calculated output. The error in this instance is ~0.6meters (there is error from path loss estimates and rounding as well as the way the NWLS method handles points that are further away).

Edit:

I have now created a new Android test application that will display the location of known nodes as well as calculate the current client position from these (and allow us to compare it with the current GPS position):

Now all that's left to do is test this with all the nodes!

The coder and schema are updated too.

Discussions