Show HN: FIND – an indoor positioning system for smartphones and laptops
github.com
github.com
https://github.com/schollz/find/blob/master/FAQ.md#how-does-...
That's an accurate description, though I'd avoid the negative terminology. The system does derive its data from nearby WiFi routers, but it is in no way exploitative, like real parasites. WiFi scanning is something all smartphones do all the time, so this system merely tries harnessing it into something useful at the same time.
As for the technical side - this system uses a Naive Bayes estimator for the signal levels from mac addresses, as well as the presence of mac addresses it sees during scans. Before it can be used it needs to "learn" by visiting all the locations you want to identify. After learning it "tracks" by classifying the location used the Naive bayes estimators.
> How do you compare the current fingerprint of a user with the one stored in database?
The fingerprints are used to generate priors. Basically a prior is the probability for encountering router X with signal strength Y in room Z. These are real probabilities. When I classify a location, it uses these probabilities and Bayes law to determine new "Bayes probability."
> How do you determine the probability for classification?
You are now referring to the probability on the dashboard (the webpage) I assume. Thanks for the question. This is inherently confusing, since really it is NOT a real probability so its a bit of a misnomer. Lets call them my "probability estimate." Technically speaking, the Bayes probabilities (real) are taken and normalized to the standard normal distribution. Then I determine the "probability estimates" by the proportion of the exponent of the standard normal normalized Bayes probabilities.
Would you like to offer up another term for something that performs ranging with radio?
There are other microcontrollers with Wifi and similar capabilities that are even cheaper, like the ESP8266 at around $5, but I haven't worked with those before.
EDIT: I just saw you want it to wake up every five seconds --- in that case sleep won't help much and you'll need a big battery for a month of use, since wakeup and scanning for networks takes a few seconds. Waking up less often (eg. every 15min) would be more feasible, but it really depends on your intended use.
A typical apartment or business has 10s to 100s of routers nowadays that your smartphone can "see" when it scans. Thus, the movement of a single router never really hinders the signal that much.
Still, I might try to add some bootstrapping to the software so that tracking locations can be used to "relearn" places to later test if the routers have been moving around.
I've certainly seen urban areas with hundreds of routers around, but where I am it is more like 5.
Certainly give it a try, I've heard that it works pretty well for ~5 routers for a couple of rooms in an apartment.
* pets set it off,
* it cannot differentiate between different objects in motion. So several people could be moving at the same time and it would only trigger as one event,
* it cannot detect people who are present but motionless (eg watching TV),
* it doesn't remember how many people are present in a room, so you could have 2 people watching TV then when 1 person leaves the detect would think the room is empty,
* it requires multiple detectors,
* detectors are generally visible, which some might find an eyesore (at least WiFi APs can be hidden a little more as fewer needed).
I'm not saying FIND is perfect either, but you have implied that your solution works just as well as FIND and stated that your solution is less complex; which is simply is not true. Your solution creates more problems than FIND and addressing them creates just as much complexity (as I detailed in my other post: https://news.ycombinator.com/item?id=11519159)
I can't use it at my work because we don't all have Android. I can't use it at home because my wife uses in iPhone. Cool idea but limited use compared to motion detectors.
My point was always that the two technologies aren't necessarily interchangeable and in an indirect way you're just saying the same thing with your counterargument.
I have acknowledged in another post that motion detectors are advantageous if you're dealing with strangers and/or situations where there's lots of movement and/or lights that can be automatically timed out. eg public spaces halls, public restrooms, security lights, etc. But I don't think it's fair to lump these in the same category as "home automation".
Home automation is a little more of a complex problem as you need the lights in the room to not only turn on when someone enters, but also turn off when they leave. Motion detectors can spot someone moving in a room but they're not to great at detecting when people have left since it's the same sensor that would be triggered. They're also not great at detecting if people have entered a room and are still in the room if those people have stopped moving (eg they are watching TV) - since those people aren't triggering the motion detection. And lastly, motion detection isn't great at detecting the number of people in a room - which matters if you don't want the lights to turn off when someone leaves the room but other people are still in there and watching TV.
Motion detection solved some of the problems of home automation, but creates some problems as well. Which is why I said motion detection is just too simplistic of a solution for home automation despite it being a great solution for other types of automating lighting.
Granted you could place more sensors, network them up, and have a centralised unit logging movement. That would likely work. But then it quickly becomes as complex as the solutions we're trying to avoid.
However even if all these things were easily addressed, motion detection still has issues for me personally as I have two cats. This is the beauty of proper home automation systems: they give you the granularity to personalise things so pets don't set off the same triggers that people do. Or my two year old doesn't trigger the same automation that my wife and I do (eg unlocking the front door). This is where I think the future of home automation lies and is what really gets me excited.
So you're right that there is overlap between motion triggers lights and home automation; but the latter is intentionally a more complex problem by design.
Ofcourse, the downside is if the device is not in my pocket the system has no way to know where I am and will keep the light on in the wrong room and keep me in the dark so it's not like it's a perfect solution.
I can't track my children, I can't track my wife's iPhone. I couldn't even track myself if I left my phone in the charger. It would be neat to track my positioning and run some statistics but I wouldn't say it's useful.
I ask because Ive had to wave my arms about far too often in public restrooms due to motion sensors deactivating the lights when spending too long on the toilet. Having that happen in my own home would be annoying enough to warrant the additional complexity of FIND (or ditch home automation entirely)
There is a workaround to this problem, but it requires adding a networked "intelligence" to the detectors. You'd a detector at every entrance and every exit of every room. Then you'd need to network them up to a server (which defeats the advantage of motion sensors over FIND) and that would log the movement in and out of each room, incrementing the occupancy of the room as it goes along to ensure that lights are not deactivated when two people are in the room but only one exits. By the time you've installed dozens of sensors across the house, networked them, and installed a server, you might as well have just gone with FIND. Not only does FIND require less hardware, it can identify the specific individuals and isn't triggered by family pets (I certainly don't want my cats turning lights on during the night!)
So while you are right that other, simpler, technologies have been around for years, they're simply not good enough for the average home (it still remains to be seen if FIND is, but it's definitely better than motion sensors)
[1] As per the article you cited, details about how the detection on works for objects in motion: https://en.wikipedia.org/wiki/Passive_infrared_sensor#Operat...
I've seen in the past some Android apps that do this, not sure now what's the situation.
EDIT: found some paper about it and how it worked: http://hkr.diva-portal.org/smash/get/diva2:475619/FULLTEXT02...
The paper you linked is also discussing use of WiFi and Bluetooth.
Edit: here's a good overview: http://stackoverflow.com/a/7835988
It really depends on how many routers are in your area. For places in cities, there are tons and tons of routers so its very easy to get pretty good resolution. For places more remote, you might not see many routers and then you would be for more limited in your resolution.
I'm looking at this for gaming applications. Don't need milimeter accuracy but +- 30cm would be good.
There have also been many other projects like http://wearnotch.com/
For now, External distance cameras (Kinect-like) seems to be the most accurate and usable method. Something like what these quadcopters use: https://www.youtube.com/watch?v=AiCFtmdrvHM
I know that this already exists in many variations: https://github.com/schollz/find/blob/master/FAQ.md#doesnt-th...
Still, I've never seen one that is open-source that works pretty well, so I thought I'd put mine out there.
Seems like that should be in the first 3 lines of the description, not near the end of the FAQ.
Very cool project.
"The WiFi fingerprints are also the same across all devices so that learning using one device is guaranteed to work across all devices."
https://github.com/schollz/find/blob/master/FAQ.md#doesnt-th...
random google result: http://www.theruckusroom.net/2011/06/a-polarizing-problem.ht...
Does it accommodate mobile APs on smart phones or personal hot spot devices? Seems those might confuse it in an enterprise setting.
Also, I would assume that the software will differentiate APs with the same SSID as in an enterprise situation and rely on MAC IDs. But just so I don't have to assume, can you confirm that it does?
Yes, it will differentiate APs with the same SSID as it relies on MAC IDs. I use it at my university with no problem (which is an enterprise situation).
> Does it accommodate mobile APs on smart phones or personal hot spot devices?
It uses mobile hot spot information, however if the hot spots disappear it will not affect the results too badly, as long as there are some permanent AP fixtures. Anecdotally, I've used this system in airports (which house many personal hotspots) and it still has good recognition.
It still wouldn't work so well, though, for basic use cases like "turn on the dimmer lights to 40% if I enter the bathroom in the middle of the night".