Jakiego algorytmu należy użyć do geolokalizacji Wi-Fi?


16

Szkolny futerał na odbiór (aktualizacja)

Przydałoby się bardziej konkretny przypadek użycia zamiast oryginalnego przykładu z podwórka poniżej. Lokalne organy ścigania zaczęły tłumić używanie wiadomości tekstowych i telefonów komórkowych w strefach szkolnych. Stanowi to problem dla rodziców odbierających dzieci po ukończeniu gimnazjum. Nawet dla tych, którzy obnoszą się z prawem, wieża komórkowa szybko się przeciąża, gdy setki dzieci dzwonią do rodziców jednocześnie. Kampus jest duży, z zasięgiem Wi-Fi. Wydaje się, że powinno być możliwe napisanie aplikacji mobilnej, która pozwoliłaby użytkownikowi telefonu komórkowego wysłać wiadomość tekstową zawierającą listę mocnych sygnałów wifi do usługi internetowej. Serwis internetowy utworzyłby wówczas poprawkę lokalizacji i przekazałby wiadomość do urządzenia nawigacyjnego na pokładzie rodzica. Rodzic jechałby następnie do właściwej lokalizacji na terenie kampusu.

Przypadek użycia podwórka (oryginalny) Kiedy zabieram laptopa na podwórko i wybieram „wyświetl dostępne sieci”, widzę listę moich 4 sąsiadów. Gdy spaceruję, względne siły sygnału od moich sąsiadów zmieniają się.

Chciałbym stać z laptopem w znanych miejscach na moim podwórku, kliknąć mapę i zebrać punkty o 4 różnych poziomach mocy sygnału.

Po zebraniu dużej ilości (ale nie za dużo) tych punktów kalibracyjnych, chciałbym następnie napisać program, który pobiera 4 poziomy siły sygnału wifi i szacuje lokalizację w postaci elipsy błędu. Sygnały mogą być mierzone przy użyciu innego urządzenia niż to, które służy do gromadzenia oryginalnych punktów kalibracji.

Jakiego algorytmu powinienem użyć?

Nie chcę przeszkadzać moim sąsiadom, pytając ich, czy mogę wejść i zbadać dokładną lokalizację ich routera.

Mogę jednak założyć, że lokalizacja routerów moich sąsiadów się nie zmienia.



4
myślę, że po prostu chce robić triangulacje, a nie na barana ...
Marinheiro

Bez piggybackingu - wystarczy siła sygnału, którą można zmierzyć, prawda? Nie zamierzam „googlować” wifi ... blogs.discovermagazine.com/80beats/2010/10/10/25/…
Kirk Kuykendall

Odpowiedzi:


6

Wygląda na to, że nie znasz zbyt dobrze lokalizacji sygnałów, więc najpierw musisz je oszacować, a następnie, biorąc pod uwagę te szacunki, triangulować swoją pozycję.

Jeśli chcesz uzyskać trochę dokładności i realizmu, rozważ przyjęcie modelu prawdopodobieństwa dla mocy sygnału, znalezienie maksymalnego prawdopodobieństwa i utworzenie mapy siatki prawdopodobieństwa lokalizacji obliczonej na podstawie oszacowań maksymalnego prawdopodobieństwa. Globalne maksimum na siatce określa najlepsze oszacowanie lokalizacji, a kontury (w stosunku do maksimum) dają zestawy pewności dla tej lokalizacji.

Ogólny model prawdopodobieństwa uzyskuje się przez przyjęcie wzoru na tłumienie sygnału i dopuszczenie błędu. Nie zajdziesz daleko dzięki całkowicie ogólnej formule (z funkcją tłumienia zależną od kąta i lokalizacji), więc musisz uprościć. Na przykład możesz rozważyć „uniwersalną” funkcję tłumienia, nazwij ją f , aby jeśli siła źródła w lokalizacji WiFi x była równa a, to oczekiwana siła w innej lokalizacji y jest podana przez

z (y; x) = af (| y - x |).

Na przykład można rozważyć tłumienie odwrotne do kwadratu, dla którego f (t) = 1 / t ^ 2, pod warunkiem, że odległość t jest większa niż jakiś mały próg. Jako kolejne uproszczenie, możesz wziąć odczyt siły z (y; x) w lokalizacji y, aby źródło w x różniło się od wartości oczekiwanej przez błąd o rozkładzie normalnym; zakładamy, że wszystkie błędy są niezależne; i przejąć wszystkie one mają taką samą odchylenie standardowe ( s ). Udział w prawdopodobieństwie dziennika odczytu siły z staje się wówczas

