ERK'2021, Portorož, 31-34 31 Platforma za podporo senzorskih sistemov v športu Matevž Hribernik, Andrej Kos, Urban Sedlar, Anton Kos Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška 25, Ljubljana, Slovenija E-pošta: matevz.hribernik@fe.uni-lj.si Support platfrom for sensor systems in sport Abstract. Biomechanical systems and applications in sport and rehabilitation regularly use a variety of sensors to measure different physical quantities. Sensors can produce large amounts of data that have to be stored for post-processing and analysis. Generally, each application has its own operation specific data flow and storage solution. Applications have their own database and communication protocol. In this paper, we present a solution to this problem in a form of a universal data model, which can be used in any sensor- based application. We propose a cloud platform architecture that allows for the manipulation of various forms of sensor data and metadata. Signals and (meta)data that are associated with biomechanical systems are presented to underline the problem of universality; we present platform requirements and development of a cloud platform architecture for such systems. As an example, we present the use of the platform for our precise shooting application. 1 Uvod V športu in fizični rehabilitaciji je uporaba nosljivih senzorskih naprav v zadnjih letih v velikem porastu. Biomehanske aplikacije z nosljivimi napravami in sistemi so navadno namenjene le eni nalogi, podobne rešitve pa ne omogočajo primerjave in izmenjave podatkov med različnimi proizvajalci naprav in raziskovalci [1]–[3]. Komercialne naprave so navadno vezane na lastne aplikacijske rešitve za specifične gibe in aktivnosti. Predlagana platforma za shranjevanje in obdelavo podatkov rešuje ta problem in omogoča različnim sistemom in napram uporabo enake rešitve za shranjevanje, obdelavo in primerjavo podatkov. Gre za podporno rešitev, ki ne omogoča vseh specifičnih zmožnosti, je pa tovrstna platforma pomembna, pri razvoju biomehanskih sistemov in aplikacij. Glavna motivacija za razvoj platforme, podatkovne strukture in implementacije posameznih delov platforme, je dejstvo, da trenutne aplikacije [4] uporabljajo lastno računalniško aplikacijo za obdelavo in shranjevanje senzorskih podatkov in metapodatkov. Aplikacije se večinoma ločijo zgolj po računalniški aplikaciji za zajem in shranjevanje podatkov, ne pa tudi po senzorjih in senzorskih napravah, ki so večinoma podobne ali celo enake. Predlagana spletna platforma omogoča univerzalno storitev vnosa in shranjevanja ter jo lahko uporabljajo različne biomehanske aplikacije, ne glede na vrsto senzorja in lastnega delovanja. Glavni cilj naših raziskav je načrtovanje, zasnova in izvedba spletne platforme za biomehanske sisteme in aplikacije, ki je enostavna za uporabo, tako za profesionalne kot tudi za tehnično manj izkušene uporabnike. Cilj in želja je poenotiti podatkovni model in ga narediti enakega za vse vrste aplikacij. Podobne platforme in podatkovne strukture, vendar v manj splošni obliki, so že razvile druge raziskovalne skupine [5]–[7]. Gre predvsem za specifične oblačne rešitve za točno določeno športno aktivnost. Naš cilj je prilagodljiva platforma, ki je uporabna v različnih športnih in rehabilitacijskih aplikacijah. Kljub splošnim podobnostim med aplikacijami, se pri različnih športih in fizičnih aktivnostih pod različnimi pogoji uporabljajo različni senzorji. Podatki iz senzorjev so posredovani na različne naprave oz. oblačne storitve. V tem prispevku opisujemo proces načrtovanja in razvoja podporne platforme za senzorske sisteme v športu – predstavimo potrebne funkcionalnosti, programsko arhitekturo ter delovanje platforme. 2 Funkcionalnosti platforme Pri načrtovanju platforme smo najprej določili zahteve, ki izhajajo iz obstoječih aplikacij za zajem kinematičnih parametrov gibanja in začetnih poskusov s področja biomehanske povratne vezave [8]. Namen nove platforme je enovitost interakcije različnih aplikacij za namen shranjevanja, analize in prenosa podatkov ter tudi možnost uporabe obstoječih aplikacij z novo platformo. Pri načrtovanju smo se zgledovali predvsem po sistemih, ki vključujejo nosljive povezane senzorske naprave [9]. 2.1 Signali in podatki V biomehanskih sistemih se uporabljajo različni senzorji za zajem kinematike in kinetike telesa in posameznih telesnih delov. Poznamo več različnih vrst senzorjev: nosljive kinematične senzorje, merilnike napetosti, merilnike sile, sisteme za optično zaznavo gibanja in druge. Tipični kinematični senzor je sestavljen iz pospeškometra in žiroskopa, ki jima je pogosto dodan tudi magnetometer. Vsak od navedenih senzorjev meri določene fizikalne količine, na nekem dinamičnem območju in z neko izbrano vzorčevalno frekvenco, ki predstavljajo metapodatke senzorja. Podatki iz teh senzorjev so vzorčeni signali oz. časovne vrste, katerih dolžina je odvisna od namena uporabe. Iz senzorjev, ki temeljijo na binarni zaznavi, kot so npr. optična vrata ali senzorji pritiska, lahko pri gibanju opazujejo dogodke, ki so vezani na čas in prostor. Tako signali kot dogodki, so podatki iz senzorjev in so vezani na posamezni gib oz. aktivnost. 32 O merjeni aktivnosti pa je potrebno navesti tudi metapodatke. Vsaka meritev je vezana na posamezni šport ali vajo pri rehabilitaciji. Vsako meritev v tej fazi razvoja platforme opredeljujemo kot eksperiment z določenimi parametri in pogoji. Pomembno informacijo pri kasnejši analizi predstavljajo tudi osebni podatki športnika oz. pacienta ter druge spremenljive karakteristike telesa in telesne pripravljenosti osebe. 2.2 Obdelava podatkov Spletna platforma mora biti sposobna sprotne obdelave zahtev iz senzorskih naprav, kot tudi s strani uporabnikov. Prav tako mora uporabnikom omogočati kasnejšo analizo, prikaz signalov in izvoz zajetih rezultatov ter signalov. Slednje je zelo pomembno za natančno analizo s strani domenskih strokovnjakov. 2.3 Shranjevanje podatkov Podatki so najpomembnejši del vsake spletne in oblačne platforme. Predstavljena platforma mora biti sposobna sprejeti, shraniti, obdelati in posredovati podatke glede na potrebe specifične aplikacije. Podatkovna zbirka in datotečni sistem, ki sta uporabljena za shranjevanje podatkov in metapodatkov morata biti primerna za obdelavo velikih količin podatkov. 2.4 Interakcija s podatki S podatki, ki jih hrani platforma, imajo interakcijo tako uporabniki kot povezane aplikacije. Temu je namenjen specifičen aplikacijski programski vmesnik - API (ang. Application Programming Interface). To omogoča, da platformo uporablja več oddaljenih naprav in tudi različne aplikacije za upravljanje. Platforma podpira dve vrsti API-jev: vnosne (ang. ingest) in uporabniške. Vnosni skrbi za naprave in uporabnike, ki posredujejo nove podatke v platformo, jih primerno preveri, ter skrbi, da se ustrezno shranijo. Uporabniški pa omogoča uporabnikom in aplikacijam interakcijo s podatki in rezultati obdelave. 3 Arhitektura Platforma je načrtovana za strežbo različnih naprav in uporabnikov. Na sliki 1 je predstavljena visoko nivojska arhitektura predlagane platforme. V osnovi je ločena na štiri dele:  vnosni API, ki omogoča komunikacijo z več napravami in protokoli,  spletno upravljanje za operaterja,  bazo podatkov in datotečni sistem za shranjevanje podatkov,  obdelava in izvoz podatkov s pomočjo uporabniškega API-ja. Platforma je neodvisna od vrste senzorske naprav, ni pa neodvisna od oblike v kateri naprave pošiljajo podatke platformi preko vnosnega API-ja. Spletni strežnik Node.js Senzorska naprava Pametna (športna) oprema Baza podatkov - Neo4j Datotečni sistem Operater platforme Športnik Trener/terapevt Področni strokovnjak Nosljiva brezžična naprava Vnosni API – senzorske naprave Upravljavski API Shranjevanje Uporabniški API – izvoz in obdelava Slika 1 Visoko nivojski prikaz arhitekture predlagane platforme. Posebej so poudarjeni trije ločeni vmesniki za komunikacijo s platformo: vnosni, upravljavski in uporabniški vmesnik, ter strežniški del, ki je sestavljen iz shranjevalnega dela in spletnega strežnika. 3.1 Sestavni deli platforme Vse komponente platforme, ki so povezane v celoto, zagotavljajo univerzalno izkušnjo, za naprave, razvijalce in uporabnike, neodvisno od izbrane aplikacije in vrste senzorskih naprav. Platforma deluje kot univerzalno orodje za shranjevanje in urejanje podatkov. Platforma ima dve vstopni mesti za interakcijo s podatki, eno je namenjeno senzorskim napravam, drugo pa uporabnikom. Podatki iz senzorskih naprav so posredovani v obliki strujanja (ang. streaming) kot enakomerno vzorčeni signali, ali pa kot asinhroni dogodki. Podatki iz različnih, v poskusu sodelujočih, naprav so lahko sinhronizirani, ali pa ne. Podatke senzorske naprave pošiljajo neposredno na platformo v tekstovni obliki, ki jo aplikacije trenutno uporabljajo, in je v večini primerov podobna. Struktura in zaporedje podatkov v paketih, in tudi samo paketi, so prilagojeni obstoječim senzorjem in aplikacijam. V primeru kasnejše spremembe zahtev bo potrebno razširiti funkcionalnosti vnosnega API-ja. Nekatere meritve so izvedene tudi s shranjevanjem vzorčenih signalov neposredno v senzorsko napravo. Platforma podpira tudi tovrstne meritve, ki jih je mogoče naknadno uvoziti v platformo. Pri meritvah, ki so del že obstoječih prototipnih naprav in aplikacij ter vsebujejo neko vrsto baze podatkov, pa je mogoče podatke prenesti s pomočjo specifičnega orodja, ki poveže podatke in metapodatke iz obstoječe baze podatkov, v strukturo potrebno za platformo. 33 S pomočjo upravljavskega API-ja je mogoče platformo nadzirati in urejati. Na primer, dodajanje nove meritve iz senzorske naprave. Uporaba tega API-ja je mogoča preko spletne upravljavske aplikacije, ali preko API klicev iz druge aplikacije. Upravljavski API omogoča tudi vnos metapodatkov in parametrov, na primer o novih meritvah. Odvisno od aplikacije, pa lahko operater uredi oz. vnese podatke o udeležencu, določi vrsto naprave in senzorje, ter jih poveže z eksperimentom. Glavna naloga operaterja je pričetek in zaključek meritve oz. zbiranje podatkov iz senzorskih naprav. Operater lahko glede na aplikacijske zahteve tudi vnaša in izvaža podatke s platforme odvisno od dodeljenih pravic. Sensor type Device type Sensor Device Experiment Activity Measurment Subject User Subject properties Sensor data TYPE_OF TYPE_OF TYPE_OF STATE_AT INCLUDED_IN USED_IN TESTING CREATED IS_USING DATA_OF DATA_OF DATA_OF Slika 2 Definicija podatkov povezanih v podatkovni bazi Neo4j, ki sledi podatkovnemu modelu. Najprej so definirani senzorji (Sensor type, Sensor) in udeleženci v eksperimentu (Subject, Subject properties), nato naprave (Device Type, Device) uporabljene v eksperimentu, le ta pa pripada eni izmed aktivnosti (Activity). Mertiev (Measurment) je enkratna izvedba eksperimenta z določeno osebo. Vsaka meritev ustvari enega ali več senzorskih signalov (Sensor data), ki so vezani na ustrezno napravo in senzor. Podatki in metapodatki so shranjeni v dveh podatkovnih shrambah. Metapodatki so vsebovani v obliki usmerjenega grafa, kot je prikazano na sliki 2 in so shranjeni v bazi podatkov Neo4j [10]. Podatki pridobljeni s senzorji pa so shranjeni v JSON (ang. JavaScript Object Notation) formatu. Obe shrambi sta medsebojno povezani na podlagi edinstvenih identifikatorjev. Uporaba obeh podatkovnih shramb omogoča hitrejšo izvedbo poizvedb, poenostavljeno podatkovno strukturo, in je na nek način nadgradnja obstoječe podatkovne strukture v relacijski podatkovni bazi. Uporaba baze Neo4j omogoča bolj jasno strukturno obliko kot tudi enostavno razširljivost v prihodnosti. Prav tako so grafovne podatkovne baze, ko gre za globoka iskanja, hitrejše od relacijskih baz, kar je pomembno pri kompleksnih iskanjih. Za delo s podatki in metapodatki, smo določili podatkovno strukturo, ki omogoča univerzalnost, a hkrati specifično delovanje za različne eksperimente. Pomembne komponente podatkovne strukture so: uporabnik platforme, udeleženec, aktivnost, eksperiment, senzor, naprava, meritev in senzorski podatki. Med seboj so povezane kot predvideva podatkovni model na sliki 2. Vsaka specifična aplikacija je v platformi definirana kot eksperiment, ki je podrejen aktivnosti. Vsakemu eksperimentu je potrebno določiti eno ali več senzorskih naprav in senzorjev, ki so vsebovani v teh napravah. Vsaka ponovitev eksperimenta z istim ali drugim uporabnikom je obravnavana kot meritev. Senzorski podatki, so shranjeni na datotečnem sistemu, kot JSON datoteke. Poimenovane so z edinstvenim imenom, ki je sestavljen iz naključno ustvarjene sekvence in datuma ter ure meritve. Ime datoteke in pot do le-te je zapisana v bazi podatkov (Sensor Data). Zapisane so v JSON formatu, strukturiran in univerzalen za vse vrste naprav, senzorjev in za vse eksperimente. Podatki s senzorskih naprav ali obstoječih aplikacij so preoblikovani in prilagojeni za uporabo s platformo. Preoblikovanje v univerzalno obliko, velja tako za podatke, ki so poslani v paketni obliki, kot za tiste, ki izhajajo iz obstoječih datotek oz. podatkovnih baz. Pomembna komponenta enovite platforme je tudi možnosti izvoza surovih podatkov za analizo v drugih orodjih. Platforma omogoča izvoz v standardnih oblikah primernih za druga orodja, npr. oblika CSV (ang. comma-separted value) oz. JSON (ang. JavaScript object notation). Tovrsten izvoz omogoča področnim strokovnjakom dostop do podatkov in analizo z njim znanim orodjem. Kasnejši razvoj platforme predvideva tudi vključena orodja za analizo signalov. Struktura platforme omogoča tudi vključitev specifičnih aplikacijskih oz. eksperimentalnih programov, ki bodo trenerjem, športnikom in drugim strokovnjakom omočili uporabo spletnega orodja za prikaz grafov, tabel, poročil ter drugih oblik tekstovne in vizualizacije potrebne za razumevanje gibanja pri specifični aktivnosti. Tovrstni aplikacijski razširitveni programi zahtevajo razširitev uporabniškega API-ja. Platforma pozna več vrst uporabnikov in posledično različne vrste pravic za dostop do samih podatkov in metapodatkov. Pri odnosu trener-športnik, in terapevt- pacient, je primerno, da trener in terapevt dostopata do podatkov svojih klientov, ne pa tudi do podatkov drugih klientov, ki opravljajo isti eksperiment. Domenski strokovnjak, ki opravlja študijo izbranega eksperimenta, pa mora imeti dostop do vseh meritev, po potrebi z anonimnimi podatki. Vnašanje senzorskih podatkov iz senzorskih naprav je avtomatizirano in zato enostavno za operaterja. 34 Operater, ki je lahko trener, športnik, terapevt ali pacient, ureja zgolj metapodatke, ki jih ni mogoče pridobiti s senzorskih naprav, torej podatke o osebi in okoliščinah. Operater poda definicijo eksperimenta in njegovih parametrov, definira naprave in senzorje. Pri vsaki meritvi operater določi uporabnika in po potrebi vnese morfološke in osebne parametre, dopolni eksperimentalne spremenljivke z zahtevanimi vrednostmi. Z vsako meritvijo se podatki, ki so sprejeti na vnosnem API-ju, shranijo v platformo. Operater poskrbi za začetek in konec zapisovanja signalov in podatkov. Več operaterjev, uporabnikov in naprav lahko sočasno uporablja platformo. Omejitev pri hkratnem delovanju iste biomehanske aplikacije, je omejeno število senzorskih naprav namenjenih za dotičen eksperiment. 4 Uporaba v aplikaciji Več biomehanskih sistemov in aplikacij je primernih za implementacijo s to platformo. Eden od primerov je senzorski sistem za oceno streljanja s pištolo [11]. Ta aplikacija uporablja specifično strojno merilno opremo, računalniško aplikacijo in lastno strukturo podatkovne zbirke za shranjevanje in obdelavo podatkov. Zaradi predvidene univerzalne podatkovne strukture platforme je mogoče vse podatke aplikacije enostavno prenesti na platformo. Predvidevamo, da bo mogoče uporabljati obstoječo računalniško aplikacijo, ki je del obstoječega senzorskega sistema, na predlagani platformi zgolj z dodajanjem ustreznih klicev API v aplikacijo. Tako aplikacija ne bo več uporabljala lastne podatkovne baze, ampak predstavljeno platformo. Računalniška aplikacija za streljanje izvaja specifično vizualizacijo in sprotno procesiranje, ki pa v prvi fazi še ni predvideno za vključitev v spletno platformo. V takem primeru je mogoče hkrati uporabljati aplikacijo in platformo, kjer se platforma uporablja za shranjevanje in podajanje podatkov ter rezultatov. 5 Zaključek Aplikacije z različnimi senzorji za zaznavo gibanja so relativno novo znanstveno področje. Predstavljena platforma je namenjena podpori različnim tovrstnim aplikacijam. Najprej kot podpora za sistematično shranjevanje podatkov, kasneje pa kot samostojna platforma za biomehanske aplikacije. Predvidevamo, da bo tovrstna platforma spremenila in pospešila način razvojna novih biomehnaskih aplikacij tudi takšnih s povratno vezavo v realnem času. Predlagana platforma za delovanje uporablja moderne tehnologije in omogoča strojno razširljivost. Kljub obvladljivosti količine podatkov v trenutni razvojni izvedbi, je predvideno, da bo ob široki uporabi obvladljivost velik izziv. Zaradi tega je predlagana platformo relativno preprosta, a kljub vsemu univerzalna in nadgradljiva. Zahvala To delo podpirata Slovenska raziskovalna agencija v okviru raziskovalnega programa ICT4QoL – Informacijsko komunikacijske tehnologije za kakovost življenja (P2-0246) ter v okviru bilateralnega projekta med Slovenijo in Srbijo z naslovom Senzorske tehnologije kot podporni sistemi za odkrivanje in izbiro talentov v športu in spremljanje sposobnosti športnikov (BI-RS/20-21-023). Literatura [1] G. Aroganam, N. Manivannan, and D. Harrison, ‘Review on Wearable Technology Sensors Used in Consumer Sport Applications’, Sensors, vol. 19, no. 9, p. 1983, Jan. 2019, doi: 10.3390/s19091983. [2] M. Hribernik, A. Umek, and A. Kos, ‘Survey of recent development in real-time biofeedback systems in sport’, Serbian J. Sports Sci., vol. 2020, no. 11(1), pp. 19–28, May 2020. [3] R. Li, D. T. H. Lai, and W. Lee, ‘A Survey on Biofeedback and Actuation in Wireless Body Area Networks (WBANs)’, IEEE Rev. Biomed. Eng., vol. 10, pp. 162–173, 2017, doi: 10.1109/RBME.2017.2738009. [4] A. Kos and A. Umek, ‘Applications’, in Biomechanical Biofeedback Systems and Applications, A. Kos and A. Umek, Eds. Cham: Springer International Publishing, 2018, pp. 117–180. doi: 10.1007/978-3-319-91349-0_7. [5] M. S. Karunarathne, S. A. Jones, S. W. Ekanayake, and P. N. Pathirana, ‘Remote Monitoring System Enabling Cloud Technology upon Smart Phones and Inertial Sensors for Human Kinematics’, in 2014 IEEE Fourth International Conference on Big Data and Cloud Computing, Dec. 2014, pp. 137–142. doi: 10.1109/BDCloud.2014.62. [6] D. D. Rowlands, L. Laakso, T. McNab, and D. A. James, ‘Cloud based activity monitoring system for health and sport’, in The 2012 International Joint Conference on Neural Networks (IJCNN), Jun. 2012, pp. 1–5. doi: 10.1109/IJCNN.2012.6252502. [7] W. Hong-jiang, Z. Hai-yan, and Z. Jing, ‘Application of the cloud computing technology in the sports training’, in 2013 3rd International Conference on Consumer Electronics, Communications and Networks, Nov. 2013, pp. 162–165. doi: 10.1109/CECNet.2013.6703297. [8] A. Umek and A. Kos, ‘The Role of High Performance Computing and Communication for Real-Time Biofeedback in Sport’, Math. Probl. Eng., vol. 2016, 2016, doi: 10.1155/2016/4829452. [9] P. P. Ray, ‘Generic Internet of Things architecture for smart sports’, in 2015 International Conference on Control, Instrumentation, Communication and Computational Technologies (ICCICCT), Dec. 2015, pp. 405–410. doi: 10.1109/ICCICCT.2015.7475313. [10] ‘Neo4j Graph Platform – The Leader in Graph Databases’, Neo4j Graph Database Platform. https://neo4j.com/ (accessed Aug. 19, 2021). [11] A. Kos, A. Umek, S. Marković, and M. Dopsaj, ‘Sensor System for Precision Shooting Evaluation and Real-time Biofeedback’, 2019, vol. 147, pp. 319–323. doi: 10.1016/j.procs.2019.01.228.