milan listeš seminarski rad - spvp...

13
Milan Listeš 0036428232 SEMINARSKI RAD - SPVP 6. srpanj 2010

Upload: duongkhuong

Post on 03-Feb-2018

232 views

Category:

Documents


2 download

TRANSCRIPT

Milan Listeš 0036428232

SEMINARSKI RAD - SPVP

6. srpanj 2010

Detekcija pada

2

Sažetak

Bežične senzorske mreže se sve više koriste u svakodnevnom životu zbog toga što je njihova proizvodnja sve jeftinija, a njihova pouzdanost sve veća. Pad je kod osoba starijih od 65 godina jedan od glavnih uzroka loma kuka i samim time u velikom broju slučaja uzrok smrti. Jasno je da postoji potreba za prevencijom i pravovremenom detekcijom pada. U svrhu toga, u okviru ovog rada, izrañen je sustav temeljen na akcelerometru koji neinvazivno i kontinuirano mjeri akceleraciju osobe te pomoću algoritma detektira pad. Ideja sustava je smanjenje ozbiljnih posljedica pravovremenom reakcijom na pad starijih osoba. Glavna prednost sustava je njegova mobilnost i mogućnost kontinuiranog mjerenja, a uz doradu algoritma sustav bi mogao biti od koristi svim starijih i nemoćnim osobama tijekom njihovih svakodnevnih radnji.

Sadržaj

1. UVOD ............................................................................................................ 3

2. FUNKCIJE SUSTAVA ........................................................................................ 4

3. SKLOPOVSKA PODRŠKA .................................................................................. 5

3.1. Akcelerometar ADXL335 ........................................................................... 5

3.2. Arduino razvojna platforma ....................................................................... 6

4. PROGRAMSKA PODRŠKA .................................................................................. 7

4.1. Kontinuirano mjerenje akceleracije ............................................................. 7

4.2. Detektiranje pada osobe ........................................................................... 8

4.2.1. Obrada podataka o akceleraciji............................................................ 8

4.2.2. Algoritam za detekciju pada ................................................................ 9

5. ZAKLJUČAK ...................................................................................................11

6. LITERATURA..................................................................................................12

7. POJMOVNIK ..................................................................................................13

Ovaj seminarski rad je izrañen u okviru predmeta „Sustavi za praćenje i voñenje procesa“ na Zavodu za elektroničke sustave i obradbu informacija, Fakulteta elektrotehnike i računarstva, Sveučilišta u Zagrebu. Sadržaj ovog rada može se slobodno koristiti, umnožavati i distribuirati djelomično ili u cijelosti, uz uvjet da je uvijek naveden izvor dokumenta i autor, te da se time ne ostvaruje materijalna korist, a rezultirajuće djelo daje na korištenje pod istim ili sličnim ovakvim uvjetima.

Detekcija pada

3

1. Uvod

Bežične senzorske mreže se sve više koriste u svakodnevnom životu zbog toga što je njihova proizvodnja sve jeftinija, a njihova pouzdanost sve veća. To čini bežične senzorske mreže pogodnim za izradu raznih sustava za prevenciju, ranu dijagnozu i kontrolu kroničkih bolesti ili općenito sustava za kontrolu zdravstvenog stanja namijenjenih za primjenu u vlastitim kućama.

Posljednjih godina prosječna starost u našem društvu je porasla, samim time porastao je broj nepokretnih osoba i osoba koji zahtijevaju posebnu medicinsku skrb. Kako bi se riješio daj problem osim neprestanog napretka na području medicine potrebna je i primjena novih tehnologija.

Svaka treća osoba starija od 65 godina pretrpi pad tijekom svakodnevnih aktivnosti [3]. Pad je jedan od glavnih uzroka nepokretljivosti kod starijih osoba. Čak 90% ozljeda kuka nastalo je kao posljedica pada, a 33% tih ljudi umrlo je od posljedica pada. Iz navedenih podataka je jasno kako je nužno potrebno rješenje za prevenciju i pravovremenu detekciju pada kod starijih osoba tijekom svakodnevnih aktivnosti. To na sustav postavlja zahtjeve neinvazivnosti, modularnosti, pouzdanosti i trajnosti.

