Miskolci Egyetem · G´ep´eszm´ern¨oki ´es Informatikai Kar Informatikai ´es Villamosm´ern¨oki Tansz´ekcsoport ´ Altal´ anos Informatikai Int´ezeti Tansz´ek
Belt´ eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´ eny approxim´ aci´ o seg´ıts´ eg´ evel
Diplomamunka
K´esz´ıtette:
Tervez´esvezet˝ o:
F¨ ul¨op G´abor Andr´as
T´oth Zsolt
O5MI1K
Egyetemi tan´arseg´ed
3411 Szomolya, R´ozsa Ferenc u ´t 6.
´ Altal´ anos Informatikai Int´ezeti Tansz´ek
Miskolc, 2014.
Tartalomjegyz´ ek 1. Bevezet´ es
1
2. Helymeghat´ aroz´ asi m´ odszerek
2
2.1. Poz´ıcion´al´o rendszerek . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.1.1. Glob´alis poz´ıcion´al´o rendszerek . . . . . . . . . . . . . . . . . .
2
2.1.1.1. GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.1.1.2. GSM alap´ u rendszerek . . . . . . . . . . . . . . . . . .
3
2.1.2. Belt´eri poz´ıcion´al´o rendszerek . . . . . . . . . . . . . . . . . . .
3
2.2. Technik´ak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2.1. H´aromsz¨ogel´es . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2.2. Fingerprinting . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3. L´ etez˝ o belt´ eri megold´ asok
7
3.1. Belt´eri helymeghat´aroz´asi technol´ogi´ak . . . . . . . . . . . . . . . . . .
7
3.1.1. Infrav¨or¨os technol´ogia . . . . . . . . . . . . . . . . . . . . . . .
7
3.1.2. Ultrahang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.1.3. RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.3.1. LANDMARC . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.4. L´etez˝o helyi fejleszt´es . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2. WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2.1. Szabv´anyok . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2.2. Biztons´ag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
4. Received Signal Strength approxim´ aci´ o
15
4.1. Fel¨ uletek k¨ozel´ıt´ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
4.1.1. Szimul´alt leh˝ ut´es . . . . . . . . . . . . . . . . . . . . . . . . . .
16
I
4.1.2. Neur´alis h´al´o alkalmaz´asa . . . . . . . . . . . . . . . . . . . . .
17
4.2. Helymeghat´aroz´asi m´odszer . . . . . . . . . . . . . . . . . . . . . . . .
17
4.2.1. Ide´alis eset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
4.2.2. Val´os eset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
5. Rendszerterv
19
5.1. Architekt´ ura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
5.1.1. Offline f´azis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
5.1.2. Online f´azis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
5.2. Szerver oldal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
5.2.1. API modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
5.2.2. Service modul . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
5.2.3. DAO modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
5.2.4. Approximation modul . . . . . . . . . . . . . . . . . . . . . . .
23
5.2.5. WAR modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
5.3. Kliens oldal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.4. Az adatb´azis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
6. Implement´ aci´ o
26
6.1. Felhaszn´alt technol´ogi´ak . . . . . . . . . . . . . . . . . . . . . . . . . .
26
6.1.1. Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
6.1.2. Maven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
6.1.3. Spring keretrendszer . . . . . . . . . . . . . . . . . . . . . . . .
28
6.1.4. JAXB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
6.1.5. MyBatis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
6.1.6. Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
6.2. Az Approximation modul
. . . . . . . . . . . . . . . . . . . . . . . . .
30
6.3. El˝ok´esz´ıt´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
6.4. Szimul´alt leh˝ ut´es megval´os´ıt´asa . . . . . . . . . . . . . . . . . . . . . .
32
6.5. Neu´alis h´al´o megval´os´ıt´asa . . . . . . . . . . . . . . . . . . . . . . . . .
34
6.5.1. Offline f´azis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
6.5.2. Online f´azis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
II
7. Tesztel´ es
39
7.1. A k¨ornyezet kialak´ıt´asa . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
7.1.1. Lak´as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
7.1.2. Neur´alis h´al´ok tan´ıt´asa a lak´asban . . . . . . . . . . . . . . . .
41
7.1.3. Informatika int´ezet . . . . . . . . . . . . . . . . . . . . . . . . .
42
7.2. Teszteredm´enyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
7.2.1. Lak´as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
7.2.2. Informatika int´ezet . . . . . . . . . . . . . . . . . . . . . . . . .
44
7.3. Probl´em´ak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
¨ 7.4. Osszegz´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
8. Tov´ abbfejleszt´ es
48
8.1. Szerver oldal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
8.2. Kliens oldal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
¨ 9. Osszefoglal´ as
50
10.Summary
51
11.K¨ osz¨ onetnyilv´ an´ıt´ as
52
A. CD mell´ eklet
53
III
1. fejezet Bevezet´ es Az elm´ ult ´evtizedben egyre n¨ovekv˝o ig´eny t´amadt a belt´eri poz´ıcion´al´asi m´odszerek ir´ant.
Ezeknek sok alkalmaz´asi ter¨ ulete k´epzelhet˝o el.
Az egyik ilyen p´eld´aul a
k´orh´azakban dolgoz´o orvosok poz´ıci´oj´at monitoroz´o alkalmaz´as, mely seg´ıts´eg´evel a dolgoz´okat k¨onnyebben el tudj´ak sz¨ uks´eg eset´en ´erni. Lehets´eges p´eld´aul olyan rendszer kidolgoz´asa is, melyet rakt´arakban hasznos´ıthatunk, hogy az ott mozg´o ´arucikkeket nyomon tudjuk k¨ovetni. A l´etez˝o m´odszerek sz´amos technol´ogi´at haszn´alnak, mint p´eld´aul infrav¨or¨os f´enyt, ultrahangot, RFID-t ´es WiFi-t. Az egyik els˝o belt´eri helymeghat´aroz´o rendszer az Active Badge n´evre hallgat´o infrav¨or¨os technol´ogi´at haszn´al´o eszk¨oz volt. Ezt k¨ovet˝oen megjelentek az ultrahangos technol´ogi´an alapul´o rendszerek p´eld´aul az Active Bats. Napjainkban pedig az RFID-t ´es a WiFi-t haszn´al´o rendszerek n´epszer˝ uek. Dolgozatomban egy WiFi alap´ u rendszer ker¨ ul kidolgoz´asra, v´alaszt´asomnak sz´amos oka van. Egyr´eszt a WiFi h´al´ozatok sz´eles k¨orben elterjedtek, m´asr´eszt WiFi interf´esszel napjainkban szinte minden mobilk´esz¨ ul´ek rendelkezik. Tov´abb´a az ilyen h´al´ozatok ki´ep´ıt´ese alacsony k¨olts´eg˝ u ´es kommunik´aci´os c´elra is alkalmazhat´oak. A dolgozatomban bemutatott rendszer a Received Signal Strength (RSS), azaz a pontban m´ert jeler˝oss´egek ´ert´ekeinek k¨ozel´ıt´es´en alapszik. A m´odszer el˝onye, hogy nem sz¨ uks´eges ismern¨ unk az ad´ok helyzet´et. A rendszer m˝ uk¨od´ese k´et f˝o f´azisra oszthat´o. Az offline f´azisban a t´er mintav´etelez´ese t¨ort´enik, az online f´azisban pedig a poz´ıci´o meghat´aroz´as´at v´egzi az alkalmaz´as adott heurisztika alapj´an. C´elom egy ilyen technol´ogi´at haszn´al´o rendszer tervez´ese, implement´al´asa ´es val´os k¨ornyezetbeli tesztel´ese.
1
2. fejezet Helymeghat´ aroz´ asi m´ odszerek Ebben a fejezetben egy r¨ovid ismertet˝o tal´alhat´o a poz´ıcion´al´asi m´odszerekr˝ol. K¨ ul¨on kiemelem ezen m´odszerek k´et nagy csoportj´at, a glob´alis- ´es belt´eri helymeghat´aroz´asi m´odszereket. Tov´abb´a a m´odszerek ´altal haszn´alt technik´akat foglalom o¨ssze r¨oviden.
2.1. Poz´ıcion´ al´ o rendszerek A helymeghat´aroz´asi rendszereket k´et nagy csoportba oszthatjuk. Megk¨ ul¨onb¨oztetj¨ uk a glob´alis- ´es belt´eri poz´ıcion´al´asi rendszereket. B´ar ezen rendszerek c´elja megegyezik, a felhaszn´alt technol´ogi´ak, m´odszerek ´es a vel¨ uk szemben t´amasztott k¨ovetelm´enyek jelent˝os k¨ ul¨onbs´egeket mutatnak.
2.1.1. Glob´ alis poz´ıcion´ al´ o rendszerek 2.1.1.1. GPS Napjaink legismertebb poz´ıcion´al´o rendszere a Global Positioning System [5], k¨ozismert nev´en GPS. Seg´ıts´eg´evel a F¨old b´armely pontj´an 3 dimenzi´os helymeghat´aroz´ast v´egezhet¨ unk a nap 24 o´r´aj´aban. Eredetileg katonai alkalmaz´asra lett kifejlesztve, de ma m´ar civil haszn´alatra is enged´elyezt´ek. M˝ uk¨od´ese 24 m˝ uholdon alapszik, melyek u ´gy helyezkednek el, hogy a F¨old minden pontj´ar´ol legal´abb 4 l´atsz´odjon. Ez az´ert fontos szempont, mert a f¨oldfelsz´ıni helymeghat´aroz´ashoz 4, a tengerszint felettihez pedig legal´abb 5 referenciapont sz¨ uks´eges. A poz´ıci´o meghat´aroz´asa id˝om´er´esre visszavezetett t´avols´agm´er´esen alapszik. A t´avols´ag kisz´am´ıthat´o a r´adi´ohull´amok terjed´esi sebess´eg´enek, valamit az ad´as ´es a 2
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
v´etel id˝opontj´anak ismeret´eben. A GPS vev˝oknek ez´ert ismerni¨ uk kell a m˝ uholdakon lev˝o atom´or´ak pontos idej´et. Ezzel a rendszerrel ´atlagosan a civil felhaszn´al´asban 5 m´eteres pontoss´ag ´erhet˝o el, hadi ´es egy´eb felhaszn´al´asi c´elokra enn´el pontosabb rendszerek is el´erhet˝oek. A rendszer h´atr´anya, hogy belt´erben nem alkalmazhat´o, mert nem ,,l´atjuk” a haszn´alni k´ıv´ant m˝ uholdakat. 2.1.1.2. GSM alap´ u rendszerek Napjainkban szinte mindenki rendelkezik GSM (Global System for Mobile Communications) alap´ u mobil k´esz¨ ul´ekkel. Az eszk¨oz¨ok ´es ez a´ltal a felhaszn´al´ok azonos´ıt´asa lehets´eges cellainform´aci´ok alapj´an. A mobilk´esz¨ ul´ekek ´altal´aban hossz´ u u ¨zemid˝ot biztos´ıtanak [22] ´es semmilyen hardveres m´odos´ıt´as nem sz¨ uks´eges a helyzet¨ uk meghat´aroz´as´ahoz. Tov´abbi pozit´ıv szempont, hogy a mobilszolg´altat´ok a´ltal rengeteg ki´ep´ıtett ´es j´o lefedetts´eg˝ u GSM h´al´ozat tal´alhat´o meg az egyes orsz´agokban [17]. ´ A ’90-es ´evekben az Amerikai Egyes¨ ult Allamokban felmer¨ ult az ig´eny a seg´elyh´ıv´o szolg´altat´asok tov´abbfejleszt´es´ere. ´Igy kezdt´ek el az E-911 [23] (Enhanced 911) rendszer fejleszt´es´et. Az alkalmaz´as f˝o c´elja, hogy a seg´elyh´ıv´ast kezdem´enyez˝o k´esz¨ ul´ek helyzet´et azonnal be tudj´ak m´erni. Ennek pontoss´aga k¨or¨ ulbel¨ ul v´arosi k¨ornyezetben 150 m´eter [17], amely nem mondhat´o a helymeghat´aroz´as szempontj´ab´ol alacsony ´ert´eknek, de az alapvet˝o c´elnak megfelel, mivel ´ıgy behat´arolhat´o a legk¨ozelebbi seg´elyny´ ujt´o k¨ozpont. Tov´abbi el˝onye a rendszernek, hogy ha a h´ıv´o besz´ed ´es/vagy hall´aszavaros a´llapotban van, helyzete az E-911 seg´ıts´eg´evel akkor is lokaliz´alhat´o.
2.1.2. Belt´ eri poz´ıcion´ al´ o rendszerek Ahogyan az el˝oz˝oekben bemutattam, a glob´alis helymeghat´aroz´o rendszerek ´altal´aban 10-100 m´eteres pontoss´aggal k´epesek meghat´arozni a helyzet¨ unket. Ezek az ´ert´ekek k¨ ult´eren elegend˝oek, viszont a belt´eri poz´ıcion´al´assal szemben elv´art pontoss´agot m´ar nem tudj´ak kiel´eg´ıteni. A k¨ ult´eri technol´ogi´ak, mint p´eld´aul a GPS belt´erben nem is alkalmazhat´oak. A belt´erben t¨ort´en˝o poz´ıcion´al´as egyik felhaszn´al´asi m´odja lehet p´eld´aul egy bev´as´arl´ok¨ozpontban ki´ep´ıtett rendszer, amely p´ar m´eteres pontoss´aggal tud inform´aci´ot ny´ ujtani a felhaszn´al´onak, hogy ´eppen hol tart´ozkodik az ´ep¨ uleten bel¨ ul. A k¨ ul- ´es belt´eri helymeghat´aroz´as k¨oz¨otti k¨ ul¨onbs´eget j´ol szeml´elteti a 2.1. a´bra. 3
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
2.1. ´abra. GPS ´es IPS ¨osszehasonl´ıt´as [6] L´athat´o, hogy ha p´eld´aul k´ıv´ancsiak vagyunk, hogy milyen u ¨zletek vagy ´ettermek vannak a k¨ozel¨ unkben, nem sz¨ uks´eges a t¨ok´eletesen pontos helyzet¨ unk meghat´aroz´asa. Viszont ha a bev´as´arl´ok¨ozponton bel¨ ul szeretn´enk a k¨ozelben l´ev˝o u ¨zleteket megtal´alni, a felhaszn´al´oi ´elm´eny szempontj´ab´ol m´ar j´oval pontosabb helyadatokra van sz¨ uks´eg.
2.2. Technik´ ak 2.2.1. H´ aromsz¨ ogel´ es A GPS elterjed´ese el˝ott az egyetlen helymeghat´aroz´asi m´odszer a h´aromsz¨ogel´es volt. L´enyege, hogy k´et ismert helyzet˝ u pontb´ol kisz´am´ıthat´o a harmadik, eset¨ unkben a saj´at tart´ozkod´asi hely¨ unk koordin´at´aja. A m´odszert a 2.2. a´bra szeml´elteti.
2.2. ´abra. H´aromsz¨ogel´es ´abr´azol´asa
4
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
Ha ismert a h´aromsz¨og k´et cs´ ucs´anak koordin´at´aja ´es a hozz´ajuk tartoz´o bels˝o sz¨ogek, akkor a 2.1 ¨osszef¨ ugg´est ´ırhatjuk fel.
l=
d d + tgα tgβ
(2.1)
l +
(2.2)
´ Atrendezve a 2.2 k´epletet kapjuk.
d=
1 tgα
1 tgβ
Az el˝oz˝oekben bemutatott m´odszer, a triangulation a h´aromsz¨og bels˝o sz¨ogeit haszn´alja a keresett t´avols´ag meghat´aroz´as´ara. Egy m´asik h´aromsz¨ogel´eshez haszn´alt technika az u ´gynevezett trilateration, amit a 2.3. ´abra szeml´eltet. Enn´el a h´arom pontra egy-egy g¨ombfel¨ uletet illeszt¨ unk, melyek sugar´at az egyes pontokt´ol m´ert t´avols´ag hat´arozza meg. A keresett pontot a h´arom g¨omb metsz´espontja adja meg. Ezt a m´odszert haszn´alj´ak p´eld´aul a GPS rendszerek a helymeghat´aroz´asra.
2.3. ´abra. Trilateration [15]
2.2.2. Fingerprinting A belt´eri poz´ıcion´al´asban legink´abb elterjedt m´odszer a fingerprinting [19] [20], vagyis az ujjlenyomat v´etelez´es. A folyamatot k´et r´eszre bonthatjuk, ezek az offline- ´es online f´azis. Az offline f´azisban els˝o l´ep´esk´ent meghat´arozzuk a m´er´esek hely´et mutat´o szondapontokat. Ezen pontokban lem´erj¨ uk az ott el´erhet˝o r´adi´ofrekvenci´as jeler˝oss´egeket, majd let´aroljuk az ´ert´ekeket. Ezzel minden egyes referenciapontban rendelkez¨ unk az 5
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
egyes ad´okhoz tartoz´o lok´alis inform´aci´okkal, ´ıgy el˝o´all a helysz´ın t´erk´epe, kv´azi ujjlenyomata. Az online f´azisban az aktu´alis m´ert ´ert´eket ¨osszehasonl´ıtjuk az adatb´azisban t´aroltakkal. Ezt k¨ovet˝oen az egyes l´etez˝o rendszerek valamilyen heurisztik´an alapul´o m´odszer seg´ıts´eg´evel hat´arozz´ak meg az aktu´alis poz´ıci´ot. Ezek a heurisztikus m´odszerek p´eld´aul lehetnek klaszterez´es, oszt´alyoz´as, felt´eteles val´osz´ın˝ us´eg vagy k–NN alap´ uak. A m´odszer el˝onye, hogy nem kell t¨or˝odn¨ unk a falak ´es b´ utorok miatti visszaver˝od´esekkel, nem kell ismern¨ unk az ad´ok param´etereit, karakterisztik´aj´at, mivel csak minden egyes pontban az a´ltaluk adott jel er˝oss´eg´ere van sz¨ uks´eg¨ unk. Ezzel szemben h´atr´anya pedig az, hogy ha az infrastrukt´ ura vagy a belt´eri fel´ep´ıt´es v´altozik, u ´jra el kell v´egezni az offline f´azis m´er´eseit.
6
3. fejezet L´ etez˝ o belt´ eri megold´ asok A k¨ovetkez˝o fejezetben az iparban m´ar l´etez˝o ´es haszn´alt helymeghat´aroz´asi technol´ogi´akat, eszk¨oz¨oket fogok bemutatni.
3.1. Belt´ eri helymeghat´ aroz´ asi technol´ ogi´ ak 3.1.1. Infrav¨ or¨ os technol´ ogia Az infrav¨or¨os technol´ogia egy, a k¨ovetkez˝okben bemutatott gyakorlati megval´os´ıt´asa az Active Badge [24]. Arra t¨orekszik, hogy egy kis m´eret˝ u, akt´ıv jeleket sug´arz´o kit˝ uz˝o seg´ıts´eg´evel meghat´arozhat´o legyen az egy´en helyzete az ´ep¨ uletben. A k´esz¨ ul´ek 15 m´asodpercenk´ent egy egyedi jelet ad, melyeket az ´ep¨ uletben elhelyezett szenzorok h´al´ozata folyamatosan figyel. Egy k¨ozponti szerver folyamatosan lek´eri a vev˝o egys´egek adatait, majd feldolgoz´as ut´an haszn´alhat´o vizu´alis form´aban megjelen´ıti azt a felhaszn´al´ok sz´am´ara. A jelad´o k´esz¨ ul´ek a 3.2. ´abr´an l´athat´o.
3.1. ´abra. Active Badge [1] Impulzus sz´eless´eg modul´alt infrav¨or¨os jeleket haszn´alnak a kit˝ uz˝o ´es a szenzorok k¨oz¨otti kommunik´aci´ora, melynek f˝o oka az, hogy a f´elvezet˝o ad´ok ´es vev˝ok alacsony 7
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
el˝o´all´ıt´asi k¨olts´egek mellett nagyon kicsire elk´esz´ıthet˝oek. Ak´ar 6 m´eteres hat´osug´ar is el´erhet˝o, az infrav¨or¨os hull´amok visszaver˝odnek a helyis´egben, de a falakon nem hatolnak ´at ellent´etben a r´adi´ohull´amokkal. Mivel az akt´ıv jelad´o a´ramot fogyaszt, ´ıgy a jelz´esi s˝ ur˝ us´eg meghat´aroz´asa egy fontos tervez´esi szempont volt. A 15 m´asodpercenk´enti ad´asok annyira kev´es energi´at em´esztenek fel, hogy az egys´eg k¨or¨ ulbel¨ ul egy ´eves m˝ uk¨odtet´es´et egy kis m´eret˝ u elemmel biztos´ıtani lehet. Fontos elv´ar´as a rendszert˝ol, hogy ugyanazon helyen tart´ozkod´o embereket is detekt´alni lehessen. Mivel a leadott jel hossz´ us´aga mind¨ossze egy tized m´asodperc, ez´ert hozz´avet˝olegesen 2 a 150-hez az es´elye annak, hogy k´et egy helyis´egben leadott jel u ¨tk¨ozz¨on egym´assal, valamint tov´abbi m´odos´ıt´asokkal a szinkroniz´aci´o nem jelent gyakorlati probl´em´at a rendszer sz´am´ara. Az akt´ıv jelv´eny fel van szerelve egy f´eny´erz´ekel˝o komponenssel. S¨ot´etben kikapcsolja a k´esz¨ ul´eket, kis f´enyer˝on´el pedig megn¨oveli a jelad´asok k¨oz¨otti peri´odus nagys´ag´at. Norm´al, k¨ornyezeti f´enyn´el egy szob´aban ez a mechanizmus nagyon apr´o v´altoztat´asokat jelent a peri´odusok v´altoztat´as´aban, de ez egy u ´jabb pozit´ıv hat´as arra n´ezve, hogy az esetlegesen szinkronban l´ev˝o jelad´ok kibillenjenek ebb˝ol az a´llapotb´ol. A ritk´abb szign´aloz´as egy h´atr´anya, hogy a keresett szem´ely poz´ıci´oja legjobb esetben is egy 15 m´asodperces id˝oablakban hat´arozhat´o meg, viszont mivel egy szem´ely relat´ıv lassan mozog egy ´ep¨ uletben, ´ıgy a rendszer a´ltal meghat´arozott adatok el´egs´egesen pontosak lehetnek. Ahhoz, hogy egy mozg´o akt´ıv jelv´enyt detekt´alni lehessen egy ´ep¨ uleten bel¨ ul, elengedhetetlen a vev˝o egys´egek megfelel˝o s˝ ur˝ us´eg˝ u elhelyez´ese. Az egyes detektorok alacsony a´r´ab´ol kifoly´olag a megfelel˝o lefedetts´eg ki´ep´ıt´ese nem k¨olts´eges. A szenzor h´al´ozat RS232-es k´abelen kereszt¨ ul csatlakozik egy munka´allom´ashoz, ´es ezen kereszt¨ ul kapj´ak a meghajt´asukhoz sz¨ uks´eges ´aramell´at´ast is. A munka´allom´asok egym´assal Ethernet h´al´ozaton vannak o¨sszekapcsolva, az a´ltaluk o¨sszegy˝ ujt¨ott adatokat pedig egy mester szerverre tov´abb´ıtj´ak, ahol megt¨ort´enik a feldolgoz´as ´es ´ert´ekel´es. Amennyiben a szerver nem tudja elegend˝o gyorsas´aggal lek´erni az adatokat a szenzorokt´ol, az adatveszt´es elker¨ ul´ese miatt minden detektorban egy 20 v´etel t´arol´as´ara alkalmas FIFO mem´oria tal´alhat´o meg.
8
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
3.2. ´abra. Active Badge rendszer m˝ uk¨od´ese [24] A fent le´ırt rendszer gyakorlatban t¨ort´en˝o els˝o alkalmaz´asa a telefonos recepci´osok munk´aj´at megk¨onny´ıt´es´ere szolg´alt. A szenzorokat irod´akba, k¨oz¨os helyis´egekbe ´es folyos´okra telep´ıtett´ek, de term´eszetesen hagytak olyan helysz´ıneket, ahol a dolgoz´ok mentes¨ ulhettek a monitoroz´as al´ol. A rendszer t´abl´azatos elrendez´esben jelen´ıti meg az egyes szem´elyek nev´et, tart´ozkod´asi hely´et ´es az inform´aci´o helyess´eg´enek val´osz´ın˝ us´eg´et, valamint egy egyszer˝ u lek´erdez˝o fel¨ uletet is biztos´ıt a felhaszn´al´ok sz´am´ara. A recepci´os u ¨gyint´ez˝ok ´ıgy k¨onnyen megtudhatj´ak a keresett szem´ely poz´ıci´oj´at. A rendszer ´altal biztos´ıtott funkci´ok a k¨ovetkez˝ok: • FIND(name): megadja a param´eterben szerepl˝o n´evhez tartoz´o jelv´eny helyzet´et. Amennyiben az mozg´asban volt az utols´o 5 percben, kilist´azza az o¨sszes ismert poz´ıci´oj´at ez id˝o alatt ´es azok val´osz´ın˝ us´eg´enek m´ert´ek´et, hogy ott tart´ozkodott-e a keresett szem´ely • WITH(name): a param´eterben megadott egy´ennel egy helyis´egben l´ev˝o szem´elyek list´aj´at adja vissza • LOOK(location): a param´eterben megadott ter¨ uleten tart´ozkod´o szem´elyek list´aja • NOTIFY(name): a parancs kiad´asa ut´an a param´eterben megadott azonos´ıt´oj´ u jelv´eny k¨ovetkez˝o ´eszlel´esekor hangjelz´est ad ki
9
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
• HISTORY(name): a param´eterben megadott szem´ely ut´obbi 1 o´r´aban t¨ort´ent mozg´as´ar´ol k´esz´ıt riportot az alkalmaz´as
3.1.2. Ultrahang Az Active Badge tervez˝oi kidolgoztak egy 3 dimenzi´os lokaliz´aci´ora is k´epes eszk¨ozt. Ez az Active Bat [2] n´evre hallgat´o ultrahangot haszn´al´o rendszer. Az infrav¨or¨os el˝odj´ehez hasonl´oan alacsony el˝oa´ll´ıt´asi k¨olts´eg˝ u, kis fogyaszt´as´ u ´es vezet´ek n´elk¨ uli az eszk¨oz. Az ultrahangos lok´aci´os rendszer a h´aromsz¨ogel´es m´odszer´en alapul. A megtal´alni k´ıv´ant objektumon egy ad´o r¨ovid impulzusokban ultrahangot sug´aroz. A felszerelt vev˝o k´esz¨ ul´ekek hely´et ismerj¨ uk, ´es a rendszer lem´eri az ad´as ´es v´etel k¨oz¨otti id˝otartamot. Mivel a hang terjed´es´enek sebess´ege ismert, ´ıgy a k´et eszk¨oz k¨oz¨otti t´avols´ag kisz´am´ıthat´o. 3 vagy t¨obb vev˝o k´esz¨ ul´ekt˝ol sz´armaz´o adat m´ar elegend˝o inform´aci´ot biztos´ıt az ad´o k´esz¨ ul´ek 3 dimenzi´os poz´ıci´oj´anak meghat´aroz´as´ahoz. A rendszer logikai fel´ep´ıt´es´et ´es m˝ uk¨od´es´et a 3.3. ´abra mutatja.
3.3. ´abra. Active Bat m˝ uk¨od´ese [3] A vev˝o (Rx) egys´egek egy n´egyzetes r´acsh´al´o ment´en egym´ast´ol 1,2 m´eter t´avols´agra ¨ vannak elhelyezve. Osszek¨ ottet´es¨ uket egy nagy sebess´eg˝ u soros h´al´ozat biztos´ıtja. A h´al´ozatra csatlakozik m´eg egy feldolgoz´o egys´eg (szerver), amely begy˝ ujti a vev˝okt˝ol az adatokat majd azokb´ol kisz´am´ıtja az ad´o (Tx) poz´ıci´oj´at. Egy k¨ozponti vez´erl˝o ir´any´ıtja az ad´o- ´es vev˝o egys´egeket. Ha egy ad´o egys´eget meg szeretn´enk tal´alni, a vez´erl˝o r´adi´ojel seg´ıts´eg´evel megc´ımzi azt, majd fel´ebred´esekor leadja az ultrahang jelet. Ezen elj´ar´as seg´ıts´eg´evel az ad´ok m˝ uk¨od´esi id˝otartama nagyban megn¨ovelhet˝o, mivel ´ıgy nem kell folyamatosan sug´arozniuk. 10
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
Az ismertetett ultrahangos rendszer nagy m´eret˝ u ´ep¨ uletekre lett tervezve, ahol rengeteg mozg´o objektum tal´alhat´o.
Az els˝o ´eles alkalmaz´as p´eld´aul egy 3 eme-
letes, k¨or¨ ulbel¨ ul o¨sszesen 1000 m2 ter¨ uletet lefed˝o ´ep¨ uletben t¨ort´ent.
Itt a rend-
szer k´epes volt ak´ar 75 objektum helyzet´et 3 centim´eteres pontoss´aggal meghat´arozni m´asodpercenk´ent.
3.1.3. RFID Az RFID (Radio Frequency Identification) technol´ogi´at sz´amos belt´eri poz´ıcion´al´asi rendszer haszn´alja. Ilyen rendszer p´eld´aul a SpotOn [18] ´es a LANDMARC [21]. Ezek k¨oz¨ ul a dolgozatban csak a LANDMARC rendszert ismertetem. 3.1.3.1. LANDMARC A LANDMARC [21] rendszer alapjai a r¨ogz´ıtetten elhelyezett RFID olvas´ok ´es a referencia c´ımk´ek. El˝osz¨or is sz¨ uks´eg van minden egyes c´ımk´ehez tartoz´o jeler˝oss´eg ´ert´ek´ere, amelyek az olvas´ok hat´ot´avols´ag´aban vannak. Jelenleg a rendszer nem adja meg pontosan a m´ert jeler˝oss´eget, a LANDMARC eset´eben ezt egy 1-t˝ol 8-ig terjed˝o intervallumba sorolja be. Ezen okb´ol kifoly´olag egy el˝ozetes m´er´es sz¨ uks´eges, hogy meg lehessen hat´arozni melyik jelszint milyen t´avols´aghoz tartozhat. Belt´eri haszn´alat eset´en a falak ´es a bent l´ev˝o b´ utorok, t´argyak miatt ezen ´ert´ekek dinamikusan v´altoznak, ´ıgy k¨ozvetlen¨ ul a jeler˝oss´egi szint nem haszn´alhat´o pontos helymeghat´aroz´asra.
3.4. ´abra. RFID olvas´o ´es akt´ıv c´ımke [12] Az olvas´ok szempontj´ab´ol fontos, hogy ha k´epesek vezet´ek n´elk¨ uli technol´ogi´aval kommunik´alni, akkor azokat szabadabban el lehet helyezni. Ez az´ert nagy el˝ony, mert a LANDMARC kalibr´al´asakor az RFID olvas´ok ´es referencia c´ımk´ek egym´ashoz viszony´ıtott poz´ıci´oj´anak v´altoztat´as´aval egyre nagyobb pontoss´agot k´epes el´erni. 11
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
A rendszer fel´ep´ıt´es´ehez tartozik egy szerver is, amely feldolgozza az olvas´ok ´altal k¨ uld¨ott inform´aci´okat. A keresett objektumokat a mozg´o RFID c´ımk´ek jelentik. Ezek helyzet´enek meghat´aroz´as´ahoz t¨obb algoritmust is kidolgoztak. Az adott helysz´ın elrendez´ese ´es m´erete hat´arozza meg a lokaliz´aci´ohoz sz¨ uks´eges metodik´at. Tegy¨ uk fel, hogy n db RFID olvas´onk, m db referencia- ´es u db k¨ovetni k´ıv´ant c´ımk´enk van. Defini´alunk egy jeler˝oss´eg vektort, a mozg´o c´ımk´ehez rendelve. S = (S1 , S2 , ..., Sn ), ahol Si az i. olvas´o a´ltal vett jeler˝oss´eg a c´ımk´et˝ol (i ∈ (1, n)). L´etrehozunk egy ugyanilyen vektort a referencia c´ımk´ekhez is: θ = (θ1 , θ2 , ..., θn ). Minden egyes p (p ∈ (1, u)) keresett c´ımk´ere bevezetj¨ uk az Euklideszi t´avols´agot, melyet a 3.1 k´eplet mutat, ahol j ∈ (1, m). E jelenti a referencia ´es a keresett c´ımke k¨oz¨otti jeler˝oss´egre vett Euklideszi t´avols´agot, amely seg´ıts´eg´evel megadhatjuk a helyzeti kapcsolatot a c´ımk´ek k¨oz¨ott. ´Igy minden keresett c´ımk´ere megkapjuk az E = (E1 , E2 , . . . , Em ) vektorokat. Min´el k¨ozelebb van egy adott referenciapont pont a keresetthez, E ´ert´eke ann´al kisebb. v u n uX Ej = t (θi − Si )2 ,
(3.1)
i=1
Ezzel az algoritmussal megadhat´o a legk¨ozelebbi szomsz´ed minden keresett c´ımk´ehez az E ´ert´ekek o¨sszevet´es´evel. Ha a keresett c´ımke poz´ıci´oj´at a legk¨ozelebbi referencia pontnak tekintj¨ uk, akkor 1-legk¨ozelebbi szomsz´ed- (1-nearest neighbor, 1–NN), ha k´et referencia c´ımke poz´ıci´oj´at vizsg´aljuk, akkor 2-legk¨ozelebbi szomsz´ed algoritmusr´ol besz´el¨ unk, ´es ´ıgy tov´abb. Az ismeretlen c´ımke koordin´at´aj´at a 3.2 k´eplet seg´ıts´eg´evel hat´arozhatjuk meg a k–NN m´odszer alapj´an, ahol wi az i. szomsz´edos referencia c´ımk´ehez tartoz´o s´ ulyoz´as.
(x, y) =
k X
wi (xi , yi )
(3.2)
i=1
A s´ ulyoz´as ´ert´ek´et a 3.3 k´eplet seg´ıts´eg´evel sz´amolt´ak. Az o¨sszef¨ ugg´est tapasztalati u ´ton hat´arozt´ak meg [21].
wj =
1 Ei2 Pk 1 i=1 Ei2
(3.3)
A LANDMARC rendszer haszn´alatakor n´egyzetm´eterenk´ent egy RFID referencia c´ımke ´atlagosan 1 m´eteres pontoss´agot biztos´ıtott.
12
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
3.1.4. L´ etez˝ o helyi fejleszt´ es A Miskolci Egyetem G´ep´eszm´ern¨oki ´es Informatikai kar´an 2013-ban T´oth Zsolt tervez´esvezet˝o ´es Karsai Szabolcs fejleszt˝o a´ltal elkezd˝od¨ott egy belt´eri poz´ıcion´al´asi alkalmaz´as fejleszt´ese.
3.2. WiFi A diplomamunka alapj´aul szolg´al´o technol´ogi´anak a WiFi-t [16] v´alasztottam. Napjainkban m´ar nagyr´eszt minden h´aztart´asban megtal´alhat´o egy vagy t¨obb WiFi router. A technol´ogia elterjedts´ege ´es olcs´os´aga miatt k¨onny˝ u a poz´ıcion´al´ashoz kell˝o mennyis´eg˝ u router beszerz´ese ´es a h´al´ozat ki´ep´ıt´ese. A k¨ovetkez˝okben r¨oviden ezt a technol´ogi´at ismertetem.
3.2.1. Szabv´ anyok A WiFi-vel m˝ uk¨od˝o u ´tv´alaszt´ok napjainkban legelterjedtebb szabv´anyainak adatait a 3.1. t´abl´azat mutatja. 3.1. t´abl´azat. WiFi szabv´anyok Frekvencia Maxim´alis sebess´eg Belt´eri hat´ot´avols´ag Szabv´any [M bit/s] [m] [GHz] 802.11b
2.4
11
38
802.11g
2.4
54
38
802.11n
2.4, 5.0
600
70
L´athat´o, hogy a 802.11n-es szabv´any haszn´alat´aval ak´ar 70 m´eteres hat´ot´avols´agot is el´erhet¨ unk. Sz´amunkra ez az´ert fontos, mert egy nagyobb ´ep¨ ulet lefedetts´eg´enek biztos´ıt´as´ahoz kevesebb eszk¨oz telep´ıt´es´ere van sz¨ uks´eg, ´ıgy a ki´ep´ıt´esi k¨olts´egek cs¨okkennek. Az a´tviteli sebess´eg az alkalmaz´as szempontj´ab´ol nem relev´ans, mivel a h´al´ozati forgalom minim´alis a szerver ´es a mobil k´esz¨ ul´ekek k¨oz¨ott.
13
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
3.2.2. Biztons´ ag Mivel a WiFi vezet´ek n´elk¨ uli technol´ogia, ´ıgy nagy es´ellyel t´amad´as ´erheti a h´al´ozatot, amely komoly adatlop´asi gondokhoz vezethet. Term´eszetesen a technol´ogia rendelkezik biztons´agi szabv´anyokkal, melyeket a k¨ovetkez˝okben r´eszletezek. Az els˝o titkos´ıt´asi m´odszer az u ´gynevezett Wired Equivalent Privacy (tov´abbiakban WEP) volt. 64, 128, 256 ´es 512 bites v´altozatok l´eteznek, legelterjedtebbek a 64 ´es 128 bites verzi´ok. Sajnos a WEP technol´ogia csak l´atsz´olagos biztons´agot ad, mivel a titkos´ıt´ashoz haszn´alt kulcs a megfelel˝o seg´edprogramokkal viszonylag gyorsan, 4-5 perc alatt visszafejthet˝o. WEP-et alkalmaz´o router-ek eset´en aj´anlott az u ´tv´alaszt´ohoz csatlakozhat´o k´esz¨ ul´ekek MAC c´ım szerinti sz˝ ur´ese. Napjainkban legelterjedtebb titkos´ıt´as a Wi-Fi Protected Access (tov´abbiakban WPA), amely kik¨ usz¨ob¨oli a WEP protokoll legnagyobb hi´anyoss´ag´at. L´enyege, hogy a be´all´ıtott id˝o vagy bizonyos forgalmazott adatmennyis´eg ut´an az algoritmus lecser´eli a titkos´ıt´ashoz haszn´alt kulcsot. A brute-force t´amad´asok elker¨ ul´ese v´egett aj´anlott megfelel˝o hossz´ us´ag´ u ´es ¨osszetetts´eg˝ u jelsz´ot haszn´alni a WPA-hoz, ´ıgy haszn´alata l´enyegesen megn¨oveli a biztons´agot. A jelenlegi legbiztons´agosabb titkos´ıt´as a WPA protokoll m´asodik gener´aci´oja a WPA2 (a szabv´any neve IEEE 802.11i-2004).
14
4. fejezet Received Signal Strength approxim´ aci´ o A k¨ovetkez˝o fejezetben ismertetem az a´ltalam fejlesztett belt´eri poz´ıcion´al´asi m´odszert. A c´el az, hogy a rendelkez´esre ´all´o adatok alapj´an ennek seg´ıts´eg´evel min´el pontosabban meg tudjuk hat´arozni az alkalmaz´assal a t´erbeli helyzet¨ unket.
4.1. Fel¨ uletek k¨ ozel´ıt´ ese Tekints¨ unk egyetlen access point-ot. Ebben az esetben adott t´erbeli poz´ıci´okban ismerj¨ uk az access point-hoz tartoz´o jeler˝oss´eget dB-ben kifejezve. Ezek az inform´aci´ok az offline f´azis m´er´esei sor´an ker¨ ultek begy˝ ujt´esre. A bemutatott m´odszer ezen pontokra t¨ort´en˝o f¨ uggv´eny illeszt´esen alapszik. A jeler˝oss´eg f¨ uggv´eny´et fAP : R3 → R alak´ unak tekinthetj¨ uk. A f¨ uggv´enyt a 4.1 k´eplet r´eszletezi. A f¨ uggv´eny param´eterei az adott koordin´at´ak ´ert´ekei, a visszat´er´esi ´ert´eke pedig a pontban m´ert jeler˝oss´eg. Ennek a f¨ uggv´enynek a meghat´aroz´asa bonyolult feladat, ez´ert ezt az fAP f¨ uggv´enyt az fˆAP f¨ uggv´ennyel k¨ozel´ıtj¨ uk.
fAP (x, y, z) = s
(4.1)
Az fˆAP k¨ozel´ıt˝o f¨ uggv´eny meghat´aroz´as´ara sz´amos matematikai ´es informatikai m´odszer l´etezik. Dolgozatomban k´et m´odszert vizsg´altam. Ezen metodik´akat a k¨ovetkez˝okben ismertetem.
15
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
4.1.1. Szimul´ alt leh˝ ut´ es A k¨ozel´ıt˝o f¨ uggv´eny tetsz˝olegesen v´alaszthat´o. A dolgozatomban a 6.2 egyenletben l´athat´o f¨ uggv´enyt haszn´altam. Az fˆAP k¨ozel´ıt˝o f¨ uggv´enyt adottnak tekintj¨ uk. A f¨ uggv´eny approxim´aci´ot a legkisebb n´egyzetek m´odszere alapj´an v´egezhetj¨ uk el. ´Igy a k¨ozel´ıt´esi feladatot egy optimaliz´al´asi feladatt´a alak´ıtottuk ´at, ahol az optimaliz´al´asi feladat v´altoz´oi a k¨ozel´ıt˝o f¨ uggv´eny egy¨ utthat´oi. Ezt a probl´em´at szimul´alt leh˝ ut´es seg´ıts´eg´evel k´ıv´antam megoldani. A szimul´alt leh˝ ut´es a lok´alis keres˝o algoritmusok csoportj´aba tartoz´o, optimaliz´al´asi probl´em´ak megold´as´ara is haszn´alt algoritmus. Az algoritmus el˝onye, hogy a fut´as befejezt´evel mindenk´eppen visszaad egy optimum k¨ozeli ´ert´eket. Ezt u ´gy ´eri el, hogy a fut´as elej´en egy magas kezd˝o h˝om´ers´ekletr˝ol indul, mely a fut´as sor´an folyamatosan cs¨okken. Amennyiben a h˝om´ers´eklet egy adott k¨ usz¨ob al´a esik, az algoritmus le´all ´es visszaadja az aktu´alis a´llapotot. A m´odszer tov´abbi el˝onye, hogy k´epes kiker¨ ulni lok´alis optimumokb´ol az a´ltal, hogy hib´as l´ep´eseket is megenged. A 4.1. ´abra egy egyv´altoz´os f¨ uggv´enyt szeml´eltet, melynek t¨obb lok´alis optimuma is van. A hib´as l´ep´esek val´osz´ın˝ us´ege a hiba m´ert´ek´et˝ol ´es az aktu´alis h˝om´ers´eklett˝ol f¨ ugg. Ez´ert a szimul´alt leh˝ ut´es alkalmazhat´o glob´alis optimum keres´es´ere.
4.1. ´abra. F¨ uggv´eny glob´alis ´es lok´alis sz´els˝o´ert´ekekkel [11]
16
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
4.1.2. Neur´ alis h´ al´ o alkalmaz´ asa A dolgozatban m´asodikk´ent haszn´alt k¨ozel´ıt´esi m´odszer a neur´alis h´al´okon alapszik. Ezeket univerz´alis f¨ uggv´eny-approxim´atoroknak is tekinthetj¨ uk. A dolgozatban neur´alis h´al´o alatt az el˝orecsatolt perceptron h´al´ot ´ertem. ´Igy a h´al´ot egy f¨ uggv´enynek tekinthetj¨ uk, melynek bemenete a k¨ozel´ıtett f¨ uggv´eny param´eterei, kimenete pedig a f¨ uggv´eny visszat´er´esi ´ert´eke. A h´al´o betan´ıt´as´ara a backpropagation m´odszert haszn´altam.
4.2. Helymeghat´ aroz´ asi m´ odszer Az al´abbiakban ismertetem a haszn´alt helymeghat´aroz´asi m´odszert ide´alis-, majd pedig val´os, hib´akkal terhelt esetben.
4.2.1. Ide´ alis eset Az fˆAP f¨ uggv´enyt az im´ent ismertetett m´odszerek valamelyike alapj´an adottnak tekintj¨ uk.
A poz´ıcion´al´as sor´an viszont nem a f¨ uggv´enyre, hanem annak inverz´ere
−1 fˆAP : R → R3 lenne sz¨ uks´eg. Az inverz f¨ uggv´eny megadja, hogy mely (x, y, z) ko-
ordin´at´akon lesz a jeler˝oss´eg s. Ezeket a koordin´at´akat lehets´eges jel¨olt poz´ıci´oknak tekintj¨ uk. A jel¨olt koordin´at´ak halmaz´at jel¨olj¨ uk CP -vel ´es a meghat´aroz´as´at a 4.2 k´eplet mutatja. n o −1 CPAP (s) = (x, y, z)|fˆAP (s)
(4.2)
Az eddigiekben egyetlen access point-ot vizsg´altunk. A poz´ıci´o meghat´aroz´as´ahoz t¨obb access point-ot haszn´alhatunk. Minden egyes AP-ra kisz´am´ıtottuk a k¨ozel´ıt˝o f¨ uggv´enyt ´es ismerj¨ uk a hozz´a tartoz´o m´ert jeler˝oss´egeket. Ez alapj´an minden AP-ra meghat´arozhatjuk a hozz´ajuk tartoz´o jel¨olt pontok halmazait. Az aktu´alis poz´ıci´ot ezen jel¨olt poz´ıci´o halmazok metszetek´ent ´ertelmezz¨ uk, melyet a 4.3 k´eplet mutat.
P ∈
\
CPap (sap )
ap∈AP
17
(4.3)
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
4.2.2. Val´ os eset Val´os esetben a f¨ uggv´eny k¨ozel´ıt´es hib´akkal terhelt. Ez´ert az ide´alis esetben megadott k´epleteket haszn´alva k¨onnyen u ¨res halmazokat kapn´ank. A jel¨olt pontok halmaz´at a 4.4 k´eplet seg´ıts´eg´evel hat´arozzuk meg. Teh´at jel¨olt pontnak tekint¨ unk minden olyan poz´ıci´ot, ahol a k¨ozel´ıt˝o f¨ uggv´eny ´ert´ek´enek ´es az aktu´alisan m´ert jeler˝oss´eg k¨ ul¨onbs´ege nem halad meg egy adott ε ´ert´eket. o n ˆ ˜ CP AP (s) = (x, y, z)| fAP (x, y, z) − s ≤ ε
(4.4)
Tov´abb´a a metszet meghat´aroz´as´an´al k´et pontot azonosnak tekint¨ unk, ha a k¨ozt¨ uk l´ev˝o t´avols´ag kisebb, mint δ. ´Igy biztos´ıthat´o, hogy az egym´ashoz k¨ozel lev˝o, de egym´ast nem fed˝o t´err´eszeket is megadja a m´odszer.
18
5. fejezet Rendszerterv A fejezetben bemutatom a tervezett rendszer architekt´ ur´aj´at. Ismertetem a szerver- ´es kliens oldalak fel´ep´ıt´es´et, r´eszletezem az egyes modulokat. V´eg¨ ul bemutatom a rendszer a´ltal haszn´alt adatb´azist.
5.1. Architekt´ ura Az alkalmaz´ast m˝ uk¨od´es´eben ´es fel´ep´ıt´es´eben kliens- ´es szerver oldali r´eszekre bonthatjuk. A szerver v´egzi az er˝oforr´as ig´enyes helymeghat´aroz´asi sz´am´ıt´asokat. A kliens az ehhez sz¨ uks´eges jeler˝oss´eg m´er´esek´ert ´es a poz´ıci´o megjelen´ıt´es´e´ert felel. A rendszer logikai fel´ep´ıt´es´et az 5.1. ´abra szeml´elteti.
5.1. ´abra. A rendszer fel´ep´ıt´ese
19
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
Az alkalmaz´as ´altal v´egzett folyamatokat is elk¨ ul¨on´ıthetj¨ uk online ´es offline f´azisokra. Mivel a dolgozat c´elja egy fingerprinting alap´ u elj´ar´as megval´os´ıt´asa, ´ıgy a sz´am´ıt´asok ´es f¨ uggv´eny k¨ozel´ıt´esek nagy id˝o ´es er˝oforr´as ig´eny˝ uek. A k¨ovetkez˝okben a sz´etv´alaszt´as indokait fogom r´eszletezni.
5.1.1. Offline f´ azis
5.2. ´abra. F¨ uggv´eny approxim´aci´o folyamata Az offline f´azis logikai m˝ uk¨od´es´et az 5.2. a´bra mutatja. A szerveren megval´os´ıtott minden approxim´aci´os elj´ar´as azonos m˝ uk¨od´esbeli logikai folyamatot k¨ovet. Az adatb´azisb´ol lek´erdezz¨ uk az algoritmus sz´am´ara sz¨ uks´eges adatokat, majd azokat ´atalak´ıtjuk a megfelel˝o m´atix strukt´ ur´aba. Ezen strukt´ ura tartalmazza a WiFi-ket reprezent´al´o objektumokat, valamint a hozz´ajuk tartoz´o m´er´esi eredm´enyeket. Az adatok birtok´aban a k¨ozel´ıt˝o elj´ar´asok elv´egzik a f¨ uggv´eny approxim´aci´ot. Mivel ez hossz´ u folyamat is lehet, itt nyeri el ´ertelm´et az offline ´es online f´azisokra bont´as. Az offline sz´am´ıt´asok v´eg´en f´ajl szinten let´aroljuk az egyes m´odszerekhez tartoz´o, m´ar betanult szerializ´alt objektumokat. Ez az´ert is fontos l´ep´es, mert a rendszer le´all´asa eset´en a mem´ori´ab´ol elveszn´enek az approxim´al´ast v´egz˝o objektumok. A kliens k´er´esekor egyszer˝ uen felolvassuk a f´ajlokat, bet¨oltj¨ uk a mem´ori´aba, ezut´an gyorsan elv´egezhet˝oek a helymeghat´aroz´asi sz´am´ıt´asok.
20
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
5.3. ´abra. A helymeghat´aroz´as folyamata
5.1.2. Online f´ azis Az online f´azist az 5.3. diagram mutatja. Poz´ıci´o k´er´esekor a kliens oldali alkalmaz´as v´ekony kliensk´ent funkcion´al. Mivel minden ehhez kapcsol´od´o sz´am´ıt´ast a szerver v´egez, ez´ert a kliens oldali alkalmaz´as m˝ uk¨od´ese nem er˝oforr´as ig´enyes. Lem´eri a k´esz¨ ul´ek a´ltal l´atott WiFi ad´ok jeler˝oss´eg´et a tart´ozkod´asi hely´en, majd ezeket az inform´aci´okat h´al´ozaton kereszt¨ ul elk¨ uldi a szervernek feldolgoz´asra. A szerver ezen adatokb´ol meghat´arozza a sz´am´ıtott koordin´at´at, majd visszak¨ uldi azt a kliensnek.
5.2. Szerver oldal Az alkalmaz´as kiszolg´al´o oldali fel´ep´ıt´ese interf´eszekkel laz´an kapcsolt 5 r´etegb˝ol ´all. A fel¨ uleteken kereszt¨ ul kapcsolt modulok nagy el˝onye az, hogy ha b´armely r´eteg megval´os´ıt´as´at v´altoztatni szeretn´enk, p´eld´aul az adatb´azis kezel´es´et valamilyen m´as technol´ogia alkalmaz´as´aval akarjuk elv´egezni, elegend˝o csak az interf´esz implement´aci´ok u ´jra´ır´asa, az alkalmaz´as t¨obbi r´esz´et nem sz¨ uks´eges m´odos´ıtanunk. A szervernek sok funkci´ot kell mag´aban foglalnia, p´eld´aul az objektumok reprezent´al´asa, azok adatainak kezel´ese, u ¨zleti logika meghat´aroz´asa. Az o¨sszetartoz´o m˝ uveletek egy-egy, j´ol elk¨ ul¨on´ıthet˝o modulban ker¨ ultek meghat´aroz´asra. A r´etegek logikai kapcsolat´at az 5.4. a´bra mutatja, a k¨ovetkez˝okben ezen modulok feladat´at fogom ismertetni.
21
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
5.4. ´abra. A modulok logikai kapcsolata
5.2.1. API modul Az API r´eteg biztos´ıtja az alkalmaz´as a´ltal haszn´alt modell oszt´alyokat (melyek t¨obbnyire az adatb´azisban t´arolt adatok lek´epz´esei) ´es defini´alja a Service r´eteg sz´am´ara a megval´os´ıtand´o funkci´okat. Ez a modul jelenti az eg´esz alkalmaz´as alapj´at, mivel itt ´ırjuk le, hogy mit v´arunk el att´ol. Az u ¨zleti logik´aban haszn´alt objektumok a k¨ovetkez˝ok: • AccessPoint: A m´er´esekhez ´es helymeghat´aroz´ashoz haszn´alt WiFi router-eket reprezent´al´o oszt´aly. Tartalmazza a k´esz¨ ul´ekek nev´et, MAC c´ım´et ´es koordin´at´aj´at • ApproximationData: Az approxim´aci´os elj´ar´asokhoz sz¨ uks´eges koordin´at´at ´es a hozz´a tartoz´o jeler˝oss´eget t´arol´o oszt´aly • Coordinate: Az X, Y ´es Z koordin´at´akb´ol a´ll´o poz´ıci´o • Measurement: A m´er´esi eredm´enyek gy˝ ujt˝ooszt´alya • ResponsePosition: Helymeghat´aroz´askor a szervert˝ol a klienshez ´erkez˝o v´alasz objektum
5.2.2. Service modul A Service r´eteg ny´ ujtja a konkr´et megval´os´ıt´as´at az API-ban defini´alt elv´art funkci´oknak. Ez a modul biztos´ıtja tov´abb´a a kliens a´ltal el´erhet˝o szolg´altat´asokat, teh´at ezen az interf´eszen kereszt¨ ul nyeri el funkcionalit´as´at a kliens-szerver architekt´ ura. 22
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
• AcessPointService: A WiFi-k adatainak t´arol´asa, t¨orl´ese, list´az´asa • ApproximationService: Az approxim´aci´os elj´ar´asokhoz sz¨ uks´eges adatok o¨sszea´ll´ıt´asa • CoordinateService: Koordin´at´ak l´etrehoz´asa, t¨orl´ese, list´az´asa • MeasurementService: M´er´esi adatok t´arol´asa, t¨orl´ese ´es kinyer´ese Mivel a fent le´ırt szolg´altat´asok az adatb´azist haszn´alj´ak perziszt´al´asra illetve az adatokat onnan nyerik ki, ez´ert ebben a r´etegben ker¨ ulnek meghat´aroz´asra a DAO modul sz´am´ara az elv´art funkci´ok le´ır´asai.
5.2.3. DAO modul A Data Access Object vagyis az adatkapcsolati r´eteg felel az adatb´azis kezel´es´e´ert, itt tal´alhat´oak a Service r´etegt˝ol elv´art funkci´ok megval´os´ıt´asai. Minden, az alkalmaz´as haszn´alat´ahoz sz¨ uks´eges adat perziszt´al´as´a´ert, kezel´es´e´ert ´es lek´erdez´es´e´ert felel˝o nat´ıv megval´os´ıt´as itt kap helyet.
5.2.4. Approximation modul Az alkalmaz´as k¨ozel´ıt´esi ´es helymeghat´aroz´asi sz´am´ıt´asait az Approximation modulban helyeztem el. B´ar a kliensek ezeket a szolg´altat´asokat haszn´alj´ak a helymeghat´aroz´asra, logikailag m´egsem illett a Service r´etegben le´ırt alap funkci´okhoz, mivel az itt elhelyezett elj´ar´asok kiz´ar´olag a helymeghat´aroz´as´ert felel˝osek.
5.2.5. WAR modul Ebben a r´etegben tal´alhat´oak a WEB alkalmaz´as futtat´as´ahoz sz¨ uks´eges le´ır´ok, a felhaszn´al´ok a´ltal l´atott fel¨ uletek. A szoftver szolg´altat´asai az MVC fel´ep´ıt´est k¨ovet˝o kontrollerekben defini´alt URL c´ımeken kereszt¨ ul ´erhet˝oek el a kliensek sz´am´ara. A megjelen´ıtett felhaszn´al´oi fel¨ uletek pedig JSP lapokb´ol gener´al´odnak.
23
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
5.3. Kliens oldal Az alkalmaz´ast kliensk´ent b´armilyen eszk¨oz haszn´alhatja, amely le tudja m´erni az ´altala vett WiFi router-ek jeler˝oss´eg´et, valamint k´epes HTTP k´er´esek k¨ uld´es´ere ´es fogad´as´ara. Ezeket a krit´eriumokat egy laptop vagy netbook is teljes´ıti, viszont a felhaszn´al´oi ´elm´enyt nagyban rontan´a ezek haszn´alata. Az okostelefonok napjainkban nagy n´epszer˝ us´egnek o¨rvendenek ´es a j¨ov˝obeni felhaszn´al´ok nagy r´esze rendelkezik ilyennel. A kliens oldali alkalmaz´ast a fentebb eml´ıtett okokb´ol kifoly´olag elterjedts´ege ´es k¨onnyen el´erhet˝os´ege miatt egy Android oper´aci´os rendszeren fut´o szoftver testes´ıti meg.
5.4. Az adatb´ azis A tervez´eskor a Karsai Szabolcs a´ltal elk´esz´ıtett jeler˝oss´eg m´er˝o alkalmaz´as adatb´azis´at haszn´altam, mivel az minden sz´amomra sz¨ uks´eges adatot biztos´ıtani tud a sz´am´ıt´asokhoz. Logikai fel´ep´ıt´es´et a k¨ovetkez˝o 5.5. ER-modell szeml´elteti.
5.5. ´abra. Az adatb´azis rel´aci´os modellje
24
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
Fizikai megval´os´ıt´as´at pedig az 5.6. rel´aci´os diagram mutatja.
5.6. ´abra. Az adatb´azis rel´aci´os modellje A coordinate t´abla tartalmazza a szondapontok ´es WiFi router-ek koordin´at´ainak X, Y ´es Z ´ert´ekeit, valamint az azonos´ıt´ashoz sz¨ uks´eges ID-t. Lek´epz´es´et az alkamaz´asban a Coordinate oszt´aly val´os´ıtja meg. Az accesspoint t´arolja az egyes WiFi router-ek adatait: az ´altala sug´arzott SSID n´ev, a MAC c´ıme ´es a poz´ıci´oja. Szerver oldali megfelel˝oje az AccessPoint oszt´aly. A measurement t´abla felel˝os a m´er´esi adatok t´arol´as´a´ert. Perziszt´alja a WiFi router a´ltal sug´arzott, az aktu´alis pontban m´ert jeler˝oss´eget ´es az ad´o frekvenci´aj´at. Lek´epz´ese az API modulban tal´alhat´o Measurement oszt´aly.
25
6. fejezet Implement´ aci´ o 6.1. Felhaszn´ alt technol´ ogi´ ak A k¨ovetkez˝okben az algoritmus implement´al´asa sor´an haszn´alt technol´ogi´akat ismertetem. Kit´erek a fejleszt˝ok¨ornyezetre, a projekt strukt´ ur´aj´at meghat´aroz´o szab´alyokra, valamint a verzi´ok¨ovet´esre.
6.1.1. Eclipse Az algoritmus implement´al´asa Java nyelven t¨ort´ent, a fejleszt´est az Eclipse [4] integr´alt fejleszt˝ok¨ornyezetben (Eclipse IDE, tov´abbiakban Eclipse) v´egeztem. Az Eclipse maga is egy Java nyelven ´ır´odott ingyenes platformf¨ uggetlen keretrendszer, amelyet az Eclipse Public Licence (EPL) keretein bel¨ ul adtak ki. A szoftver alap´ertelmezetten tartalmaz egy munkater¨ uletet (workspace), valamint egy b˝ov´ıthet˝o plugin rendszert, melynek seg´ıts´eg´evel az eg´esz k¨ornyezet testreszabhat´o. Ennek k¨osz¨onhet˝oen az Eclipse seg´ıts´eg´evel rengeteg k¨ ul¨onb¨oz˝o porgramnyelven tudunk alkalmaz´asokat fejleszteni, de ak´ar saj´at plugin-ekkel is b˝ov´ıthetj¨ uk az alkalmaz´ast. Gyakorlatilag az alkalmaz´as kernel´en k´ıv¨ ul az Eclpse-ben minden plugin-nak tekinthet˝o. Az Eclipse SDK (Software Development Kit) tartalmazza az Eclipse Java Development Tools-t (JDT), melynek r´esze az IDE, egy Java ford´ıt´o, viszont a JDK-t k¨ uls˝o forr´asb´ol kell megadni. A munkater¨ ulet f´ajl szinten metaadatokban tartalmazza a projekt be´all´ıt´asait, strukt´ ur´aj´at.
26
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
6.1.2. Maven A Maven [8][9] az Apache Software Foundation ´altal fejlesztett build eszk¨oz, m´ara o¨n´all´o szoftver lett, kor´abban a Jakarta Projekt r´eszek´ent m˝ uk¨od¨ott. C´elja a szoftver projektek menedzsel´ese, leggyakrabban Java alap´ u fejleszt´esek build folyamatainak automatiz´al´as´ara haszn´alj´ak. A ford´ıt´asi folyamatn´al a kimenetet kell defini´alnunk, a h´att´erben v´egzett proced´ ura ´ıgy transzparens sz´amunkra. A Maven c´elja a build folyamatok szabv´anyos´ıt´asa, a szoftvertervez´esi mint´ak terjeszt´ese, ez´ert er˝os konvenci´okat vezet be a projektek fel´ep´ıt´es´evel kapcsolatban. Ezek betart´asa u ´j projekt k´esz´ıt´esekor nem probl´ema, viszont a nem Maven szabv´any, teh´at ha nem a megfelel˝o mappaszerkezet˝ uk´ent fel´ep´ıtett alkalmaz´asok ´atstrukt´ ur´al´asa neh´ez feladat. A Maven bevezeti a Project Object Model (POM) fogalm´at, ennek megval´osul´asa egy XML le´ır´o f´ajl (pom.xml).
Ebben megadhat´o a build-elend˝o projekt le´ır´asa,
az a´ltala tartalmazott modulok, komponensek, defini´alva vannak benne a k¨ uls˝o ´es bels˝o f¨ ugg˝os´egek, sz¨ uks´eges plugin-ek, valamint a build folyamat sorrendje. A Maven nagy el˝onye, hogy a build folyamat sor´an automatikusan k´epes let¨olteni a k¨ uls˝o Java f¨ uggv´enyk¨onyvt´arakat publikus t´arol´okb´ol. Leggyakrabban a Maven 2 Central Repository-b´ol, majd elmenti azokat egy lok´alis cache-ben. A szabv´anyban a ford´ıt´as alapegys´ege az artifact, amely tartalmazza a forr´ask´odokat ´es egy´eb er˝oforr´asokat. Kimenete egy JAR vagy WAR f´ajl. Az artifact-ok le´ır´asa a pom.xml f´ajlban tal´alhat´o, azonos´ıt´asuk az u ´gynevezett GAVC (Group ID, Artifact ID, Version, Classifier) koordin´at´ak alapj´an t¨ort´enik. Amennyiben a k´ıv´ant artifact-ok fel´ep´ıt´es´ere egy s´em´at tudunk h´ uzni, akkor lehet˝os´eg¨ unk van archet´ıpusok k´esz´ıt´es´ere, ´ıgy k´es˝obb ezekb˝ol automatikusan gener´alhat´o a k´ıv´ant artifact szerkezete. A Maven rendelkez´es¨ unkre bocs´ajt egy ford´ıt´asi ´eletciklust, melyet testre szabhatunk. Ennek l´enyege, hogy minden c´el (goal) v´egrehajt´as´ahoz az azt megel˝oz˝onek m´ar v´egbe kell mennie. Az alap´ertelmezett ´eletciklus l´ep´esei sorrendben a k¨ovetkez˝ok: 1. validate: projekt valid´al´asa 2. compile: forr´asf´ajlok leford´ıt´asa 3. test: Unit tesztek ford´ıt´asa ´es futtat´asa
27
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
4. package: JAR f´ajl k´esz´ıt´ese 5. integration-test: integr´aci´os teszt k¨ornyezetbe m´asol´as, ha sz¨ uks´eges 6. verify: csomag valid´al´as, krit´eriumok ellen˝orz´ese 7. install: a package sor´an elk´esz¨ ult JAR f´ajl a lok´alis repository-ba ker¨ ul 8. deploy: a v´egs˝o csomag m´asol´asa k¨ uls˝o repository-ba Tov´abbi el˝ore defini´alt ´eletciklusok is l´eteznek, ezek a clean ´es a site: • Clean lifecycle: az el˝oz˝o ford´ıt´as a´ltal gener´alt f´ajlok elt´avol´ıt´as´ara szolg´al. • Site lifecycle: elk´esz´ıti a projekt site dokumentum´at a forr´asf´ajlokban l´ev˝o dokument´aci´os r´eszek alapj´an, majd deploy-olja azt a megadott WEB szerverre, ´ıgy HTML form´aban el´erhet˝ov´e v´alik. Vannak olyan goal-ok is, melyek az alap´ertelmezett ´eletciklusnak nem r´eszei, viszont a projekt pom.xml f´ajlj´aban hozz´arendelhet˝oek ahhoz, plugin-k´ent telep´ıthet˝oek, ´ıgy ford´ıt´askor v´egrehajt´odnak. A fejleszt˝o saj´at mag´anak is defini´alhat goal-okat, ha a be´ep´ıtettek nem fedik le a k´ıv´ant hat´ast. El˝ofordulhat, hogy t¨obb f´ele f¨ ugg˝os´eg vagy plugin van defini´alva a ford´ıtand´o artifacthoz, ez´ert a Maven 2.0-ban bevezet´esre ker¨ ultek a profilok. A profilokban defini´alhat´oak k¨ ul¨onb¨oz˝o ford´ıt´asi folyamatok, ezek aktiv´al´odhatnak manu´alisan vagy egy action hat´as´ara.
6.1.3. Spring keretrendszer A Spring [13] napjaink egyik legn´epszer˝ ubb ny´ılt forr´ask´od´ u Java EE keretrendszere, seg´ıts´eg´evel az Enterprise alkalmaz´asok karbantarthat´obbak ´es k¨onnyebben fejleszthet˝oek. EJB kont´ener haszn´alata helyett lehet˝ov´e teszi a POJO alap´ u fejleszt´est, ´ıgy a tesztel´es is egyszer˝ us¨odik. Maga a keretrendszer modul´aris fel´ep´ıt´es˝ u, ´ıgy csak azokat kell import´alnunk, amelyekre a fejleszt´es sor´an sz¨ uks´eg¨ unk van. Ilyen funkcion´alis modulok p´eld´aul az inversion of control kont´ener (r´eszletesebben k´es˝obb), adatkezel´es, tranzakci´o kezel´es, MVC kezel´es, authentik´aci´o, authoriz´aci´o, u ¨zenetk¨ uld´es, stb. A Java 5 elemeire ´ep´ıt, fontos szerepet j´atszik az annot´aci´ok haszn´alata. L´enyege az interf´esz alap´ u komponens fejleszt´es. 28
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
A fent eml´ıtett inversion of control kont´ener az egyik k¨ozponti eleme a keretrendszernek. Feladata az objektumok ´eletciklus´anak kezel´ese ´es az alkalmaz´as-komponensek testreszab´asa. Fontos szolg´altat´asa a dependency injection, amely lehet˝ov´e teszi, hogy ha egy Spring-es bean-nek sz¨ uks´ege van egy m´asik bean-re, akkor a keretrendszer az alkalmaz´as indul´asakor beinjekt´alja azt a kontextusb´ol, ´ıgy el´erhet˝ov´e v´alnak a szolg´altat´asai. A konfigur´al´as v´egezhet˝o XML le´ır´o seg´ıts´eg´evel, tiszt´an Java-ban, vagy az u ´gynevezett component scan-nel. Ut´obbi m´odszerrel nem kell k´ezzel megadnunk a bean-eket, hanem a keretrendszer az annot´aci´ok seg´ıts´eg´evel megtal´alja azokat.
6.1.4. JAXB A JAXB [7] (Java Architecture for XML Binding) technol´ogia lehet˝ov´e teszi a Java fejleszt˝ok sz´am´ara, hogy az oszt´alyokat XML reprezent´aci´okon kereszt¨ ul t´erk´epezhess´ek fel, k´epes Java objektumokat XML a´llom´anyokba menteni ´es onnan visszat¨olteni is. El˝onye teh´at, hogy a JAXB mem´ori´ab´ol XML form´atum´ u adatokra tud konvert´alni an´elk¨ ul, hogy implement´alni kellene az XML ment´es ´es beolvas´as m˝ uvelet´et a programban. Gyakran haszn´alj´ak fejleszt´eskor, ha a specifik´aci´o komplex ´es gyakran v´altozik. Ekkor ha az XML s´ema f´ajlt v´altoztatjuk, u ´gy a JAXB automatikusan u ´jragener´alja az ´altala le´ırt Java oszt´alyt. A gener´alt Java oszt´alyokat az xjc eszk¨oz k´esz´ıti el, a kimeneti oszt´alyok pedig XML annot´aci´okkal vannak ell´atva.
6.1.5. MyBatis A MyBatis [10] egy ingyenes Java perzisztencia keretrendszer. Seg´ıts´eg´evel az alkalmaz´asb´ol elhagyhat´o minden JDBC k´od, egyszer˝ u XML le´ır´okkal ´es mapper-ekkel megadhat´o minden adatb´azis kapcsolathoz sz¨ uks´eges param´eter, valamint a nat´ıv SQL parancsok ´es t´arolt elj´ar´asok/f¨ uggv´enyek h´ıvhat´oak vele. Az ORM keretrendszerekt˝ol elt´er˝oen a MyBatis nem k¨ozvetlen¨ ul k´epzi le a Java objektumokat a rel´aci´os adatb´azisba, hanem SQL parancsokon kereszt¨ ul.
29
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
6.1.6. Subversion Az Apache Subversion [14] (tov´abbiakban SVN) egy 2000-ben a CollabNet Inc. ´altal ind´ıtott verzi´okezel˝o rendszer, melyet f´ajlok (p´eld´aul forr´ask´odok, dokument´aci´ok) jelenlegi verzi´oj´anak ´es t¨ort´eneteik kezel´es´ere haszn´alnak. Mivel az SVN-t Apache Licence alatt fejlesztik, ´ıgy b´arki sz´am´ara el´erhet˝o, szabadon haszn´alhat´o. A commit m˝ uvelet itt atomi szint˝ u, ´ıgy a megszakadt commit-ok a t´arol´oban (repository) nem okoznak inkonzisztenci´at. A m´odos´ıtott vagy t¨or¨olt f´ajlok megtartj´ak teljes v´altoz´ast¨ort´enet¨ uket, az SVN a f´ajlok metaadatainak verzi´ok¨ovet´es´et is biztos´ıtja. A kliens-szerver alap´ u rendszer er˝oforr´asig´enye nem az adatok m´eret´evel, hanem a v´altoz´asok m´ert´ek´evel ar´anyosan f¨ ugg o¨ssze. Az SVN k´epes kezelni a le´agaz´asokat, amelyek a fejleszt´es elk¨ ul¨on´ıtett u ´tjainak felelnek meg. Ilyen esetben a rendszer nem k´esz´ıt egy u ´j f´ajl verzi´ot a repository-ban, hanem lem´asolja azokat, ´es mivel ezekben csak a v´altoz´asokat t´arolja, ´ıgy er˝oforr´asig´eny¨ uk alacsony marad. A r´egi ´es u ´j verzi´okat o¨sszekapcsolja ´es mindkett˝o f´ajlt¨ort´enet´et meg˝orzi, a v´altoz´asokat egy merge m˝ uvelettel vezethetj¨ uk ´at a gy¨ok´erbe (trunk).
6.2. Az Approximation modul Az Approximation modul felel˝os a f¨ uggv´eny approxim´aci´os sz´am´ıt´asok´ert. A megval´os´ıt´asn´al a b˝ov´ıthet˝os´eg fontos szempont volt, ha u ´j m´odszert szeretn´enk bevezetni, azt egyszer˝ uen lehessen az alkalmaz´ashoz adni. Ezen okb´ol kifoly´olag a helymeghat´aroz´ashoz sz¨ uks´eges met´odusok egy absztrakt oszt´alyba ker¨ ultek. A r´eteg logikai fel´ep´ıt´es´et a k¨ovetkez˝o 6.1. a´bra mutatja.
6.1. ´abra. Az approxim´aci´os r´eteg oszt´alydiagramja Minden approxim´aci´os m´odszernek a SignalStrengthApproximation-b´ol kell lesz´armaznia ´es fel¨ ul kell defini´alnia az approximate absztrakt met´odus´at. Ez adja vissza 30
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
a megadott X, Y ´es Z ´ert´ekhez tartoz´o k¨ozel´ıtett jeler˝oss´eget. Ezeket a getCoordinates f¨ uggv´eny haszn´alja fel azon pontok meghat´aroz´as´ara, amelyek beleesnek az elfogadottnak tekintett intervallumba. A getCoordinates met´odus bemen˝o param´eterk´ent v´arja a k´esz¨ ul´ek ´altal k¨ uld¨ott jeler˝oss´eget. Ebb˝ol kisz´am´ıtja a konfigur´aci´oban megadott toleranci´aval a minimum ´es maximum t˝ ur´eseket, majd k´et egym´asba ´agyazott ciklus seg´ıts´eg´evel meghat´arozza az approxim´alt ´ert´eket. Eset¨ unkben a Z koordin´at´at´ol eltekint¨ unk, ´es ´ert´ek´et alap´ertelmezetten 100 cm-nek vessz¨ uk, mert a m´er´esek sor´an nem t¨ort´entek m´as emeleteken mintav´etelek. double minTolerance = signalStrength - Constants.SIGNAL_STRENGTH_TOLERANCE; double maxTolerance = signalStrength + Constants.SIGNAL_STRENGTH_TOLERANCE; for (int x = Constants.MIN_X_VALUE; x <= Constants.MAX_X_VALUE; x += Constants.STEP_IN_CENTIMETERS) { for (int y = Constants.MIN_Y_VALUE; y <= Constants.MAX_Y_VALUE; y += Constants.STEP_IN_CENTIMETERS) { double approximatedSignalStrength = approximate(x, y, 100); //...
Ahogyan az a k´odr´eszletben is l´atszik, egy meghat´arozott STEP IN CENTIMETERS konstans hat´arozza meg, hogy milyen t´erk¨oz¨onk´ent v´egezz¨ uk el az approxim´aci´os sz´am´ıt´ast (a jelenlegi be´all´ıt´asokn´al ez 50 cm). Amennyiben a kapott ´ert´ek az elfogadott hat´arok k¨oz¨ott van, akkor az aktu´alis koordin´at´at let´aroljuk egy t¨ombben. Ez tartalmazza a WiFi-hez tartoz´o val´osz´ın˝ us´ıthet˝o tart´ozkod´asi helyeket. if (approximatedSignalStrength > minTolerance && approximatedSignalStrength < maxTolerance) { Coordinate acceptedCoordinate = new Coordinate(); acceptedCoordinate .withCoordinateX((double) x) .withCoordinateY((double) y) .withCoordinateZ(100.0); coordinates.add(acceptedCoordinate); }
31
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
Maga a helymeghat´aroz´as m´ar a WAR r´etegben tal´alhat´o IndoorMobileController oszt´alyban ker¨ ult implement´al´asra. M˝ uk¨od´es´enek elve, hogy o¨sszemetszi a WiFi-khez tartoz´o koordin´ata halmazokat, ´es lev´alogatja a legt¨obbsz¨or szerepl˝o poz´ıci´okat. A mobil k´esz¨ ul´eknek az el˝obb eml´ıtett legjobb koordin´at´ak X, Y ´es Z ´ert´ekeinek ´atlagol´as´aval el˝o´all´ıtott Coordinate objektumot k¨ uldi el a szerver.
6.3. El˝ ok´ esz´ıt´ es Mind a szimul´alt leh˝ ut´es, mind a neur´alis h´al´o sz´am´ara el˝osz¨or az adatb´azisb´ol el˝o kell a´ll´ıtanunk a sz¨ uks´eges adatokat. Ezt a m˝ uveletet az ApproximationService v´egzi, amely az al´abbi publikus met´odussal rendelkezik: Map
> getApproximationData();
A szimul´alt leh˝ ut´es ´es a neur´alis h´al´o algoritmusai az ez ´altal visszaadott adatm´atrixot haszn´alj´ak, ahol a kulcs az aktu´alis WiFi-t reprezent´al´o objektum, az ´ert´ek pedig a hozz´a tartoz´o m´er´esi eredm´enyeket (koordin´ata, jeler˝oss´eg) tartalmaz´o lista.
6.4. Szimul´ alt leh˝ ut´ es megval´ os´ıt´ asa A SimulatedAnnealingSignalStrengthApproximation oszt´aly tartalmazza a szimul´alt leh˝ ut´es algoritmus´at, melynek fel´ep´ıt´es´et a 6.2. a´bra mutatja. A m´odszer sz´am´ara meghat´arozott c´elf¨ uggv´eny kiv´alaszt´asa bonyolult feladat. Mivel nem ismerj¨ uk a WiFi ad´ok karakterisztik´aj´at, ´ıgy ¨onmag´aban az optimaliz´aland´o f¨ uggv´eny fel´ır´asa is neh´ez feladat, valamint alapos matematikai tud´ast ig´enyel. Eset¨ unkben az egyik legegyszer˝ ubb f¨ uggv´eny k¨ozel´ıt´esi algoritmust, a legkisebb n´egyzetek m´odszer´et alkalmaztam, melyet a k¨ovetkez˝o f¨ uggv´eny ´ır le:
E=
X
2 ˆ f − f → min!
(6.1)
Az adatb´azisban t´arolt adatokat a 6.1 k´eplet alapj´an k¨ozel´ıtettem, ahol f a jeler˝oss´eget ad´o-, fˆ pedig az ezt k¨ozel´ıt˝o f¨ uggv´eny. A feladat teh´at az egyes f¨ uggv´enyek k¨oz¨otti elt´er´esn´egyzetek minimaliz´al´asa. A hibaf¨ uggv´eny param´eterei az fˆ k¨ozel´ıt˝o f¨ uggv´enyt˝ol f¨ uggenek. Az approxim´aci´ohoz haszn´alt f¨ uggv´enyt a 6.2 k´eplet mutatja.
32
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
6.2. ´abra. SimulatedAnnealingSignalStrengthApproximation oszt´alydiagram
a0 fˆ(a0 , x0 , y0 , z0 ) = p (x0 − xi )2 + (y0 − yi )2 + (z0 − zi )2 + 1
(6.2)
Behelyettes´ıt´es ut´an pedig a 6.3 k´epletben szerepl˝o f¨ uggv´enyt kapjuk, melynek a0 , x0 , y0 ´es z0 param´etereinek optimaliz´al´as´at hajtja v´egre a szimul´alt leh˝ ut´es.
E(a0 , x0 , y0 , z0 ) =
X i
a0
!2
si − p (x0 − xi )2 + (y0 − yi )2 + (z0 − zi )2 + 1
→ min!, (6.3)
ahol a0 , x0 , y0 ´es z0 a keresett v´altoz´ok, si pedig az aktu´alis WiFi-hez tartoz´o m´ert jeler˝oss´eg az xi , yi , zi pontokban. A szimul´alt leh˝ ut´es sor´an a v´altoz´ok v´eletlen kezd˝o´ert´eket vesznek fel, amelyeket minden iter´aci´oban szint´en k¨ ul¨on-k¨ ul¨on v´altoztatunk. A fitness f¨ uggv´eny megadja az aktu´alis n´egyzetes elt´er´est.
1 acceptanceP robability = e best−candidate temperature 33
, ha candidate < best , egy´ebk´ent
(6.4)
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
A 6.4 k´epletben l´athat´o val´osz´ın˝ us´eg szerint d¨ont¨ unk arr´ol, hogy a sz´am´ıtott v´altoz´okat a leh˝ ut´esn´el j´onak fogadjuk-e el, ahol candidate a vizsg´alt-, best az aktu´alis legjobb ´ert´ek, temperature pedig a ciklus lefut´asakor a h˝om´ers´eklet. Ha az algoritmus el´eri a megadott leh˝ ul´esi r´at´aval a minimum h˝om´ers´ekleti ´ert´eket, a ciklus le´all ´es a n´egy sz´am´ıtott param´eter t´arol´asra ker¨ ul. Az approximate met´odus fel¨ uldefini´al´asa enn´el a m´odszern´el egyszer˝ uen csak a pr´obaf¨ uggv´eny ki´ert´ekel´es´et v´egzi a megadott 3 k¨ uls˝o ´es a leh˝ ut´es ´altal legjobbnak v´elt 4 bels˝o param´eter behelyettes´ıt´es´evel: @Override public double approximate(int x, int y, int z) { return trialFunction(x, y, z, this.a, this.x, this.y, this.z); }
A fejleszt´es k¨ozbeni tesztfuttat´asok alkalm´aval nem siker¨ ult kell˝o pontoss´agot el´erni, ´ıgy nyilv´anval´ov´a v´alt, hogy a meghat´arozott hibaf¨ uggv´eny nem megfelel˝o. Az elj´ar´as ´erdemben csak akkor lenne alkalmazhat´o, ha az adatokb´ol a karakterisztik´at k¨ozel´ıt˝oleg meghat´arozva fel tudn´ank ´ırni egy megfelel˝o f¨ uggv´enyt, ez´ert ezt a k¨ozel´ıt´esi algoritmust elvetett¨ uk. Mivel a szimul´alt leh˝ ut´es nem bizonyult eredm´enyesnek, ´ıgy egy m´asik megold´ast kellett keresni a k¨ozel´ıt´esi probl´ema megold´as´ara.
6.5. Neu´ alis h´ al´ o megval´ os´ıt´ asa A neur´alis h´al´o haszn´alat´ahoz nem sz¨ uks´eges bonyolult matematikai o¨sszef¨ ugg´eseket fel´ırni. Csup´an a bemeneti ´es az elv´art kimeneti adatok alapj´an k´epesek megtanulni azok v´altoz´as´anak viselked´es´et. Ez a tanul´asi folyamat viszont nagyon hossz´ u id˝ore is k´epes elny´ ulni, ez´ert a neur´alis h´al´oval t¨ort´en˝o approxim´aci´o egy offline ´es egy online f´azisra ker¨ ult sz´etbont´asra. A k¨ovetkez˝okben ezeket ismertetem.
6.5.1. Offline f´ azis Az offline f´azisban t¨ort´enik a neur´alis h´al´ok betan´ıt´asa az adatb´azisban t´arolt ´ert´ekek alapj´an. Minden egyes WiFi-re k¨ ul¨on-k¨ ul¨on lefut a tan´ıt´o algoritmus. A f´azist megval´os´ıt´o oszt´aly fel´ep´ıt´es´et a 6.3. a´bra mutatja.
34
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
6.3. ´abra. NeuralNetworkCreator oszt´alydiagram A bej¨ov˝o adatok alapj´an a neur´alis h´al´o r¨ogz´ıtetten 3 bemeneti (X, Y ´es Z koordin´ata) ´es egy kimeneti (a pontban m´ert jeler˝oss´eg) neuronnal rendelkezik. Az oszt´aly v´altoz´o param´eter˝ u konstruktora lehet˝ov´e teszi, hogy az egyes WiFi-khez tartoz´o p´eld´anyoknak k¨ ul¨on-k¨ ul¨on megadhassuk a h´al´ok finomhangol´as´ahoz sz¨ uks´eges rejtett r´etegeket. Ezek ismeret´eben felrajzolhat´o a k¨ovetkez˝o 6.4. ´abr´an l´athat´o fel´ep´ıt´es.
6.4. ´abra. Neur´alis h´al´o r´etegei Amennyiben a betan´ıt´askor az alap´ertelmezett strukt´ ur´at haszn´aljuk, a p´eld´anyos´ıt´ast u ¨res-, ha pedig hangolni szeretn´enk az adott neur´alis h´al´ot, akkor eg´esz ´ert´ekek sorozat´aval param´eterezett konstruktort haszn´alhatunk a k¨ovetkez˝o m´odokon: // Default neural network neuralNetworkCreator = new NeuralNetworkCreator(); // Custom neural network neuralNetworkCreator = new NeuralNetworkCreator(3, 2, 2);
A m´asodik egyedi esetben a param´eterekkel a bemeneti- ´es kimeneti r´etegek k¨oz¨ott l´ev˝o neuronok sz´am´at ´es strukt´ ur´aj´at adjuk meg. Az ´ıgy l´etrej¨ott neur´alis h´al´ot a 6.5. a´bra szeml´elteti.
35
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
6.5. ´abra. Egyedi fel´ep´ıt´es˝ u neur´alis h´al´o A neur´alis h´al´ok bemeneti ´es elv´art kimeneti ´ert´ekeinek a [0, 1] z´art intervallumba kell esni¨ uk, az adatb´azisban t´arolt adatok ennek a krit´eriumnak nem felelnek meg. A koordin´at´ak a [0, 9999], a jeler˝oss´egek pedig a [−100, 0] ´ert´ekek k¨oz´e esnek, ez´ert els˝o l´ep´esk´ent transzform´alnunk kell o˝ket a megfelel˝o alakra: // Coordinate inputs[i] = new double[] { (0.0001) * X, (0.0001) * Y, (0.0001) * Z }; // Signal strength outputs[i] = new double[] { (signalStrength) * (-0.01) };
A betanul´as elind´ıt´as´at´ol az alkalmaz´as folyamatosan ki´ırja az aktu´alis iter´aci´oban m´ert hiba ´ert´ek´et. B´ar ez nagyban megn¨oveli a fut´as idej´et, de seg´ıts´eg´evel ellen˝orizhet˝o a cs¨okken´es m´ert´eke. A tan´ıt´asi f´azis v´egezt´evel o¨sszefoglal´o adatokat kapunk a l´etrehozott h´al´or´ol: minim´alis-, maxim´alis- ´es a teljes tan´ıt´omint´ara vett ´atlagelt´er´es a t´arolt dB ´ert´ekekt˝ol. Ezen inform´aci´ok seg´ıts´eg´evel megk¨onny´ıthet˝o a neur´alis h´al´ok finomhangol´asa. A tanul´asi folyamat fut´asakor v´egtelen-, vagy nagyon hossz´ u ideig tart´o ciklus is keletkezhet, ezt megel˝ozend˝o, le´all´asi felt´eteleket kell defini´alnunk. Jelen esetben k´et krit´erium valamelyik´enek kell teljes¨ ulnie a ciklus le´all´as´ahoz: • A tanul´asi folyamat sor´an a hiba ´ert´eke 0,0015 al´a cs¨okken • 5000 iter´aci´onk´ent a hib´ak abszol´ ut ´ert´ekben vett ¨osszege nagyobb legyen, mint 10−15 A fent eml´ıtett konkr´et sz´amok a fejleszt´es sor´an k´ıs´erleti u ´ton ker¨ ultek meghat´aroz´asra. Az els˝o felt´etel teljes¨ ul´esekor a betan´ıtott neur´alis h´al´o m´ar a´tlagosan nagyon j´o k¨ozel´ıt´est (2-5 dB) ad a tan´ıt´ominta a´ltal meghat´arozott jeler˝oss´egekre, a m´asodik felt´etel pedig a minim´alisan cs¨okken˝o vagy a´br´azolva rezg˝o mozg´ast v´egz˝o ´es ´ıgy v´egtelen ciklust eredm´enyez˝o folyamat lez´ar´as´ara szolg´al. 36
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
Az offline f´azis v´egezt´evel minden egyes WiFi-re l´etrehozott, betanult neur´alis h´al´o p´eld´anyok szerializ´al´odnak router SSID nev˝ u .ser kiterjeszt´es˝ u f´ajlokba. ´Igy nem kell minden egyes, a felhaszn´al´ot´ol ´erkez˝o k´er´eskor u ´jratan´ıtani azokat, gyakorlatilag haszn´alhatatlann´a t´eve ezzel az alkalmaz´ast.
6.5.2. Online f´ azis A neur´alis h´al´o alkalmaz´asakor az online f´azisban t¨ort´enik az approxim´aci´o. Az ezt megval´os´ıt´o oszt´alyt a k¨ovetkez˝o 6.6. a´bra mutatja.
6.6. ´abra. NeuralNetworkSignalStrengthApproximation oszt´alydiagram P´eld´anyos´ıt´askor a megfelel˝o neur´alis h´al´o bet¨olt´ese a konstruktorban megadott AccessPoint objektum alapj´an t¨ort´enik. A deserialize met´odus a WiFi neve alapj´an bet¨olti ´es deszerializ´alja a hozz´a tartoz´o p´eld´anyt, majd az oszt´aly adattagj´aban let´arolja. Az o¨r¨ok¨olt approximate met´odus fel¨ uldefini´al´asa a k¨ovetkez˝o m´odon t¨ort´enik: @Override public double approximate(int x, int y, int z) { double[] result = new double[1]; double xReduced = (double) x * 0.0001; double yReduced = (double) y * 0.0001; double zReduced = (double) z * 0.0001; neuralNetwork.compute(new double[] { xReduced, yReduced, zReduced }, result); return result[0] * -100; }
37
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
A koordin´at´ak ´ert´ekeit - ahogyan a betan´ıt´askor - itt is el˝osz¨or a [0, 1] z´art intervallumba kell transzform´alni. A neur´alis h´al´o p´eld´any´anak compute met´odusa seg´ıts´eg´evel a bemeneti t¨omb ´ert´ekei alapj´an meghat´arozza a k¨ozel´ıtett jeler˝oss´eget. A met´odus v´eg¨ ul visszat´er a megfelel˝o form´atum´ ura ([−100, 0] intervallum) transzform´alt dB ´ert´ekkel.
38
7. fejezet Tesztel´ es A k¨ovetkez˝o fejezetben az alkalmaz´as tesztel´es´ehez haszn´alt k¨ornyezetek kialak´ıt´as´at ´es az ott elv´egzett tesztek eredm´eny´et r´eszletezem.
7.1. A k¨ ornyezet kialak´ıt´ asa 7.1.1. Lak´ as A t´enyleges megval´os´ıt´as el˝ott ki kellett alak´ıtani egy k¨onnyen el´erhet˝o tesztk¨ornyezetet, ahol a m´ar elk´esz¨ ult m´er˝o alkalmaz´as seg´ıts´eg´evel val´os adatokat tudunk biztos´ıtani a k¨ozel´ıt˝o sz´am´ıt´asok sz´am´ara. A legk¨onnyebben el´erhet˝o, ´es minden felt´etelt biztos´ıt´o helysz´ın term´eszetesen a lakhelyem¨ ul szolg´al´o lak´as volt. Rendelkezem saj´at WiFi router-rel, ´es mivel egy t´arsash´azi lak´asr´ol van sz´o, ´ıgy az ´ep¨ uleten bel¨ ul kell˝o sz´am´ u (´altal´aban 6-8) router-t ´ertem el a m´er´esekhez. Adatforgalmaz´asra kiz´ar´olag a saj´at k´esz¨ ul´ekemet haszn´altam. A m´er´esek megkezd´ese el˝ott ki kellett jel¨olni a sz´am´ıt´asokhoz haszn´aland´o szondapontokat. A lak´as alaprajza ´es a kijel¨olt m´er´esi pontok a 7.1. ´abr´an l´athat´oak. A helysz´ın m´eretei ´es a sz¨ uks´eges adatok mennyis´eg´enek figyelembe v´etel´evel 1 m´eteres t´erk¨oz¨onk´ent hat´aroztam meg ezeket. A szob´ak elrendez´ese, illetve a b´ utorok ´es egy´eb berendez´esek helyzete miatt nem tudtam minden, a felosztott r´acsh´al´ora illeszked˝o pontot lefedni, de ´ıgy is kell˝o mennyis´eg˝ u adat gy˝ ult ¨ossze az adatb´azisban.
39
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
7.1. ´abra. Lak´as alaprajza ´es m´er´esi pontok A lak´ason bel¨ ul a legnagyobb jeler˝oss´eget term´eszetesen a saj´at WiFi router-em adta, melynek a´tlagolt m´ert ´ert´ekeit a k¨ovetkez˝o 7.1. t´abl´azat szeml´elteti. Az X ´es Y sk´ala beoszt´asa centim´eterben, a m´er´esi adatok pedig dB-ben ´ertend˝oek. 7.1. t´abl´azat. M´ert ´ert´ekek X/Y
0
100
0
-57,45
-45,6
100
-52,4
-49,85 -53,05
-
-30,5
-
-51,8
200
-48,75
-52,3
-51
-
-52,05
-
300
-47,35 -56,05
-
-
-47,3
400
-56,7
-
-
-58,2
-58,95
200
300
400
500
600
700
-46,65 -24,6
-25,8
-20,9 -48,05 -56,45
800 -49,9
900
1000
-57,75 -54,85
-51,25 -60,85
-61
-63,6
-42
-52,3
-55,55
-54
-59,6
-
-44,7
-58,65
-56,6
-54,7
-59,6
-
-
-57,85
-65,1
-62
-58,1
A t´abl´azatban l´ev˝o nyers adatok alapj´an pedig kirajzolhat´o a lak´asban a m´er´esi pontok ´ert´ekeire fesz´ıtett fel¨ ulet, amelyet a 7.2. a´bra mutat, szeml´eletesebb´e t´eve ´ıgy a jeler˝oss´eg eloszl´as´at.
40
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
7.2. ´abra. M´er´esi ´ert´ekek vizualiz´alva Mind a szimul´alt leh˝ ut´es, mind a neur´alis h´al´o algoritmusa egy-egy a 7.2. a´br´an l´ev˝o fel¨ uletet pr´ob´al meg k¨ozel´ıteni. Ezek minden WiFi router-re meghat´arozhat´oak ´es ahogy l´athat´o, a jeler˝oss´eg m´ert´eke nem t¨ok´eletesen egyenletes.
7.1.2. Neur´ alis h´ al´ ok tan´ıt´ asa a lak´ asban A neur´alis h´al´o tan´ıt´asakor a 7.2 t´abl´azatban l´ev˝o eredm´enyek sz¨ ulettek a saj´at routerem approxim´al´asakor: ¨ 7.2. t´abl´azat. Osszefoglal´ o eredm´enyek Minimum elt´er´es
0.011 dB
Maximum elt´er´es 10.19 dB ´ Atlagos elt´er´es
3.778 dB
Ezen ´ert´ekek viszonylag pontos k¨ozel´ıt´est adnak, mivel maguk a WiFi router-ek sem a´lland´o, egyenletes intenzit´assal sug´aroznak [25]. Sok helyen a k¨ozel´ıtett ´ert´ekekn´el 0.5 dB alatti elt´er´es volt megfigyelhet˝o. Helyenk´ent magasabbra, 10 dB f¨ol´e emelkedett ez a differencia, viszont ez eleny´esz˝o sz´amban jelent meg, amit az ´atlagos kb. 4 dB-es a´tlagelt´er´es is mutat. A lak´asban felvett szondapontokhoz tartoz´o ´ert´ekek approxim´al´asa a neur´alis h´al´okkal router-enk´ent ´atlagosan 4-6 percig tartottak.
41
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
7.1.3. Informatika int´ ezet A m´asodik tesztk¨ornyezetet a j´oval nagyobb alapter¨ uletet biztos´ıt´o Miskolci Egyetem Informatika Int´ezet´enek els˝o emelete adta. A helysz´ınen kijel¨olt szondapontok a 7.3. a´br´an l´athat´oak.
7.3. ´abra. Informatika Int´ezet alaprajza ´es m´er´esi pontok A 7.3. a´bra j´ol mutatja, hogy a szondapontok s˝ ur˝ un vannak elhelyezve, de az eloszt´asuk nem egyenletes. Az oktat´oi szob´akban, a tantermekben ´es az ´ep¨ ulet k¨ozep´en elhelyezked˝o rakt´arhelyis´egekben nem volt lehet˝os´eg m´er´eseket v´egezni. Ez´ert m´er´eseimet a folyos´okra ´es az ´ep¨ ulet elej´eben lev˝o el˝ot´erre korl´atoztam. Ezen okok ellen´ere j´oval t¨obb m´ert ´ert´ek ker¨ ult az adatb´azisba a lak´ashoz k´epest, de nem lehetett kell˝oen lefedni a ter¨ uletet. Emiatt v´arhat´oan pontatlanabb helymeghat´aroz´asi ´ert´ekek fognak sz¨ uletni a tesztel´esek sor´an. Az ´ep¨ uletr´eszben o¨sszesen 17 WiFi router jeleit tudtam m´erni. Itt a t´arolt m´er´esi ´ert´ekek mennyis´ege miatt router-enk´ent a´tlagosan ak´ar 10-15 percet is ig´enybe vett az egyes neur´alis h´al´ok betan´ıt´asa. Hasonl´oan a lak´asn´al megfigyelt ´ert´ekekhez, a betan´ıt´as ut´an az approxim´alt ´ert´ekek hib´ai 0.5 dB k¨or¨ ul mozogtak, viszont itt m´ar kiugr´o, ak´ar 20-25 dB-es maximum elt´er´esek is jelentkeztek. Ezek ellen´ere a szondapontok mennyis´ege miatt az a´tlagolt elt´er´esek nem ny´ ultak 5 dB f¨ol´e.
42
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
7.2. Teszteredm´ enyek 7.2.1. Lak´ as A lak´asban a helymeghat´aroz´asi algoritmus tesztel´esekor a 7.4. a´br´an z¨olddel jel¨olt szondapontokon t¨ort´entek a m´er´esek. L´athat´o, hogy minden lem´ert helyis´eg legal´abb egy tesztponttal rendelkezik, ´ıgy megfigyelhet˝o az algoritmus viselked´ese.
7.4. ´abra. Tesztpontok a lak´asban Az approxim´aci´okor a 7.3 t´abl´azatban l´ev˝o eredm´enyek sz¨ ulettek. 7.3. t´abl´azat. Helymeghat´aroz´asi ´ert´ekek a lak´asban ´ Referenciapont Atlagolt eredm´eny [X, Y ] [X, Y ]
Elt´er´es X, Y
Hiba [cm]
[100, 0]
[154, 221]
54, 221
227
[100, 300]
[35, 135]
65, 165
177
[400, 300]
[515, 264]
115, 46
120
[500, 0]
[591, 104]
91, 104
138
[600, 200]
[582, 167]
18, 33
37
[800, 100]
[734, 269]
66, 169
181
[900, 300]
[743, 373]
157, 73
173
´ Atlag 81, 115
150
75% percentilis
177
43
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
Az egyes m´er´esi pontokban l´ev˝o hib´ak vizu´alis a´br´azol´as´at a 7.5. ´abra tartalmazza. A k´ek karik´ak helye jel¨olik a tesztpontokat, kiterjed´es¨ uk pedig az ott m´ert ´atlagolt hiba nagys´ag´at. L´athat´o, hogy a lak´as k¨oz´eppontja fel´e haladva egyre pontosabb m´er´esi ´ert´ekeket kaptam.
7.5. ´abra. Tesztpontok a lak´asban A 7.3. t´abl´azatban l´athat´o eredm´enyek alapj´an a neur´alis h´al´oval t¨ort´en˝o helymeghat´aroz´as ´atlagos pontoss´aga a lak´asban m´asf´el-, 75% percentilise pedig 1,77 m´eter volt. A le´ır´as tov´abb´a r´eszletezi az egyes referenciapontokhoz tartoz´o X ´es Y koordin´at´akban vett elt´er´eseket, melyek ´atlagos ´ert´eke X koordin´at´aban 81, Y-ban pedig 115 cm volt. Az utols´o ,,Hiba” oszlop pedig a referencia- ´es ´atlagolt m´er´esi eredm´enyk´ent kapott pontok t´avols´ag´at mutatja cm-ben megadva.
7.2.2. Informatika int´ ezet Az Informatika Int´ezetben a tesztel´eskor az al´abbi 7.6. ´abr´an l´athat´o z¨old pontokkal jel¨olt koordin´at´akban v´egeztem el az approxim´aci´o tesztm´er´eseit.
44
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
7.6. ´abra. Informatika Int´ezet alaprajza ´es tesztel´esi pontok A 7.4. t´abl´azatban pedig a tesztel´eskor kapott eredm´enyek ¨osszefoglal´o adatai szerepelnek. Az ´ep¨ uletben v´egzett tesztel´esekor a neur´alis h´al´oval val´o approxim´aci´o pontoss´aga ´atlagosan 4,2 m´eter volt. 75% percentilise 5.94 m´eter, ami ront az a´tlag eredm´enyen, de l´athat´o, hogy itt a lak´ashoz k´epest nagy elt´er´eseket kaptunk. 7.4. t´abl´azat. Helymeghat´aroz´asi ´ert´ekek az Informatika Int´ezetben ´ Referenciapont Atlagolt eredm´eny [X, Y ] [X, Y ]
Elt´er´es X, Y
Hiba [cm]
[850, 500]
[989, 936]
139, 436
457
[850, 2000]
[1191, 1513]
341, 487
594
[850, 3000]
[1210, 2613]
360, 387
528
[2000, 500]
[1833, 850]
167, 350
387
[2000, 2500]
[1483, 2895]
517, 395
650
[1500, 900]
[1590, 538]
90, 362
373
[1300, 3800]
[1376, 3616]
76, 184
199
[1700, 3300]
[1574, 3416]
126, 116
171
´ Atlag 227, 339
420
75% percentilis
594
A 7.4. t´abl´azat adatainak vizu´alis a´br´azol´as´at a 7.7. ´abra mutatja. A karik´ak helye a tesztpontokat, kiterjed´es¨ uk az ott m´ert ´atlagolt hib´ak nagys´ag´at jel¨olik.
45
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
7.7. ´abra. Tesztpontok az Informatika Int´ezetben Az Informatika Int´ezetben megfigyelt nagy pontatlans´ag ered˝o oka, hogy az ´ep¨ ulet kiterjed´es´ehez m´erten kev´es m´er´esi pontot tudtunk kijel¨olni. A WiFi router-ek ´altal sug´arzott jelek karakterisztik´aja ´ıgy nem meghat´arozhat´o, a holtterekben a viselked´es¨ uk k¨ozel´ıt´ese ez´ert csalhat. Megfigyelhet˝o viszont, hogy az alaprajzon bal oldalt l´ev˝o egybenyitott folyos´on elegend˝oen sok m´er´est siker¨ ult v´egezni, ´es itt 2 m´eter al´a esik az elt´er´esek m´ert´eke.
7.3. Probl´ em´ ak Probl´em´at jelentett az ´ep¨ uletben automatikusan m˝ uk¨od˝o vil´ag´ıt´as folyamatos ki-be kapcsol´asa. A m´er´esekkor ´es tesztel´eskor is a mozg´as´erz´ekel˝ovel m˝ uk¨od˝o vil´ag´ıt´o testek felkapcsol´asa hatalmas interferenci´akat okoztak a WiFi jelekn´el. A szondapontok m´er´ese ut´an elkezdtem a neur´alis h´al´ok tan´ıt´as´at, el˝osz¨or meglep˝oen pontatlan eredm´enyek sz¨ ulettek. A magas hib´ak oka az el˝obb eml´ıtett zavar´o t´enyez˝o volt. Az adatb´azisban hatalmas, a m´er´esekbe nem ill˝o kiugr´o ´ert´ekek ker¨ ultek, ´ıgy a tan´ıt´askor a sz´am´ıt´asokat eltolt´ak rossz ir´anyba. Az adatb´azis ,,tiszt´ıt´asa” ut´an viszont a lak´ashoz hasonl´o a´tlagosan h´al´onk´ent 3-6 dB-es ´atlagelt´er´esre tudtam cs¨okkenteni az approxim´aci´os folyamat eredm´enyeit.
46
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
¨ 7.4. Osszegz´ es A k¨ornyezetek kialak´ıt´asakor labor k¨or¨ ulm´enyeket pr´ob´altam meg biztos´ıtani. Nem mozgattam a WiFi router-eket, az Informatika Int´ezetben mind a m´er´es, mind a tesztel´es az esti o´r´akban t¨ort´ent, hogy min´el kevesebb ember tart´ozkodjon a helysz´ınen. Pr´ob´altam min´el t¨obb zavar´o t´enyez˝ot kiz´arni a folyamatb´ol. A tesztk¨ornyezet k¨oz¨otti nagyobb elt´er´esek a helysz´ınek m´eret´eb˝ol ´es a m´er´esek s˝ ur˝ us´eg´eb˝ol ad´odtak. Az Informatika Int´ezetben tov´abb´a k¨ozre j´atszik az a t´enyez˝o is, hogy a szondapontokban a jeler˝oss´egek m´er´ese 4 k¨ ul¨onb¨oz˝o mobilk´esz¨ ul´ekkel t¨ort´ent. Az approxim´aci´os eredm´enyek pontos´ıthat´obbak lenn´enek p´eld´aul, ha s˝ ur˝ ubben venn´enk fel a m´er´esi pontokat, ´es a WiFi router-ek mozgat´as´aval kiel´eg´ıt˝obb lefedetts´eget biztos´ıtan´ank. Amennyiben ezek a felt´etelek teljes¨ uln´enek, a neur´alis h´al´ok tan´ıt´asakor azok finomhangol´as´aval tov´abb tudn´ank cs¨okkenteni a helymeghat´aroz´askor keletkez˝o hib´ak m´ert´ek´et. Sajnos t¨ok´eletes pontoss´agot viszont ritka esetben kaphatunk csak, mivel maguk a WiFi router-ek is elt´er˝o intenzit´assal sug´aroznak. Ez´ert a lem´ert router-ek ´es az ezen adatokb´ol betan´ıtott algoritmusok csak szimul´alt k¨ornyezetben adhatnak ak´ar p´ar cm-es pontoss´agot.
47
8. fejezet Tov´ abbfejleszt´ es A k¨ovetkez˝okben az alkalmaz´as szerver- ´es kliens oldali tov´abbfejleszt´es´evel kapcsolatos gondolatokat fogom r´eszletezni.
8.1. Szerver oldal Az approxim´aci´os modul b˝ov´ıthet˝os´ege miatt lehet˝os´eg¨ unk van az ´altala biztos´ıtott adatokb´ol b´armilyen k¨ozel´ıt˝o elj´ar´as csatol´as´ara a rendszerhez. Tov´abbfejleszthet˝o lenne ´es ´ıgy pontosabb´a tehet˝o a helymeghat´aroz´ashoz haszn´alt algoritmus. Jelenleg a legjobbaknak v´elt koordin´at´ak ´atlag´at adja vissza a szerver a mobilk´esz¨ ul´eknek. A probl´ema, hogy ha egy pont kiugr´oan messze esik a t¨obbit˝ol, nagy m´ert´ekben rontja az ´atlag ´ert´ek´et, mivel ir´any´aba elh´ uzza a sz´am´ıtott koordin´at´at. Az algoritmus h´atr´anya m´eg, hogy jelenleg 50 centim´eterenk´ent j´arja be a konfigur´aci´oban defini´alt s´ıkot, ennek cs¨okkent´es´evel is finom´ıthat´o lenne a pontoss´ag. A neur´alis h´al´ok tan´ıt´asakor jelenleg az alkalmaz´as minden egyes iter´aci´oban ki´ırja az aktu´alis hiba ´ert´ek´et. Mivel az eg´esz folyamat alatt biztos´ıtja nek¨ unk ezeket az inform´aci´okat, azok vizualiz´al´as´aval szeml´eletesebb´e lehetne tenni az egyes h´al´ok tanul´asi folyamat´anak menet´et.
8.2. Kliens oldal A kliens oldali WEB-es megjelen´ıt´esben l´etrehozhat´o lenne egy fel¨ ulet, melyen megtal´alhat´oak az adatb´azisban t´arolt WiFi router-ek. Ezeket egyes´evel kiv´alasztva a
48
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
hozz´ajuk tartoz´o neur´alis h´al´okat tetsz˝olegesen felparam´eterezve felhaszn´al´oi fel¨ uletet ny´ ujthatn´ank azok tan´ıt´as´ahoz. A fejleszt´es alatt a finomhangol´as ´es egyenk´enti betan´ıt´as a WAR r´etegben l´ev˝o kontroller-ek k´odj´aban t¨ort´ent. Kliens oldalhoz tartoz´o fejleszt´est eszk¨oz¨olhet¨ unk m´eg a mobil alkalmaz´asban is. Jelenleg ennek feladata az a´ltala l´atott WiFi router-ek jeler˝oss´eg´enek m´er´ese majd elk¨ uld´ese a szervernek. A szerver v´alasz´at pedig csak szimpla sz¨oveg form´atumban jelen´ıti meg. Tov´abbfejleszt´esi lehet˝os´eg itt az adott helysz´ınhez tartoz´o t´erk´ep megjelen´ıt´ese, majd helymeghat´aroz´as k´er´esekor a kapott v´alasz megjel¨ol´ese azon.
49
9. fejezet ¨ Osszefoglal´ as Diplomamunk´amban egy belt´eri poz´ıcion´al´asi alkalmaz´ast fejlesztettem. A dolgozatban egy r¨ovid ´attekint´es´et adtam a m´ar l´etez˝o helymeghat´aroz´asi technol´ogi´aknak. Az a´ltalam kidolgozott rendszer a m´ert jeler˝oss´egekre illeszthet˝o f¨ uggv´eny approxim´aci´on alapszik. F¨ uggv´eny k¨ozel´ıt´esre k´et m´odszert haszn´altam. Az els˝o egy a´ltalam szabadon v´alasztott f¨ uggv´enyt alkalmazott, ahol a k¨ozel´ıt´est optimaliz´al´asi feladatk´ent kezeltem. Ezt a probl´em´at szimul´alt leh˝ ut´es seg´ıts´eg´evel oldottam meg. M´asik approxim´aci´os elj´ar´ashoz el˝ore csatolt perceptron neur´alis h´al´ot haszn´altam. A vizsg´alt m´odszereket Java k¨ornyezetben implement´altam ´es teszteltem. Megterveztem egy kliens-szerver alap´ u alkalmaz´ast, melynek szerver oldal´at implement´altam. Az a´ltalam haszn´alt Android alap´ u mobil kliensek egy a tansz´eken fut´o m´asik fejleszt´es keret´eben k´esz¨ ultek el. Meghat´aroztam ´es implement´altam a szerver oldalon sz¨ uks´eges modulokat. Az adatt´arol´asra MySQL adatb´azist haszn´altam. Az alkalmaz´as tesztel´ese k´et helysz´ınen t¨ort´ent. Az egyik egy m´asf´el szob´as b´erh´azi lak´as a m´asik pedig a Miskolci Egyetem Informatika Int´ezete volt. A lak´asban ´atlagosan m´asf´el, az Int´ezetben pedig 5 m´eteres pontoss´agot ´ertem el. J¨ov˝obeni c´elok k¨oz¨ott szerepel a f¨ uggv´eny k¨ozel´ıt´esi m´odszerek finom´ıt´asa, u ´jak kidolgoz´asa valamint m´as technol´ogi´ak felhaszn´al´asi lehet˝os´eg´enek vizsg´alata. Mindezek a pontosabb helymeghat´aroz´asi ´ert´ekek el´er´es´ehez sz¨ uks´egesek. A jelenlegi rendszer nem rendelkezik felhaszn´al´oi fel¨ ulettel, ennek tervez´ese ´es fejleszt´ese is a tervek k¨oz¨ott szerepel.
50
10. fejezet Summary In my thesis I have developed an indoor positioning application. There is a brief overview of the exsisting indoor positioning technologies. I have developed a novel indoor pozitioning method that is based on function approximation. Two approximation method was tested. Simulated annealing was used to fit a heuristic function. Neural networks are considerd as universal function aproximator. These methods were implemented in Java environment. I have desinged and implemented a client-server based WEB application for indoor positioning. The android client was provided. The measurements were stored in a MySQL database. Tests were performed in an appartment and in the building of the Institute of the Information Science. The apartment has one and a half rooms. In the apartment, approximately 1,5 meter precision was achieved. In the Institute of the Information Science the accuracy was about 5 meters. Future goals are refining the function approximation methods, elaboration of new ones, inspection of the usage of other technologies. All of these are required to achieve more accurate position measurements. The current system does not have a graphical user interface, the planning and development of this is also among the goals.
51
11. fejezet K¨ osz¨ onetnyilv´ an´ıt´ as Ez´ uton szeretn´ek k¨osz¨onetet mondani egyetemi konzulensemnek, T´oth Zsoltnak, aki a folyamatos konzult´aci´ok sor´an tud´as´aval, tapasztalat´aval ´es tan´acsaival nagyban hozz´aj´arult a diplomamunk´am elk´esz´ıt´es´ehez.
52
A. f¨ uggel´ ek CD mell´ eklet A CD mell´ekleten a k¨ovetkez˝o katal´ogusok tal´alhat´oak meg: • Dolgozat: ebben a mapp´aban tal´alhat´oak a diplomamunka LaTeX ´es PDF form´atum´ u a´llom´anyai. A katal´ogusban kiemelve szerepel m´eg a magyar ´es angol nyelv˝ u o¨sszefoglal´o szint´en LaTeX ´es PDF form´atumokban, tov´abb´a a hivatalos diplomamunka ki´ır´as. • Forraskodok: ebben a katal´ogusban tal´alhat´oak az implement´alt alkalmaz´as forr´ask´odjai. • Teszt: a k¨onyvt´arban megtal´alhat´oak az alkalmaz´as tesztel´es´ehez sz¨ uks´eges telep´ıthet˝o f´ajlok, valamint az Informatika Int´ezet m´ert ´ert´ekeit tartalmaz´o adatb´azis kivonat
53
Irodalomjegyz´ ek [1] Active badge. https://www.lightbluetouchpaper.org/wp-content/uploads/ 2009/05/active-badge-ah.jpg. [2] Active bat. http://www.cl.cam.ac.uk/research/dtg/attarchive/bat/. [3] Active bat. http://indoor-ortung.de/wp-content/uploads/active-bat.png. [4] Eclipse. http://en.wikipedia.org/wiki/Eclipse_(software). [5] Gps. http://hu.wikipedia.org/wiki/Global_Positioning_System. [6] Gps vs ips.
http://www.extremetech.com/wp-content/uploads/2011/12/
gps-vs-ips.jpg. [7] Jaxb.
http://www.oracle.com/technetwork/articles/javase/
index-140168.html. [8] Maven. http://en.wikipedia.org/wiki/Apache_Maven. [9] Maven. http://maven.apache.org/. [10] Mybatis. http://mybatis.github.io/mybatis-3/#. [11] Optimalizalas.
http://project.mit.bme.hu/mi_almanach/books/aima/
ch04s03. [12] Rfid. http://2.bp.blogspot.com/-wIg8pW4vFnw/TkKFb_VWUgI/AAAAAAAAABo/ 5URDb4zFk3g/s1600/fig1.jpg. [13] Spring framework. http://en.wikipedia.org/wiki/Spring_Framework. [14] Subversion. http://en.wikipedia.org/wiki/Apache_Subversion.
54
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
[15] Trilateration. http://goo.gl/YtQbSk. [16] Wifi. http://hu.wikipedia.org/wiki/Wi-Fi. [17] Mike Y Chen, Timothy Sohn, Dmitri Chmelev, Dirk Haehnel, Jeffrey Hightower, Jeff Hughes, Anthony LaMarca, Fred Potter, Ian Smith, and Alex Varshavsky. Practical metropolitan-scale positioning for gsm phones. In UbiComp 2006: Ubiquitous Computing, pages 225–242. Springer, 2006. [18] Jeffrey Hightower, Roy Want, and Gaetano Borriello. Spoton: An indoor 3d location sensing technology based on rf signal strength. UW CSE 00-02-02, University of Washington, Department of Computer Science and Engineering, Seattle, WA, 1, 2000. [19] Joo-Yub Lee, Cheal-Hwan Yoon, P Hyunjae, and Jungmin So. Analysis of location estimation algorithms for wifi fingerprint-based indoor localization. In The 2nd international conference on software technology, volume 19, pages 89–92, 2013. [20] Hui Liu, Houshang Darabi, Pat Banerjee, and Jing Liu. Survey of wireless indoor positioning techniques and systems. Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE Transactions on, 37(6):1067–1080, 2007. [21] Lionel M Ni, Yunhao Liu, Yiu Cho Lau, and Abhishek P Patil. Landmarc: indoor location sensing using active rfid. Wireless networks, 10(6):701–710, 2004. [22] Jeongyeup Paek, Joongheon Kim, and Ramesh Govindan. Energy-efficient rateadaptive gps-based positioning for smartphones. In Proceedings of the 8th international conference on Mobile systems, applications, and services, pages 299–314. ACM, 2010. [23] Jeffrey H Reed, Kevin J Krizman, Brian D Woerner, and Theodore S Rappaport. An overview of the challenges and progress in meeting the e-911 requirement for location service. IEEE Communications Magazine, 36(4):30–37, 1998. [24] Roy Want, Andy Hopper, Veronica Falcao, and Jonathan Gibbons. The active badge location system. ACM Transactions on Information Systems (TOIS), 10(1):91–102, 1992.
55
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
[25] Moustafa A Youssef, Ashok Agrawala, and A Udaya Shankar. Wlan location determination via clustering and probability distributions. In Pervasive Computing and Communications, 2003.(PerCom 2003). Proceedings of the First IEEE International Conference on, pages 143–150. IEEE, 2003.
56
´ ak jegyz´ Abr´ eke 2.1. GPS ´es IPS ¨osszehasonl´ıt´as [6] . . . . . . . . . . . . . . . . . . . . . . .
4
2.2. H´aromsz¨ogel´es ´abr´azol´asa . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3. Trilateration [15] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.1. Active Badge [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.2. Active Badge rendszer m˝ uk¨od´ese [24] . . . . . . . . . . . . . . . . . . .
9
3.3. Active Bat m˝ uk¨od´ese [3] . . . . . . . . . . . . . . . . . . . . . . . . . .
10
3.4. RFID olvas´o ´es akt´ıv c´ımke [12] . . . . . . . . . . . . . . . . . . . . . .
11
4.1. F¨ uggv´eny glob´alis ´es lok´alis sz´els˝o´ert´ekekkel [11] . . . . . . . . . . . . .
16
5.1. A rendszer fel´ep´ıt´ese . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
5.2. F¨ uggv´eny approxim´aci´o folyamata . . . . . . . . . . . . . . . . . . . . .
20
5.3. A helymeghat´aroz´as folyamata . . . . . . . . . . . . . . . . . . . . . . .
21
5.4. A modulok logikai kapcsolata . . . . . . . . . . . . . . . . . . . . . . .
22
5.5. Az adatb´azis rel´aci´os modellje . . . . . . . . . . . . . . . . . . . . . . .
24
5.6. Az adatb´azis rel´aci´os modellje . . . . . . . . . . . . . . . . . . . . . . .
25
6.1. Az approxim´aci´os r´eteg oszt´alydiagramja . . . . . . . . . . . . . . . . .
30
6.2. SimulatedAnnealingSignalStrengthApproximation oszt´alydiagram . . .
33
6.3. NeuralNetworkCreator oszt´alydiagram . . . . . . . . . . . . . . . . . .
35
6.4. Neur´alis h´al´o r´etegei . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
6.5. Egyedi fel´ep´ıt´es˝ u neur´alis h´al´o . . . . . . . . . . . . . . . . . . . . . . .
36
6.6. NeuralNetworkSignalStrengthApproximation oszt´alydiagram . . . . . .
37
7.1. Lak´as alaprajza ´es m´er´esi pontok . . . . . . . . . . . . . . . . . . . . .
40
7.2. M´er´esi ´ert´ekek vizualiz´alva . . . . . . . . . . . . . . . . . . . . . . . . .
41
57
Belt´eri poz´ıcion´ al´ as Received Signal Strength f¨ uggv´eny approxim´aci´o seg´ıts´eg´evel
7.3. Informatika Int´ezet alaprajza ´es m´er´esi pontok . . . . . . . . . . . . . .
42
7.4. Tesztpontok a lak´asban . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
7.5. Tesztpontok a lak´asban . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
7.6. Informatika Int´ezet alaprajza ´es tesztel´esi pontok . . . . . . . . . . . .
45
7.7. Tesztpontok az Informatika Int´ezetben . . . . . . . . . . . . . . . . . .
46
58