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

MrValdez
  • 8,515
  • 10
  • 56
  • 79
LDomagala
  • 2,193
  • 4
  • 20
  • 34
  • I was answering, but from the question I don't understand one thing, Is there ONLY WiFi or there will be GPS as well? Cause Stuart and Jon mention ideas WITH gps as well. – balexandre Feb 07 '09 at 19:09
  • its ONLY wifi. its indoors so no gps for us:( – LDomagala Feb 07 '09 at 19:14

7 Answers7

6

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
  • 73,608
  • 45
  • 233
  • 342
  • 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 Feb 07 '09 at 19:27
  • 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 Feb 07 '09 at 19:31
  • @balexandre we still need to lat\lon of the campus right? so you can get the strength of all the wifi spots and then do your own calculations of ditance? its per building, building with more wifi hotspots is the more accurate? you can continue your example of calculate the distance? there is a formula or its something your are making based the size of the biulding? thanks! – Ofir Attia Jan 18 '14 at 22:14
4

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.
Brandon
  • 13,956
  • 16
  • 72
  • 114
1

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
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • 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 Feb 07 '09 at 19:11
  • 1
    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 Feb 07 '09 at 19:17
  • 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 Feb 07 '09 at 19:34
  • @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 Feb 07 '09 at 19:37
  • 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 Feb 07 '09 at 20:07
  • @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 Feb 07 '09 at 20:10
1

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
  • 17,438
  • 3
  • 42
  • 59
  • 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 Feb 07 '09 at 20:23
  • 1
    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 Feb 11 '09 at 10:02
0

Goto Wifi in positioning System(WPS), where we use multiple Wifi AP to track a location.. this is implemented by many systems like Google, horizon etc by providing extra security 4 privacy.. I too without knowing this tried on immplimenting this sort of technique.. All d best, we can simplify its complexity by various methods there-by achieving INNOVATIVE to existing infrastructure. I recommend u to go to the wifi router add-in management & usage before pursing this.

Chaitu
  • 1
  • 1
0

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

stuartd
  • 70,509
  • 14
  • 132
  • 163
  • 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 Feb 07 '09 at 19:11
0

you can try FIND3 project, here's a documentation https://www.internalpositioning.com/doc/, it's API can be used for that purpose and use learning algorithm to constantly learn your position with accuracy. They also have mobile apps (for android only). I'm looking to do something of the same nature.

PinoyDev
  • 949
  • 1
  • 10
  • 21