Bežična senzorska mreža temeljena na akcelerometru je neinvazivno rješenje koje omogućuje kontinuirano praćenje starijih osoba i pravovremenu detekciju pada. U ovom radu opisana je izvedba jednog takvog sustava, napravljen je algoritam za detekciju pada.

Detekcija pada

4

2. Funkcije sustava

Funkcije sustava opisanog u ovom radu su: • Kontinuirano bežično mjerenje akceleracije

o A/D pretvorba podataka iz akcelerometra kako bi se dobio podatak o akceleraciji

• Detektiranje pada osobe o Algoritam koji na osnovu podataka s akcelerometra

odlučuje da li je došlo do pada ili ne Od čitavog sustava za brigu o zdravlju starijih osoba, ove

funkcionalnosti označene su na blokovskoj shemi sustava (Slika 1) crvenim okvirom. Kontinuirano mjerenje akceleracije odvija se pomoću akcelerometra koji podatke šalje Arduino platformi. Detektiranje pada osobe izvedeno je algoritmom koji je implementiran u C# aplikaciju i izvodi se na računalu. Detaljan opis korištenog sklopovlja i opis rada s pripadnim kôdom dan je u narednim poglavljima.

Slika 1: Blokovski prikaz cjelokupnog sustava

Detekcija pada

5

3. Sklopovska podrška

3.1. Akcelerometar ADXL335

Za mjerenje akceleracije u sustavu korišten je akcelerometar Analog Devices ADXL335 (Slika 2). Model mjeri akceleraciju u tri smjera (x os, y os, z os) do maksimalnog iznosa od ±3 g. Zbog malog područja rada može se koristiti za mjerenje statičkih akceleracija (gravitacija) i za mjerenje dinamičkih akceleracije (trenje, vibracije…). Osnovne tehničke karakteristike navedene su u Tablici 1.

Slika 2: ADXL335[1]

Ukoliko nije drugačije navedeno, svi podaci u tablici su navedeni za: TA=25 ˚C, VS< 3 V, akceleracija = 0g

Karakteristika Simbol Min. Tip. Maks. Jedinica Mjerno područje ±3 ±3.6 g Osjetljivost (xyz) 270 300 330 mV/g Izlaz (uz 0g - xy) XOUT, YOUT 1,35 1,5 1,65 V Izlaz (uz 0g - z) ZOUT 1,2 1,5 1,8 V Napajanje VS 1,8 3,6 V Radna temp. -40 *85 ˚C

Tablica 1: Karakteristike akcelerometra

Akcelerometar je integriran na PCB s kojeg postoje izvodi za sljedeće pinove:

• Pin 2: Self-Test (ST) • Pin 3: Uzemljenje (GND) • Pin 8: Izlaz z osi (ZOUT) • Pin 10: Izlaz y osi (YOUT) • Pin 12: Izlaz x osi (XOUT) • Pin 15: Napajanje (VS)

Detekcija pada

6

3.2. Arduino razvojna platforma

Arduino Duemilanove razvojna platforma (Slika 3) temelji se na mikrokontroleru ATmega168. Napaja se s 5V, ima 14 digitalnih ulazno/izlaznih pinova od kojih 6 podržavaju PWM izlaz. Takoñer ima 6 analognih ulaza. Podaci dovedeni na analogne ulaze obrañuje 10-bitni A/D pretvornik u mikrokontroleru. Prikaz korištenih pinova prikazan je u Tablici 2. Arduino pin Namjena

3,3 V Napajanje akcelerometra AI2 Reprogramiran u digitalni izlaz – GND za akcelerometar AI3 Izlaz akcelerometra – Z os AI4 Izlaz akcelerometra – Y os AI5 Izlaz akcelerometra – X os

