Integracija naprav za merjenje spremenljivosti srčnega utripa (HRV) voznika v simulator vožnje Timotej Gruden Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška cesta 25, 1000 Ljubljana E-pošta: timotej.gruden. si@ieee. org Integration of devices for measuring drivers' heart rate variability (HRV) in a driving simulator Abstract. In this paper I present the process of integrating two different devices for measuring drivers' physiological signals into a driving simulator. Heart rate variability (HRV) is found to be a promising parameter in describing drivers' state. We used Bittium's Faros 360 and Empatica 's E4 devices for measuring HRV through ECG or PPG respectively. The NERVteh 's driving simulator demanded smooth process of starting / ending measurements and simulation. Both Empatica and Faros 360 have different operating modes of which both provide an option for streaming data via Bluetooth. Application Programming Interfaces (APIs) for communication between systems were defined and prototypes for integration were developed. Our work was done in C#. At the end we tested our integration with a user study that reported on measuring drivers' physiological signals. No problems with integration were found. 1 Uvod in pregled področja Analiza in pregled stanja varnosti v cestnem prometu za leto 2017 [1] kažeta, da smo imeli na cestah Republike Slovenije v zadnjih petih letih med 17500 in 19000 prometnih nesreč vsako leto. Izmed teh smo samo v zadnjem letu (2017) zabeležili 104 prometne nesreče s smrtnim izidom in 7901 nesrečo z lažjimi ali hujšimi telesnimi poškodbami. Z vidika števila prometnih nesreč in posledic je bilo leto 2017 »najvarnejše« izmed zadnjih petih let. Javna agencija Republike Slovenije za varnost prometa (AVP) navaja celo, da je bilo število umrlih v preteklem letu najmanjše v zadnjih 60 letih. K postopnem zmanjševanju števila nesreč in posledičnem izboljšanju varnosti v cestnem prometu gotovo močno pripomore razvoj novih tehnologij. Študije kažejo, da lahko s proučevanjem podatkov o voznikih (demografski podatki, fiziološki signali, upoštevanje predpisov, navade ipd.) definiramo različne razrede varnosti voznikov. [2] primerja demografske podatke z uporabo varnostnih mehanizmov v avtomobilu (varnostni pas, omejitev hitrosti, ...) in zavrača mnogo stereotipov. Študija [3] v simulatorju vožnje je pokazala, da imajo ljudje z motnjo pozornosti zaradi hiperaktivnosti (ADHD) več možnosti za povzročitev prometne nesreče kot ostali. Študija [4] z uporabo mobilnega telefona zajema parametre vožnje posameznika in ga ob tem opozarja na določene kritične trenutke. Z zajemom fizioloških signalov voznikov želijo raziskovalci zaznati predvsem vpliv stresa na vožnjo [5] in ga na različne načine analizirati [6]. Fiziološki signali (predvsem EEG in EKG) so uporabni tudi za merjenje utrujenosti voznikov, ki bi lahko privedla do prometne nesreče [7]. Skratka, različnim meritvam signalov se pri analizi in profiliranju voznikovega obnašanja ne moremo izogniti. Poleg meritev, ki jih že opravlja vozilo samo (hitrost, čas vožnje, ...), so nujno potrebne tudi meritve signalov voznikov. Med njimi najpogosteje merimo srčno aktivnost (srčni utrip, spremenljivost srčnega utripa - HRV), možgansko aktivnost, prevodnost kože, telesno temperaturo in velikost zenice. Za proučevanje srčne aktivnosti se v zadnjem času vedno pogosteje pojavlja spremenljivost srčnega utripa (angl. Heart Rate Variability - HRV). Ta se izkazuje kot najuspešnejša nemoteča metoda za merjenje delovanja avtonomnega živčnega sistema, še posebej parasimpatičnega živčevja [8]. Raziskave HRV signalov so že tako razširjene, da obstaja mnogo priporočil, kako kar najbolje načrtovati študije, katere spremenljivke kažejo na statistično pomembne razlike ipd. [9]. V pričujočem delu predstavljam, kako smo naprave za merjenje HRV integrirali v simulator vožnje. V sodelovanju s podjetjem NERVteh [10] želimo namreč profilirati različne vzorce obnašanja voznikov skozi simulacijo. Uporaba simulacije za poustvarjanje kritičnih dogodkov je povsem na mestu, saj je izpostavljanje voznikov nevarnostim v resničnem vozilu praktično neizvedljivo ne samo zaradi nevarnosti temveč tudi zaradi dejstva, da se kritične situacije dogajajo ob časovno nepredvidljivih trenutkih. Za razumevanje HRV signala v naslednjem poglavju na hitro opisujem delovanje srčne mišice in metode za njegovo merjenje, nato predstavljam uporabljeni dve napravi za merjenje HRV, v četrtem poglavju pa povzemam zahteve za integracijo naprav v simulator. Peto poglavje opisuje dogovorjeni način uporabe vmesnikov za komunikacijo med simulatorjem in sistemom za zajem fizioloških signalov, sledeče (6.) pa predstavlja njihovo izvedbo. V zaključnem poglavju je podanih še nekaj možnosti za nadaljnje delo. 2 Delovanje srčne mišice Bistvena posledica delovanja srca je pošiljanje oz. razširjanje krvi po žilah. Pri tem se srčna mišica krči in razteza ter poleg tega oddaja električen signal značilne oblike. ERK'2018, Portorož, 479-482 479 2.1 Elektrokardiografija (EKG) Že davno odkrita metoda za merjenje lastnosti delovanja srca je elektrokardiografija (EKG). Navadno z večjim številom elektrod, postavljenih okoli srca opazovanca, zaznavamo spremembe v električnem potencialu -električno napetost. V EKG signalu se periodično z vsakim utripom pojavlja značilen PQRST vzorec. Posamezna črka predstavlja posamezno točko v signalu. Za nas je tokrat pomemben samo vrh posameznega vzorca - točka R. 2.2 Optična pletizmografija (PPG) Druga možnost za merjenje srčne aktivnosti je novejša metoda optične pletizmografje (angl. photoplethysmo-graphy - PPG), ki z meritvijo absorpcije svetlobe (navadno različnih barv) v arterijah meri pulz krvne prostornine (angl. Blood Volume Pulse - BVP). Meritev se zaradi neinvazivnosti najpogosteje izvaja na zapestju. V signalu je možno zaznati vrhove in doline, ki predstavljajo posamezne udarce srca. 2.3 R-R interval in IBI Kot že omenjeno, lahko z namenskimi algoritmi v vzorcu EKG signala določimo posamezne značilne točke. Iz njih lahko izračunamo posamezne intervale, ki se v raziskavah pojavljajo bodisi kot odvisne bodisi kot neodvisne spremenljivke. Nam najpomembnejši signal je zaporedje dolžin časovnih intervalov med dvema točkama R, tj. R-R intervalov. Obratna vrednost teh predstavlja trenutno frekvenco srčnega utripanja. Naprave, ki ne merijo EKG signala, navadno podajajo interval med udarci (angl. Inter-Beat Interval -IBI), ki ga pridobijo z metodo PPG ali kako drugače. Lastnosti IBI so primerljive R-R intervalom, niso pa popolnoma enake (lahko pride do razlik zaradi različne dolžine poti krvi, elastičnosti žil ipd.). 2.4 Spremenljivost srčnega utripa (HRV) Pomembno je omeniti tudi, da interval med zaporednimi udarci srca še zdaleč ni konstanten. Ta pojav imenujemo spremenljivost srčnega utripa (angl. Heart Rate Variability - HRV). Zanimiva značilnost HRV signala je, da se R-R intervali krajšajo med vdihom in daljšajo med izdihom zraka (respiratorna sinusna aritmija). 3 Napravi za merjenje HRV Za uporabo v simulatorju vožnje na čim večjem številu ljudi je še posebej pomembno, da uporabljene naprave omogočajo neinvazivne tehnike merjenja. Pri načrtovanju integracije smo se zato odločili za Faros 360 s tekstilnim trakon, ki ga preprosto namestimo pod prsi, in Empatico E4, ki jo namestimo na zapestje nedominantne roke voznika. 3.1 Faros 360 Produkt finskega podjetja Bittium, tj. Faros [11], je majhna naprava, ki jo pritrdimo na nosljive elektrode. Prav zaradi svoje majhnosti jo lahko povsem neopazno nosimo pod obleko skozi vsakdan. Proizvajalec ponuja tri različice naprave: 90, 180 in 360; uporabili smo le Faros 360, saj samo ta ponuja komunikacijo preko bluetooth vmesnika. Faros vsebuje EKG senzor, ki lahko deluje s frekvenco vzorčenja do 1000 Hz, pospeškometer s frekvenco vzorčenja do 100 Hz in temperaturni senzor. Poleg surovih podatkov podaja še R-R intervale, izmerjene v milisekundah. 3.2 Empatica E4 Med napravami, ki se pritrdijo na zapestje, je Empatica E4 [12] ena izmed redkih raziskovalnih naprav s certifikatom za uporabo v medicinske namene. Vsebuje 3-osni pospeškometer s frekvenco vzorčenja 32 Hz, optični infrardeči temperaturni senzor s frekvenco vzorčenja 4 Hz, posrebreni elektrodi za merjenje galvanskega odziva (električne prevodnosti) kože in senzor optične pletizmografije (PPG). Z njim meri BVP in iz njega preračunava IBI, v kolikor je to mogoče. 4 Zahteve za integracijo Delovanje simulatorja vožnje NERVteh mora biti zaradi uporabe naprav za merjenje HRV popolnoma nemoteno. Pred vstopom v simulator uporabnikom namestimo napravi in ju prižgemo. Po tem z njima ne smemo biti več v fizičnem stiku, dokler ju uporabnik ne preneha uporabljati. Tudi sam sistem za delovanje simulatorja naj bi bil pripravljen po filozofiji »one-click«, kjer lahko z enim klikom brez inženirskega poznavanja delovanja tehnologije sprožimo celotno simulacijo, ki vključuje tudi merjenje fizioloških signalov. Potrebi po nameščanju naprav in prižigom vsake posebej se na žalost ne moremo popolnoma izogniti, lahko pa ju poskusimo kar se da olajšati. 4.1 Možnosti simulatorja Simulator NERVteh uporablja program Oktal Scanner Studio [13] za izvajanje simulacije in različnih scenarijev. Za zagon in upravljanjem z njim so inženirji pri NERVtehu razvili svojo rešitev, poimenovano OktalControl. Izvajalni operacijski sistem je Winodws 10, OktalControl je bil razvit v .NET tehnologiji (C#). Programski vmesnik za komunikacijo s simulacijo (Oktal) je izdan samo za jezik C#. 4.2 Možnosti Farosa 360 Faros ponuja dva načina delovanja. Prvi, nepovezani način, shranjuje izmerjene surove podatke na notranji pomnilnik naprave. Po končani meritvi jih moramo ročno preko USB prenesti na računalnik in pretvoriti v format, primeren za nadaljnjo analizo. Drugi način omogoča povezavo Farosa in simulatorja s tehnologijo bluetooth. Napravi se brez težav seznanita, na računalniku se ustvarijo nova navidezna zaporedna vrata za komunikacijo (COM port). Komunikacijski protokol je podrobneje opisan v Bittiumovem dokumentu št. 810378. Z računalnika 480 lahko nastavimo parametre meritev (merjene veličine in frekvence vzorčenja) ter zaženemo meritev. Faros nato vsakih 200 ms pošlje paket z do tedaj zbranimi surovimi podatki. Ostalih omejitev glede uporabe programskih jezikov oz. operacijskih sistemov ni, saj je za uporabo naprave potrebno le pošiljanje in prejemanje podatkov z navideznih zaporednih vrat. Potrebuje pa računalnik delujoč bluetooth vmesnik. 4.3 Možnosti Empatice E4 Podobno kot Faros, tudi Empatica E4 ponuja način brez povezave, t. i. snemalni način. Ta se vključi, če v roku 20 sekund po prižigu naprava ne zazna nobene vhodne povezave. Podatke iz snemalnega načina preko USB z uporabo namenske aplikacije E4 manager prenesemo na spletno platformo E4 connect od koder jih lahko prenesemo na računalnik v obliki csv datoteke. Empatico E4 lahko uporabljamo tudi v kombinaciji z mobilnimi napravami. Na voljo sta aplikaciji, ki podatke prenašata v spletno platformo, ter razvojni orodji (angl. Software Development Kit - SDK) za Android in iOS. Povezava z mobilnimi napravami poteka preko BLE -Bluetooth Low Energy. Za razvoj lastne aplikacije mora razvijalec pridobiti API ključ, ki se preveri ob vsakokratni povezavi Empatice z mobilno napravo. Slaba stran tega je, da je internetna povezljivost posledično pogoj za vzpostavitev povezave z napravo. Tretja možnost je povezava Empatice E4 z Windows računalnikom preko posebnega BLE vmesnika [14] in namenskega programa (pretočnega strežnika). Na pretočni strežnik se lahko povežemo s predhodno nastavljenimi TCP vrati. Kot omenjeno, za uporabo te možnosti potrebujemo operacijski sistem Windows. 5 Aplikacijski programski vmesniki (APIs) Za neodvisen razvoj posameznih elementov integracije in zagotovilo delovanja končnega produkta je potrebno dobro definirati vmesnike in postopke komunikacije tako med napravami kot tudi med deli programov. 5.1 Razredi »Manager« Za vsako izmed naprav smo naredili svoj razred »Manager« (»FarosManager« in »EmpaWinManager«), ki upravlja s posamezno napravo. Ostali deli celote lahko do naprave dostopajo samo preko teh razredov. Dogovorili smo se, da se ob prižigu simulatorja vožnje iz Manager razreda ustvari objekt, nad njim pa je potrebno za povezavo naprave (npr. ob pritisku gumba) klicati funkcijo »connect()«. Za začetek oz. konec meritve je določena posebna funkcija »startComm()« oz. »stopComm()«. Če ob koncu vožnje naprave ne bomo več uporabljali, lahko povezavo prekinemo s klicem funkcije »disconnect()«. 5.2 Vmesnik »Listener« Določiti je potrebno še sprejem oz. shranjevanje pridobljenih podatkov. Podjetje je za takojšnjo obdelavo izrazilo željo po shranjevanju v realnem času oz. najkasneje ob zaključku posamezne vožnje. Za vsako napravo smo se tako dogovorili za vmesnika (angl. interface) »Listener« (»FarosListener« in »Empa-Listener«), ki določata po eno funkcijo za vsako vrsto podatka, ki ga je poslala naprava. Razvijalec je moral nato sam izvesti vmesnik in tako v njem določiti, kaj bo storil s prebranimi podatki (npr. shranil). Prej omenjena razreda Manager vsebujeta tudi funkciji »addListener(Listener)« oz. »removeListener (Listener)«. Za uporabo naj bi najprej v obliki novega objekta izvedli vmesnika in ju dodali razredoma Manager. Ta ob sprejemu vsakega podatka z naprave kliče ustrezno funkcijo na vseh dodanih vmesnikih. 5.3 Časovna sinhronizacija Faros ne ponuja možnosti časovnih žigov, zagotavlja pa, da bo znotraj vsake sekunde poslal 5 paketov s točno določeno vsebino - podatki vnaprej določene dolžine. Empatica sicer sproti ob vsakem vzorcu meritve pošilja časovne žige, a je sinhronizacija le teh s simulatorjem zelo težka. Proizvajalec sicer trdi, da se uri sinhronizirata ob priklopu USB povezave, a po izkušnjah sodeč ostaneta sinhronizirani le za kratek čas. V izogib težavam smo se dogovorili, da bo simulator (računalnik) glavni časovni izvor. Pri shranjevanju surovih podatkov iz merilnih naprav bomo ob prvem prejetem vzorcu zapisali čas s simulatorja, ostale časovne žige pa bomo preračunali glede na frekvenco vzorčenja posameznega podatka. Pri podatkih, kjer ta ni določljiva, se uporabi čas sprejetja na simulatorju. 6 Integracija Glede na dejstvo, da je NERVtehov nadzorni program za simulacijo narejen v programskem jeziku C#, smo tudi ostale elemente za lažjo integracijo pripravili v istem jeziku. 6.1 FarosManager Izdelani razred FarosManager predpostavlja, da med računalnikom in Farosom 360 že obstaja bluetooth povezava in z njo navidezna zaporedna vrata. Prej omenjena funkcija connect() se trenutno pokliče samodejno ob ustvarjenem novem objektu FarosManager. Ta preko zaporednih vrat odpre povezavo z bitno hitrostjo 115200 bit/s in poizve po identifikacijski številki naprave, ki jo zapiše v dnevniško datoteko. Za predvideno delovanje moramo narediti še razred, ki bo vključeval vmesnik FarosListener. Ta predvideva dve možnosti pridobivanja in shranjevanja podatkov. Sprejema lahko celotne pakete vzorcev, ki jih Faros pošlje vsakih 200 ms, ali pa vzorce posameznih signalov, ki jih FarosManager že izlušči iz paketa. Prednost zadnjega načina je, da se razvijalcu ni potrebno še enkrat obremenjevati z nastavitvami naprave, številom vzorcev posameznega signala in izračunom CRC, za kar poskrbi FarosManager. Razred, ki vključuje vmesnik FarosListener, moramo seveda dodati FarosManagerju s funkcijo addFarosListener(). Ob klicu funkcije za začetek meritve FarosManager preko zaporednih vrat pošlje ukaz za začetek meritve v nepovezanem načinu in zažene bralno zanko, ki prebira 481 podatke in jih razporeja v pakete. Iz vsakega prebranega paketa glede na nastavitve naprave in specifikacijo protokola izlušči vzorce posameznega signala in jih posreduje vsem dodanim Listener objektom. Funkcija za zaključek meritve pošlje Farosu ukaz za zaključek in prekine bralno zanko. Če naprave ne bomo več uporabljali, kličemo še funkcijo disconnect(), ki sprosti navidezna zaporedna vrata. Poleg naštetih funkcionalnosti lahko FarosManager še preveri trenutne nastavitve naprave, pošlje nove nastavitve ali sproži utrip svetlečih diod na Farosu. 6.2 EmpaWinManager Izdelani razred EmpaWinManager predpostavlja, da na računalniku teče namenski program Empatica BLE Server (pretočni strežnik), s katerim je Empatica E4 že povezana. Ob ustvarjenem objektu EmpaWinManager se vzpostavi TCP povezava na 127.0.0.1:28000, kjer je dostopen pretočni strežnik. Ob klicu funkcije connect() EmpaWinManager preveri, katere E4 naprave so povezane na pretočni strežnik, in se poskuša povezati na prvo izmed njih. Ob klicu funkcije startComm() za začetek meritve se EmpaWinManager pri pretočnem strežniku naroči (angl. subscribe) na vse možne pretočne signale. Vmesnik EmpaListener predvideva ločene funkcije za vsakega izmed merjenih signalov, ki se kličejo ob vsakem sprejetem vzorcu. Podatki se vedno pošiljajo vsem dodanim vmesnikom. Ob zaključku meritve se EmpaWinManager le odjavi (angl. unsubscribe) od prejemanja pretočnih podatkov. Funkcija disconnect() zapre TCP povezavo s pretočnim strežnikom, E4 pa nanj ostane povezana. 6.3 Testiranje delovanja Integracijo obeh naprav skupaj smo prvič preizkusili v uporabniški študiji: Razlike med fiziološkimi signali voznikov v različnih situacijah [15]. Ta je pokazala, da komunikacija med napravami in njihova uporaba potekata gladko. Več težav povzroča sam program za nadzor simulacije, OktalControl, še več pa simulacijsko ogrodje Oktal Scanner Studio. Zadnja dva sta bila vzroka večine težav. Poudariti je potrebno tudi, da kljub uspešni integraciji Empatica E4 za meritve HRV med vožnjo ni vedno najbolj primerna. Med mirovanjem voznika naprava podaja verodostojne rezultate meritev, med gibanjem (npr. zavijanjem, prestavljanjem, ...) pa so podatki pomanjkljivi. Verjetno notranji algoritem za izračun IBI ni dovolj robusten, premiki pa vnesejo preveč motenj v BVP signal. Faros 360 ne povzroča nobenih težav. 7 Zaključek in nadaljnje možnosti Za konec naj omenim še, da samo delujoča integracija dveh sistemov nikakor ni zadosten pogoj za delovanje sistema. Vedno se je potrebno zavedati omejitev, tako iz fizikalnega ozadja, kot zaradi človeka, ki bo dani sistem upravljal. Vsaka uporaba simulatorja vožnje z napravami za merjenje fizioloških signalov voznikov mora biti vnaprej dobro premišljena, da teh omejitev ne preseže. V nadaljevanju želimo dobljeni produkt uporabiti za zajem množice podatkov večjega števila ljudi. Z nadaljnjo obdelavo bomo poskušali poiskati tiste lastnosti fizioloških signalov voznikov, ki čim bolje odražajo lastnosti vožnje oz. nanjo pomembno vplivajo. Literatura [1] Javna agencija Republike Slovenije za varnost prometa. Analiza in pregled stanja varnosti v cestnem prometu za leto 2017. https://www.avp-rs.si/ (30. 6. 2018). [2] Shinar, D. et al. (2001). Self-reports of safe driving behaviors in relationship to sex, age, education and income in the US adult driving population. Accident Analysis & Prevention, 33(1), 111-116. [3] Fischer, M. et al. (2007). Hyperactive children as young adults: Driving abilities, safe driving behavior, and adverse driving outcomes. Accident Analysis & Prevention, 39(1), 94-105. [4] Fazeen, M. et al. (2012). Safe driving using mobile phones. IEEE Transactions on Intelligent Transportation Systems, 13(3), 1462-1468. [5] Healey, J., & Picard, R. W. (2005). Detecting stress during real-world driving tasks using physiological sensors. IEEE Transactions on intelligent transportation systems, 6(2), 156-166. [6] Singh, R. R. et al. (2013). A comparative evaluation of neural network classifiers for stress level analysis of automotive drivers using physiological signals. Biomedical Signal Processing and Control, 8(6), 740-754. [7] Roman, B. et al. (2001, October). Fatigue indicators of drowsy drivers based on analysis of physiological signals. In International Symposium on Medical Data Analysis (pp. 62-68). Springer, Berlin, Heidelberg. [8] Sztajzel, J. (2004). Heart rate variability: a noninvasive electrocardiographic method to measure the autonomic nervous system. Swiss medical weekly, 134(35-36). [9] Laborde, S. et al. (2017). Heart rate variability and cardiac vagal tone in psychophysiological research-recommendations for experiment planning, data analysis, and data reporting. Frontiers in psychology, 8, 213. [10] NERVteh. https://www.nerv-teh.com/ (4. 7. 2018). [11] Bittium Faros 360. https://www.bittium.com/ (3. 7. 2018). [12] Empatica E4. https://www.empatica.com/research/e4/ (4. 7. 2018). [13] Oktal. Simulation in Motion. http://www.oktal.fr/en/ automotive/range-of-simulators/software (19. 6. 2018). [14] Bluegiga BLED112 Bluetooth® Low Energy Dongle. https://www.silabs.com/products/wireless/bluetooth/bluet ooth-low-energy-modules/bled112-bluetooth-smart-dongle (4. 7. 2018). [15] Gruden, T. (2018). Uporaba komercialno dostopnih naprav za merjenje fizioloških signalov voznikov. Pridobljeno od https://repozitorij.uni-lj.si/IzpisGradiva .php?lang=slv&id= 101771 (13. 7. 2018). 482