ZINĀTNISKĀ PĒTĪJUMA PROGRESU APLIECINOŠA DOKUMENTĀCIJA
Prioritāte: 1.1. Augstākā izglītība un zinātne
Pasākums: 1.1.1. Zinātnes un pētniecības potenciāla attīstība Aktivitāte: 1.1.1.2. Cilvēkresursu piesaiste zinātnei
Projekta nosaukums: ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” (VieSenTIS)
Līguma noslēgšanas datums: 27.11.2009.g. Projekta sākuma datums: 01.01.2010.g. Projekta beigu datums: 31.12.2012.g.
Vienošanās Nr.2009/0219/1DP/1.1.1.2.0/09/APIA/VIAA/020
Eiropas Savienības fonda finansējuma saņēmējs: Elektronikas un datorzinātņu institūts (EDI)
ZINĀTNISKĀ PĒTĪJUMA PROGRESU APLIECINOŠA DOKUMENTĀCIJA
Pārskata numurs Nr.7. par periodu no 01.07.2011.g līdz 30.09.2011.g.
Projekta zinātniskais vadītājs: Xxx Xxxxxx, Ph.D. datorzinātnēs.
Pētījuma projekta izpildītāju saraksts: Xxxxxx Xxxxxxxx, Dr.sc.comp.
Xxxxx Xxxxxx, topošais zinātnieks, Mg. fizikā. Xxxxx Xxxxxx, doktorants.
Xxxx Xxxxx, doktorants. Xxxxxxx Xxxxxxx, doktorants. Xxxxx Xxxxxxxx, doktorants.
Xxxxx Xxxxxx, Mg. Elektronikā. Xxxxxxx Xxxxx, doktorants.
Xxxxxx Xxxxxxxxxx, maģistrants. Xxxxx Xxxxxxx, Mg. Elektronikā. Xxxxx Xxxxxx, Dr.phys.
Xxxxxxx Xxxxxxx, Mg. Elektronikā. Xxxxxxxxx Xxxxxxxx, doktorants.
Xxxxxxxx Xxxxxxxx, Mg. Datorzinātnēs. Xxxxxx Xxxxxxxxxx, Mg. Elektronikā.
ELEKTRONIKAS UN DATORZINĀTŅU INSTITŪTS
Rīga, Latvija 2011.gads
Saturs
Ievads 3
VieSenTIS 3
1 BioSen grupas atskaite 4
1.1 Ievads 4
1.2 Saistītie risinājumi 5
1.3 Risinājums 5
1.3.1 Sejas detektēšana 5
1.3.2 Sejas lokalizācija 6
1.3.3 Sejas atpazīšana 6
1.4 Eksperimenti un-vai testi 8
1.4.1 Sejas biometrija 8
1.5 Rezultāti 9
1.5.1 Sejas detektēšana 9
1.5.2 Sejas lokalizācija 9
1.5.3 Sejas atpazīšana 10
1.6 Kopsavilkums un secinājumi 11
1.7 Nākotnes perspektīvas 11
Literatūra 12
2 CarMote grupas atskaite 13
2.1 Ievads 13
2.2 Saistītie risinājumi 13
2.3 Risinājums 14
2.3.1 Navigācijas sistēma 14
2.4 Eksperimenti un-vai testi 17
2.5 Rezultāti 18
2.6 Kopsavilkums un secinājumi 19
2.7 Nākotnes perspektīvas 19
Literatūra 20
3 EdiMote grupa 21
3.1 Ievads 21
3.2 Signālu atkļūdošana 22
3.2.1 Ciparu signālu komutēšanas bloks 22
3.2.2 Testi ar ciparu signālu atkļūdotāju 23
3.3 Analogās matricas (AMAT) konfigurēšana 25
3.4 Analogo signālu analizators 26
3.5 Enerģijas mērītāji . . . . . . . . . . . . . . . . . . . . . . . . . . . | 27 | |
3.5.1 Ref counter module . . . . . . . . . . . . . . . . . . . . . | 27 | |
3.5.2 PWR counters . . . . . . . . . . . . . . . . . . . . . . . . | 28 | |
3.5.3 Enerģijas mērītāju kontrolieris (FSM) . . . . . . . . . . . | 28 | |
3.6 Kopsavilkums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 28 | |
3.7 Nākotnes perspektīvas . . . . . . . . . . . . . . . . . . . . . . . . | 29 | |
Literatūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 29 | |
4 | MansOS grupa | 30 |
4.1 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 30 | |
4.2 Saistītie risinājumi . . . . . . . . . . . . . . . . . . . . . . . . . . | 31 | |
4.2.1 Tīkla protokoli . . . . . . . . . . . . . . . . . . . . . . . . | 31 | |
4.2.2 Pavedieni . . . . . . . . . . . . . . . . . . . . . . . . . . . | 31 | |
4.3 Risinājums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 32 | |
4.3.1 CC2420 [3] radio dzinis . . . . . . . . . . . . . . . . . . . | 32 | |
4.3.2 Maršrutēšanas protokols . . . . . . . . . . . . . . . . . . . | 32 | |
4.3.3 Xxxxx xxxxxxxxxxxxxx . . . . . . . . . . . . . . . . . . . . . | 33 | |
4.3.4 Saites kvalitāte (link quality) . . . . . . . . . . . . . . . . | 33 | |
4.3.5 ISL29003 sensors . . . . . . . . . . . . . . . . . . . . . . . | 35 | |
4.3.6 I2C RTC mikroshēma PCF8593 . . . . . . . . . . . . . . . | 35 | |
4.3.7 MansOS lietojamības empīriska pārbaude . . . . . . . . . | 35 | |
4.3.8 Pavedieni . . . . . . . . . . . . . . . . . . . . . . . . . . . | 36 | |
4.4 Kopsavilkums un nākotnes perspektīvas . . . . . . . . . . . . . . | 36 | |
Literatūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 37 | |
5 | SAntArray grupas atskaite | 38 |
5.1 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 38 | |
5.2 Saistītie risinājumi . . . . . . . . . . . . . . . . . . . . . . . . . . | 39 | |
5.3 Eksperimentu rezultāti . . . . . . . . . . . . . . . . . . . . . . . . | 39 | |
5.4 Satrojuma diagrammas vienkāršais modelis . . . . . . . . . . . . | 40 | |
5.4.1 Monopola lauks . . . . . . . . . . . . . . . . . . . . . . . . | 41 | |
5.4.2 ESPAR2 antenas lauks . . . . . . . . . . . . . . . . . . . . | 42 | |
5.4.3 Skaitliskie eksperimenti . . . . . . . . . . . . . . . . . . . | 43 | |
5.5 Kopsavilkums un secinājumi . . . . . . . . . . . . . . . . . . . . . | 44 | |
5.6 Nākotnes perspektīvas . . . . . . . . . . . . . . . . . . . . . . . . | 46 | |
Literatūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 46 | |
6 | SenSigA grupas atskaite 6.1 Ievads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 47 47 |
6.2 Signāla atjaunošana . . . . . . . . . . . . . . . . . . . . . . . . . | 47 | |
6.3 Rezultāti un secinājumi . . . . . . . . . . . . . . . . . . . . . . . | 51 | |
6.4 Nākotnes perspektīvas . . . . . . . . . . . . . . . . . . . . . . . . | 52 | |
Literatūra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 52 |
Ievads
Anotācija
”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” (VieSenTIS) ir ESF atbalstīts projekts zinātnisko grupu veidošanai. Šis projekts nodarbojas ar bezvadu sensoru un tīklotu iegulto sistēmu pētniecību. Projekta ietvaros ir sekojošas apakšgrupas: BioSen – sensoru sistēmu pielietojumi biometrijā, CarMote – viedās transporta sensoru sistēmas, EdiMote – jaunas arhitektūras bezvadu sensoru aparatūrai, MansOS – operētājsistēma un programmatūras rīki bezvadu sensoru un iegulto sistēmu atbalstam, SAntArray – antenu masīvu pielietojumi tīklotas iegultas sistēmās, un SenSigA – sensoru signālu apstrādes metodes. Šajā dokumentā izklāstītas zinātniskās pētniecības aktivitātes un rezultāti augšminētajās grupās. Pielikumā ir iekļautas šajā periodā iesniegtās un apstiprinātas zinātniskās publikācijas. Projektu atbalsta Eiropas Savienības fondi, līguma Nr. 2009/0219/1DP/1.1.1.2.0/09/APIA/VIAA/020.
VieSenTIS
VieSenTIS grupas galvenais pētniecības virziens ir tīklotu iegulto sistēmu un viedu sensoru risinājumi un pielietojumi cilvēku dzīves kvalitātes uzlabošanai, industrijā un citās nozarēs. Miniatūras iegultās sistēmas ir ar ierobežotiem resursiem, piemēram, enerģijas avots bieži vien ir neliela baterija. Tāpēc ir aktuāli pētīt kā šos resursus pēc iespējas efektīvi izmantot, kā arī radīt rīkus jaunas aparatūras un programmatūras izstrādei. Bez tam, bezvadu sensoriem rodami pielietojumi arvien jaunas dzīves sfērās, kas prasa gan specifisku signāla apstrādi gan pielietojuma metožu pētniecību.
VieSenTIS projektā ir sekojošas apakšgrupas saskaņā ar pētnieku individuālo pieredzi un interesēm:
• BioSen – sensoru sistēmu pielietojumi biometrijā;
• CarMote – viedās transporta sensoru sistēmas;
• EdiMote – jaunas arhitektūras bezvadu sensoru aparatūrai;
• MansOS – operētājsistēma un programmatūra bezvadu sensoru un iegulto sistēmu atbalstam;
• SAntArray – antenu masīvu pielietojumi tīklotas iegultas sistēmās;
• SenSigA – sensoru signālu apstrādes metodes.
Turpmākajās nodaļās ir apkopoti galvenie sasniegumi minētajos virzienos.
Nodaļa 1
BioSen grupas atskaite
Anotācija
BioSen pētniecības grupa nodarbojas ar biometrijas datu iegūšanu un apstrādi. Grupas mērķis ir izveidot multimodālu biometrijas sistēmu (sadarbībā ar zinātniekiem no cita projekta), kas ir balstīta uz 2D/3D sejas un plaukstas biometrisko parametru kopīgu izmantošanu. Pirms sejas attēlu apstrādes algoritmu implementācijas gatavajā sistēmā ir svarīgi rūpīgi notestēt algoritmu parametrus. Šim nolūkam sākotnēji tika izmantota datubāze ar institūta darbinieku seju attēliem, tomēr šī datubāze nebjia pietiekoši liela. Tāpēc tika pieņemts lēmums algoritmu testēšanai izmantot publiski pieejamo seju datubāzi Color FERET [1], kas zinātnieku vidē tiek uzskatīta par „de facto” standartu algoritmu novērtēšanai. FERET datubāzes izmantošana dod iespēju salīdzināt mūsu algoritmus ar rezultātiem, kurus ir sasnieguši citi zinātnieki.
1.1 Ievads
Primārais mērķis šajā ceturksnī bija algoritmu novērtēšana izmantojot publiski pieejamo datubāzi Color FERET. Iepriekš tika apskatīti algoritmi, kuri paredzēti sejas detektēšanas, lokalizācijas un atpazīšanas uzdevumu risināšanai. Tomēr rezultātu salīdzināšanai un ticamai algoritmu novērtēšanai ir svarīgi izmantot pietiekoši populāras un lielas seju datubāzes. Par šādu datubāzi var uzskatīt iepriekš minēto FERET datubāzi. Algoritmu adoptācija FERET datubāzei izrādījās diezgan netriviāls uzdevums un prasīja daudz algoritmisku uzlabojumu, kas tiks aprakstīti turpmākajās nodaļās. Liela uzmanība tika pievērsta rezultātu analīzei un reprezentācijai, lai panāktu pēc iespējas lielāku uzskatāmību.
Papildus tika plānots veikt eksperimentus sejas atpazīšanā Matlab kodam, kas balstīts uz Eigenface algoritma. Tika sekots līdzi jaunākajām publikācijām sejas atpazīšanā [2] un tika veikta jaunākās FEI sejas datubāzes analīze [3]. Viens no rakstiem, kas tika iepazīts bija par 3D sejas atpazīšanas progresa iespējām nākotnē, šobrīd līderis 3D sejas attēlu iegūšanā ir Genex Technologies, kas strādā šajā nozarē jau vairāk kā astoņus gadus.
Att. 1.1: Kumulatīvas sadalījuma funkcija sejas izmēriem Color FERET datubāzē
1.2 Saistītie risinājumi
Iepriekšējie algoritmu testi tika veikti izmantojot darbinieku seju datubāzi, kur ir 168 sejas attēli 51 personai. FERET datubāzē ir 2722 attēli un subjektu skaits ir 994, kas skaitliski ievērojami pārsniedz iepriekšējo kopu. Par sistēmas raksturojošiem parametriem iepriekš tika izmantoti EER (Equal Error Rate) sejas atpazīšanas blokam un FTC (Failure to Capture Rate) sejas detektēšanas un lokalizācijas blokam. Tomēr publikāciju analīze parādīja, ka biežāk sastopami citi algoritmu kvalitatīvie kritēriji, kurus apskatīsim tālāk.
1.3 Risinājums
1.3.1 Sejas detektēšana
Sejas detektēšana ir pirmais etaps automātiskajā sejas atpazīšanas sistēmā. Pirms sejas detektēšanas bloka testēšanas uz FERET datubāzes to vajadzēja būtiski pārveidot, tāpēc šeit detalizēti aprakstīta pilnveidotā algoritma būtība. Pirmais sejas detektēšanas algoritma posms ir ieejas attēla transformācija izmantojot LBT (lokālais binārais tēls) operatoru [4]. Tālāk pārveidotais ieejas attēls tiek skenēts ar mainīga izmēra s logu. Katrā skenēšanas pozīcijā (i, j) tiek aprēķināts attālums starp logam atbilstošu attēla histogrammu Hi,j un sejas modeļu histogrammām Fk:
xx,j(Hi,j, Fk) (1.1)
Attālumu starp histogrammām var rēķināt izmantojot kvadrātisko Eiklīda attālumu, vai citus paņēmienus. Dažāda izmēra skanēšanas logu izmantošanai ir svarīgs aspekts, jo dažādība sejas mērogos FERET datubāzē ir diezgan liela, ko var redzēt pēc kumulatīvās sadalījuma funkcijas sejas izmēriem, attēls 1.1.
Lai noteiktu sejas modeļu histogrammas mēs izmantojam FERET datubāzi. Šim nolūkam no visiem frontāliem attēliem (fa un fb kopas, sejas attēlu skaits nf = 2722 ) tiek izdalīti sejas reģioni. Tālāk sejas attēliem tiek rēķināta LBT transformācija un pārveidoto attēlu histogrammas. Izmantojot k - means klasterizācijas metodi nf histogrammas tiek sadalītas k klasteros ar atbilstošiem
Att. 1.2: Dažādi detektēšanas rezultāti ( s = 13, k = 5 ) un to apvienojums
centroidiem. Šie centroidi tālākajos aprēķinos tiek uzskatīti par normalizētām sejas histogrammām. Sejas koordinātes (augšējais kreisais stūris sejas reģionam) pie noteiktā mēroga s sejas modelim ar kārtas numuru k nosaka matricas d maksimums Ds,k = max(d):
{xs,k, ys,k} = find(d = Ds,k) (1.2)
·
Piedāvātais sejas detektēšanas algoritms ir diezgan „nejutīgs” pret nelielām detektēšanās nobīdēm, kas noved pie dažādiem detektēšanas rezultātiem katram mērogam un sejas modelim, kas paradīts 1.2 attēlā. Nodetektēto reģionu skaits ir vienāds ar s k. Šo reģionu apvienošanai var izmantot vairākus paņēmienus. Vienkāršākās metodes būtība ir sekojoša – par pareizo detektēšanas rezultātu pieņemt reģionu ar vislielāko sejas modelim līdzības pakāpi. Tomēr, vislabāko detektēšanas precizitāti izdevās panākt rezultātiem pielietojot vidējo svērto. Pirmais rezultātu apvienošanas solis ir matricas Ds,k elementu normalizēšana
no 0 līdz 1 - D˜s,k. Lai pastiprināt nozīmīgāko svaru ietekmi uz gala rezultātu
matricas D˜s,k elementi tiek kāpināti pakāpē m:
s,k
Ws,k = D˜m (1.3)
Ws,k vērtības tālāk tiek pielietotas vidējo svērto sejas koordināšu noteikšanai.
1.3.2 Sejas lokalizācija
Sejas lokalizācijas uzdevums ir pietekoši detalizēti aprakstīts iepriekšējā atskaitē, tāpēc šeit apspriedīsim tikai dažas algoritmiskas izmaiņas. Lai mazinātu liekas informācijas ietekmi uz acu detektēšanas rezultātu, algoritms papildināts ar skenēta attēla (1.3, b)) adaptīvo sliekšņošanu (1.3, c)). Šī operācija ļauj samazināt lokālo minimumu skaitu (1.3, c)), kas rezultātā uzlabo algoritma precizitāti.
1.3.3 Sejas atpazīšana
Sejas atpazīšanas metodika netiek mainīta, tāpēc šajā atskaitē netiks aprakstīta. Būtiskas izmaiņas tiek paveiktas rezultātu reprezentācijas un analīzes jomā, kas tiks aprakstītas tālāk.
Att. 1.3: a) – ieejas attēls; b) – ieejas attēla skenēšanas rezultāts ar acs modeli;
c) – adaptīvas sliekšņošanas rezultāts un lokālie minimumi
Att. 1.4: pirmajā gadījumā persona, kas atrodas datubāzē, tika pareizi atrasta; otrajā gadījumā, perona, kas neatrodas datubāzē, tika atpazīta kā persona no datubāzes
Att. 1.5: pirmajā gadījumā persona, kas atrodas datubāzē, tika pareizi atrasta; otrajā gadījumā, perona, kas neatrodas datubāzē, tika atpazīta kā persona no datubāzes
Alternatīva sejas atpazīšanas metode
Eigenface algoritma precizitātes novērtēšanai lielākais darbs tika veltīts eksperimentiem ar dažādām datubāzēm.
Sākumā tika izmantota neliela datubāze, kura sastāvēja no 24 attēliem (8 personām, katrai 3 bildes). Veicot 28 salīdzināšanas testus, nepareizi tika atpazītas personas 2 gadījumos. Pirmajā gadījumā persona, kas atrodas datubāzē, tika atpazīta kā cita persona šajā datubāze, otrajā gadījumā persona, kas nav šajā datubāzē, tika atpazīta kā viena no datubāzē esošajām1.4. Otro gadījumu var izskaidrot ar to, ka šis algoritms jebkurā gadījumā piemeklē personu, kas ir vislīdzīgākā no datubāzē esošajām, bet nevēlamos rezultātus ir iespējams izslēgt, izvēloties pareizu sliekšņa vērtību, līdz ar to, izslēdzot personas, kas datubāzē nav vai tiek nepareizi atpazītas.
Nākošais eksperiments tika veikt uz mazākas datubāzes, lai vēlreiz pārliecinātos par atpazīšanas kļūdām. Tika veikti 9 testi uz 16 attēlu datubāzes. Šajā gadījumā atkal personas, kas nav datubāzē tika atpazīta kā viena no datubāzē esošajām 1.5. Bet gluži kā pirmajā gadījumā, ja tiktu izvēlēta pareiza sliekšņa vērtība, tad šo personu varētu izslēgt un tā netiktu atpazīta kā datubāzē esoša.
Trešais eksperiments bija neveiksmīgs, tika izmantoti 100 attēli 50 personām,
Att. 1.6: pirmajā gadījumā persona, kas atrodas datubāzē, tika pareizi atrasta; otrajā gadījumā, perona, kas atrodas datubāzē, tika atpazīta kā cita persona šajā datubāzē
no datubāzes Morph un kļūdas tik fiksētas katrā otrajā gadījumā. Šo eksperimentu uzskatu par neveiksmīgu vairāku iemeslu dēļ. Pirmkārt, attēli bija nelieli un sliktas kvalitātes. Otrkārt, attēlos esošās personas katrā bildē ir sagriezušās, nesēž taisni, ir sejas pielektas pa labi vai kreisi. Uzskatu, ka nav kvalitatīvi attēli sejas atpazīšanas algoritma testēšanai, jo ir iespējas, ka persona, kuru nepieciešams atpazīt, pret kameru nostājas taisnā stājā, galvu neliecot uz malām, lai atpazīstamība būtu precīza.
Iepriekš sacīto, pierādīja mani nākošie eksperimenti. Tajos es izmantoju institūtā veidoto datubāzi, kur tika uzņemti attēli 51 personai, katrai 3 attēli. Datubāze tika sadalīta 51 klasē, katrā ievietojot katras personas 2 attēlus, trešo attēlu atstājot kā testa attēlu. Rezultātā, pareizā persona netika atpazīta tikai vienā gadījumā. Jāpiemin, ka datubāzē tika fotografēti identiskie dvīņi un tieši šajā gadījumā viena persona tika atpazīta kā cita 1.6.
1.4 Eksperimenti un-vai testi
1.4.1 Sejas biometrija
Iepriekš minēto algoritmu testēšanai tika izmantota Color FERET seju datubāze, kuras popularitāte zinātniskajā pasaulē padarīja to par „de facto” standartu sejas biometrijas pētniekiem. Datubāze izveidota 1996 gadā, bet 2003 gadā nopublicēta versija ar krāsainiem, augstās izšķirtspējas attēliem – Color FERET. Datubāzes veidošanas procesā piedalījās 994 cilvēki, kopējais attēlu skaits ir 11338, tomēr frontālo fotogrāfiju skaits ir 2722 (fa un fb kopas). Attēlu izmērs ir 768x512 pikseļi. Izmantojot FERET datubāzi tika aprēķināti sekojošie parametri:
• Sejas detektēšanas bloks. Aprēķināta kumulatīvā sadalījuma līkne relatīvai (attiecībā pret reālo sejas izmēru) sejas nobīdei no pareizas pozīcijas.
• Sejas lokalizācijas bloks. Aprēķināta kumulatīvā sadalījuma līkne relatīvai (attiecībā pret attālumu starp acīm) acu nobīdei no pareizas pozīcijas.
• Sejas atpazīšanas bloks. Noteikta kumulatīvā sakritības raksturlīkne (Cumulative Match Characteristic)
Att. 1.7: Parametri sejas detektēšanas algoritma novērtēšanai
1.5 Rezultāti
1.5.1 Sejas detektēšana
Sejas detektēšanas algoritms tika notestēts uz visiem FERET datubāzes frontāliem attēliem (fa un fb kopas). Algoritma novērtēšanai tika izvēlēts sekojošs kritērijs:
∆
η =
2 · deye
, (1.4)
kur η - ir relatīvā sejas nobīde; ∆ - absolūtās nobīdes vērtība (attēls 1.7); deye
- reprezentē attālumu starp acīm. Detektēšanas rezultāti attēloti kā empīriskas kumulatīvas sadalījuma funkcijas (attēls 1.8). Labākais detektēšanas rezultāts sasniegts pie k = 5 un m = 4. Tālāk palielinot klasteru skaitu k precizitāte būtiski neuzlabojas, bet aprēķinu laiks nozīmīgi paildzinās.
1.5.2 Sejas lokalizācija
Sejas lokalizācijas algoritma novērtēšanai tika izvēlēts sekojošs kritērijs:
ηeye
= ∆eye , (1.5)
deye
kur ηeye - ir relatīvā acs nobīde; ∆eye - absolūtās nobīdes vērtība; deye - reprezentē attālumu starp acīm. Detektēšanas rezultāti abām acīm attēloti kā empīriskas kumulatīvas sadalījuma funkcijas (attēls 1.9)
Empīriski tiek noteikts, ka pieņemamā ηeye vērtība nedrīkst pārsniegt 0.1
robežu, tāpēc tabulā tiek apkopotas pareizas detektēšanas varbūtības pie ηeye =
η = 0.1 | P, %. Kreisā acs | P, %. Labā acs | P, %. Abas acis |
PSEF | 89.5 | 83.0 | |
Mūsu | 84.9 | 79.8 | 74.4 |
ASEF | 79.2 | 66.1 | |
HAAR | 69.8 | 44.7 |
0.1 dažādām metodēm.
Att. 1.8: Sejas detektēšanas rezultāti
Att. 1.9: Sejas lokalizācijas rezultāti
1.5.3 Sejas atpazīšana
Lai notestētu algoritma pielietojamību identificēšanas uzdevumam tiek izrēķinātā kumulatīvā sakritības raksturlīkne (attēls 1.10). Uz horizontālās ass atrodas „rank” vērtība, uz vertikālās ass – identifikācijas varbūtība (PI ). Pareiza identifikācijas varbūtība pie ranka N nozīmē, ka korekts atpazīšanas rezultāts atrodas kaut kur starp N labākajām līdzības pakāpēm ar atbilstošo varbūtību. Lai noteikt kumulatīvo sakritības raksturlīkni no FERET datubāzes tika paņemtas sekojošas kopas:
• fa – galerijas kopa, kurā ir 994 sejas attēli,
Att. 1.10: Kumulatīvā sakritības raksturlīkne LBT sejas atpazīšanas algoritmam
• fb – testēšanas kopa, kurā ir 994 alternatīvie sejas attēli.
1.6 Kopsavilkums un secinājumi
Šajā atskaites periodā tika veiksmīgi veikta automātiskā LBT sejas atpazīšanas algoritma testēšana uz Color FERET datubāzes. Algoritms daļēji arī papildināts ar funkcionalitāti un precizitāti uzlabojošiem blokiem. Katram algoritma etapam tika noteikti sekojošie parametri:
• Sejas detektēšanas bloks. Aprēķināta kumulatīva sadalījuma līkne relatīvai (attiecībā pret reālo sejas izmēru) sejas nobīdei no pareizās pozīcijas.
• Sejas lokalizācijas bloks. Aprēķināta kumulatīva sadalījuma līkne relatīvai (attiecībā pret attālumu starp acīm) acu nobīdei no pareizās pozīcijas. Pie ηeye = 0.1 lokalizācijas precizitāte abām acīm ir PL = 74.4%, kas pārsniedz tādas metodikas, ka ASEF un Haar.
• Sejas atpazīšanas bloks. Noteikta kumulatīvas sakritības raksturlīkne (Cumulative Match Characteristic). Pie Rank = 1, identificēšanas varbūtība ir PI = 82.4%
Veiksmīgi tika realizēti arī vairāki eksperimenti, lai pārbaudītu alternatīvā sejas atpazīšanas algoritma precizitāti. Izmantojot labu datubāzi, ar kvalitatīviem attēliem, precizitāte bija augsta.
1.7 Nākotnes perspektīvas
Turpmākie plāni ir LBT sejas atpazīšanas algoritma papildināšana un uzlabošana. Tiek plānots apskatīt līdzīgas, bet komplicētākas un iespējams
precīzākas metodikas sejas atpazīšanas jomā, piemēram, Local Ternary Patterns. Svarīgs aspekts, kurš prasa uzlabojumus un turpmākos pētījumus ir garuma samazināšana sejas aprakstošam vektoram (dimensionalitātes mazināšana), kas ļaus ieekonomēt gan atmiņas resursus datubāzes glabāšanai, gan paaugstināt sistēmas ātrdarbību.
Alternatīvajā sejas atpazīšanas algoritma precizitāti nākotnē plānots pārbaudīt uz jau minētās FERET datubāzes. Tiks noteikts arī slieksnis, lai personas, kas nav datubāzē, netiktu atpazītas kā datubāzē esošās, piemeklējot līdzīgāko seju.
Literatūra
[1] xxxx://xxxx.xxxx.xxx/xxxxxxxxxx/.
[2] xxxx://xxxx.xx.xxx.xx/xxxxxxxx0/xxxxxxxxxx.xxxx.
[4] X. Xxxxx, X. Xxxxxxxxxxx, and X. Xxxxxxx. A comparative study of texture measures with classification based on feature distributions. In Pattern Recognition 29, pages 51–29, 1996.
Nodaļa 2
CarMote grupas atskaite
Anotācija
Līdz ar dažādu transporta veidu attīstību, aizvien lielāka nozīme ir viedajām transporta sistēmām, kuras tiek veidotas, izmantojot aparatūras un programmatūras risinājumus. Šie risinājumi ietver gan transporta plūsmu un apkārtējo vidi raksturojošu datu ieguvi, gan arī to apstrādi un koplietošanu. CarMote grupas darbība ir vērsta uz multimodālu datu ieguves un apstrādes problēmu risināšanu transporta nozarē, izmantojot gan dažādu konvenciālu mobilu datortehniku, gan arī speciāli izstrādātas iegultas iekārtas. Šajā darbā ir aprakstītas aktivitātes, kas ir saistītas ar navigācijas sistēmas izstrādi.
2.1 Ievads
CarMote grupas mērķis ir kooperatīva transportlīdzekļa izstrāde, kas spēj efektīvi plānot kustību un pārvietoties līdzīga veida transportlīdzekļu plūsmā. Šī mērķa sasniegšanai tika uzstādīti vairāki uzdevumi elektronikas, programinženierijas, digitālās signālu apstrādes, bezvadu komunikācijas u.c. jomās. Par kooperatīva transportlīdzekļa izstrādes prasību pamatu tika paņemti GCDC noteikumi [1], kas deva vairākas priekšrocības:
• ieekonomēja laiku prasību uzstādīšanai;
• ļāva izmantot lokālo standartu, kuru izstrādāja un novērtēja professionālo zinātnieku/izstrādātāju grupa;
• ļāva paveikt nopietnu izstrādāta risinājuma testēšanu, salīdzinot to ar citu komandu risinājumiem no dažādiem pasaules institūcijam un valstīm;
2.2 Saistītie risinājumi
Kooperatīvo transportlīdzekļu un autonomo transportlīdzekļu izstrāde ir ļoti populārā tēma pasaules zinātnē [2]. Katru gadu parādās ar vien vairāk transportlīdzekļu, līdz ar to efektīva transportlīdzekļu plūsmas plānošana un drošības paaugstināšana kļūst aizvien svarīgāka. Dotas tēmas attistība tiek atbalstīta arī rīkojot dažādas sacensības [3, 4].
2.3 Risinājums
2.3.1 Navigācijas sistēma
Turpinot navigācijas sistēmas izstrādi tika veikti vairāki pasākumi, kas ir saistīti ar GPS (Globālās Pozicionēšanas Sistēmas), INS (Inerciālās Navigācijas Sistēmas) un digitālā kompasa datu sapludinājumu (pieejas un algoritmu attīstīšana), un navigācijas sistēmas programmatūras pilnveidošanu.
Sensoru datu sapludinājums
Sensoru datu sapludinājums ir navigācijas sistēmas pamatdarbība. Iepriekš šo darbību izpildei tika izvēlēts sigma-punktu Kalmana filtru kopas pārstāvis – ”Unscented Kalman Filter”. Šīs filtrs tā pat kā klasiskais Kalmana filtrs strādā pēc “prognozes-korekcijas” shēmas. Tomēr atšķirībā no klasiska Kalmana filtra, sigma-puktu Kalmana filtrs var darboties arī ar nelineārām sistēmam.
Risinot navigācijas problēmu tika konstatēts, ka ir lābāk izmantot modificētu ”Unscented Kalman Filter” zināmu kā ”Square-Root Unscented Kalman Filter”. Šai metodei ir divas svarīgas priekšrocības:
1. Katrā solī netiek vilkta kvadratsakne no kovariācijas matricas, ko parasti veic, pielietojot “Cholesky” dekompozīciju. Tas vietā ir jāveic “QR” dekompozīciju un “Cholesky” faktora atjaunošanu. Rezultātā ievērojami samazinās filtra asimptotiskā sarežģītība;
2. Ņemot vērā (1), tiek uzlabota skaitļošanas stabilitāte un matrica ir pozitīvi pusdefinita.
Kustību modelis
Runājot par kustības, orientācijas un pozīcijas noteikšanu, ir ļoti svarīgi nodefinēt kinematisko kustību modeli. Navigācijas sistēmas programmatūrai tika izveidotas vairākas apakšprogrammas, kuru ietvaros tika risināta navigācijas problēma (orientācijas un/vai pozīcijas noteikšana) ar dažādiem kustību modeļiem, lai testētu dažādas programmatūras komponentes, kā arī pieejas un algoritmus.
Pirmais solis, veidojot kustību modeli, ir sistēmas stāvokļa definēšana. Kopumā sistēmas stāvoklis sastāv no sekojošām komponentēm (ne obligāti visām):
• pozīcija Dekarta koordināšu sistēmā (INS relatīvs attālums no kāda izvēlēta sākuma punkta) vai ģeogrāfiskā koordināšu sistēmā (GPS pozīcija
– ģeogrāfiskais platums, ģeogrāfiskais garums);
• ātrums (m/s);
• orientācija (Eilera leņķi vai Eilera parametri);
• INS sensoru datu nobīdes (lai noteikt INS pozīciju ir nepieciešams integrēt datus no sensoriem, tāpēc ir jāņem vērā fakts, ka pozīcijas kļūda uzkrājās ar laiku).
Otrais solis, veidojot kustību modeli, ir sistēmas stavokļa laika transformācijas definēšana. Pozīcijas un ātruma noteikšana katrā laika brīdī notiek pēc Ņutona mehānikas vienādojumiem, izmantojot datus no 3-ass akselerometra. Vienīgais nosacījums šajā gadījumā ir tas, ka datus no 3- ass akselerometra jākonvertē no ķermeņa koordināšu sistēmas uz navigācijas koordināšu sistēmu, jo INS modulis var tikt citādāk novietots atkarīgi no vides kurā pārvietojas izsekojamais objekts:
(1) pk+1 = pk + vk · dt + 1/2 · ak · dt2
(2) vk+1 = vk + ak · dt
k+1
b
k
(3) a = Cn · a¯ + [0 0 1]T g
(4) a¯k = a˜k − abias
b
Šeit pk ir pozīcijas koordināšu vektors, vk ir ātrumu vektors, Cn ir virziena kosinuss matrica (direction cosine matrix, DCM), kas tiek pielietota, lai konvertētu vektoru no ķermeņa koordināšu sistēmas uz navigācijas koordināšu sistēmu, a˜k ir paātrinājuma vektors no akselerometra un abias ir paātrinājuma vektora vērtību nobīdes.
b
Lai noteikt virziena kosinuss matricu Cn, ir nepieciešams reprezentēt un noteikt izsekojama objekta orientāciju telpā. Pasaulē plaši pielieto 2 orientācijas reprezentācijas formas, t.i. Eilera leņķi un Eilera parametri (kvaternionu formā). Reprezentējot orientāciju Eilera leņķu formā tiek lietoti 3 leņķi, kas definē objekta novirzi X, Y un Z plaknēs. Savukārt reprezentējot orientāciju Eilera parametru formā tiek lietots 4-dimensiju vektors, kurš satur rotācijas asi (3-dimensiju vienības vektors) un rotācijas leņķi. Neskatoties uz to, ka Eilera parametri nav tik intuitīva orientācijas reprezentācijas forma, to ir vienkāršak izveidot un izvairīties no rotācijas bloķēšanas problēmas (”gimbal lock”). Nepārtrauktas orientācijas izsekošanai var izmantot rotācijas matricas Eilera lenķu izmantošanas gadījumā. Tomēr pielietojot Eilera parametrus tiek gūta augstāka skaitļošanas stabilitāte un efektivitāte. Eilera lenķu izmantošanas gadījumā ir konfigurācijas, kad reprezentācija ir singulārā.
b
Ja orientācija tiek reprezentēta Eilera parametru formā, tad virziena kosinuss matrica Cn ir šāda:
2
3
0.5 − e2 − e2 e1e2 − e0e3 e1e3 + e0e2
b
n
1
3
1
2
(5) Cn = (Cb )T = 2 e1e2 + e0e3 0.5 − e2 − e2 e2e3 − e0e1
e1e3 − e0e2 e2e3 + e0e1 0.5 − e2 − e2
Šeit e ir Eilera parametri kvaterniona formā. Orientācijas noteikšana katra laika brīdī notiek sekojoši [5]:
2
(6) ek+1 = exp(− 1 Ω · dt) · ek
0 ω¯p ω¯q ω¯r
−ω¯q
ω¯r 0 −ω¯p
(7) Ω = −ω¯p 0 −ω¯r
ω¯q
−ω¯r −ω¯q
(8) ω¯k = ω˜k − ωbias
ω¯p 0
Šeit Ω ir asimetriska matrica[5], kas sastāv no labotiem INS žiroskopa
leņķiska ātruma mērījumiem ω¯k = [ω¯p ω¯q ω¯r], ω˜k ir leņķiska ātruma vektors
no žiroskopa un ωbias ir leņķiska ātruma vektora vērtību nobīdes. Pieņemot to, ka leņķiskais ātrums no žiroskopa paliek konstants īsā intervālā dt, efektīvas rotācijas ap tangāžas, sānsveres un kursa asīm var izteikt sekojoši:
(9) ∆φ = ω¯p · dt
(10) ∆θ = ω¯q · dt
(11) ∆ψ = ω¯r · dt
Ņemot vērā vienādojumus (6-11), asimetriskā matrica Φ∆ ir šāda:
0 ∆φ ∆θ ∆ψ
∆
(12) Φ = −∆φ 0 −∆ψ ∆θ
−∆θ ∆ψ 0 −∆φ
−∆ψ −∆θ ∆φ 0
Izmantojot matricas eksponentes definīciju un matricas Φ∆ asimetrijas īpašību:
2
2
s
(13) exp(− 1 Φ∆) = I cos(s) − 1 Φ∆ sin(s)
1
2
2
(14) s = [∆φ ∆θ ∆ψ] = 1 √(∆φ)2 + (∆θ)2 + (∆ψ)2
Tātad orientācijas noteikšana katra laika brīdī notiek šādi:
(15) ek+1 = (I cos(s) − 1 Φ∆ sin(s) ) · ek
2 s
Programmatūra
Navigācijas programmatūra tika pārveidota un pilnveidota tā, lai atdalītu ”reālās vides” daļu no ”simulācijas vides” daļas. Tas nozīmē, ka programmatūras daļa, kas ir atbildīga par darbu ar reāliem datiem no INS iekārtas un GPS uztvērēja, ir pilnīgi neatkarīga no programmatūras daļas, kas ir paredzēta darbībai ar simulētiem datiem un tiek izmantota, lai varētu testēt dažādas pieejas un algoritmus, kā arī radīt navigācijas sistēmas un to komponenšu darbības demonstrācijas viesiem, semināros, prezentācijas
u.c. pasākumos. Tomēr ir dažas kopīgas komponentes, kas galvenokārt ir matemātikās struktūras un instrumenti, kustību datu konvertācijas un analīzes rīki, un lietotāja saskarnes elementi.
Katra simulācijas vides apakšprogramma satur vismaz 5 komponentes:
• Main klase - pamatklase, kas visu darbina;
• SenCarUI klase - lietotāja saskranes klase;
• Stub klase - sensoru datu simulācijas klase;
• DynamicSystem klase - dinamiska sistēma, kas tiek izmantota Kalmana filtra ietvaros, lai veiktu prognozi;
• MeasurementSystem klase - mērījumu sistēma, kas tiek izmantota Kalmana filtra ietvaros, lai veiktu mērījumus.
2.4 Eksperimenti un-vai testi
Navigācijas sistēmas testēšana tika veikta simulācijas vidē. Tas nozīmē, ka testēšanai tika izmantoti noģenerēti GPS un INS sensoru dati. Dati tika noģenerēti tā, lai rezultātā varētu iegūt iepriekš zināmo raksturlīkni, bet signālam tika pievienots troksnis ar noteiktiem statistiskiem parametriem. Testēšana tika veikta, lai parbaudītu dazādas pieejas, algoritmus, kā arī programmatūras koda pareizību un kvalitāti.
Viens no eksperementiem ir orientācijas noteikšana, kur orientācija tika reprezentētā Eilera leņķu formā. Orientācija tika noteikta (sk. att. 2.2), izmantojot žiroskopa datus (sk. att. 2.1, labā pusē), akselerometra datus (sk. att. 2.1, kreisā pusē) un saplūdinot datus no abiem sensoru datu avotiem ar Kalmana Filtra palīdzību. Kalmana Filtra pielietošanas gadījumā (sk. att. 2.2) žiroskopa dati tika izmantoti, lai veikt prognozi, un akselerometra dati, lai veikt korekciju. Attēlā 2.2 var redzēt vienu no orientācijas leņkiem 3 variantos:
• Oranža krāsā - leņķis tiek apreķināts, izmantojot akselerometra datus (trokšņains signāls)
• Zila krāsā - leņķis tiek aprēķināts, izmantojot žiroskopa datu (pastāv signāla nobīde)
• Zaļa krāsā - leņķis tiek aprēķināts, pielietojot Kalmana Filtru (samazināts signāla trokšņa līmenis un nav nobīdes)
Att. 2.1: Akselerometra dati (kreisā pusē), žiroskopa dati (labā pusē)
Att. 2.2: Kalmana Filtra darbība
Vēl viens eksperements ir pozīcijas noteikšana. Veicot eksperimentu tika pieņemts, ka ceļš ir ideāli glūds un GPS uztvērējs apreķinā ideālu pozīciju. Pozīcija tika noteikta (sk. att. 2.3, 2.4), izmantojot akselerometra un digitālā komapasa datus (sk. att. 2.3) priekš prognozes, un GPS datus (sk. att. 2.3) priekš pozīcijas korekcijas saplūdinot tos Kalmana Filtrā (sk. att. 2.4). Attēlā
2.3 var redzēt pozīciju 2 variantos:
• Oranža krāsā - pozīcija tiek apreķināta, izmantojot akselerometra un digitālā kompasa datus (pastāv signāla nobīde)
• Zila krāsā - pozīcija reprezentē GPS datus (zema pozīcijas noteikšanas frekvence)
Attēlā 2.4 var redzēt pozīciju oranža krasa, kas tiek aprēķināta, pielietojot Kalmana Filtru (nav signāla nobīdes, augsta pozīcijas noteikšanas frekvence).
Att. 2.3: INS un GPS pozīcijas
Att. 2.4: Kalmana Filtra darbība
2.5 Rezultāti
Balstoties uz iepriekšējām aktivitātēm GCDC sacensību auto tehniskā aprīkojuma izstrādē [1], kuras veiktas sadarbībā ar VPP projektu IMIS, sagatavota, iesniegta un akceptēta zinātniskā publikācija [6]. Grupas darbības rezultāti [7] ir prezentēti starptautiskajā zinātniskajā konferencē Sensorcomm 2011 (Nīca, Francija).
2.6 Kopsavilkums un secinājumi
Navigācijas sitēmas pilnveidošanas laikā tika paveikts:
• Sensoru datu apstrādei ”Unscented Kalman Filter” aizvietots ar ”Square- Root Unscented Kalman Filter”;
• Uzlabots matemātiskais kustību modelis, kas apraksta transportlīdzekļa pārvietošanas vidē;
• Programmatūra:
– Navigācijas programmatūra tika pārveidota un pilnveidota tā, lai atdalītu ”reālās vides” daļu no ”simulācijas vides” daļas;
– Tika pilnveidota navigācijas programmatūras ”simulācijas vides” daļa, t.i. matemātikās struktūras un instrumenti, kustību datu konvertācijas un analīzes rīki un lietotāja saskarnes elementi;
– Tika pilnveidotas
navigācijas programmatūras ”simulācijas vides” apakšprogrammas, kas nodrošina orientācijas un pozīcijas noteikšanu.
Navigācijas sitēmas pilnveidošanas un testēšanas secinājumi:
• Lai ātrāk sasniegt pareizu darbību, sarežģītus matemātiskus rīkus ieteicams pilnveidot un testēt mazos soļos;
• Navigācijas programmatūras ”reālās vides” daļas un ”simulācijas vides” daļas atdalīšana atļauj:
– paaugstināt drošību: stabilo ”reālās vides” daļu var izmantot citos projektos, kāmēr ”simulācijas vides” daļā tiek testētas jaunas pieejas un algoritmi;
– paaugstināt ērtību: ir ērti testēt jaunas pieejas un algoritmus;
– veidot navigācijas sistēmas un to komponenšu darbības demonstrācijas viesiem, semināros, prezentācijas u.c. pasākumos;
2.7 Nākotnes perspektīvas
Nākotnē paredzamie darbi:
• Navigācijas sistēmas programmatūras pilnveidošana:
– Apakšprogrammu veidošana, kas ļaus testēt navigācijas sistēmu ar sarežģitākiem un pilnīgākiem (t.i. tūvāk reālajiem apstākļiem) kustību modeļiem;
– Lietotāja saskarnes uzlabošana;
• Navigācijas sistēmas testēšana reālā vidē;
• Navigācijas sistēmas izstrādes un testēšanas resultātu publicēšana.
Literatūra
[1] GCDC organization. GCDC 2011 Rules & Technology Document Final version, April 2011.
[2] The New York Times: Google Car. xxxx://xxx.xxxxxxx.xxx/0000/00/ 10/science/10google.html.
[3] DARPA Grand Challenge. xxxx://xxx.xxxxxxxxxxxxxxxxxxx.xxx/.
[4] Grand Cooperative Driving Challenge. xxxx://xxx.xxxx.xxx/.
[5] B.L. Xxxxxxx, X.X. Xxxxx. Aircraft Control and Simulation. Wiley- Interscience, 1st edition, 1992.
[6] Xxxxx Xxxxxx. Vehicle Position Determination using Several SBAS Receivers and Data from Local Reference Stations (to appear). In The First International Workshop on User Oriented Information Integration (UOII 2011), Proceedings of BIR 2011 Workshops, 2011.
[7] Xxxxx Xxxxxxxxx, Xxxxx Xxxxxx, Xxxxxxxxx Xxxxxxxx, Xxxxxxxx Xxxxxxxx, and Xxx Xxxxxx. Virtual Ground Truth in Vehicular Sensing Experiments: How to Mark it Accurately. In The Fifth International Conference on Sensor Technologies and Applications (SENSORCOMM 2011), Proceedings of SENSORCOMM 2011, 2011.
Nodaļa 3
EdiMote grupa
Anotācija
EdiMotes grupa nodarbojas ar platformas izstrādi, kas būtiski atvieglotu iegulto sistēmu aparatūras un programmatūras izstrādes procesu. Šāds rīks nebūtu piesaistīts ne pie viena konkrēta iegultās sistēmas moduļa (MCU, radio, sensori, atmiņa, utt.) kā tas ir vairums izstrādes rīkos. Tas lietotājiem pavērtu plašākas iespējas uz dažādu moduļu testēšanu un savietošanu savā starpā, ar minimālu vai arī bez iespeidplates projektēšanas, izstrādes gaitā. Lai to panāktu ir sastādīts saraksts ar nepieciešamajām funkcionalitātēm - šis saraksts tiek arī papildināts. Būtiskākais moments ir izveidot sistēmas konceptu ar moduļiem, un to sasvstarpējos savienojumus, kurus būtu iespējams implementēt dažādās tehnoloģijās ar minimāliem pārprojektēšanas resursiem.
Šādam universālam rīkam sevī jāietver lietas, ko ikdienā izmanto gan inženieri, gan pētnieki, tas ir, dažāda līmeņa atkļūdošanas iespējas:
• Aparatūras līmenī
– signālu analizators - analogu un ciparu
– enerģijas mērītāji
• Programmatūras līmenī - koda atkļūdotāju atbalsts
3.1 Ievads
Sensoru tīklu neatņemama sastāvdaļa ir sensori. Tie veic apkārtējās vides fizikālo parametru, piemēram, gaismas, mitruma daudzuma, temperatūras, pārveidošanu elektriskā formā, lai tos iespējams būtu apstrādāt. Izšķir divu veidu sensoru tipus: analogie ssensori; Ciparu sensori. Vieni pārveido signālu analogā veidā (spriegums U, strāva I), otri pārveido ciparu formā (šajā gadījumā dati ir pieejami caur standartizētām kopnēm kā UART, SPI, I2C).
Iepriekšējā laika posmā pārsvarā tika strādāts ar ciparu signāliem, savukārt šajā laikaposmā tika sākta analogo signālu ķēžu apgūšana, kas ir implementētas EdiMotes pirmajā revīzijā. Sekundārais mērķis bija turpināt izstrādāt ciparu shēmas priekš CPLD [2] - enerģijas mērītāji, ciparu signālu komutēšana un
atkļūdošana, kā arī veikt papildus testus ar šīm shēmām gan atsevišķi, gan simulējot visu EdiMotes projektu
3.2 Signālu atkļūdošana
Shēmas daļa, kas atbild par komutējamo signālu vērtību saglabāšanu atmiņā, EdiMotē ir paredzēti divu veidu signālu atkļūdošanas bloki:
• ciparu signālu
• analogo signālu
3.2.1 Ciparu signālu komutēšanas bloks
Iepriekšējā laika posmā tika izveidots ciparu signālu atkļūdošanas bloka koncepts, ar šādām funkcionalitātēm:
• maināma diskretizācijas frekvence
• atkļūdojamo signālu izvēle
• maināma trigeru vērtība
• saglabājamo nolašu skaits
Šai augsta līmeņa blokshēmai tika izveidota detalizētāka blokshēma, kas definē kādā veidā tiks panāktas vēlamās funkcionalitātes (sk. 3.1 attēlā).
Maināma diskretizācijas frekvence
Maināma diskretizācijas frekvence tika realizēta izmantojot skaitītājus, kur skaitīšanas slieksni nosaka vērtība no reģistru datu apgabala.
Atkļūdojamo signālu izvēle
Ķēde, kas nodrošina atkļūdojamo signālu izdali. Funkcionalitāte tiek panākta izmantojot loģisko elementu ”UN”. Kā vadības signāls tiek izmantots C_DC, ja C_DC vērtība ir loģiskais ’1’, tad atkļūdojamais signāls ir aktīvs, ja loģiskā ’0’, tad nav aktīvs
Maināma trigeru vērtība
Ķēde, kas nodrošina maināmu vērtību, pie kuras aktivizēsies ciparu atkļūdošanas bloks. Shēma tiek realizēta izmantojot atkļūdojamo signālu izvēles shēmu, papildinot to ar vēl vienu loģisko elementu ”UN” un ekvivalences bloku. Izejā tiek iegūts loģiskais signāls - ’0’ signāli nav vienādi, ’1’ signali ir vienādi.
Tuvināta realizācijas blokshēma 3.2, kur Xxxxxxx vērtību uzstāda pats lietotājs C_DC - vadības signāli, ja vieninieks, tad laiž gan trigeru, gan ieejas signālu vērtību T_F - izejas signāls, kas norāda vai salīdzināmie signāli ir vienādi vai nav (’0’ - ja nav vienādi, ’1’ - ja ir vienādi)
Att. 3.1: Ciparu atkļūdotāja stāvokļu diagramma
3.2.2 Testi ar ciparu signālu atkļūdotāju
Signālu atkļūdošanas bloks tika testēts divos veidos, izmantojot Altera Starter Modelsim [3] simulācijas programmu
• Atsevišķi no kopējā EdiMotes projekta, lai varētu pārbaudīt tā funkcionalitāti
• Kopā ar EdiMoti, lai varētu noteikt vai nav kādu kļūdu savstarpējā kopnē ar signālu atkļūdošanas bloku un citiem EdiMotes blokiem
Signālu atkļūdošanas bloka testēšana
Tests Nr.1 (sk. 3.3 attēlu) sevī ietver vairāku bloka funkcionalitāšu pārbaudi, tas ir, galīgā stāvokļa automāta (FSM) testēšanu, trigera vērtības sliekšņa pārbaudi, control_sig darbības pārbaudi. Lai to būtu iespējams pārbaudīt tika izveidota simulācijas programma (testbench), kur tika uzģenerēti šādi signāli:
• Trigera vērtība tika uzstādīta 00011011,
Att. 3.2: Xxxxxxx xxxxxxx shēma
• C_DC - vērtība (00011111), kas norāda, kādi signali jāņem vērā pie atkļūdošanas
• control_sig vērtība 00011111, kas norāda, ka pienākot trigera vērtībai atmiņā ierakstīs 16 vērtības
• Atkļūdojamie signāli (debugging_signals), kas skaitās no 0 līdz 255.
Att. 3.3: Tests Nr. 1
Tests Nr.2 (sk. 3.4 attēlu) sevī ietver to pašu funkcionlitātes testēšanu, bet uzsvars ir uz C_DC signāla pārbaudi, tas ir, vai pienākot atkļūdojamo signālu vērtībai, kas ir vienāda ar trigera vērtību (pirmo piecu bitu skaits),
• Trigera vērtība tika uzstādīta 00011011,
• C_DC - vērtība (00011111), kas norāda, kādi signali jāņem vērā pie atkļūdošanas
• control_sig vērtība 00011111, kas norāda, ka pienākot trigera vērtībai atmiņā ierakstīs 16 vērtības
• Atkļūdojamie signāli (debugging_signals), kas skaitās no 31 līdz 255.
Att. 3.4: Tests Nr. 2
3.3 Analogās matricas (AMAT) konfigurēšana
Dažādu izvadu analoga savienojuma izveidošanai tiek izmantota analogā matrica jeb AMAT. Tā ir integrēta mikroshēma AD75019 [1], kura nodrošina 16x16 analogu savienojumu izveidi to programmiski konfigurējot. Analogās matricas mikroshēma uztur līdz 24 V lielu analogo signālu amplitūdu ar frekvenci līdz 20 MHz (pie -3 dB līmeņa). Matricas konfigurēšana notiek izmantojot SPI interfeisu ar takts frekvenci no 20 kHz līdz 5MHz, kas nodrošina pilnīgu matricas pārkonfigurēšanu līdz pat 52 µs. Y izvadi tiek savienoti ar vienu vai vairākiem X izvadiem. Konfigurācija tiek veikta no uz EdiMotes implementētā MSP430F5437 mikrokontroliera. No kontroliera tiek nosūtīta 256 bitu datu paka, kurā katrs bits norāda attiecīgo Y-X savienojumu (sk. 3.5. attēlu). Katri divi baiti nosaka attiecīgā Yx izvada savienojumu ar X izvadiem.
Att. 3.5: Analogās matricas savienojumu diagramma
Analogās matricas konfigurācija notiek piesaistot analogā-ciparu pārveidotāja daļu un testa mikrokontroliera daļu pie abām pieslēgvietām (attēls 3.6.), jo gan ACP, gan testa mikrokontroliera daļa analogai matricai pievienota pie Y izvadiem. Pieslēgvietas pievienotas X izvadiem. Plānots izveidot divas funkcijas – vienu ACP konfigurēšanai, otru – testa mikrokontroliera konfigurēšanai, kurās norādot attiecīgos ACP kanālus vai mikrokontroliera izvadus un komutējamās pieslēgvietas, iespējams pārkonfigurēt visu matricu, nezaudējot iepriekš uzstādītos savienojumus. Analogās matricas mikroshēmas komutējamo signālu maksimālā caurlaides josla tika eksperimentāli noteikta ar signāla ģeneratora Tektronix AFG3101 un osciloskopa Tektronix MSO4104 palīdzību. Pie signāla vājinājuma -3dB noteikta caurlaides josla 20 MHz, kas atbilst dotajiem parametriem datu lapā.
3.4 Analogo signālu analizators
Analogo signālu atkļūdošanai tiek izmantots Texas Instruments MSP430F5437 mikrokontrolierī iebūvēts ADC12 modulis, kas veic analogā-ciparu pārveidotāja funkcijas. Tam ir 14 ārējo kanālu 16-bitu ACP ar diskretizācijas frekvenci līdz 200 kS. 4 kanāli paredzēti barošanas signālu monitoringam, pārējie - signālu atkļūdošanai. ACP ieejas diapazons izvēlēts no 0-2.5 V, līdz ar to ieejas signāliem jāparedz vājināšanas elektroniskā ķēde. Šim nolūkam tiek izmantoti LM324 pastiprinātāji vājināšanas režīmā, kur ar rezistoriem tiek nobīdīts signāla nulles līmenis. Nulles līmenis 1.25 V padots no mikrokontroliera iekšējā references sprieguma ģeneratora. Analogā-ciparu pārveidotāja ieejas signālu konfigurācija notiek piesaistot tā ieejas kanālus interesējošajam izvadam. Izvēloties ACP režīmu, tiek norādīts interesējošais kanāls. ACP saņem komandas un nodod izejas datus lietotājam izmantojot virknes (UART) saskarni, kas nokonfigurēta ar ātrumu 921600 bit/s, 1 „stop” bits, nav paritātes bita, tādējādi iegūstot datu pārraides ātrumu 90 KB/s. Datora pusē kā atkļūdošanas un izstrādes rīks tiek izmantota programma RealTerm, bet ACP datu vizuālai attēlošanai, datu kārtošanai un apstrādei – programmā Matlab izstrādāts grafiskais interfeiss.
Att. 3.6: Analogās matricas starpmoduļu savienojumu atkarība Analogo signālu analizators darbojas vairākos režīmos:
• lēni mainīgu analogu signālu momentvērtības noteikšanai;
• analogu signālu atkļūdošanai, novērošanai reālā laikā;
• analoga signāla ciparošanai un datu saglabāšanai vēlākai apstrādei konkrētā laika sprīdī;
Signālu momentvērtību noteikšanai tiek veikta viena signāla nolase, uzdodot konkrētu, interesējošo ieejas kanālu. Šis režīms paredzēts barošanas spriegumu monitoringam, kā arī lēni mainīgu signālu momentvērtības noteikšanai, piemēram, temperatūras, spiediena un gaismas intensitātes devēju vērtību noteikšanai. Šajā režīmā no datora tiek uzdots nepieciešamais kanāls vai vairāki kanāli un lietotājs saņem atbildes informāciju par sprieguma vērtībām tajos. Analogu signālu novērtēšana reālā laika režīmā notiek uzdotiem kanāliem un diskretizācijas frekvenci ciparojot ieejas signālu. Dati nepārtraukti tiek nosūtīti datoram pēc katras nolases veikšanas . Katra signāla nolase aizņem divus baitus pie 12 bitu izšķirtspējas. Izmantojot maksimāli iespējamo mikrokontroliera virknes saskarnes ātrumu 90 KB/s, panākta maksimālā reāllaika diskretizācijas
frekvence 40 kHz uz kanālu, attiecīgi – 20 kHz izmantojot divus kanālus. Šāds režīms paredzēts, piemēram, runas signāla ciparošanai vai aptuvenai signāla novērtēšanai. Analoga signāla ciparošanai un datu saglabāšanai vēlākai apstrādei konkrētā laika sprīdī tiek izmantots datu bloku režīms. Šajā režīmā analogais signāls tiek ciparots ar uzdotu frekvenci un noteiktu nolašu skaitu, ko, diskretizējot signālu, sākumā ieraksta mikrokontroliera RAM atmiņā un nosūta datoram. Tādējādi tiek ciparots noteikts laika apgabals. Datu ieraksta sākuma un beigu momentu iespējams norādīt ar ārējiem analogiem vai ciparu trigera signāliem. Ar konkrēto mikrokontrolieri panākta maksimālā diskretizācijas frekvence 180 kHz, ciparojot viena kanāla datus. Maksimālais nolašu skaits ir 7000. Šos ierobežojumus nosaka mikrokontroliera RAM atmiņas apjoms un mikrokontroliera takts frekvence. Šie rezultāti panākti izmantojot mikrokontroliera DMA tiešās atmiņas piekļuves moduli, kas krietni samazina mikrokontroliera izpildāmo operāciju skaitu, līdz ar to nodrošinot vairākas reizes lielāku diskretizācijas frekvenci nekā tā būtu iespējama bez DMA moduļa lietošanas.
3.5 Enerģijas mērītāji
Iepriekš definētās mērītāju funkcionalitātes:
• maināms enerģijas mērāmo moduļu skaits - izvēlas lietotājs
• maināms mērāmās enerģijas laika intervāls
• enerģijas mērītāju izmantošana testa mikrokontroliera koda optimizēšanai
• datu nosūtīšana uz datoru pēc mērīšanas pabeigšanas
Enerģijas mērīšanai EdiMotes risinājumā tiek izmantota SPOT [4] arhitektūra, tās blokshēma ir redzama 3.7 attēlā. SPOT arhitektūras mērītāji tiek pielietoti moduļu enerģijas mērīšanai kā arī to ir paredzēts izmantot testa mikrokontroliera programmas optimizēšanai. SPOT arhitektūras pamatā ir sprieguma pārveidošana frekvencē, kura tiek padota uz skaitītājiem. Ir divu veidu skaitītāji:
• references skaitītājs - tiek darbināts ar konstantu (1MHz) frekvenci
• enerģijas mērītāju skaitītāji - tiek darbināti ar frekvenci, kura mainās atkarībā no moduļu patērētās jaudas
SPOT blokshēma tiek pielāgota EdiMotes specifikācijām, tas ir, skaitītāju un mērītāju kontrole tiek implementēta CPLD. Implementējamie funkcionālie bloki ir redzami 3.8 attēlā.
3.5.1 Ref counter module
Modulis, kas skaita lietotāja definētu laika intervālu. Kad pabeidz operāciju uzstāda signālu pwr_m_cmpl = ’1’, kas apstādina pārējos skaitītājus, kā arī inicializē galīgam stāvokļu automātam (FSM), ka var sākties vērtību nolasīšana un ielāde reģistru failā. Pēc sekmīgas datu nosūtīšanas uz atmiņu izstrādā ACK signālu, kas norāda FSM par datu sekmīgu ielādi. Šājā modulī ir implementēts 32 bitu skaitītājs. References frekvence ir 1MHz.
Att. 3.7: SPOT arhitektūras blokshēma
Att. 3.8:
3.5.2 PWR counters
Modulis, kas skaita identisku laika intervālu kā references skaitītājs. Atšķirība starp šiem moduļiem ir to ieejas signālu veidā. References skaitītājam frekvence ir konstanta, bet mērītāju skaitītājiem tā mainās no 100 - 900 kHz. Tāpat kā ref_counter module ir signāls, kas pieprasa datu ielādēšanu atmiņā tā arī ACK signāls, kas norāda par šīs operācijas sekmīgu izpildi.
3.5.3 Enerģijas mērītāju kontrolieris (FSM)
Galīgs stāvokļu automāts, kas kontrolē skaitītājus, to vērtību ielādi atmiņā:
• Uzstāda laika posmu kādā notiks enerģijas mērīšana
• Gaida atļaujošo signālu
• Gaida, kad beigsies enerģijas mērīšana
• Atmiņā pēc kārtas ieraksta skaitītājos saglabātās vērtības
• nonāk gaidīšanas režīmā (gaida kad FSM noresetos)
3.6 Kopsavilkums
Trīs mēnešu laikā ir sākts darbs ar analogo signālu komutēšanu un atkļūdošanu. Tika veikti testi ar analogo signālu komutācijas bloku - pārbaudot maksimāli
Att. 3.9: Vietas, kur pieminēts EdiMote
iepsējamo signālu caurlaides joslu. Kā arī tika veikti praktiski testi ar analogo signālu ciparošanu (ACP). Tas tika darīt ar nolūku, lai analogos signālus būtu iespējams nosūtīt uz datoru un apstrādāt tos. Papralēli tam tika turpināts darbs ar CPLD shēmas projektēšanu. Tika uzlaboti enerģijas mērītāja un ciparu atkļūdošanas bloki kā arī tika izveidots EdiMotes siumulācijas projekts, kas ļauj nosimulēt pilnu EdiMotes CPLD shēmu.
3.7 Nākotnes perspektīvas
Ņemot vērā to, ka tika izveidota programma vadības mikrokontrolierim, tad viens no mērķiem ir pabeigt šo programmu atkļūdot to un tad veidot lietotāja datora programmatūru. Darbs būtu saistīts ar iepriekš izstrādātās programmas papildināšanu. Nākošā perspektīva ir pabeigt ciparu shēmu atkļūdošanu un izplānot nākošo EdiMotes revīziju.
Literatūra
[1] Ad75019 ic. xxxx://xxx.xxxxxx.xxx/xxxxxx/xxxxxxxx-xxxxx/xxxx_ sheets/AD75019.pdf.
[2] Altera max ii epm1207t144c5n datasheet. xxxx://xxx.xxxxxx.xxx/ literature/hb/max2/max2_mii5v1_01.pdf.
[3] Altera starter modelsim. xxxx://xxx.xxxxxx.xxx/xxxxxxxx/xxxxxxxx/ quartus-ii/modelsim/qts-modelsim-index.html.
[4] D. C. Xxxxxxx Xxxxx, Xxxxxx Xxxxx and I. Stoica. Micro Power Meter for Energy Monitoring of Wireless Sensor Networks at Scale. In Proceedings of the 6th International Conference on Information Processing in Sensor Networks, IPSN 2007, Cambridge, Massachusetts, USA, April 25-27, 2007. IPSN, 2007.
Nodaļa 4
MansOS grupa
Anotācija
MansOS grupas mērķis ir izstrādāt operētājsistēmu bezvadu sensoru tīkliem (BST), kā arī strādāt pie šīs operētājsistēmas praktiskajiem pielietojumiem. Lai gan jau eksistē vairākas BST specifiskas operētājsistēmas, tām ir tādi trūkumi kā krauja apmācības līkne vai slikta pārnesamība. MansOS izvairās no šīm problēmām, sekojot savas arhitektūras vadlīnijām – strādāt mērķauditorijai ar UNIX un C programmēšanas pieredzi, būt lietotājdraudzīgiem, un piedāvāt vieglu pārnesamību uz jaunām aparatūras platformām. BST svarīgs aspekts ir tīklotā komunikācija. Šajā ceturksnī tika panākts būtisks progress bezvadu komunikācijas jomā, izstrādājot tīkla protokolus, integrējot to kodu ar zemāka līmeņa (radio mikroshēmu dziņi) un augstāka līmeņa (pavedieni, sockets) operētājsistēmas kodu. Tāpat arī tika turpināta darbība paralēlās programmēšanas jomā: paša risinājuma programmēšanas pabeigšana un demonstrācijas programmu izstrāde. Daļa laika tika veltīta arī MansOS pielāgošanai darbam ar ATmega mikrokontrolieriem un reāllaika pulksteņiem.
4.1 Ievads
Pie MansOS izstrādes šajā ceturksnī notikusi aktīva sadarbība ar pētniekiem no ERAF atbalstītā projekta „Augļu un ogu kultūru audzēšanas risku mazinošu inovatīvu tehnoloģisko risinājumu izstrāde un adaptācija Latvijas apstākļos” (projekta Nr. 2010/0317/2DP/2.1.1.1.0/10/APIA/VIAA/142).
Šī projekta vajadzībām (kas ir arī viens no MansOS pirmajiem praktiskajiem pielietojumiem) izrādījās nepieciešams uzlabot un papildināt MansOS bezvadu komunikācijas daļu. Viens no mērķiem bija MansOS padarīt piemērotu vairāk- lēkumu (multi-hop) tīkliem ar pakešu zudumiem. Cits – pievienot MansOS sadarbspēju (interoperability) ar spāņu firmas Libelium ražotajām sensoru tīklu ierīcēm Waspmote [6], kuras ir tikušas iepirktas šī projekta vajadzībām.
Taču šī darba paveikšanai nepieciešams priekšnosacījums bija jau iepriekš uzsāktās jaunu, stabilāku pavedienu (threads) realizācijas pabeigšana. Paveidi tika papildināti ar taimeriem, sinhronizācijas primitīviem (muteksiem), to atbalstītais skaits tika palielināts, kā arī pavedieni tika pārnesti arī uz MansOS atbalstīto – ATmega – arhitektūru.
Vēl tika sakārtots un atjaunināts ATmega arhitektūras programkods, kas atbildīgs par seriālo izvadi, kā arī veikta padziļināta ATmega328P [2] mikrokontroliera izpēte. Izmantojot Arduino [1] iekārtas, tika pielāgota darbam ar MansOS reāllaika pulksteņa mikroshēma PCF8593 [8].
Tāpat arī tika strādāts pie jau eksistējošas koda bāzes uzlabošanas un lietotāju atbalsta. Kā daļa no lietotāju atbalsta ietvarā veiktajiem darbiem minama MansOS eksperimentāla izvērtēšana, dodot to LU studentiem bez iepriekšējas BST programmēšanas pieredzes un empīriski salīdzinot programmēšanas ērtumu ar TinyOS.
4.2 Saistītie risinājumi
4.2.1 Tīkla protokoli
Tīkla protokoli ir nozīmīga jebkuras BST operētājsistēmas sastāvdaļa. Piemēram, sensoru tīklu de fakto operētājsistēma TinyOS [11] iekļauj sevī tādu tīkla protokolu komponentus kā:
• CSMA: Carrier Sense Multiple Access – MAC pieeja ētera sadalīšanai, kas balstās uz klausīšanās un aizturētās sūtīšanas mehānismu;
• CTP: Collection Tre Protocol – datu savākšanas protokols; savāc sensoru lasījumus tīkla saknē;
• LEEP: Link Estimation Exchange Protocol – saites kvalitātes novērtēšanas protokols;
• Multihop Routing – vairāklēkumu maršrutēšanas protokols;
• Deluge [4] – attālinātas pārprogrammešanas protokols.
4.2.2 Pavedieni
Bieži BST operētājsistēmu lietojumos nepieciešama paralēlas izpildi, kas tiek realizēta ar pavadienu palīdzību. Var izšķirt trīs galvenos paralēlas izpildes modeļus:
• uz notikumu apstrādi bāzēta izpilde;
• kooperatīvs vairākpavedienu izpildes modelis;
• pilns vairākpavedienu izpildes modelis, iespējams, izslēdzošs (preemptive).
Pirmais modelis (pilnībā asinhrona programmēšana) ir realizēts TinyOS [11]. Tas tiek minēts kā BST aparatūrai vistuvākais. Taču tam piemīt arī virkne trūkumu, piemēram:
• lielai daļai programmētāju tas nav intuitīvi uztverams;
• programmētājs var viegli apstādināt visu pārējo programmas daļu darbību, liekot pārāk ilgi uzkavēties viena notikuma apstrādē u.c.
Contiki operētājsistēma [9] iekļautā Protothreads bibliotēka realizē otro no šiem modeļiem. Tā ir programmētājam intuitīvāka par XxxxXX piedāvāto, taču arī tai ir vairāki mīnusi – programmētājam ir jākontrolē, lai viņa rakstītais kods ļautu izpildīties arī citām programmas daļām, ievietojot savā programkoda specifiskās vietās izsaukumus uz yield tipa konstruktiem.
Trešajam modelim, kas šobrīd ir realizēts MansOS vidē, operētājsistēmai tiek dota maksimāla kontrole pār pavedienu izpildi un plānošanu, taču tas ir arī resursu ziņā visprasīgākais un ar vislielāko koda sarežģītību.
4.3 Risinājums
4.3.1 CC2420 [3] radio dzinis
Virzoties uz to, lai tiktu novērsta GPL koda izmantošanu MansOS, kā arī papildinātu CC2420 čipa dzini ar jaunām iespjēmām, tas tik daļēji pārrakstīts. Dziņa piedāvāta funkcionalitāte API līmenī nav mainījusies; japiezīmē, ka izmaņas skar kļūdu kodus, ko draiveris atgriež – tagad tie ir sistēmai kopējie, POSIX savietojami kļūdu kodi, kas definēti failā errno.h, piemēram EMSGSIZE, EBUSY un citi.
4.3.2 Maršrutēšanas protokols
Lai atbalstītu tīkla līmeņa komunikāciju vairāk-lēkumu tīklā ar patvaļīgu topoloģiju, ir nepieciešams maršrutēšanas protokols. Līdz šim MansOS tāda nebija, līdz ar to tika izstrādāts vienkāršs Distance Vector tipa protokols ,kas izvēlas labāku ceļu pēc lēkumu skaita. Protokola kodam ir divas versijas – tā, kura paredzēta bāzes stacijai (sensoru tīkla datu ievācējam jeb saknei), un tā, kura paredzēta pārējiem mezgliem.
Maršrutēšanas protokols izšķir divu maršrutēšanās pakešu tipus: “Routing Information” (attēls 4.1) un ”Routing Request”.
Tabula 4.1: Maršrutēšanas paketes (Routing Information) uzbūve
Field Size
Type 1 byte
Reserved 1 byte Root Address 2 bytes
Hop Count 2 bytes Sequence Number 2 byte
Root Clock 4 bytes
Total size of packet: 12 bytes
”Routing Request” struktūra ir vienkārša - tā satur tikai paketes tipu ar vērtību, kas atbilst kodā definētai konstantei ROUTING_REQUEST. Šāda veida paketi ģenerē mote vienreiz pēc startēšanās. Katra mote, kas saņem tādu paketi, nekavējoties nosūta savu maršrutēšanas informāciju paketi ģenerējušajai motei. Tādā veidā pēc pārstartēšanās tiek novērsta liela aizture pakešu komunikācijā un pat īslaicīgu ciklu veidošanās.
”Routing Information” paketes steuktūra parādīta attēlā 4.1. Lauks “tips” tiek aizpildīts ar kodā definētai konstantei ROUTING_INFORMATION
atbilstošo skaitlisko vērtību. Lauks reserved netiek izmantots, bet tā vērtība vienmēr ir aizpildīta ar nulli. “Root address” satur bāzes stacija divbaitīgo tīkla adresi. ”Hop count” satur lēkumu skaitu līdz bāzes stacijai. Ģenerējot paketi bāzes stacijā, to aizpilda ar nulli, pēc tam katru reizi paketi pārsūtot, palielina par viens. Šāda veida paketi sākotnēji ģenerē bāzes stacija. Katra mote, kas to saņēmusi, tā pārbauda, vai paketi ar šādu sekvences numuru tā jau ir redzējusi. Ja tā ir, tad šī pakete tiek ignorēta. Pretējā gadījumā tiek pārbaudīts lēkumu skaits. Ja tas ir sliktāks par pašreiz aktīvās maršrutēšanas informācijas lēkumu skaitu, arī tad pakete tiek ignorēta. Pretējā gadījumā pašreiz aktīvā maršrutēšanas informācija tiek atjaunota ar paketes datiem, un iedarbināts pārsūtīšanas taimeris (ar laiku no vienas līdz trijām sekundēm)
4.3.3 Xxxxx xxxxxxxxxxxxxx
Tā kā lielākājai daļai sensoru tīklu ierīču nav pastāvīga pulkstenis (real time clock), tad reālos sensoru tīklu lietojumos var būt nepieciešama laika sinhronizācija. Pretējā gadījumā nākas saskarties ar šādām problēmām:
• laika uzskaites atjaunošanās ikreiz pēc motes pārstartēšanās;
• laika gaitā pieaugošas pulksteņa uzskaites neprecizitātes, kuras izraisa aparatūras vai programmatūras kļūdas vai arī to pieļaujamās neprecizitātes, it īpaši mainoties videi (temperatūra, tieši saules stari) relatīvi tai, kurai motes pulkstenis ir ticis kalibrēts;
Šim nolūkam MansOS tika pievienota laika sinhronizācija. Jāpiebilst, ka tīklā esošās motes nemaina savu pulksteni – tās vienkārši glabā to starpību, kas ir starp to lokālo laiku un laiku uz bāzes stacijas, un šo starpību pievieno saviem lasījumiem, kad tos nosūta par radio vai arī saglabā uz zibatmiņā.
4.3.4 Saites kvalitāte (link quality)
Lai tipisks maršrutēšanas protokols varētu veiksmīgi strādāt, tam ir nepieciešamas ziņas ne tikai par to, kādi kaimiņi atrodas viena lēciena attālumā, bet arī ziņas par to, kāda ir saites kvalitāte ar šo kaimiņu. Sekojošām vajadzībām tika izstrādāts saites kvalitātes noteikšanas modulis, kas ir savietojams tikai ar CSMA_ACK maršrutēšanas protokolu, jo bez ACK nav iespējams uzzināt vai ziņa nogādāta veiksmīgi. Saites kvalitātes noteikšanas modulis masīvā glabā informāciju par visiem kaimiņiem ar kuriem konkrēta mote ir sazinājusies. Tiek saglabāti sekojoši dati: nosūtītie ziņojumi, saņemtie ziņojumi, saņemtie ACK, nosūtītie ACK. Izmantojot šos datus, ir iespējams prognozēt aptuveno ziņas piegādes varbūtību gan vienā, gan otrā virzienā. Izejošajā virzienā precizitāte ir lielāka nekā ienākošajā virzienā, jo ienākošajā virzienā nav iespējams noteikt, cik ziņas kaimiņš sūtīja, līdz ziņa tiešām tika sadzirdēta. Šī link quality protokola integrēšana ar MansOS maršrutēšanas protokolu ir nākotnē vēl veicams uzdevums.
Saites kvalitātes tests
Lai noskaidrotu, vai noteikts motu izvietojums ir labs priekš bezvadu komunikācijas, tika izveidots saites kvalitātes tests. Mote, uz kuras darbojas
saites kvalitātes testa lietotne mēģina apzināt visas motes, kas tai ir blakus, un kuras tāpat darbina saites kvalitātes testa lietotni. Tiklīdz kāds kaimiņš ir atrasts, mote sūta šim kaimiņam noteiktu skaitu ziņojumu un piefiksē, uz cik ziņojumiem saņemtas atbildes, kā arī piefiksē saņemtās ziņas RSSI un LQI rādītājus. Mote arī jebkurā laikā cenšas atbildēt uz citu kaimiņu pieprasījumiem, lai arī tie varētu noskaidrot saites kvalitāti. Kā arī kamēr viena mote pārbauda saites kvalitāti, citas motes, kuras ir dzirdējušas saites kvalitātes pārbaudes sākuma ziņojumu sagaida konkrētās pārbaudes beigas un tikai tad mēģina veikt pašas savu testu, tiesa, ja mote nedzirdēja saites kvalitātes pārbaudes sākuma ziņojumu, tā atrodas nesasniedzamā attālumā vai tika ieslēgta pēc šī ziņojuma nosūtīšanas, tad tā mēģinās izpildīt savu saites kvalitātes testu, tas varētu pasliktināt testa rezultātus abām motēm, tāpēc ir ieteicams šo testu izpildīt saites kvalitātes testa lietotni darbinot tikai uz 2 motēm. Pēc saņemto atbilžu skaita var noteikt, vai konkrētais izvietojums pašlaik nodrošina labu bezvadu savienojumu vai arī labāk būtu izvietojumu mainīt.
Izmēģinājumi
Lietotne tika darbināta izmantojot CSMA MAC protokolu uz divām SAD motēm, kas atradās aptuveni 2m viena no otras, bez tiešās redzamības, bet vienā telpā. Viena mote veica mērījumus, kamēr otra tikai atbildēja uz pieprasījumiem. Katrā iterācijā tika pārsūtīti 100 ziņojumi un gaidītas atbildes. Kopā tika veiktas 320 iterācijas, kopā nosūtīti 32000 ziņojumi, kopā saņemti atpakaļ 31636 ziņojumi, kas kopēji dod 98,86% saites stabilitāti.
Att. 4.1: Atsevišķie mērījumi
Att. 4.2: Vidējie mērījumi
Attēlā 4.1 grafikā redzami iegūtie vidējie mērījumi katrā iterācijā:
• Recv(%) – atpakaļ saņemto ziņojumu skaits šajā iterācijā procentuāli
• avgRSSI – šajā iterācijā saņemto ziņojumu vidējais RSSI
• avgLQI – šajā iterācijā saņemto ziņojumu vidējais LQI Attēlā 4.2 redzami iegūtie kopējie vidējie mērījumi:
• Recv(%) – atpakaļ saņemto ziņojumu kopējais skaits procentuāli
• avgRSSI – visu saņemto ziņojumu vidējais RSSI
• avgLQI – visu saņemto ziņojumu vidējais LQI
4.3.5 ISL29003 sensors
Kā viens no gaismas sensoriem SAD projektā tiek izmantots Intersil ISL29003 gaismas sensors. Lai nodrošinātu šī sensora darbību, tam tika izveidots atbalsts operētājsistēmā MansOS. Sensors saziņai izmanto I2C protokolu. Sensoru iespējams konfigurēt atkarībā no pielietojuma specifikas, piemēram, regulējot tā dinamisko intervālu. Tika izstrādātas formulas šī sensora; paša sensora rādījumi tika salīdzināti ar luksometru.
4.3.6 I2C RTC mikroshēma PCF8593
Lai MansOS būtu iespēja izmanto reālo laiku, tika veikta I2C saskarnes RTC mikroshēmas PCF8593 izpēte un pielāgošana. Konkrētā mikroshēma tika izvēlētā savas pieejamības, izmaksu un parametru dēļ. Sākotnēji tā tika pielāgota darbam Arduino vidē, pēc tam pārnesot risinājumu uz MansOS.
4.3.7 MansOS lietojamības empīriska pārbaude
Latvijas Universitātē, “Bezvadu sensoru tīklu” kursa ietvaros, kuru apmeklē trešā kursa studenti bez iepriekšējas pieredzes BST programmēšanā, tika veikta MansOS un TinyOS lietojamības salīdzināšana. Studentiem tika definēts noteikts uzdevums – nolasīt gaismas un mitruma sensoru datus un nosūtīt tos pa radio – un piedāvāts to realizēt vienā no trijiem veidiem, programmējot:
• TinyOS vidē;
• MansOS vidē, izmantojot uz notikumu apstrādi balstītu pieeju;
• XxxxXX xxxx, izmantojot sinhronu (paralēlu) pieeju;
Testa rezultāti, kuru galējā apkopošana vēl priekšā, rāda, ka vislabāk ir veicies tai grupai, kura lietoja otro pieeju, pēc tam – tai, kura lietoja MansOS ar pavedieniem (pēdējā pieeja), pēc tam – tai, kura TinyOS. Tāds iznākums atbalsta mūsu hipotēzi par vieglāku MansOS apguvi un lietojamību, salīdzinot ar TinyOS.
4.3.8 Pavedieni
Pavedieni
Jaunā pavedienu mehānisma integrēšana MansOS kodā, resursu kontroles (locking) mehānisma ieviešana tam, tīkla steka noportēšana uz jauno pavedienu mehānismu...
Kooperatīvā paralēlā izpilde
Pievienots kooperatīvās paralēlās izpildes atbalsts, kur idejiski līdzinās operētājsistēmai Contiki iekļautajai Protothreads bibliotēkai [10]. Darbu veica Xxxxxxxx Xxxxxxx no VPP.
4.4 Kopsavilkums un nākotnes perspektīvas
MansOS grupā šajā ceturksnī tika veikta:
• realizēts uzticams CSMA protokols ar apstiprinājuma ziņojumiem;
• realizēts distances vektora tipa maršrutēšanas protokols;
• realizēts maršrutēšanas protokolā iebūvēts laika sinhronizācijas mehānisms visam tīklam;
• realizēts saites kvalitātes (link quality) noteikšanas mehānisms;
• veikts MansOS lietojamības empīrisks tests, šim nolūkam piesaistos Latvijas Universitātes studentus;
• veikta taimeru frekvences samazināšana, ar mērķi samazināt to pārtraukumu apstrādē pavadīto laiku;
• izveidota pirmā versija radio linka kvalitātes testēšanai pakešu līmenī (pēc saņemto pakešu procenta);
• integrēti, jaunie, eksperimentāli pavedieni ar citām MansOS daļām, specifiski, tīklošanas apakšsistēmu (MAC protokols, soketi) un taimeru apakšsistēmu (alarms);
• pievienots kooperatīvās paralēlās izpildes atbalsts;
• pievienota komunikācijas savietojamības panākšana starp dažādiem
802.15.4 radio (TI CC2420, Microchip MRF24J40 [7] un Digi Xbee [5]);
• pievienota jauna MansOS platforma (“waspmote”);
• salabots programmods seriālai izvadei uz ATmega platformas;
• pielāgota darbam ar MansOS I2C RTC mikroshēma PCF8493;
• veikts darbs pie lietotāju atbalsta un programmatūras koda uzturēšanas.
Kā nākotnē veicamos darbu var atzīmēt izveidoto tīklošanas risinājumu notestēšanu vismaz vidējā izmēra tīklos. Darbs pie tiem tiks turpināts, x.xx., iepazīstinot ar to citus BST pētniekus, prezentējot MansOS grupas darbību kādā starptautiskā konferencē. Tiks veikts darbs arī pie MansOS lietojamības paaugstināšanas – dokumentācijas un vedņu izstrādes.
Literatūra
[1] Arduino. xxxx://xxxxxxx.xx/. [Online; accessed 30.09.2011.].
[2] Atmel ATmega328P. xxxx://xxx.xxxxx.xxx/xxx/xxxxxxxx/xxxxxxx_ card.asp?part_id=4198. [Online; accessed 30.09.2011.].
[3] CC2420 Datasheet. xxxx://xxx.xx.xxx/xxx/xxx/xx0000.
[4] Deluge: TinyOS Network programming. xxxx://xxx.xx.xxxxxxxx.xxx/
~jwhui/deluge/documentation.html.
[5] Digi Xbee. xxxx://xxx.xxxx.xxx/xxxx/. [Online: accessed 30.09.2011.].
[6] Libelium Waspmote. xxxx://xxx.xxxxxxxx.xxx/xxxxxxxx/xxxxxxxx/. [Online; accessed 30.09.2011.].
[7] Microchip MRF24J40. xxxx://xxx.xxxxxxxxx.xxx/xxxxxxxxxxx/ Devices.aspx?dDocName=en027752. [Online: accessed 30.09.2011.].
[8] NXP PCF8593 I2C RTC. xxxx://xxx.xxx.xxx/xxxxxxxx/xxxxxxxxx_ and_connectivity/i2c/rtcs_with_i2c_interface/PCF8593.html. [Online; accessed 30.09.2011.].
[9] X. Xxxxxxx, X. Xxxxxxxx, and X. Xxxxx. Contiki - a lightweight and flexible operating system for tiny networked sensors. Local Computer Networks, Annual IEEE Conference on, 0:455–462, 2004.
[10] X. Xxxxxxx, X. Xxxxxxx, X. Xxxxx, and M. Ali. Protothreads: simplifying event-driven programming of memory-constrained embedded systems. In Proceedings of the 4th international conference on Embedded networked sensor systems, SenSys ’06, pages 29–42, New York, NY, USA, 2006. ACM.
[11] P. Xxxxx, X. Xxxxxx, X. Xxxxxxxx, X. Xxxxxxxx, X. Xxxxxxxxxx, X. Woo,
D. Xxx, X. Xxxx, X. Xxxxx, X. Xxxxxx, and D. Culler. Tinyos: An operating system for sensor networks. In in Ambient Intelligence. Springer Verlag, 2004.
Nodaļa 5
SAntArray grupas atskaite
Anotācija
XXxxXxxxx grupas mērķis ir izveidot vienkāršu antenu ar elektroniski vadāmu virziendarbību. Šajā atskaitē detalizēti apskatīta vienkāršākā ESPAR tipa antena, kas sastāv no aktīvā elementa un tikai viena pasīvā elementa. Doti gan mērījumu un atbilstošu skaitlisko aprēķinu rezultāti, gan arī ar vienkārša starojuma diagrammas modeļa precizitātes novērtējumu saistīto skaitlisko aprēķinu rezultāti.
5.1 Ievads
Lai varētu izveidot efektīvi strādājošu sešu elementu Elektroniski Vadāmu Parazītisko (pasīvo) Elementu Masīva (ESPAR) antenu, lietderīgi detalizēti izpētīt pašu vienkāršāko šāda tipa antenu, kura sastāv no viena aktīvā elementa un tikai no viena pasīvā elementa. Tālāk sauksim šo antenu par ESPAR1 un tā ir parādīta 5.1 zīmējumā. Lai samazinātu tās izmērus, antenai ir izgatavota dielektriska materiāla “cepure”. Gan antenas pamatne gan arī tās “cepure”
Att. 5.1: Divu elementu dielektriskā materiāla ESPAR testantena un tās modelis skaitliskajiem aprēķiniem.
hp
rp
h
X
1
a
Zin
izgatavotas tā, lai varētu veikt mērījumus vairākām fiksētām attāluma starp aktīvo un pasīvo elementiem vērtībām.
Kāpēc šāda antena ir interesanta? Tai ir neliels skaits ģeometrisko parametru: ha un hp - aktivā un pasīvā elementu garumi, rp - attālums starp aktīvo un pasīvo elementiem. Ir tikai viens vadības parametrs - pasīvā elementa slodzes impedance X1. Tas ļauj detalizēti veikt gan eksperimentālus gan arī skaitliskus pētījumus un vēlāk tos viennozīmīgi interpretēt. Varētu teikt, ka vienkāršs modelis palīdz izprast sarežģītu procesu.
5.2 Saistītie risinājumi
Šobrīd visizplatītākās ir ESPAR antenas ar 6 pasīvajiem elementiem. Antenas ar nelielu parazītisko elementu skaitu parasti netiek pētītas. Kā izņēmumu var minēt [1], kur apskatīta antena, kuru veido viens aktīvs gredzens un divi pasīvi gredzeni ar vadāmiem kapaciatīviem elementiem, rezultālā iegūstot plakanu, automašīnas logā nostiprināmu antenu.
5.3 Eksperimentu rezultāti
Izmantojot iekārtu antenu virziendarbības diagrammu uzņemšanai [2], tika veikti testantenas (5.1 zīm.) virziendarbības diagrammas mērijumi vairākām attāluma starp aktīvo un pasīvo elementiem rp vērtībām. Vispirms aktīvais elements tika noskaņots uz monopolantenas rezonanses garumu hrez, kas ir apmēram 18 mm. Pēc tam antenas pamatnē izvēlētā attālumā no aktīvā elementa tika nostiprināts pasīvais elements ar garumu apmēram 35 mm. Pēc katra mērījuma tas tika saīsināts apmēram par 2 mm, līdz antenas starojuma diagramma vairs būtiski nemainījās. Katrai rp vērtībai tika veikti 15 mērījumi. Testantenas konstrukcijas dēļ pasīvais elements visos mērījumos bija īsslēgts, tātad X1 = 0. Mērījumu mērķis bija eksperimentāli novērot, kā pasīvā elementa garums un tā attālums līdz aktīvajam elementam ietekmē ESPAR1 antenas starojuma diagrammu. Mērījumu rezultāti attēloti 5.2 zīmējumā, izvēloties mērījumus piecām hp vērtības katrai no rp vertībām. Tika novērotas sekojošas likumsakarības
• Pie hp > ha, pasīvais elements darbojas kā atstarotājs. Pie kam, pietiekoši lielām hp vērtībām, starojuma diagramma praktiski nemainās;
• Savukārt pie hp < ha, pasīvais elements darbojas kā novirzītājs.
• Ļoti mazu hp gadījumā, pasīvā elementa ietekme kļūst neievērojami maza;
≈
• Tikai pieliekoši lielām rp vērtībām un pie hp ha, var novērot nesimentriskās hanteles tipa starojuma diagrammu.
Novērotās likumsakarības kvalitatīvi sakrīt ar skaitlisko aprēķinu rezultātiem, kas doti 5.3 zīmējumā. Tur redzams, ka palielinot attālumu starp aktīvo un pasīvo elementiem, pakāpeniski izveidojas raksturīgā nesimetriskas hanteles formas starojuma diagramma. Kvantitatīvu sakritību diemžel panākt nav izdevies, kaut vai tapēc, ka aprēkinos ar NEC2 programmatūru nav precīzi iespējams ievērot nedz dielektriskā materiāla “cepuri”, nedz arī galīga izmēra antenas pamatni [3].
r
=14 mm
p
=16 mm
r
p
120
60
240
300
7.0 mm
13.0 mm
16.0 mm
19.5 mm
27.5 mm
120
60
240
300
9.0 mm
14.0 mm
18.3 mm
22.0 mm
27.6 mm
180 0 180 0
r
=18 mm
p
=20 mm
r
p
120
60
240
300
10.5 mm
14.8 mm
18.2 mm
23.0 mm
30.5 mm
120
60
240
300
6.8 mm
10.2 mm
14.1 mm
18.3 mm
23.0 mm
180 0 180 0
Att. 5.2: ESPAR1 antenas starojuma diagrammas mērījumu rezultāti. Šeit
rp=14, 16, 18 un 20 mm. Katrai no tām doti rezultāti piecām hp vērtībām.
5.4 Satrojuma diagrammas vienkāršais modelis
Antenas izstaroto elektrisko lauku E→ (→r) tālaja zonā definē izmantojot antenas virziendarbības diagrammu elektiskajam laukam E→ (θ, ϕ) atbilstoši sakarībai [3]
E→ (→r) = E→ (θ, ϕ) exp(−jkr)
r
Šeit k = 2π/λ ir viļņu skaitlis un λ ir viļņa garums, savukārt θ un ϕ ir leņķi, kurus nosaka koordinātes vektora →r virziens. Kompleksā eksponente skaitītājā nosaka viļņa fāzi, bet attālums r saucējā nodrošina lauka rimšanu atbilstoši enerģijas nezūdamības likumam. Ja antena sastāv no vairākiem starojošiem
elementiem, kuri atrodas punktos d→i, tad sistēmas kopīgo virziendarbības
diagrammu veido katra elementa starojuma superpozīcija ņemot vērā atbilstošo fāzes nobīdi. Tā kā antenas izstarotā elektriskā lauka intensitāte ir proporcionāla strāvai tās ieejā [4], tad katra antenas elementa ieguldījumu veido tā ieejas strāvas Ii reizinājums ar elementa starojuma diagrammu vienu vienību
hp =0.8
50
90
1
120
0.2
0.3
0.4
0.5
60
30
1 dB
210
330
240
300
180 0
270
Att. 5.3: Aprēķinātās ESPAR2 antenas starojuma daiagrammas dažādām rp
vērtībām. ha = hrez, hp = 0.8ha.
stiprai strāvai tā ieejā E→i(θ, ϕ)
i
i
E→ (θ, ϕ) = ∑ I E→ (θ, ϕ)e−j→kd→i (5.1)
i
Tālāk apskatīsim, kā atbilstoši šiem principiem, var izveidot ESPAR1 antenas starojuma diagrammu un novērtēsim iegūtā rezultāta precizitāti salīdzinot to ar skaitlisko aprēķinu rezultātiem, kas veikti izmantojot NEC2 programmatūru.
5.4.1 Monopola lauks
Saprātīgā tuvinājumā var uzskatīt, ka strāvas sadalījumam uz ESPAR antenas stieņveidīgo elementu virsmas ir aksiāla simetrija. Tāpēc katru atsevišķi ņemtu tās elementu var uzskatīt par monopola antenu. Monopola antenas izstarotajam laukam ir aksiālā simetrija, pie kam elektriskajam laukam ir tikai vertikālā komponente.
Lai sintezētu ESPAR1 antenas starojuma diagrammu, izmantoju ar NEC2 programmatūru aprēķinātas monopola antenas starojuma diagrammas, pirms tam tās pārnormējot tā, lai strāvas ieejā vienību liela. Tad
E˜M
E→NEC2(θ)
(θ) =
Iin
(5.2)
Interesanti, ka iegūtajam lielumam E˜M (θ) ir pretestības dimensija. Xxx
pārrēķins ir nepieciešams, jo skaitliskajos aprēķinos antena tiek ierosināta fiksējot spriegumu tās ieejā [3]. Savukrārt E˜M (θ) ir atkarīgs ne tikai no θ, bet vispār arī no antenas garuma h. Lieluma E˜M (θ = 0) vērtība atkarībā
no antenas garuma attēlota 5.4 zīmējumā. Varam secināt, ka antenas garums būtiski ietekmē E˜M un to neņemt vērā nedrīkst.
100
90
80
|E˜ | Ω
E˜
70
60
50
40
30
0.7 0.8 0.9 1.0 1.1 1.2 1.3
h/hrez
0.48π
0.46π
0.44π
0.42π
0.7 0.8 0.9 1.0 1.1 1.2 1.3
h/hrez
Att. 5.4: Monopola antenas elektiskā lauka vertikālās komponentes normētā vērtība horizontālajā plaknē atkarībā no tās garuma h. Šeit hrez ir monopola antenas rezonanses garums.
5.4.2 ESPAR2 antenas lauks
Atbilstoši (5.1), ESPAR1 antenas starojuma lauku veido divu monopolu starojuma lauka superpozīcija
0
E→ESPAR1(θ, ϕ) = I E˜
M
a
1
(h , θ) + I E˜
(h , θ) exp (−j 2πrp cos ϕ cos Θ) (5.3)
M
p
λ
Strāvu antenas aktīvajā elementā I0 nosaka antenas ierosme. Savukārt strāva pasīvā elementa ieejā I1 ir atkarīga gan no antenas ģeometriskajiem parametriem, gan arī no šunts pretestības jX1. Konkrētas vērtības var atrast veicot atbilstošus aprēķinus ar NEC2 programmatūru vai arī lietojot impedances matricas metodi [5]
( u0
) = (Z00 Z01) (I0) (5.4)
−jX1I1
Z10 Z11 I1
Šeit u0 ir spriegums antenas ieejā. Simetrijas apsvērumu dēl impedances matricas nediogonālie elementi ir vienādi, Z01 = Z10. Ja antenas aktīvajam un pasīvajam elementam ir vienādi garumi, hp = ha, tad arī impedances matricas diogonālie elementi ir vienādi, Z00 = Z11. 5.5 zīmējumā attēlotas impedances matricas elementu skaitliskās vērtības attiecībā pret rezonansē noskaņota monopola ieejas pretestību, kas aprēķināta tadam pašam stienīša diametram. Kā redzams, Z01 absolūtā vērtība monotoni samazinās, palielinot attālumu starp aktīvo un pasīvo elementiem rp. Savukārt Z00 un Z11 absloūtās vērtības ievērojami oscilē rp = 0.5λ apkārtnē.
Izmantojot skaitliski apreķinātās Z-matricas elementu vērtības [5] un (5.4), strāvu antenas aktīvā un pasīvā elementu ieejās aprēķina kā
(I0) =
(Z00
Z01
)−1 (u ) (5.5)
0
I1 Z10 Z11 + jX1 0
|Z00/Z0 | |Z10/Z0 | |Z11/Z0 | | ||||
1.0
0.8
|Z/Z0 |
0.6
0.4
0.2
0.0 0.5 1.0 1.5 2.0
rp /
Att. 5.5: ESPAR1 antenas impedances matricas elementu skaitliskās vērtības attiecībā pret rezonansē noskaņota monopola ieejas pretestību Z0 atkarībā no attāluma starp aktīvo un pasīvo elementiem rp. Šeit ha = hrez un hp = 0.9hrez.
5.4.3 Skaitliskie eksperimenti
Pētījuma mērķis ir noskaidrot, cik labi kompozīcijas formula (5.3) un sakarība strāvām (5.5) apraksta izmantojot NEC2 programmatūru aprēķinātās starojuma diagrammas. Lai darba gaitu padarītu vienkāršāku, tika izmantots tikai starojuma diagrammas horizontalais šķēlums. Tad, atbilstoši (5.3) modeļsakarība būs sekojoša
λ
E→model(A, B, ϕ) = A + B exp (−j 2πrp cos ϕ ) (5.6)
Šeit koeficienti A un B iekļauj gan strāvas antenas elementu ieejā gan arī monopola antenas laukus
A = I E˜
(h ) = I
E→NEC2(ha) , B = I E˜
(h ) = I
E→NEC2(hp)
,
0 M a
0 Ia
1 M p
1 Ip
∑
Koeficientus A un B atrod minimizējot nesaiti starp modeļa lauku aprēķinos lietotajām radiālā leņķa vērībām ϕi un aprēķināto starojuma diagrammu horizontālajā plaknē
F (A, B) = |E→model(A, B, ϕi) − E→NEC2(ϕi)|2
i
Minimizācija tiek veikta skaitliski izmantojot Nelder-Mead simplekso algoritmu [6], par sākuma vērtībām izvēloties teorētiskiās vērtības A0 =
IaE˜M (ha) un B0 = IpE˜M (hp). Tipisks rezultātu piemērs dots 5.6 zīmējumā,
kurā veikta ESPAR2 antenas ar īsslēgtu pasīvo elementu starojuma diagrammas
2.5
2.0
1.5
r exp( ϕkr)
E
1.0
0.5
0.0
0.5
0
2
3 2
2
Att. 5.6: Ar NEC2 aprēķinātās ESPAR1 antenas ar īsslēgtu pasīvo elementu starojuma diagrammas (punkti) aproksimācija. Šeit ha = hrez, hp = 0.9hrez, kā arī rp = 0.25λ. Ar pārtraukto līniju attēlotas E→model(A0, B0, ϕ) vērtības.
aproksimācija. Antenai ha = hrez un hp = 0.9hrez, kā arī rp = 0.25λ. Ar
pārtraukto līniju attēlotas E→model(A0, B0, ϕ) vērtības. Kā redzams, modeļa
vērtības atšķirās no teorētiski sagaidāmajām vērtībām. Tas ir nedaudz negaidīti, un tieši tas kļuva par iemeslu tik lielai interesei par šo pētījumu tēmu.
Plašāki skaitlisko aprēķinu rezultāti doti 5.7 un 5.8 zīmējumos. Svarīgi norādīt, ka grafikos attēlota koeficienta B modificētā vērtība, kas ņemot vērā fāzu nobīdi 2πrp/λ, kas rodās elektromagnētiskajam laukam veicot attālumu rp no aktīvā elementa līdz pasīvajam. Lai grafiki atrastos koordinātu sakumpunkta rajonā, B fāze ir papildus kompensēta vēl par π
2
λ
B˜ = B exp (2πj ( 1 + rp )) (5.7)
Perfekta sakritība strap teoretiski prognozējamo un iegūto modeļa rezultātu nav novērojama. Nelielas atškirības ir novērojamas ar antenas aktīvo elementu sasitītajos lielumos. Pie kam, tās visvairāk ir izteiktas tieši mūs interesējošajā parametra rp apgabalā ap 0.25λ. Nepatīkamākas ir atšķirības lieluma B fāzei, kas netiecas izzust pie lielām rp vērtībām.
5.5 Kopsavilkums un secinājumi
• Tika veikta ESPAR1 antenas starojuma diagrammas mērījumu sērija. Iegūtie rezultāti kvantitatīvi sakrīt ar prognozētajiem;
• Viecot skaitliskos aprēķinus, lai noskaidrotu vienkārša starojuma diagrammas modeļa precizitāti, tika secināts, ka šis literatūrā bieži lietotais modelis nemaz tik labi neapraksta antenas starojuma diagrammu.
|A/Ea |
|I0 /Ia |
2
4
0
4
(B˜/Ep ) (I1 /Ip )
2.5
2.0
1.5
1.0
0.5
.0 0.0 | 0.5 | 1.0 | 1.5 | 2.0 | 2 0.0 | 0.5 | 1.0 | 1.5 | 2.0 |
rp / | rp / |
0
Att. 5.7: ESPAR1 antenas ar īsslēgtu pasīvo elementu starojuma diagrammas aproksimācijas atbilstoši (5.6) rezultāti. Šeit ha = hrez, hp = 0.9hrez
|A/Ea |
|I0 /Ia |
2
4
0
4
(B˜/Ep )
(I1 /Ip )
1.8
1.6
1.4
1.2
1.0
0.8
0.6
0.4
0.2
.0 0.0 | 0.5 | 1.0 | 1.5 | 2.0 | 2 0.0 | 0.5 | 1.0 | 1.5 | 2.0 |
rp / | rp / |
0
Att. 5.8: ESPAR1 antenas ar X1 = 25 Ω starojuma diagrammas aproksimācijas atbilstoši (5.6) rezultāti. Šeit ha = hrez, hp = 0.9hrez
Tā precizitāti izdevās palielnāt, ņemot vērā antenas elementu garumus, bet rezultāts manuprāt joprojām nav pietiekoši precīzs. Diemžēl šobrīd nav skaidrs, kas izsauc šis atškirības. Tie varētu būt gan 3D efekti, gan tikpat labi arī NEC2 programmatūras īpatnības. Pirmajiem par labu runā kaut vai ESPAR1 antenas ar elektriski izolētu pasīvo elementu starojuma diagramma. Pēc aprakstītā modeļa tai būtu jābūt precīzi aksiāli simetriskai, jo I1 = 0, taču aprēķini uzrāda nedaudz pasīvā elementa
virziena nobīdītu diagrammu. Tam par cēloni ir fakts, ka izolētajā pasīvajā elementā strāva inducējas tā, lai tās maksimums būtu pasīvā elementa vidū, bet nulle tās galos.
5.6 Nākotnes perspektīvas
Balstoties uz šā pētījuma rezultātiem tiks optimizēta ar elektronisku slēdzi vadāmās ESPAR6 antenas [7] vadība: pasīvā elementa garums, tā slodzes impedance.
Literatūra
[1] S. Xxxxxxx and X. Iizuka. Reactively steered ring antenna array for automotive application. IEEE Trans. Antennas Propag., 55:1902–1908, 2007.
[2] X. Xxxxxxxxx, X. Xxxxxx, and X. Xxxxxx. Passive elements array antena for wireless sensor networks. In ACM SenSys 2010, Zurich, 2010.
[3] G. J. Xxxxx and A. J. Poggio. Numerical Electromagnetic Code (NEC)
- Method of Moments. Technical report, Xxxxxxxx Xxxxxxxxx Laboratory, 1981.
[4] Xxxx Xxxxx Xxxxxxx. Classical Electrodynamics. Wiley, 1998.
[5] Projekta ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” pārskats Nr. 1, Marts 2011.
[6] Scipy Reference Guide, February 2010.
[7] Projekta ”Viedo sensoru un tīklotu iegulto sistēmu pētījumu un attīstības centrs” pārskats Nr. 2, Jūnijs 2011.
Nodaļa 6
SenSigA grupas atskaite
Anotācija
Nodaļā aprakstīts algoritms ātrai signāla atjaunošanai no laika vērtībām, kas iegūtas ar Asinhrono Sigma-Delta Modulatoru (ASDM), pārveidojot analogo ieejas signālu. Pārveidots šajā gadījumā tiek EEG signāls, bet pārveidojuma rezultātā iegūtās laika vērtības tiek sūtītas uz datoru signāla atjaunošanai.
6.1 Ievads
Laika kodēšana ir reāla laika asinhrons mehānisms analogā signāla pārveidošanai ciparu formā [1]. Atšķirībā no klasiskiem analogs-ciparu pārveidotājiem (ACP) kodētas šajā gadījumā tiek nevis signāla nolašu, bet gan to laika momentu vērtības. Viens no šādiem ACP ir asinhronais sigma-delta modulators (ASDM), kas analogo ieejas signālu pārveido divu līmeņu binārā izejas signālā, kura pāreju pozīcijas no viena līmeņa uz otru dod ieejas signāla atjaunošanai nepieciešamo laika informāciju [2]. Tā kā atjaunošana ar skaitliskām metodēm var būt samērā laikietilpīga, tad reāla laika pielietojumos svarīga ir algoritmu izstrāde ātrai signālu atjaunošanai [3],[4].
6.2 Signāla atjaunošana
ASDM blokshēma parādīta 6.1 attēlā [1]. Pārveidojuma rezultātā frekvenču
Att. 6.1: ASDM blokshēma
joslā no 0 līdz Fmax ierobežots analogais signāls s(t) tiek reprezentēts ar diskrēta laika secību tk, k ∈ Z, kas izriet no pārveidotāja izejas signāla z(t) līmeņu b
−
∑
un b pārslēguma vietām. Zinot tk, signāla s(t) atjaunošanu veic saskaņā ar izteiksmi
s(t) = cng(t − tn), (6.1)
n∈Z
kur g(t) = 2Fmaxsinc(2πFmaxt), laika momenti tn sakrīt ar intervālu viduspunktu (tk + tk+1)/2 vērtībām, bet koeficienti cn ir jānosaka. Saskaņā ar ASDM blokshēmu laika intervālam no tk līdz tk+1 var rakstīt
s(u)du = (−1)k[2αδ − b(tk+1 − tk)], (6.2)
∫ tk+1
tk
∫
līdz ar to, liekot (6.1) izteiksmē (6.2), iegūst
∑
cn
n∈Z
tk+1 tk
g(u − tn)du = (−1)k[2αδ − b(tk+1 − tk)] (6.3)
Rakstot (6.3) matricu formā, iegūst
q = Gc, (6.4)
kur kolonnas vektora q un matricas G elementi ir
∫
qk = (−1)k[2αδ − b(tk+1 − tk)] (6.5)
un
gk,n =
tk+1 tk
g(u − tn)du (6.6)
No (6.4) izriet koeficientu vērtības
c = G+q, (6.7)
kur G+ ir matricas G pseidoinversā matrica [1].
Koeficientu cn aprēķins saskaņā ar (6.7) ir visai laikietilpīgs, jo:
• matricas G elementu gk,n precīzs skaitlisks aprēķins prasa funkcijas g(t)
uzdošanu ar pietiekami smalku soli;
• tiek veikta matricas G pseidoinversija.
∫
Lai signāla atjaunošanu paātrinātu, meklē nevis koeficientus cn, kas atbilst signāla reprezentācijai (6.1), bet gan koeficientus dn, kas atbilst integrētā signāla reprezentācijai [4]
t
s(u)du =
−∞
n∑∈Z
dng(t − tn) (6.8)
Rezultātā koeficientu dn noteikšanā iesaistīto matricu elementu aprēķins kļūst vienkāršāks un ātrāks, kas izriet no sekojošiem izvedumiem. No (6.8) iegūst
∫
tk+1 tk
s(u)du =
n∑∈Z
dn(g(tk+1 − tn) − g(tk − tn)) (6.9)
Vienādojuma (6.9) labā puse sakrīt ar vektora q elementu qk, līdz ar to, pierakstot (6.9) matricu formā, iegūst
q = PVd, (6.10)
kur matricu P un V elementi ir
pk,n = δk+1,n — δk,n (6.11)
un
vk,n = g(tk — tn) (6.12)
Simbols δk,n izteiksmē (6.11) apzīmē Kronekera simbolu, kura vērtība δk,n = 1,
ja k = n, un δk,n = 0, ja k n. Koeficientus dn iegūst no (6.10)
d = V+P−1q, (6.13)
≤
—
kur inversās matricas P−1 k-tās rindas un n-tās kolonnas elements ir 1, ja k n un 0, ja k > n. Rezultātā pseidoinvertēta šajā gadījumā tiek matrica V, kuras elementa vk,n aprēķins saskaņā ar (6.12) ir precīzs un nav atkarīgs no funkcijas g(t) uzdošanas soļa, kā tas ir koeficientu ck noteikšanas gadījumā saskaņā ar (6.7). Līdz ar to matricas V aprēķins ir precīzs un ievērojami ātrāks.
Att. 6.2: Funkcijas g(t) un gˆ(t)
M
Nākamā procedūra, kuru paātrina, ir matricas V pseidoinversija. To panāk, funkcijas g(t) vietā lietojot tās periodisku aproksimāciju
gˆ(t) = β
m∑=−M
M
ejm 2πFmax t, (6.14)
kas tiecas uz g(t), ja M tiecas uz bezgalību [4]. Lielums β = 2Fmax/(2M + 1) un dalījums M /Fmax sakrīt ar funkcijas atkārtošanās periodu (6.2 attēls).
Rezultātā izteiksme (6.10) pārtop par
q = βPVˆ d, (6.15)
M
kur matricas Vˆ
elementi ir
vˆk,n
M
∑
=
m=−M
ejm 2πFmax (tk−tn) (6.16)
Reizinot vienādojuma (6.15) abas puses ar P−1 un izsakot Vˆ = XH Y, iegūst
P−1q = βXH Yd, (6.17)
kur (.)H ir konjugēti transponētās matricas apzīmējums, bet matricu X un Y
elementi ir
xm,k
un
y
= e−jm 2πFmax tk (6.18)
M
= e−jm 2πFmax tn (6.19)
m,n M
— ∈
Apzīmējot diagonālmatricu ar D = diag(tk+1 tk), k Z, un reizinot (6.17) abas puses ar XD, iegūst
XDP−1q = βXDXH Yd (6.20)
Apzīmējot matricu reizinājumus
A = βXDXH (6.21)
un
b = βYd, (6.22)
iegūst (6.20) ekvivalento izteiksmi
XDP−1q = 1 Ab, (6.23)
β
no kuras izriet nezināmo koeficientu bm (m = —M, . . . , M ) vektors
b = βA+XDP−1q, (6.24)
Kā redzams, tad pseidoinvertēta šajā gadījumā tiek matrica A, kuras elementi
n,m
k∈Z
k+1
k
M
a = β ∑(t — t )ej(m−n) 2πFmax tk (6.25)
nosaka tās Toeplica un Ermita tipa matricu struktūru un nodrošina ātru pseidoinversiju.
No (6.22) izriet koeficientu bm izteiksme
∑
bm = β dne−jm tn (6.26)
2πFmax
M
n∈Z
Savukārt no (6.8), funkcijas g(t) vietā liekot (6.14), iegūst
M
∫
∑
∑
t
s(u)du = β d
ejm
2πF
xxx (t−tn) (6.27)
n M
−∞ n∈Z m=−M
Pārveidojot (6.27) labo pusi un ievērojot (6.26), iegūst
M
∫
∑
t
s(u)du =
ejm
2πF
max tβ ∑ d
e−jm
2πF
max tn = ∑
b ejm
2πF
max t
−∞ m=−M
M
M n M
n∈Z
m
m=−M
M
(6.28)
M
M
Atvasinot (6.28) labo pusi, iegūst atjaunotā signāla izteiksmi
sˆ(t) = j2πFmax
M
m∑=−M
mbm
ejm 2πFmax t (6.29)
6.3 Rezultāti un secinājumi
Algoritma ātrdarbības pārbaudei tika atjaunots EEG signāls, kura 0.5 sekunžu fragments parādīts 6.3 attēlā ar sarkanu krāsu. Signāls pirms pārveidošanas tika filtrēts ar 49 Hz zemo frekvenču filtru. XXXX xxxxxx xxxxxxxx signāls 6.3 attēlā parādīts ar pelēku krāsu. Maksimālais attālums starp šī signāla divām secīgām pārslēguma vietām nepārsniedz 9.3 ms, kas ir pietiekams nosacījums, lai no dotajiem pārslēguma vietu laika momentiem atjaunotu frekvenču joslā līdz 53 Hz ierobežotu signālu.
3
2
EEG signals (mV)
1
0
−1
−2
−3
0.1
0.2
0.3
Laiks (s)
0.4
0.5
0.6
Att. 6.3: EEG signāla fragments (sarkanā krāsā) un tam atbilstošais ASDM izejas signāls (pelēkā krāsā)
1
EEG signals (mV)
0.5
0
−0.5
−1
0.1 0.2 0.3 0.4 0.5 0.6
Laiks (s)
Att. 6.4: Oriģinālais (sarkanā krāsā) un atjaunotais (zilā krāsā) EEG signāli
Signāls tika atjaunots saskaņā ar divām aprēķinu procedūrām. Pirmā no tām balstās uz izteiksmēm (6.1) un (6.7) un vienu sekundi garu signāla fragmentu atjauno 22 sekundēs. Otrā procedūra (algoritms ātrai signāla atjaunošanai) balstās uz izteiksmēm (6.24) un (6.29). Rezultātā tas pats signāla fragments
vienādi precīzi tiek atjaunots 0.5 sekundēs, tātad ātrdarbības ziņā ir sasniegts būtisks uzlabojums. Atjaunošanas rezultāts parādīts 6.4 attēlā. Sarkanā krāsa atbilst oriģinālajam signālam, bet zilā – atjaunotajam. Kā redzams, tad signāli praktiski sakrīt
6.4 Nākotnes perspektīvas
Lai gan signāla atjaunošanas ātrums ir palielinājies 40 reizes, tas tomēr ir nepietiekams reāla laika pielietojumos. Nodaļā aprakstītais algoritms ir pielietojams gadījumos, ja maksimālais attālums starp divām secīgām ASDM izejas pārslēguma vietām nepārsniedz Naikvista soli 1/(2Fmax). Šo maksimālo attālumu nosaka ASDM ķēdes parametri, kurus pamainot attālumu var samazināt vairākas reizes. Rezultātā var realizēt vienkāršu signāla atjaunošanas paņēmienu, kas starp divām secīgām ASDM izejas signāla pārslēguma vietām atjauno tikai vienu signāla nolasi, kas sakrīt ar signāla vidējo vērtību šajā intervālā. Šāda pieeja būs precīza, ja signāls katrā intervālā būs tuvu lineārai funkcijai, tātad attālumiem starp pārslēguma vietām jābūt pietiekami īsiem. Rezultātā, neskatoties uz pārslēguma vietu skaita pieaugumu vienā laika vienībā, signāla atjaunošanas laiks ievērojami samazināsies.
Literatūra
[1] A. A. Xxxxx, X. X. Xxxxxxx, and L. T. Toth. Time Encoding of Bandlimited Signals, an Overview. 2005.
[2] C. J. Xxxxxxx and X. X. Xxxxxx. Asynchronous delta sigma modulation. In
Proceedings of the IREE Australia, volume 36, pages 83–88, 1975.
[3] A. A. Xxxxx and L. T. Toth. Perfect Recovery and Sensitivity Analysis of Time Encoded Bandlimited Signals. In IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—I: REGULAR PAPERS, volume 51, pages 2060–2073, 2004.
[4] A. A. Xxxxx, X. X. Xxxxxxx, and L. T. Toth. Fast recovery algorithms for time encoded bandlimited signals. In Proceedings of ICASSP’2005, 2004.