Tablica 2: Korišteni pinovi Arduino platforme

Slika 3: Arduino Duemilanove razvojna platforma

Detekcija pada

7

4. Programska podrška

4.1. Kontinuirano mjerenje akceleracije

Programska podrška za kontinuirano mjerenje akceleracije nalazi se na Arduino platformi i dana je u nastavku:

/* opis spajanja pinova analog 0: - analog 1: - analog 2: ground analog 3: z-axis analog 4: y-axis analog 5: x-axis */ // podesavanje pinova const int groundpin = 16; // AI2 - GND const int xpin = 5; // x-os akcelerometra const int ypin = 4; // y-os akcelerometra const int zpin = 3; // z-os akcelerometra void setup() { // init serije Serial.begin(9600); // podesavanje GND pina pinMode(groundpin, OUTPUT); digitalWrite(groundpin, LOW); } void loop() { // citanje iznosa sa xyz // i slanje na seriju // delay od 100ms prije iduceg ocitanja Serial.print(analogRead(xpin)); Serial.print("\t"); Serial.print(analogRead(ypin)); Serial.print("\t"); Serial.print(analogRead(zpin)); Serial.println(); delay(100); }

Detekcija pada

8

4.2. Detektiranje pada osobe

4.2.1. Obrada podataka o akceleraciji

Algoritam je rañen za frekvenciju podataka br_uzoraka=10 uzorak/s. Veći broj uzoraka u sekundi je teško obrañivati zbog procesorske moći računala, dok bi korištenje manjeg broja uzoraka imalo za posljedicu premalen broj podataka o akceleraciji iz kojih se ne bi mogao ispravno i pouzdano detektirati pad. Prvi korak pripreme podatka za algoritam je preračunavanje izlazne vrijednosti u (V) u akceleraciju prikazanu u (g), gdje je 1g=9,81 m/s2, prema formuli:

• [ ] stosjetljivouVMiznosg napajanja ⋅−⋅= 21024/5_

Nakon što smo izlaz prikazali u g-ovima potrebno je u jedan podatak staviti podatke o akceleraciji u sva tri smjera. Obzirom da su akceleracije mjerene u tri okomite osi najbolji prikaz nam daje korijen sume kvadrata prema formuli:

• 222 _______ ziznosgyiznosgxiznosgrmsg ++= Primijenjeni algoritam se temelji na izračunu derivacije tj. promjene akceleracije stoga je potrebno izračunati:

• prethodnotrenutno rmsgrmsgrmsg ___ −=∆

Posljednji korak je izračun prosjeka u zadnjoj sekundi (moving average) kako bi mogli s većom sigurnošću detektirati nagle pokrete – velike promjene akceleracije.

• uzorakabrrmsgrmsgavguzorakabr

