← Back to team overview

tagin-devel team mailing list archive

Re: Preparing fingerprinting code

 

Hi,

For those who are interested, I did some research and it looks like Android emulator has no wifi support. If you try to use wifi scanning on the emulator it will fail. One way to simulate wifi scanning on the emulator would be to get a wifi scanning data from another device and then feed the data to the program. But I don't think it is a good idea for the purpose of testing targin.

Best,
Yibin

On 2011/4/10 23:44, Jorge Silva wrote:
Hola Yibin,

I don't actually know where the emulator would grab the WiFi data from. If it takes ir from the host OS I would be very impressed, but I don't think the SDK can do that yet. Otherwise, there might be a way to emulate the data. I just have never tried. If you find out, let us know!

cheers!
Jorge

On 11-04-10 11:33 PM, yibin wrote:
Hi Jorge,

I don't have an android device. So I am probably gonna try it on the
emulator. But before I try it I want to know if you are aware of any
issue for running tagin on the emulator? This could be helpful for those
of us who don't have an actual device.

Best,
Yibin

于 2011/4/10 23:20, Jorge Silva 写道:
Hola All,

Done! I have created a series at:
https://launchpad.net/tagin/android-sdk

you can pull the code from there if you are interested in trying it
out. The series should evolve into a SDK for creating location-based
Android applications that work indoors. I will continue to maintain
and document this series with the objective of facilitating
third-party application development (including the geocaching game
planned for the Google Summer of Code).

The code includes an activity with two buttons at the top:
"Fingerprint" and "Snapshot". The fingerprint button will collect a
new fingerprint and dump it to a text view below. The "snapshot"
button will take a snapshot of the current fingerprint for reference
in subsequent comparisons.

*How to test*
Preferably install on an actual device since the emulator won't cut it.

FIrst open the "tagin! Fingerprinter" app... it should collect a
fingerprint as soon as you open it. Take a few more fingerprints just
so you see how the WiFi patterns change. In the text dump you will see
three comma separated values: BSSID, RSSI, Rank. The BSSID is the mac
address of an observed access point, the RSSI is the signal strength
in dBm, and the Rank is a number between 0 and 1 representing the RSSI
(1 being the strongest/highest RSSI ever recorded). The rank
normalizes the RSSI and it is meant to account for differences in how
different handsets measure strength since there is no standard. If you
are interested in learning how the rank is calculated, just look at
the getRanks() method in the Fingerprint class.

The snapshot button will make a copy of the current fingerprint and
dump it into another text view with the header "SNAPSHOT". If you get
another fingerprint after you have created a snapshot, the "Rank
distance" between your fingerprint and the snapshot will be calculated
and reported. The Rank distance is again a number between 0 and 1
where 0 means no difference (i.e., both fingerprints are identical)
and 1 means no similarity (i.e., fingerprints don't share a single
access point). If you take a snapshot and stay still, you should get a
number between 0 and 0.25. Anything between 0.25 and 0.5 usually means
you moved but you may still be in the same room, and anything above
0.5 typically means you are close but not in the same room. If you get
1 then you could be around the building, but you could also be in a
different country!

I would be interested in knowing what ranges you get when you walk
around the same room and when you go outside the room just to see if
it is the same I am getting. Maybe I'll put your data on the wiki to
have a preliminary reference.

If you have some basic idea of AI and/or machine learning, I hope you
could already imagine how you could use the Rank distance to quickly
put together an application using a simple approach like nearest
neighbours or similar, so do play around with it.

That is is for now... if you have any questions, comments,
suggestions, please reply to the thread.

cheers!
Jorge

On 11-04-10 03:58 PM, Jorge Silva wrote:
Hola all,

I have been working on upgrading the fingerprinting code for tagin! in
anticipation of the re-write of the engine that we will be completed as
part of the Google Summer of Code. This is just to let everybody know
that I will be pushing this code soon (hopefully later today).

The code will be in the form of a bunch of classes and a very
rudimentary activity that will show how fingerprinting works, what it
does and how it can be used to differentiate between distinct locations
indoors. Initially there will not be much documentation but I hope to
focus a bit more on that in the coming days (with your help).

Let me know if you have any comments. I will follow up on this thread
once I push the code online.

cheers!
Jorge

_______________________________________________
Mailing list: https://launchpad.net/~tagin-devel
Post to : tagin-devel@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~tagin-devel
More help : https://help.launchpad.net/ListHelp


_______________________________________________
Mailing list: https://launchpad.net/~tagin-devel
Post to : tagin-devel@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~tagin-devel
More help : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~tagin-devel
Post to     : tagin-devel@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~tagin-devel
More help   : https://help.launchpad.net/ListHelp




Follow ups

References