views:

930

answers:

5

i will be working on a project that tries to determine your position using the wifi signal strength from a few access points. i was wondering if anyone knew of any similiar projects or any articles on that topic

if anyone cares: its a research project in at my university. the app is written is used as a playing ground to develop new wifi antenna that are better suited for this type of usage. i only work on the coding part of the project though. oh and its written using c# which is not optional


clarification: its ONLY wifi. no GPS goodnes for us becaus its supposed to work indoors the software is supposed to determine your location by using the known locations of the access points and their signal strenghts to tell you where you are. its currently at around 4-5 meters of accuracy aside from that i already have a working prototype and was just wondering if anything similiar has been done before or if anyone has any tips or ideas for/about the project

A: 

Skyhook springs to mind. It depends on people registering the llocation of their APs though.

Stuart Dunkeld
That system uses GPS and A-GPS to get the location (see: http://www.skyhookwireless.com/howitworks/) I think the idea is oy to have WiFi
balexandre
+1  A: 

You might like to look at the Google Gears Geolocation API. I don't know how easy it is to use from C#, but it may be useful/relevant.

(Disclaimer: I work for Google, but haven't had anything to do with the Geolocation API.)

Jon Skeet
that you need to be in a WiFi know to Google, I think the idea is not having a GPS feature and be ONLY "inHouse", so, they will need to create routes and percentages of all routers and use that as input for the application in order to calculate the exact position at the univ. right?
balexandre
balexandre is right actually. the wifi singal is going to be used to triangulate your position. right now we are at about 4 meters of accuracy
LDomagala
The geolocation API works without GPS as well: "Today we are adding WiFi signals to the Geolocation API so that laptop users can benefit from location enabled web sites for the first time and mobile users from the increased accuracy."
Jon Skeet
@Cyrik: If you've got to about 4m of accuracy, I suspect you won't get more accurate than that. In my experience the wifi signal strength can vary quite substantially - weather, temperature, other objects/people etc may well have subtle influences.
Jon Skeet
you are right about the factors. every wall between you and the access point really bad for precission. i´ll have a loot at geolocation though to see what it does without GPS
LDomagala
@Cyrik: It's likely to be worse than what you've already got, I suspect. I don't think the idea of Geolocation is to be quite as accurate as that - just to get a "pretty good" idea in as many places as possible.
Jon Skeet
+3  A: 

Discarding the first 2 answers, where they need to use GPS and A-GPS in the first and a known WiFi network in the second, my answer is:

it sounds easy, but you need to do some homework first, a Survey.

  • you will need to measure up and create a oval shape (in a paper) with points and percentages of all wifi routers in the camp.
  • when, lets imagine that you compile 2 routers information, you are ready to go.
  • get the current wifi points and signal strengths from the user laptop/device and query the database using those values.
  • give the user their current location.

Example:

  • in the campus bar you measured that to be in that place you need to have around 55% strength of the signal provided from WiFi Router 1 and 25% of the WiFi Router 2.

To use all this in C#, you should start in this Code Project article to get the signal strengths. Then is just use those returned values with your data that you measured before when doing the first survey.

Hope it helps :) At least, that was what I would do in order to approach this problem.

balexandre
thx for the idea. i´m actually already doing that and i guess my question wasnt clear enough. i was hoping for any ideas other then the obvious triangulation one and any resources on the topic
LDomagala
There's nothing much you can do to avoid the survey, because it's one place only, not known to anyone/service that you could reuse code/api. To create the algorithm to get the location, as more data you can have from all points in the campus, the better/accurate the response will be.
balexandre
+1  A: 

I wouldn't have thought that signal strength would work well: too many things interfere with it (like walls). But you might try measuring ping times, especially if you threw a hundred pings at the AP and took the average. Most of the time will be the AP digesting the ping and generating the pong, but there will also be a time-of-flight component for the signals. If the AP response time is consistent then you should be able to subtract it and hence compute the distance to the AP. By well-known hyperbolic maths you can then find your position from 3 or 4 APs.

Paul.

Paul Johnson
oh i like that idea, thanks. i will try it out and see what accuracy i can get with that and if i can use it in combination with the signal strength
LDomagala
just to update you: i found out it has been tryed before and works worse thant the signal strength. besides you would have to establish an active connection to the AP
LDomagala
+1  A: 

We did this on a project already determining distance from Access Points, but without the signal triangulation (already covered on other answers here).

I do have a recommendation from the "man, I wish I didn't have to go back and do this" department - it would be to spend extra time on 2 areas:

  1. An easy and repeatable method of calibration using Multiple Data Points. For example, the dropoff from being "very close" to "kinda close" will be a lot more than "really far away" to "really really far" away. It's not going to be a linear slope.
  2. Data Smoothing. As you move, the signal strength will vary unproportionally to your movement (due to obstacles in the path). It will make your results much more accurate if you take a rolling average of the last 5-10 samples of the signal strength rather than just taking the last sample.
routeNpingme
thx for the hints. there isnt any public documentation on your project by any chance?
LDomagala
No, unfortunately not - it was a component of a larger system.
routeNpingme