ii _/)_(__

_

1∑

=

∆=∆

U nastavku je dana C# funkcija za opisanu obradu podataka. void izracunaj_vrijednosti() { rms=Math.Sqrt(Math.Pow(x,2)+Math.Pow(y,2)+Math.Pow(z,2)); delta_rms.Add(Math.Abs(rms - rms_last)); if (delta_rms.Count >= br_uzoraka_po_sekundi) { avg_delta_rms = 0; for (int i = 0; i < br_uzoraka_po_sekundi; i++) { avg_delta_rms += delta_rms[delta_rms.Count -1 - i]; } avg_delta_rms /= br_uzoraka_po_sekundi; avg_delta_rms *= 100; } avg_delta_rms_list.Add(avg_delta_rms); rms_last=rms; }

Detekcija pada

9

4.2.2. Algoritam za detekciju pada

Primjer signala avg_∆g_rms prikazan je na Slici 4, a dio u kojem je došlo do pada – nagle promjene akceleracije označen je crvenom bojom.

Slika 4: Primjer avg_∆g_rms signala

Algoritam [2] za detekciju pada je definiran s dvije konstante: Gmin i Tmin. Vrijednosti su postavljenje na Gmin=50 i Tmin = 5. Pad je detektiran ukoliko avg_∆g_rms signal ima barem Tmin vrijednosti za redom koje su veće od Gmin. Ukoliko je taj uvjet zadovoljen dolazi do generiranja alarma. Ukoliko je više od Tmin vrijednosti veće od Gmin dolazi do više uzastopnih poruka. Kako bi se to izbjeglo napisan je kôd koji samo na posljednji u nizu alarma generira 'Pravi alarm' koji se vidi u aplikaciji i koji inicira slanje SMS poruke. Za detekciju posljednjeg alarma koristi se pomoćna zastavica A. Svi padovi zajedno s vremenom spremaju se u datoteku Log_padova.txt kako bi ih se naknadno moglo pregledati. Okvirni izgled datoteke i C# kôd za opisani algoritam dan je u nastavku.

[02.06.2010 14:31:47] Pad

[05.06.2010 18:39:51] Pad

[07.06.2010 22:21:55] Pad

Detekcija pada

10

double Gmin = 50;

int Tmin = 5;

bool alarm = false;

if(avg_delta_rms_list.Count>Tmin)

{

if(avg_delta_rms_list[avg_delta_rms_list.Count -1] > Gmin)

{

alarm = true;

foreach(double x in

avg_delta_rms_list.Skip(avg_delta_rms_list.Count-Tmin))

{

if(x < Gmin)

alarm = false;

}

}

if (alarm)

{

A = true;

}

else

if (A == true)

{

A = false;

if (File.Exists("Log_padova.txt"))

log_padova= File.AppendText("Log_padova.txt");

else

log_padova = File.CreateText("Log_padova.txt");

log_padova.WriteLine("[" + "{0:MM/dd/yyy HH:mm:ss}" + "] Pad", DateTime.Now);

log_padova.Close();

}

}

Osim napisanog kôda u istoj funkciji postoje linije kôda koje služe za signalizaciju alarma u aplikaciji.

Detekcija pada

11

5. Zaključak

Opisani sustav pouzdano može detektirati pad osobe. No podatak da je već došlo do pada ipak ograničava našu mogućnost djelovanja. Sljedeći korak u usavršavanju ovog sustava svakako je primjena naprednijih algoritama i korištenje većeg broja akcelerometara, kako bi se na osnovu kretanja osobe te položaja mogla detektirati mogućnost pada, a ne sam pad. Korištenjem jednog akcelerometra možemo dobiti podatak o padu, ali informacija s većeg broja akcelerometara omogućuje izradu algoritma koji pretpostavlja da bi u sljedećih nekoliko minuta moglo doći do pada. Taj algoritam bi obuhvaćao i analizu kretanja osobe u svrhu detekcije pada, ali bi pravovremenim alarmom dao dovoljno vremena za reakciju i sprječavanje pada. Nakon implementacije takvog algoritma ovaj sustav može biti od pomoći svima koji u obitelji imaju starije nemoćne osobe koje imaju potrebe za većom pažnjom i pomoći pri svakodnevnom životu.

Detekcija pada

12

6. Literatura

[1] ADXL335: Small, Low Power, 3-Axis ±3 g Accelerometer, http://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf

[2] Ryan T., Venkatesan, Accelerometer-Based Human Abnormal Movement Detection in Wireless Sensor Networks, University of Texas at Dallas, 2007.

[3] Torrent M., Bourke A., Parra X., Catala A., Ambulatory Mobility Characterization Using Body Inertial Systems: An Application to Fall Detection, Technical University of Catalonia, 2009

Detekcija pada

13

7. Pojmovnik

Pojam Kratko objašnjenje

Više informacija potražite na

Akcelerometar Senzor akceleracije

http://en.wikipedia.org/wiki/Accelerometer

http://www.dimensionengineering.com/accelerometers.htm

ZigBee Bežični komunikacijski protokol

http://en.wikipedia.org/wiki/ZigBee

http://www.digi.com/technology/rf-articles/wireless-zigbee.jsp