L (y, x) = - [(z (y; x) - af (| yx |) ^ 2 / s ^ 2 + ln (s)] / 2.

Prawdopodobieństwo maksymalizacji dziennika jest podwójną sumą L (y, x) we wszystkich lokalizacjach y i wszystkich źródłach x . Jest to funkcja nieznanych lokalizacji, intensywności nieznanego źródła i nieznanego standardowego odchylenia błędów. To proste, aby znaleźć optymalne odchylenie standardowe i optymalne intensywności źródła (ma pochodne cząstkowe, ustawić te do zera i rozwiązać), ale realistycznych funkcji tłumienia f masz nieliniowy problem dla znalezienia lokalizacji. Jednak w twoim przykładzie zawiera on tylko 13 parametrów, więc powinieneś być w stanie zrzucić go, powiedzmy, na wielowymiarowy optymalizator Newtona-Raphsona i szybko uzyskać dobrą odpowiedź. (Literatura statystyczna jest pełna metod rozwiązywania tego rodzaju równań.)

Jeśli dodatkowo założysz, że drugie urządzenie ma proporcjonalnie większą czułość niż urządzenie do gromadzenia danych, nie będzie to miało większego znaczenia w zaproponowanym przeze mnie modelu (ponieważ siły sygnału wprowadzają się mnożąco). W rzeczywistości, jeśli pozwalasz na skalowanie błędów z intensywnością (więc mają one odchylenie standardowe a * s * zamiast s ), różnica między urządzeniami powinna być nieistotna.

Aby uprościć tę kwestię, pominąłem pewne drobiazgi statystyczne, takie jak fakt, że jest to problem interwału przewidywania na wielu odmianach, a nie problem przedziału ufności. Jeśli wielkość błędu nie jest duża (tj. S jest niewielka), różnica nie będzie miała większego znaczenia.


Dzięki Bill, to wygląda na wykonalne. Z laptopami właśnie zdałem sobie sprawę, że sygnał jest wrażliwy na orientację anten. Nie jestem pewien, czy dotyczy to telefonów komórkowych. Czy ustalenie lokalizacji byłoby wystarczające dla przypadku użycia w szkole średniej?
Kirk Kuykendall

Poradzisz sobie z orientacją, ale staje się to bardziej skomplikowane i wymagałoby więcej odczytów. Zamiast tego rozważ użycie maksymalnego sygnału spośród wszystkich możliwych orientacji w każdym punkcie. Przypadek użycia w szkole średniej jest ciekawym wariantem, ponieważ sugeruje zrobienie wszystkiego, co w jego mocy, aby raz na zawsze zidentyfikować lokalizacje i moce nadawców WiFi. Następnie jest to ćwiczenie triangulacji. Jedną z moich obaw jest to, że siły źródeł mogą się różnić, często nieprzewidywalnie. To naprawdę może zepsuć triangulację. Zastanów się nad dodaniem początkowego ekranu dla odległych (niskich) sygnałów, aby nie zniszczyć poprawki.
whuber



0

Jeśli zbierasz lokalizację za pomocą GPS, myślę, że patrzysz na dwa różne czynniki błędu. jeden dla GPS, a drugi dla siły sygnału.


W tym kontekście Kirk mógł faktycznie zweryfikować lokalizacje na swoim podwórku niezależnie (tj. Po prostu pobrać wiele odczytów GPS z każdej lokalizacji).
Andy W,

0

Czy nie możesz wykorzystać jednego z istniejących systemów pozycjonowania WiFi, takich jak Skyhook Wireless lub Core Location w Apple iOS? Skyhook pozwala ręcznie dodawać adresy MAC Wi-Fi do ich bazy danych, iOS automatycznie zbiera adresy MAC Wi-Fi za pomocą iPhone'a wyposażonego w GPS.


To nie byłby zły pomysł, gdyby chciał dowiedzieć się, gdzie jest. Ale sam próbuje znaleźć sposób na zebranie lokalizacji sieci. Co więcej, stara się triangulować swoją pozycję na podstawie siły sygnałów WiFi. Nie jestem pewien, czy rozwiązania komercyjne to robią.
jvangeld,

@jvangeld: O ile rozumiem, lokalizacja Core w iOS używa siły sygnału Wi-Fi do triangulacji pozycji. W przypadku wspomnianego szkolnego skrzyni ładunkowej będzie to właściwa droga.
Ortwin Gentz

0

Kościół,

Chociaż mogę się mylić, myślę, że jesteś o wiele za skomplikowany. Chociaż, mówiąc szczerze, nie pochodząc z twojej części świata, nie wiem, z jakimi ograniczeniami pracujesz w środowisku kampusu szkolnego.

Podczas gdy większość urządzeń mobilnych już obsługuje GPS i lub triangulację wieży komórkowej, dla WiFi, SkyHook jest odpowiedzią z następujących powodów: 1. Ich baza danych lokalizacji Wi-Fi jest OGROMNA. 2. Za każdym razem, gdy używana jest aplikacja korzystająca z SkyHook, dodaje do bazy danych nowo znalezione sieci WiFi wraz z pozycją. Im bardziej jest używany w danym obszarze, tym bardziej dokładny staje się. Domyślam się, że w miejscach o dużej gęstości, takich jak kampus, jeśli nie ma jeszcze dobrego zasięgu, będzie to miało miejsce w ciągu kilku dni regularnego użytkowania. 3. Niektóre telefony używają SkyHook jako części interfejsów API lokalizacji, co oznacza, że ​​coraz więcej normalnych interfejsów API telefonów będzie miało tę funkcję już wbudowaną.

Szczerze mówiąc, chyba że chcesz, aby ta usługa była dostępna na laptopach (większość nowych przeglądarek ma wbudowany SkyHook), większość telefonów ma teraz GPS, do którego można uzyskać dostęp poprzez natywne interfejsy API telefonu, czy to iOS, Android, WP7 lub Jeżyna. Inną opcją byłoby uczynienie z niej mobilnej aplikacji internetowej, która po prostu używałaby interfejsu API lokalizacji przeglądarki, z dostępem do wszystkich narzędzi lokalizacji w telefonie.


Myślałem, że skyhook zbiera dane za pośrednictwem wardriving. Nie wyobrażam sobie, żeby jechali na szkolne drogi, choć przypuszczam, że są one publiczne.
Kirk Kuykendall,

Masz rację, ale ponieważ klienci „rozszerzają” swoją bazę danych oprócz prowadzenia wojny, prawdopodobnie przekonasz się, że i tak mają oni zasięg. Zawsze możesz przetestować, ładując Operę na laptopa, idź na kampus z włączoną maps.google.com i Wi-Fi i zobacz, gdzie Cię to zaprowadzi.
BlinkyBill,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.