开发者

Wireless GPS Positioning

I have a database of wireless access points and multiple readings (1-n) of signal strength (RSSI) for each access point. Along with this I record the GPS coordinates of each reading.

Now, what I want to do is given visible access points compute my approx. GPS position but I'm not sure how to go about doing this. I've read that I possibly need trilateration however I'm not maths savvy and a lot of articles on this seem to be that way inclined, can someone break it down for my simple mind with code examples (psuedo or otherwise)?

Many of th开发者_如何学JAVAese pages also talk about distance and I'm unsure how best to compute that. One thought is to infer it from the RSSI. Assuming I have at least two readings for a given access point at decreasing RSSI I should be able to roughly infer distance from that just by computing the distance between the GPS coords? I'm making the assumption the lowest RSSI is the nearest to the actual device and not taking into account signal propagation or anything like that.

Any thoughts, points and links would be most appreciated.


I believe you'll need at least four readings from reasonably separated locations for an access point to get a rough idea of where it is, however this only works even vaguely accurately in a vacuum :) Buildings, trees, and other interference will naturally skew the results, often quite dramatically. More readings in that case would improve the accuracy.

The theory is that at each point in space exists within a shell of radius r from the given access point. Theoretically, the signal strength drops off with the inverse square of the distance r, so you need to take that into account as well.

So say you measure a signal strength at some location - you know that the square root of one over the signal strength is proportional to the distance from you to the access point - but that access point could exist anywhere on the surface of the sphere with that radius from you.

A second reading at a different location produces a second sphere which should intersect with the first - however think about two overlapping beach balls and you'll see that the intersection is a circle, anywhere along which the AP could be located. The third reading will intersect with the circle from the first two at two places so now you have two target points where the access point could be located. The fourth and final reading will tell you which of these two it is.

Again, this is all assuming an ideal situation - far from likely in the real world. You'd need to apply ranges, statistical methods, and a lot more than 4 readings etc to get a good guess as to the location of the AP.

Also, the method used above to conceptualize the method to find the AP may not be the best way to actually do this in practice. You'd also need to ensure the user who is trying to locate the AP walks around a bit to get some decent readings.

Other things to consider: where the readings are taken from matters. If you just walk in a straight line or on a flat surface you'll most likely not be able to determine if the AP is to the left or right of the line or below or above you. Your walk must include some movement in all three dimensions. Also, you'll probably want a smattering of trig and Pythagoras to do the actual translation calcs :)

Anyway, I'd love to have an iPhone app that finds APs and puts them on google maps for me so I can figure out where they are and who they belong to... it'd be awesome. But yeah, I haven't tried any of the above, it just seems to me to be the way it would work. I'm happy to be corrected if this turns out to be inaccurate :D

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