Serveur d'exploration sur les dispositifs haptiques

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

Suitability of Smartphone Inertial Sensors for Real-Time Biofeedback Applications

Identifieur interne : 000575 ( Pmc/Curation ); précédent : 000574; suivant : 000576

Suitability of Smartphone Inertial Sensors for Real-Time Biofeedback Applications

Auteurs : Anton Kos ; Sašo Tomaži ; Anton Umek

Source :

RBID : PMC:4813876

Abstract

This article studies the suitability of smartphones with built-in inertial sensors for biofeedback applications. Biofeedback systems use various sensors to measure body functions and parameters. These sensor data are analyzed, and the results are communicated back to the user, who then tries to act on the feedback signals. Smartphone inertial sensors can be used to capture body movements in biomechanical biofeedback systems. These sensors exhibit various inaccuracies that induce significant angular and positional errors. We studied deterministic and random errors of smartphone accelerometers and gyroscopes, primarily focusing on their biases. Based on extensive measurements, we determined accelerometer and gyroscope noise models and bias variation ranges. Then, we compiled a table of predicted positional and angular errors under various biofeedback system operation conditions. We suggest several bias compensation options that are suitable for various examples of use in real-time biofeedback applications. Measurements within the developed experimental biofeedback application show that under certain conditions, even uncompensated sensors can be used for real-time biofeedback. For general use, especially for more demanding biofeedback applications, sensor biases should be compensated. We are convinced that real-time biofeedback systems based on smartphone inertial sensors are applicable to many similar examples in sports, healthcare, and other areas.


Url:
DOI: 10.3390/s16030301
PubMed: 26927125
PubMed Central: 4813876

Links toward previous steps (curation, corpus...)


Links to Exploration step

PMC:4813876

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">Suitability of Smartphone Inertial Sensors for Real-Time Biofeedback Applications</title>
<author>
<name sortKey="Kos, Anton" sort="Kos, Anton" uniqKey="Kos A" first="Anton" last="Kos">Anton Kos</name>
</author>
<author>
<name sortKey="Tomazi, Saso" sort="Tomazi, Saso" uniqKey="Tomazi S" first="Sašo" last="Tomaži">Sašo Tomaži</name>
</author>
<author>
<name sortKey="Umek, Anton" sort="Umek, Anton" uniqKey="Umek A" first="Anton" last="Umek">Anton Umek</name>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">26927125</idno>
<idno type="pmc">4813876</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4813876</idno>
<idno type="RBID">PMC:4813876</idno>
<idno type="doi">10.3390/s16030301</idno>
<date when="2016">2016</date>
<idno type="wicri:Area/Pmc/Corpus">000575</idno>
<idno type="wicri:Area/Pmc/Curation">000575</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">Suitability of Smartphone Inertial Sensors for Real-Time Biofeedback Applications</title>
<author>
<name sortKey="Kos, Anton" sort="Kos, Anton" uniqKey="Kos A" first="Anton" last="Kos">Anton Kos</name>
</author>
<author>
<name sortKey="Tomazi, Saso" sort="Tomazi, Saso" uniqKey="Tomazi S" first="Sašo" last="Tomaži">Sašo Tomaži</name>
</author>
<author>
<name sortKey="Umek, Anton" sort="Umek, Anton" uniqKey="Umek A" first="Anton" last="Umek">Anton Umek</name>
</author>
</analytic>
<series>
<title level="j">Sensors (Basel, Switzerland)</title>
<idno type="eISSN">1424-8220</idno>
<imprint>
<date when="2016">2016</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<p>This article studies the suitability of smartphones with built-in inertial sensors for biofeedback applications. Biofeedback systems use various sensors to measure body functions and parameters. These sensor data are analyzed, and the results are communicated back to the user, who then tries to act on the feedback signals. Smartphone inertial sensors can be used to capture body movements in biomechanical biofeedback systems. These sensors exhibit various inaccuracies that induce significant angular and positional errors. We studied deterministic and random errors of smartphone accelerometers and gyroscopes, primarily focusing on their biases. Based on extensive measurements, we determined accelerometer and gyroscope noise models and bias variation ranges. Then, we compiled a table of predicted positional and angular errors under various biofeedback system operation conditions. We suggest several bias compensation options that are suitable for various examples of use in real-time biofeedback applications. Measurements within the developed experimental biofeedback application show that under certain conditions, even uncompensated sensors can be used for real-time biofeedback. For general use, especially for more demanding biofeedback applications, sensor biases should be compensated. We are convinced that real-time biofeedback systems based on smartphone inertial sensors are applicable to many similar examples in sports, healthcare, and other areas.</p>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Fernando, C K" uniqKey="Fernando C">C.K. Fernando</name>
</author>
<author>
<name sortKey="Basmajian, J V" uniqKey="Basmajian J">J.V. Basmajian</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Basmajian, J V" uniqKey="Basmajian J">J.V. Basmajian</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sandweiss, J H" uniqKey="Sandweiss J">J.H. Sandweiss</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Blumenstein, B" uniqKey="Blumenstein B">B. Blumenstein</name>
</author>
<author>
<name sortKey="Bar Eli, M" uniqKey="Bar Eli M">M. Bar-Eli</name>
</author>
<author>
<name sortKey="Tenenbaum, G" uniqKey="Tenenbaum G">G. Tenenbaum</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Giggins, O M" uniqKey="Giggins O">O.M. Giggins</name>
</author>
<author>
<name sortKey="Persson, U M" uniqKey="Persson U">U.M. Persson</name>
</author>
<author>
<name sortKey="Caulfield, B" uniqKey="Caulfield B">B. Caulfield</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Huang, H" uniqKey="Huang H">H. Huang</name>
</author>
<author>
<name sortKey="Wolf, S L" uniqKey="Wolf S">S.L. Wolf</name>
</author>
<author>
<name sortKey="He, J" uniqKey="He J">J. He</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Franco, C" uniqKey="Franco C">C. Franco</name>
</author>
<author>
<name sortKey="Fleury, A" uniqKey="Fleury A">A. Fleury</name>
</author>
<author>
<name sortKey="Gumery, P Y" uniqKey="Gumery P">P.Y. Guméry</name>
</author>
<author>
<name sortKey="Diot, B" uniqKey="Diot B">B. Diot</name>
</author>
<author>
<name sortKey="Demongeot, J" uniqKey="Demongeot J">J. Demongeot</name>
</author>
<author>
<name sortKey="Vuillerme, N" uniqKey="Vuillerme N">N. Vuillerme</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Alahakone, A U" uniqKey="Alahakone A">A.U. Alahakone</name>
</author>
<author>
<name sortKey="Arosha Senanayake, S M N" uniqKey="Arosha Senanayake S">S.M.N. Arosha Senanayake</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Crowell, H P" uniqKey="Crowell H">H.P. Crowell</name>
</author>
<author>
<name sortKey="Milner, C E" uniqKey="Milner C">C.E. Milner</name>
</author>
<author>
<name sortKey="Hamill, J" uniqKey="Hamill J">J. Hamill</name>
</author>
<author>
<name sortKey="Davis, I S" uniqKey="Davis I">I.S. Davis</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lieberman, J" uniqKey="Lieberman J">J. Lieberman</name>
</author>
<author>
<name sortKey="Breazeal, C" uniqKey="Breazeal C">C. Breazeal</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sigrist, R" uniqKey="Sigrist R">R. Sigrist</name>
</author>
<author>
<name sortKey="Rauter, G" uniqKey="Rauter G">G. Rauter</name>
</author>
<author>
<name sortKey="Riener, R" uniqKey="Riener R">R. Riener</name>
</author>
<author>
<name sortKey="Wolf, P" uniqKey="Wolf P">P. Wolf</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Sigrist, R" uniqKey="Sigrist R">R. Sigrist</name>
</author>
<author>
<name sortKey="Rauter, G" uniqKey="Rauter G">G. Rauter</name>
</author>
<author>
<name sortKey="Marchal Crespo, L" uniqKey="Marchal Crespo L">L. Marchal-Crespo</name>
</author>
<author>
<name sortKey="Riener, R" uniqKey="Riener R">R. Riener</name>
</author>
<author>
<name sortKey="Wolf, P" uniqKey="Wolf P">P. Wolf</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Schneider, J" uniqKey="Schneider J">J. Schneider</name>
</author>
<author>
<name sortKey="Borner, D" uniqKey="Borner D">D. Börner</name>
</author>
<author>
<name sortKey="Van Rosmalen, P" uniqKey="Van Rosmalen P">P. van Rosmalen</name>
</author>
<author>
<name sortKey="Specht, M" uniqKey="Specht M">M. Specht</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chambers, R" uniqKey="Chambers R">R. Chambers</name>
</author>
<author>
<name sortKey="Gabbett, T J" uniqKey="Gabbett T">T.J. Gabbett</name>
</author>
<author>
<name sortKey="Cole, M H" uniqKey="Cole M">M.H. Cole</name>
</author>
<author>
<name sortKey="Beard, A" uniqKey="Beard A">A. Beard</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Windolf, M" uniqKey="Windolf M">M. Windolf</name>
</author>
<author>
<name sortKey="Gotzen, N" uniqKey="Gotzen N">N. Götzen</name>
</author>
<author>
<name sortKey="Morlock, M" uniqKey="Morlock M">M. Morlock</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Josefsson, T" uniqKey="Josefsson T">T. Josefsson</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Umek, A" uniqKey="Umek A">A. Umek</name>
</author>
<author>
<name sortKey="Tomazi, S" uniqKey="Tomazi S">S. Tomažič</name>
</author>
<author>
<name sortKey="Kos, A" uniqKey="Kos A">A. Kos</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Dai, J" uniqKey="Dai J">J. Dai</name>
</author>
<author>
<name sortKey="Bai, X" uniqKey="Bai X">X. Bai</name>
</author>
<author>
<name sortKey="Yang, Z" uniqKey="Yang Z">Z. Yang</name>
</author>
<author>
<name sortKey="Shen, Z" uniqKey="Shen Z">Z. Shen</name>
</author>
<author>
<name sortKey="Xuan, D" uniqKey="Xuan D">D. Xuan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Casamassima, F" uniqKey="Casamassima F">F. Casamassima</name>
</author>
<author>
<name sortKey="Ferrari, A" uniqKey="Ferrari A">A. Ferrari</name>
</author>
<author>
<name sortKey="Milosevic, B" uniqKey="Milosevic B">B. Milosevic</name>
</author>
<author>
<name sortKey="Ginis, P" uniqKey="Ginis P">P. Ginis</name>
</author>
<author>
<name sortKey="Farella, E" uniqKey="Farella E">E. Farella</name>
</author>
<author>
<name sortKey="Rocchi, L" uniqKey="Rocchi L">L. Rocchi</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Giggins, O M" uniqKey="Giggins O">O.M. Giggins</name>
</author>
<author>
<name sortKey="Sweeney, K T" uniqKey="Sweeney K">K.T. Sweeney</name>
</author>
<author>
<name sortKey="Caulfield, B" uniqKey="Caulfield B">B. Caulfield</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wei, Y" uniqKey="Wei Y">Y. Wei</name>
</author>
<author>
<name sortKey="Yan, H" uniqKey="Yan H">H. Yan</name>
</author>
<author>
<name sortKey="Bie, R" uniqKey="Bie R">R. Bie</name>
</author>
<author>
<name sortKey="Wang, S" uniqKey="Wang S">S. Wang</name>
</author>
<author>
<name sortKey="Sun, L" uniqKey="Sun L">L. Sun</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Fitzgerald, A M" uniqKey="Fitzgerald A">A.M. Fitzgerald</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Looney, M" uniqKey="Looney M">M. Looney</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Grewal, M" uniqKey="Grewal M">M. Grewal</name>
</author>
<author>
<name sortKey="Andrews, A" uniqKey="Andrews A">A. Andrews</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="St Microelectronics, M E M S" uniqKey="St Microelectronics M">M.E.M.S. ST Microelectronics</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="St Microelectronics, M E M S" uniqKey="St Microelectronics M">M.E.M.S. ST Microelectronics</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="El Sheimy, N" uniqKey="El Sheimy N">N. El-Sheimy</name>
</author>
<author>
<name sortKey="Hou, H" uniqKey="Hou H">H. Hou</name>
</author>
<author>
<name sortKey="Niu, X" uniqKey="Niu X">X. Niu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Stockwell, W" uniqKey="Stockwell W">W. Stockwell</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Shaeffer, D K" uniqKey="Shaeffer D">D.K. Shaeffer</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Liu, M" uniqKey="Liu M">M. Liu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ortiz, J L R" uniqKey="Ortiz J">J.L.R. Ortiz</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="El Diasty, M" uniqKey="El Diasty M">M. El-Diasty</name>
</author>
<author>
<name sortKey="Pagiatakis, S" uniqKey="Pagiatakis S">S. Pagiatakis</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Aggarwal, P" uniqKey="Aggarwal P">P. Aggarwal</name>
</author>
<author>
<name sortKey="Syed, Z" uniqKey="Syed Z">Z. Syed</name>
</author>
<author>
<name sortKey="Niu, X" uniqKey="Niu X">X. Niu</name>
</author>
<author>
<name sortKey="El Sheimy, N" uniqKey="El Sheimy N">N. El-Sheimy</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Jiang, C" uniqKey="Jiang C">C. Jiang</name>
</author>
<author>
<name sortKey="Xue, L" uniqKey="Xue L">L. Xue</name>
</author>
<author>
<name sortKey="Chang, H" uniqKey="Chang H">H. Chang</name>
</author>
<author>
<name sortKey="Yuan, G" uniqKey="Yuan G">G. Yuan</name>
</author>
<author>
<name sortKey="Yuan, W" uniqKey="Yuan W">W. Yuan</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Aggarwal, P" uniqKey="Aggarwal P">P. Aggarwal</name>
</author>
<author>
<name sortKey="Syed, Z" uniqKey="Syed Z">Z. Syed</name>
</author>
<author>
<name sortKey="Niu, X" uniqKey="Niu X">X. Niu</name>
</author>
<author>
<name sortKey="El Sheimy, N" uniqKey="El Sheimy N">N. El-Sheimy</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Prikhodko, I P" uniqKey="Prikhodko I">I.P. Prikhodko</name>
</author>
<author>
<name sortKey="Trusov, A A" uniqKey="Trusov A">A.A. Trusov</name>
</author>
<author>
<name sortKey="Shkel, A M" uniqKey="Shkel A">A.M. Shkel</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Weinberg, H" uniqKey="Weinberg H">H. Weinberg</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Allan, D W" uniqKey="Allan D">D.W. Allan</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Land, D V" uniqKey="Land D">D.V. Land</name>
</author>
<author>
<name sortKey="Levick, A P" uniqKey="Levick A">A.P. Levick</name>
</author>
<author>
<name sortKey="Hand, J W" uniqKey="Hand J">J.W. Hand</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hongwei, S" uniqKey="Hongwei S">S. Hongwei</name>
</author>
<author>
<name sortKey="Yuli, L" uniqKey="Yuli L">L. Yuli</name>
</author>
<author>
<name sortKey="Guangfeng, C" uniqKey="Guangfeng C">C. Guangfeng</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Leland, R P" uniqKey="Leland R">R.P. Leland</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Mohd Yasin, F" uniqKey="Mohd Yasin F">F. Mohd-Yasin</name>
</author>
<author>
<name sortKey="Korman, C E" uniqKey="Korman C">C.E. Korman</name>
</author>
<author>
<name sortKey="Nagel, D J" uniqKey="Nagel D">D.J. Nagel</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Woodman, O J" uniqKey="Woodman O">O.J. Woodman</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Stan In, S" uniqKey="Stan In S">S. Stančin</name>
</author>
<author>
<name sortKey="Tomazi, S" uniqKey="Tomazi S">S. Tomažič</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Woods, T" uniqKey="Woods T">T. Woods</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Doyle, B" uniqKey="Doyle B">B. Doyle</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Karantonis, D M" uniqKey="Karantonis D">D.M. Karantonis</name>
</author>
<author>
<name sortKey="Narayanan, M R" uniqKey="Narayanan M">M.R. Narayanan</name>
</author>
<author>
<name sortKey="Mathie, M" uniqKey="Mathie M">M. Mathie</name>
</author>
<author>
<name sortKey="Lovell, N H" uniqKey="Lovell N">N.H. Lovell</name>
</author>
<author>
<name sortKey="Celler, B G" uniqKey="Celler B">B.G. Celler</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article">
<pmc-dir>properties open_access</pmc-dir>
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors (Basel)</journal-id>
<journal-id journal-id-type="iso-abbrev">Sensors (Basel)</journal-id>
<journal-id journal-id-type="publisher-id">sensors</journal-id>
<journal-title-group>
<journal-title>Sensors (Basel, Switzerland)</journal-title>
</journal-title-group>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>MDPI</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="pmid">26927125</article-id>
<article-id pub-id-type="pmc">4813876</article-id>
<article-id pub-id-type="doi">10.3390/s16030301</article-id>
<article-id pub-id-type="publisher-id">sensors-16-00301</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Suitability of Smartphone Inertial Sensors for Real-Time Biofeedback Applications</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Kos</surname>
<given-names>Anton</given-names>
</name>
<xref rid="c1-sensors-16-00301" ref-type="corresp">*</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Tomažič</surname>
<given-names>Sašo</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Umek</surname>
<given-names>Anton</given-names>
</name>
</contrib>
</contrib-group>
<contrib-group>
<contrib contrib-type="editor">
<name>
<surname>Passaro</surname>
<given-names>Vittorio M. N.</given-names>
</name>
<role>Academic Editor</role>
</contrib>
</contrib-group>
<aff id="af1-sensors-16-00301">Faculty of Electrical Engineering, University of Ljubljana, Ljubljana 1000, Slovenia;
<email>saso.tomazic@fe.uni-lj.si</email>
(S.T.);
<email>anton.umek@fe.uni-lj.si</email>
(A.U.)</aff>
<author-notes>
<corresp id="c1-sensors-16-00301">
<label>*</label>
Correspondence:
<email>anton.kos@fe.uni-lj.si</email>
; Tel.: +386-41-604-409</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>27</day>
<month>2</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="collection">
<month>3</month>
<year>2016</year>
</pub-date>
<volume>16</volume>
<issue>3</issue>
<elocation-id>301</elocation-id>
<history>
<date date-type="received">
<day>28</day>
<month>12</month>
<year>2015</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>2</month>
<year>2016</year>
</date>
</history>
<permissions>
<copyright-statement>© 2016 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2016</copyright-year>
<license>
<license-p>
<pmc-comment>CREATIVE COMMONS</pmc-comment>
This article is an open access article distributed under the terms and conditions of the Creative Commons by Attribution (CC-BY) license (
<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">http://creativecommons.org/licenses/by/4.0/</ext-link>
).</license-p>
</license>
</permissions>
<abstract>
<p>This article studies the suitability of smartphones with built-in inertial sensors for biofeedback applications. Biofeedback systems use various sensors to measure body functions and parameters. These sensor data are analyzed, and the results are communicated back to the user, who then tries to act on the feedback signals. Smartphone inertial sensors can be used to capture body movements in biomechanical biofeedback systems. These sensors exhibit various inaccuracies that induce significant angular and positional errors. We studied deterministic and random errors of smartphone accelerometers and gyroscopes, primarily focusing on their biases. Based on extensive measurements, we determined accelerometer and gyroscope noise models and bias variation ranges. Then, we compiled a table of predicted positional and angular errors under various biofeedback system operation conditions. We suggest several bias compensation options that are suitable for various examples of use in real-time biofeedback applications. Measurements within the developed experimental biofeedback application show that under certain conditions, even uncompensated sensors can be used for real-time biofeedback. For general use, especially for more demanding biofeedback applications, sensor biases should be compensated. We are convinced that real-time biofeedback systems based on smartphone inertial sensors are applicable to many similar examples in sports, healthcare, and other areas.</p>
</abstract>
<kwd-group>
<kwd>biofeedback system</kwd>
<kwd>smartphone sensors</kwd>
<kwd>MEMS sensors</kwd>
<kwd>sensor noise</kwd>
<kwd>Allan variance</kwd>
<kwd>bias error</kwd>
<kwd>bias compensation</kwd>
<kwd>real-time biofeedback application</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="sec1-sensors-16-00301">
<title>1. Introduction</title>
<p>In a biofeedback system, sensors attached to a person measure body functions and parameters (
<italic>bio</italic>
). These sensors are connected to a processing device to analyze the data. A feedback device is used to communicate the results back to the person (
<italic>feedback</italic>
) through one of the human senses (
<italic>i.e.</italic>
, sight, hearing, or touch). The person tries to act on the received information (
<italic>biofeedback signal</italic>
) to change the body function or parameter in the desired way.</p>
<p>Biofeedback as a discipline based on technology has its roots in the second part of the 20th century. Biofeedback was first described as a process connected to controlling human physiological activities for the purpose of improving health and performance [
<xref rid="B1-sensors-16-00301" ref-type="bibr">1</xref>
,
<xref rid="B2-sensors-16-00301" ref-type="bibr">2</xref>
] and later applied to physical body activity in sports biomechanics [
<xref rid="B3-sensors-16-00301" ref-type="bibr">3</xref>
,
<xref rid="B4-sensors-16-00301" ref-type="bibr">4</xref>
]. Biofeedback can be classified into two main groups: Biomechanical and physiological [
<xref rid="B5-sensors-16-00301" ref-type="bibr">5</xref>
]. In this work, we use the term biofeedback in connection to body activity in the sense of physical movement. According to [
<xref rid="B5-sensors-16-00301" ref-type="bibr">5</xref>
], this is classified as a biomechanical movement biofeedback.</p>
<p>Biomechanical movement biofeedback is useful for motor learning and training in sports, rehabilitation, and other areas [
<xref rid="B6-sensors-16-00301" ref-type="bibr">6</xref>
,
<xref rid="B7-sensors-16-00301" ref-type="bibr">7</xref>
,
<xref rid="B8-sensors-16-00301" ref-type="bibr">8</xref>
,
<xref rid="B9-sensors-16-00301" ref-type="bibr">9</xref>
]. Learning a new movement (motor learning) requires many thousands of repetitions [
<xref rid="B6-sensors-16-00301" ref-type="bibr">6</xref>
] and is usually assisted by a trainer. The role of the trainer is to stimulate the execution of the correct movements and discourage the execution of incorrect movements. Trainer instructions can be given during the execution of the movement (concurrent) or after the movement has been completed (terminal). The trainer can be assisted or, in special cases, even replaced by a biofeedback system. A biofeedback system works in real time if it is capable of giving concurrent feedback to a user during the execution of a movement.</p>
<p>Because numerous correct executions are required to properly learn a certain movement, it is beneficial to detect and possibly prevent improper movement executions. A real-time biofeedback system that gives concurrent feedback can possibly reduce the frequency of improper movement executions and speed up the process of learning the proper movement pattern. Real-time biofeedback is sensible only when human reactions can be performed in-movement (inside the time frame of the movement execution). It is successful if the user, given the biofeedback information, is able to either concurrently correct the improper movement or abandon its execution.</p>
<p>The biofeedback system communicates with the human nervous system through various modalities,
<italic>i.e.</italic>
, visual, auditory or tactile. User sensing ability and sense occupancy during the performed task condition the choice of modality. In most motor learning tasks, the user's visual channel is preoccupied with the task itself and cannot be efficiently used for biofeedback. Another drawback of the visual modality is its high cognitive load. An alternative is a tactile feedback modality [
<xref rid="B8-sensors-16-00301" ref-type="bibr">8</xref>
,
<xref rid="B10-sensors-16-00301" ref-type="bibr">10</xref>
]. This modality has a relatively demanding implementation, and it can be distracting to the user. Many times the best choice is auditory feedback because this modality is usually unemployed during most exercises [
<xref rid="B11-sensors-16-00301" ref-type="bibr">11</xref>
,
<xref rid="B12-sensors-16-00301" ref-type="bibr">12</xref>
]. It is also relatively easily implementable and has a low cognitive load.</p>
<p>Biomechanical biofeedback systems can be implemented in many different ways. The most common are various video systems with terminal feedback [
<xref rid="B13-sensors-16-00301" ref-type="bibr">13</xref>
,
<xref rid="B14-sensors-16-00301" ref-type="bibr">14</xref>
]. Such systems usually record the exercise or a training episode, which is then replayed and visually analyzed shortly after its execution. More sophisticated are systems with video processing that calculate the information about the desired movement execution parameters [
<xref rid="B13-sensors-16-00301" ref-type="bibr">13</xref>
,
<xref rid="B14-sensors-16-00301" ref-type="bibr">14</xref>
]. Another group is motion tracking systems that use reflective markers to track body movement trajectories. Examples of such systems are Vicon [
<xref rid="B15-sensors-16-00301" ref-type="bibr">15</xref>
] and Qualisys [
<xref rid="B16-sensors-16-00301" ref-type="bibr">16</xref>
]. Such systems may offer real-time functionality, but they are mainly designed to be used in closed and confined spaces with conditions favorable for visual marker tracking. They are also relatively expensive and demand a skilled professional to operate them. An alternative motion tracking technology is based on inertial sensors [
<xref rid="B17-sensors-16-00301" ref-type="bibr">17</xref>
,
<xref rid="B18-sensors-16-00301" ref-type="bibr">18</xref>
,
<xref rid="B19-sensors-16-00301" ref-type="bibr">19</xref>
,
<xref rid="B20-sensors-16-00301" ref-type="bibr">20</xref>
,
<xref rid="B21-sensors-16-00301" ref-type="bibr">21</xref>
]. Some advantages of inertial sensor systems are inexpensiveness, accessibility, portability, and ease of use. The drawbacks include possible high inaccuracies of the results when used without error compensation.</p>
<p>Today’s inertial sensors predominantly fall into the group of
<italic>micro electromechanical systems</italic>
(MEMS). They are small and inexpensive; however, their performances are relatively poor compared to professional navigational sensors [
<xref rid="B11-sensors-16-00301" ref-type="bibr">11</xref>
]. The precisions of MEMS gyroscopes and accelerometers are primarily affected by their biases, which induce errors in the derived angular and spatial positions.</p>
<p>Presently, thanks to smartphones, MEMS inertial sensors are readily available and widespread. According to [
<xref rid="B22-sensors-16-00301" ref-type="bibr">22</xref>
], in many countries, the penetration of smartphones exceeded 50% in 2013, and according to [
<xref rid="B23-sensors-16-00301" ref-type="bibr">23</xref>
], more than 2 billion people will own smartphones by the year 2016. All new smartphones are built with numerous sensors, practically always including accelerometers and gyroscopes. Because of the above factors, building biofeedback systems using the inertial sensors that are integrated into smartphones is desirable. This approach has many advantages. Inertial sensors are already built into smartphones, representing a mobile wearable system with a powerful processing unit (CPU), a large battery, a high definition screen, many input/output interfaces, various choices of wireless connectivity,
<italic>etc.</italic>
Another advantage is the presumed synchronization of all sensor signals taken from the same smartphone. Less demanding biofeedback applications can be implemented entirely in the smartphone. Use of smartphones could also have some disadvantages. The most notable are their size and weight. When used as motion tracking sensors, smartphones: (a) cannot be physically attached to certain parts and (b) could interfere with the movement being executed due to weight and size. Another possible disadvantage is the imprecision of smartphone sensors, which could be the limiting factor for their use in many biofeedback systems.</p>
<p>To investigate the limitations of smartphone inertial sensors for use in biofeedback systems, the general properties and demands of biomechanical biofeedback applications should be defined. In biomechanical biofeedback applications, inertial sensors are used to detect and possibly track body movements. Various parameters can be used for the evaluation of inertial sensors for particular biomechanical biofeedback applications:
<list list-type="simple">
<list-item>
<label>(a)</label>
<p>
<italic>Movement dynamics</italic>
describes the swiftness of change in a movement, e.g., fast movements in sports and slow movements in rehabilitation biofeedback systems.</p>
</list-item>
<list-item>
<label>(b)</label>
<p>In connection to (a), the required biofeedback system
<italic>sampling frequency</italic>
varies from a few tens to a few hundred Hertz.</p>
</list-item>
<list-item>
<label>(c)</label>
<p>
<italic>Measurement range</italic>
defines the boundary levels of the measured sensor signal (
<italic>i.e.</italic>
, acceleration and angular velocity).</p>
</list-item>
<list-item>
<label>(d)</label>
<p>The duration of movement execution defines the width of the
<italic>analysis time frame T
<sub>w</sub>
</italic>
that can vary from less than a second to a few minutes or even hours.</p>
</list-item>
<list-item>
<label>(e)</label>
<p>The required
<bold>
<italic>accuracy</italic>
</bold>
of the measured or calculated movement parameters includes
<list list-type="bullet">
<list-item>
<p>The
<italic>position</italic>
accuracy calculated from accelerometer readings and, in the case of sensor fusion, from gyroscope readings; the maximal accumulated error ranges from a few millimeters to a few centimeters.</p>
</list-item>
<list-item>
<p>The
<italic>posture angle</italic>
accuracy calculated from accelerometer readings; the maximal accumulated error ranges from less than one degree to a few degrees.</p>
</list-item>
<list-item>
<p>The
<italic>rotation angle</italic>
accuracy calculated from gyroscope readings; the maximal accumulated error ranges from less than one degree to a few degrees.</p>
</list-item>
</list>
</p>
</list-item>
<list-item>
<label>(f)</label>
<p>Measurement
<italic>precision i</italic>
s more important in biofeedback applications than accuracy itself. When consistently repeating the same movement, measured values must be precise, even if they are not accurate.</p>
</list-item>
</list>
</p>
<p>One example of a biofeedback application in sports that can illustrate the application of the above defined biofeedback application parameters is a golf swing. It is a static exercise, but the body movements can be rather fast (high dynamic). Consequently, the sampling frequency must be high enough. Depending on the sensor placement, the accelerometer must cover different measurement ranges. For example, when attached to the lower part of the golf club, accelerations are much higher than when attached to the wrist or the arm of the player. The analysis time frame is between 1.5 and 3 s, depending on the player. The required accuracies are between 2 to 3 degrees for posture and angular rotation. The required measurement consistency is in the range of 2 degrees [
<xref rid="B24-sensors-16-00301" ref-type="bibr">24</xref>
]. We developed an experimental real-time biomechanical biofeedback application with feedback for golf swing training that uses smartphone sensors.</p>
<sec id="sec1dot1-sensors-16-00301">
<title>1.1. Related Research</title>
<p>Various applications of smartphone sensor usage in biofeedback systems can be found in healthcare, rehabilitation and sports. For example, in healthcare, accelerometers in smartphones are used to detect and communicate the falling events of patients [
<xref rid="B18-sensors-16-00301" ref-type="bibr">18</xref>
]. In rehabilitation, accelerometers in smartphones are used to improve a person’s balance [
<xref rid="B7-sensors-16-00301" ref-type="bibr">7</xref>
], for gait training of persons with Parkinson’s disease [
<xref rid="B19-sensors-16-00301" ref-type="bibr">19</xref>
], for terminal exercise performance assessment [
<xref rid="B20-sensors-16-00301" ref-type="bibr">20</xref>
],
<italic>etc</italic>
. In sports, the movement dynamics are usually greater than in healthcare and rehabilitation, possibly limiting the use of devices with MEMS inertial sensors for biomechanical movement biofeedback. Accelerometers are used to drive real-time visual feedback aimed at reducing tibial stress in runners [
<xref rid="B9-sensors-16-00301" ref-type="bibr">9</xref>
] and to detect and evaluate the performances of dance students [
<xref rid="B21-sensors-16-00301" ref-type="bibr">21</xref>
]. Paper [
<xref rid="B13-sensors-16-00301" ref-type="bibr">13</xref>
] reviews the use of sensors for motor learning and analyzes 82 sensor-based prototypes, exploring their learning support. A recent review of the ability of microsensors to detect sport-specific movements is presented in [
<xref rid="B14-sensors-16-00301" ref-type="bibr">14</xref>
]. Commercially available microsensors are capable of quantifying sporting demands that other monitoring technologies may not detect.</p>
<p>Extensive research has been conducted on the performances of standalone MEMS [
<xref rid="B25-sensors-16-00301" ref-type="bibr">25</xref>
,
<xref rid="B26-sensors-16-00301" ref-type="bibr">26</xref>
,
<xref rid="B27-sensors-16-00301" ref-type="bibr">27</xref>
,
<xref rid="B28-sensors-16-00301" ref-type="bibr">28</xref>
,
<xref rid="B29-sensors-16-00301" ref-type="bibr">29</xref>
,
<xref rid="B30-sensors-16-00301" ref-type="bibr">30</xref>
,
<xref rid="B31-sensors-16-00301" ref-type="bibr">31</xref>
,
<xref rid="B32-sensors-16-00301" ref-type="bibr">32</xref>
,
<xref rid="B33-sensors-16-00301" ref-type="bibr">33</xref>
,
<xref rid="B34-sensors-16-00301" ref-type="bibr">34</xref>
,
<xref rid="B35-sensors-16-00301" ref-type="bibr">35</xref>
]. There has been much less research specifically on smartphone embedded MEMS. Measurements of standalone MEMS are generally done in controlled conditions,
<italic>i.e.</italic>
, stable temperature, use of mechanical devices for accurate MEMS positioning, and at standstill (environment without vibration). Smartphone embedded MEMS rarely experience such controlled conditions. Therefore, it is essential that their performances are evaluated in normal operating conditions,
<italic>i.e.</italic>
, with temperature changes due to the heating of other smartphone circuitry, measurements in slightly inaccurate positions, and in the presence of vibrations. Limited research about the latter issues can be found in [
<xref rid="B36-sensors-16-00301" ref-type="bibr">36</xref>
].</p>
</sec>
<sec id="sec1dot2-sensors-16-00301">
<title>1.2. Problem Formulation and Research Contributions</title>
<p>Biomechanical biofeedback applications with real-time motion tracking and feedback require sensor signals with certain accuracies and precisions. Raw sensor signals from MEMS sensors integrated in smartphones are processed by the smartphone’s operating system (OS) and made available to developers and applications as a
<italic>smartphone sensor</italic>
. In this work, the term
<italic>sensor</italic>
denotes the smartphone sensor defined above and the term
<italic>MEMS sensor</italic>
denotes the physical sensor. Similarly, the term
<italic>sensor signal</italic>
denotes a signal from the smartphone sensor.</p>
<p>While the use of
<italic>smartphone sensor</italic>
is beneficial from the application programming point of view (standard interface), it is less convenient from the application functional point of view (exact sensor properties are unknown). Complex and demanding smartphone applications, such as real-time motion tracking with biofeedback, require information about the exact sensor parameters. For the abovementioned reasons, smartphone sensor parameters cannot be taken directly from the manufacturer’s specifications of the MEMS sensor embedded into a smartphone model but should be measured for each model separately.</p>
<p>MEMS sensor parameters and the depending smartphone sensor parameters are not the only limiting factors for more demanding smartphone applications. Applications access MEMS sensor data and signals through the smartphone OS and APIs. One group of limitations is linked to a limited choice of available set of MEMS sensor parameters. For example, MEMS accelerometer may have a set of different measurement ranges: ±2 g, ±4 g, and ±8 g, but the operating system only allows the use of ±2 g. Another group of limitations is linked to the usage of smartphone resources, particularly its processing power and battery usage. For example, the smartphone OS does not allow too frequent access to sensor data, therefore the smartphone sensor data rate is limited to levels below the MEMS sensor data rates. Therefore the effective smartphone sensor sampling frequency can be much lower that the sampling frequency offered by the MEMS sensor. It has been reported that the effective sampling frequencies of smartphone sensors are up to approximately 100 Hz [
<xref rid="B37-sensors-16-00301" ref-type="bibr">37</xref>
]. APIs, software development tools, and libraries for smartphone applications can also be a problem. They may not include all the necessary routines, protocols, and tools for building an effective application using smartphone sensors. Other limitations may exist, but they are not the focus of this work. The principal goal of the present research is to develop a methodology for the evaluation of the adequacy of smartphone inertial sensor parameters for use in real-time biofeedback applications. Our interests are primarily in the empirical evaluation of the usability of a smartphone as a system. For that purpose, we use the same measurement procedures as those used in measurements of the parameters of standalone sensors in laboratory environments. However, these procedures need to be tailored to the real-time biomechanical biofeedback applications of smartphones used outside the laboratory environment. The main contributions of the present research are:
<list list-type="simple">
<list-item>
<label>(a)</label>
<p>measurement and modeling of the inertial sensor signals that are available within the smartphone operating system,</p>
</list-item>
<list-item>
<label>(b)</label>
<p>estimation and rating of the most influential smartphone sensor error sources,</p>
</list-item>
<list-item>
<label>(c)</label>
<p>definition of various scenarios for smartphone sensor bias compensation,</p>
</list-item>
<list-item>
<label>(d)</label>
<p>definition of real-time biofeedback application feasibility based on predicted smartphone sensor errors in different bias compensation scenarios,</p>
</list-item>
<list-item>
<label>(e)</label>
<p>development of the experimental biofeedback application.</p>
</list-item>
</list>
</p>
<p>The rest of the paper is organized as follows:
<xref ref-type="sec" rid="sec2-sensors-16-00301">Section 2</xref>
presents the experimental design and components of the general real-time biofeedback system.
<xref ref-type="sec" rid="sec3-sensors-16-00301">Section 3</xref>
provides details about the smartphone inertial sensor measurements with emphasis on the sensor biases and the errors caused by them. A discussion of the measurement results and the proposed bias compensation scenarios is given in
<xref ref-type="sec" rid="sec4-sensors-16-00301">Section 4</xref>
.
<xref ref-type="sec" rid="sec5-sensors-16-00301">Section 5</xref>
presents the developed experimental biofeedback application, followed by its test results in
<xref ref-type="sec" rid="sec6-sensors-16-00301">Section 6</xref>
. Conclusions and future work are presented in
<xref ref-type="sec" rid="sec7-sensors-16-00301">Section 7</xref>
.</p>
</sec>
</sec>
<sec id="sec2-sensors-16-00301">
<title>2. Experimental Design of the Real-Time Biofeedback System</title>
<p>The biofeedback system, as defined in the introduction, requires one or more inertial sensors, a processing device, one or more feedback devices, and when implemented as a distributed system, one or more communication channels. The architecture of the experimental biofeedback system, used by the application in
<xref ref-type="sec" rid="sec5-sensors-16-00301">Section 5</xref>
, is shown in
<xref ref-type="fig" rid="sensors-16-00301-f001">Figure 1</xref>
. It is composed of the following elements:
<list list-type="simple">
<list-item>
<label>(a)</label>
<p>
<italic>Inertial sensors</italic>
attached to the user’s body. They can be integrated into a dedicated sensor device or, as in our case, into a smartphone. In the experiments, we use an iPhone 4 with an integrated 3-axis ST Microelectronics LIS331DLH accelerometer [
<xref rid="B28-sensors-16-00301" ref-type="bibr">28</xref>
,
<xref rid="B29-sensors-16-00301" ref-type="bibr">29</xref>
] and a 3-axis ST Microelectronics L3G4200D gyroscope [
<xref rid="B30-sensors-16-00301" ref-type="bibr">30</xref>
,
<xref rid="B31-sensors-16-00301" ref-type="bibr">31</xref>
]. Their main parameters are listed in
<xref ref-type="table" rid="sensors-16-00301-t001">Table 1</xref>
. However, according to the iPhone 4 specifications, its smartphone sensor parameter values are limited to ±2 g for accelerometer, ±2000 deg/s for gyroscope, and to the sampling frequency of approximately 100 Hz.</p>
</list-item>
<list-item>
<label>(b)</label>
<p>The standalone
<italic>processing device</italic>
is a laptop running Microsoft Windows 7 operating system and National Instruments LabVIEW™ 2014 measurement and analysis software.</p>
</list-item>
<list-item>
<label>(c)</label>
<p>Wireless headphones are used as the
<italic>feedback device</italic>
.</p>
</list-item>
<list-item>
<label>(d)</label>
<p>The above elements are interconnected over the following
<italic>wireless channels</italic>
:
<list list-type="bullet">
<list-item>
<p>The smartphone with sensors and the laptop communicate over the IEEE 802.11 wireless local area network. We use the iOS application Sensor Monitor (Pro) 1.0.9 to send the smartphone sensor signals to the laptop.</p>
</list-item>
<list-item>
<p>The laptop and the headphones communicate over the proprietary radio channel protocol.</p>
</list-item>
</list>
</p>
</list-item>
</list>
</p>
<p>For the evaluation of the smartphone inertial sensor performance, it is crucial that measurements are done on the same equipment and the same system architecture. Therefore, the measurements of the smartphone inertial sensor performance parameters were carried out on the elements of the above described biofeedback systems with the following differences: (a) smartphone was not attached to the user but used in a way that is appropriate to the specific measurement; (b) biofeedback loop operation algorithms in the processing device were replaced by algorithms for the measurement of smartphone inertial sensor performance; and (c) a feedback device was not used.</p>
<p>The operation of the biofeedback loop largely depends on the inertial sensor quality and performance parameters of the smartphone. Precise sensor readings are critical for accurate analysis and correct feedback signals. Therefore, in the next section, we focus on the performances, precisions, parameter measurement, bias determination and compensation of smartphone inertial sensors. We aim to determine the degree of usability of smartphone inertial sensors for real-time biofeedback applications.</p>
</sec>
<sec id="sec3-sensors-16-00301">
<title>3. Measurement of Smartphone Inertial Sensor Performance Parameters</title>
<p>Inertial sensor errors have already been described well in various studies [
<xref rid="B38-sensors-16-00301" ref-type="bibr">38</xref>
,
<xref rid="B39-sensors-16-00301" ref-type="bibr">39</xref>
] and can be classified into two groups: deterministic and random. Deterministic errors are bias, scale factor errors and axes misalignment errors. Random sensor errors are generated by various type of noise and depend on the sensor technology [
<xref rid="B33-sensors-16-00301" ref-type="bibr">33</xref>
]. There are other documented sources of MEMS errors [
<xref rid="B32-sensors-16-00301" ref-type="bibr">32</xref>
,
<xref rid="B35-sensors-16-00301" ref-type="bibr">35</xref>
] such as the effects of gravitational forces and vibrations. Deterministic errors can be greatly reduced by sensor calibration procedures, while noise reduction is limited and requires adequate noise filtering techniques. Noise reduction is also possible by using sensor arrays [
<xref rid="B40-sensors-16-00301" ref-type="bibr">40</xref>
]. The most relevant deterministic error source for low-cost MEMS gyroscopes and accelerometers are their biases [
<xref rid="B38-sensors-16-00301" ref-type="bibr">38</xref>
].</p>
<sec id="sec3dot1-sensors-16-00301">
<title>3.1. Accelerometer and Gyroscope Bias Measurements</title>
<p>The
<italic>bias measurement system</italic>
includes an iPhone 4 smartphone with integrated accelerometer and gyroscope, the
<italic>Sensor Monitor</italic>
application that collects and sends sensor data from the iPhone, and a LabVIEW™ application. Bias measurements were carried out using the LabVIEW™ application running on a laptop, which received sensor data from the smartphone over the local wireless network. We also constructed a special casing that allowed us to simply orientate the smartphone in any of the principal positions. The measurements were performed at room temperature (approximately 22 °C) on a flat horizontal surface in six positions to eliminate the influence of gravity. Bias measurement results from six iPhone 4 smartphones are shown in
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
. Measurements for all accelerometer and gyroscope axes were averaged over
<italic>N</italic>
= 600 samples in the time interval τ = 10 s.</p>
<p>The gyroscope biases are within the range of Δ
<italic>G</italic>
<sub>0</sub>
= ±1.15 deg/s. The accelerometer biases are within the range Δ
<italic>A</italic>
<sub>0</sub>
= ±12 m
<italic>g</italic>
<sub>0</sub>
for the X- and Y-axes, and Δ
<italic>A</italic>
<sub>0</sub>
= ±40 m
<italic>g</italic>
<sub>0</sub>
for the Z-axis. The aim of these results is to present bias variations on different smartphone devices of the same type (iPhone 4).</p>
</sec>
<sec id="sec3dot2-sensors-16-00301">
<title>3.2. Accelerometer and Gyroscope Constant Bias Errors</title>
<p>The first evaluation of the measured biases in the scope of movement tracking and detection in biofeedback systems is done based on position and angle deviation from their real values. The largest measured accelerometer bias in
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
is 38 m
<italic>g</italic>
<sub>0</sub>
. The position drift Δ
<italic>s</italic>
is a time quadratic function and consequently very sensitive to accelerometer constant bias Δ
<italic>a:</italic>
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm1">
<mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
<mml:mo>Δ</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo></mml:mo>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The maximal position error from the measured accelerometer biases is 19 cm after 1 s. Therefore, accelerometer bias compensation is practically mandatory for movement tracking. The accelerometer signal can also be used to measure the direction of the gravity vector
<inline-formula>
<mml:math id="mm2">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
. Its direction error δ is proportional to the accelerometer bias vector
<inline-formula>
<mml:math id="mm3">
<mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
<italic>:</italic>
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm4">
<mml:mrow>
<mml:mi mathvariant="sans-serif">δ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>acos</mml:mtext>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo></mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo>+</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo>|</mml:mo>
<mml:mo></mml:mo>
<mml:mo>|</mml:mo>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mi>g</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo>+</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:mover accent="true">
<mml:mi>a</mml:mi>
<mml:mo stretchy="true"></mml:mo>
</mml:mover>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The predicted gravity vector direction error from the accelerometer measurement result in
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
is therefore less than 2.2 degrees.</p>
<p>The constant gyroscope bias induces a linear angular drift ΔΦ
<italic>:</italic>
<disp-formula id="FD3">
<label>(3)</label>
<mml:math id="mm5">
<mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mi mathvariant="sans-serif">φ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>Δ</mml:mo>
<mml:mi mathvariant="sans-serif">ω</mml:mi>
<mml:mo></mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The maximal measured linear angular drift for several different iPhone 4 smartphones is approximately 1 deg/s. The gyroscope angle error is not too high. Gyroscopes are potentially usable for short time movement analysis applications that do not require extreme precisions.</p>
</sec>
<sec id="sec3dot3-sensors-16-00301">
<title>3.3. Bias Variations</title>
<p>MEMS accelerometer and gyroscope biases vary with time [
<xref rid="B32-sensors-16-00301" ref-type="bibr">32</xref>
]. One of the most well-known and influential factors in bias instability is temperature. Both sensor biases and scale factors are temperature sensitive parameters. For that reason, various MEMS techniques are used to compensate sensor temperature dependency [
<xref rid="B41-sensors-16-00301" ref-type="bibr">41</xref>
,
<xref rid="B42-sensors-16-00301" ref-type="bibr">42</xref>
]. The thermal bias stability is also limited by temperature hysteresis error, which cannot be compensated [
<xref rid="B43-sensors-16-00301" ref-type="bibr">43</xref>
]. Low-frequency bias changes are frequent due to partially uncompensated MEMS temperature variations.</p>
<p>Precise measurements of standalone sensor ICs (integrated circuits) can be done in temperature chambers with temperature regulation. Sensors in smartphones also experience changes in temperature because of other pieces of hardware integrated into the enclosed casing of the smartphone. At room temperature, the heating of the smartphone is predominantly caused by power dissipation from the CPU, screen, RF circuitry, GPS module, and other integrated circuits. Overheating of the batteries at charge time is also a possible cause. In its operating state, when applications are running and consuming power, the surrounding ambient air temperature has a smaller effect on the sensor temperature. Large internal temperature fluctuations are accompanied by large temperature-induced bias drifts in accelerometers and gyroscopes.</p>
<p>During the bias measurements in
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
, we noticed differences in the biases of the same smartphone and between different smartphones. While differences between devices are due to variations in the physical properties of the embedded MEMS [
<xref rid="B28-sensors-16-00301" ref-type="bibr">28</xref>
,
<xref rid="B29-sensors-16-00301" ref-type="bibr">29</xref>
,
<xref rid="B30-sensors-16-00301" ref-type="bibr">30</xref>
,
<xref rid="B31-sensors-16-00301" ref-type="bibr">31</xref>
,
<xref rid="B32-sensors-16-00301" ref-type="bibr">32</xref>
], the differences in successive measurements of the same device are caused by various inertial sensor instabilities, most likely because of slightly different internal phone temperatures between measurements. To test our assumptions, we conducted a simple temperature stress test. First, we cooled the switched-off smartphone to 8 °C. After turning the phone on and placing it in a location at room temperature (21 °C), we measured the biases for three hours. During the tests, the smartphones were leveled using a leveling scale with an accuracy of 1 mm per meter or 0.057 degrees. We performed measurements in different smartphone orientations with one of the axes parallel to the Earth's gravity vector
<sub>.</sub>
Examples of accelerometer and gyroscope bias drifts are shown in
<xref ref-type="fig" rid="sensors-16-00301-f003">Figure 3</xref>
. The bias drifts in
<xref ref-type="fig" rid="sensors-16-00301-f003">Figure 3</xref>
exhibit the strongest temperature dependences in the first half hour of the test. In this period, the temperature changes induce bias drifts that can be larger than the bias variations caused by other sources of sensor error, including noise. The results of the stress test measurements of several smartphones show that bias drifts with similar dynamics are found on the other axes.</p>
<p>Temperature stress tests show that, as anticipated, the changes in temperature cause large bias variations. Stable temperature conditions are reached after approximately one hour. Biases measured after the transition period do not change considerably. As shown in
<xref ref-type="fig" rid="sensors-16-00301-f003">Figure 3</xref>
a, the variations in the accelerometer X-axis bias due to sensor noise do not exceed 0.4 m
<italic>g</italic>
<sub>0,</sub>
and bias drift after one hour reaches 0.7 m
<italic>g</italic>
<sub>0</sub>
. The variations in the gyroscope X-axis bias are shown in
<xref ref-type="fig" rid="sensors-16-00301-f003">Figure 3</xref>
b. The variations in the gyroscope bias due to sensor noise do not exceed 30 mdeg/s, and the gyroscope bias drift after one hour is approximately 40 mdeg/s.</p>
<p>Bias error measurements in stable ambient temperature conditions were carried out on six smartphones. The variations in the accelerometer bias due to noise are in the range of 0.4 to 0.5 m
<italic>g</italic>
<sub>0</sub>
. The variations in the gyroscope bias due to noise are in the range of 30 to 60 mdeg/s. Larger differences are found in the bias drifts. Measured accelerometer drifts do not exceed 4 m
<italic>g</italic>
<sub>0</sub>
per hour, gyroscope drifts remain below 86 mdeg
<bold>/s</bold>
per hour.</p>
</sec>
<sec id="sec3dot4-sensors-16-00301">
<title>3.4. Allan Variance</title>
<p>For detailed analysis of the smartphone inertial sensor errors, we used Allan variance measurements. Biases are measured by averaging a finite sequence of samples when a device is in a standstill position. Bias variations are caused by various random processes in the operation of the sensor. Bias approximations can be calculated by averaging the sensor signal samples:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math id="mm6">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mstyle scriptlevel="+1">
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>N</mml:mi>
</mml:mfrac>
</mml:mstyle>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo></mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Allan variance σ
<sub>A</sub>
<sup>2</sup>
(N) is a measure of the variations of the mean values
<italic>y</italic>
[
<italic>m</italic>
] of consecutive blocks of
<italic>N</italic>
signal samples
<italic>x</italic>
[
<italic>n</italic>
] [
<xref rid="B33-sensors-16-00301" ref-type="bibr">33</xref>
,
<xref rid="B44-sensors-16-00301" ref-type="bibr">44</xref>
,
<xref rid="B45-sensors-16-00301" ref-type="bibr">45</xref>
]:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math id="mm7">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="sans-serif">σ</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mstyle scriptlevel="+1">
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:mstyle>
<mml:mover accent="true">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The variance is approximated from a finite number of mean values
<italic>y</italic>
[
<italic>m</italic>
]:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math id="mm8">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="sans-serif">σ</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mstyle scriptlevel="+1">
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo></mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>M</mml:mi>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The approximation error of Equation (6) is estimated to be [
<xref rid="B33-sensors-16-00301" ref-type="bibr">33</xref>
]:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math id="mm9">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="sans-serif">δ</mml:mi>
<mml:mi>σ</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>M</mml:mi>
<mml:mo></mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Depending on the nature of the random process, the bias noise has a different power spectrum shape. In fact, many different uncorrelated random processes participate at the same time. The Allan variance method helps us to determine the characteristics of the underlying random processes and noise models. The basic bias error models are quantization noise, white noise, bias instability, rate random walk and drift rate ramp. Different noises have different spectrum power density profiles
<italic>S</italic>
<sub>x</sub>
(
<italic>f</italic>
) and appear in Allan variance plots with different slopes [
<xref rid="B33-sensors-16-00301" ref-type="bibr">33</xref>
,
<xref rid="B45-sensors-16-00301" ref-type="bibr">45</xref>
]:
<list list-type="order">
<list-item>
<p>Quantization noise has an accented high frequency power density profile
<italic>S
<sub>x</sub>
</italic>
(
<italic>f</italic>
)
<italic>= N
<sub>Q</sub>
f</italic>
<sup>2</sup>
and a quadratically decaying Allan variance σ
<italic>
<sub>A</sub>
</italic>
<sup>2</sup>
(τ) = 3
<italic>N</italic>
<sub>Q</sub>
<sup>2</sup>
.</p>
</list-item>
<list-item>
<p>White noise,
<italic>S
<sub>x</sub>
</italic>
(
<italic>f</italic>
)
<italic>= N</italic>
<sub>0</sub>
, has a linearly decaying variance σ
<italic>
<sub>A</sub>
</italic>
<sup>2</sup>
(τ) =
<italic>N</italic>
<sub>0</sub>
/τ. Such noise causes
<italic>angle random walk</italic>
(ARW) in gyroscopes and
<italic>velocity random walk</italic>
(VRW) in accelerometers.</p>
</list-item>
<list-item>
<p>Low-frequency noise has a power density function
<italic>S
<sub>x</sub>
= N</italic>
<sub>B</sub>
/
<italic>f</italic>
with a constant variance at long averaging time σ
<italic>
<sub>A</sub>
</italic>
<sup>2</sup>
(τ) = 0.66
<italic>N
<sub>B</sub>
</italic>
. It defines the minimum sensor
<italic>bias instability</italic>
(BI).</p>
</list-item>
<list-item>
<p>
<italic>Random rate walk</italic>
(RRW) noise has a very long correlation time and, consequently, a narrower frequency power spectrum shape
<italic>S
<sub>x</sub>
</italic>
(
<italic>f</italic>
)
<italic>= N</italic>
<sub>RRW</sub>
/
<italic>f</italic>
<sup>2</sup>
. Therefore, the variance is linearly proportional to integration time σ
<italic>
<sub>A</sub>
</italic>
<sup>2</sup>
(τ) = 1/3
<italic>N</italic>
<sub>RRW</sub>
τ.</p>
</list-item>
<list-item>
<p>Some
<italic>deterministic errors</italic>
also causes slow monotonic bias changes, modeled as
<italic>drift rate ramp</italic>
(DRR)
<italic>x</italic>
(
<italic>t</italic>
)
<italic>= Rt</italic>
. The Allan variance function for this type of error is a quadratic function of averaging time σ
<italic>
<sub>A</sub>
</italic>
<sup>2</sup>
(τ) = 0.5
<italic>R</italic>
τ
<sup>2</sup>
. For example, such bias error is caused by temperature changes, and if not compensated, it can become a dominant error source in long time interval.</p>
</list-item>
</list>
</p>
<p>Various researchers have shown that, in most cases, different noises appear in different regions of τ. In such situations, it is possible to identify the model of the underlying random process from the Allan deviation σ
<italic>
<sub>A</sub>
</italic>
(τ)log-log plot:
<list list-type="bullet">
<list-item>
<p>High frequency variations caused by the quantization noise and white noise can be determined from the slope of the first segment of the Allan variance plot.</p>
</list-item>
<list-item>
<p>Low frequency noise models start to dominate after filtering out the high frequency components by widening the averaging time τ.</p>
</list-item>
</list>
</p>
<p>Measurements were conducted under stable operation conditions when the smartphone was at standstill,
<italic>i.e.</italic>
, absence of vibrations, constant room temperature, and constant low power dissipation. Information about the internal smartphone temperature or inertial sensor chip temperature was not available. Measurements of Allan variance were carried out with the time resolution of one sample per decade from τ = 0.1 s to τ = 1000 s. For statistically valuable results, at least
<italic>M</italic>
= 10 measurements were required at the longest averaging time τ. Therefore, the measurement takes the time
<italic>T</italic>
<sub>0</sub>
= 10,000 s. To determine all relevant noise terms, a finer resolution of the log(τ) axis and longer measurement times are required. However, the results are still accurate enough to identify the most relevant types of bias errors: white noise and bias drift. Allan variance measurements of the 3D accelerometer and 3D gyroscope for a single smartphone are shown in
<xref ref-type="fig" rid="sensors-16-00301-f004">Figure 4</xref>
.</p>
<p>As shown in
<xref ref-type="fig" rid="sensors-16-00301-f004">Figure 4</xref>
a, the Allan deviation of the accelerometer σ
<sub>A</sub>
(τ) follows the slope of the bias
<italic>white noise model</italic>
for short averaging times τ ≤ 10 s. The accelerometer
<italic>velocity random walk</italic>
constant (VRW) can be determined from the Allan deviation plot at τ = 1 s: VRW =
<inline-formula>
<mml:math id="mm10">
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
= σ
<italic>
<sub>A</sub>
</italic>
(τ = 1 s)
<italic>.</italic>
Model parameters for all three axes are given inside the shaded rectangle in
<xref ref-type="fig" rid="sensors-16-00301-f004">Figure 4</xref>
a.</p>
<p>As shown in
<xref ref-type="fig" rid="sensors-16-00301-f004">Figure 4</xref>
b, the Allan deviation of the gyroscope σ
<sub>A</sub>
(τ) follows the slope of the bias
<italic>white noise model</italic>
for short averaging times τ < 100 s. The gyroscope
<italic>angle random walk</italic>
constant (ARW) can be determined from the Allan deviation plot at τ = 1 s: ARW=
<inline-formula>
<mml:math id="mm11">
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
= σ
<italic>
<sub>A</sub>
</italic>
(τ = 1 s)
<italic>.</italic>
Model parameters for all three axes are given inside the shaded rectangle in
<xref ref-type="fig" rid="sensors-16-00301-f004">Figure 4</xref>
b.</p>
<p>At longer averaging times, where the averaging filter decreases the power of the high frequency white noise, slow bias fluctuations with low frequency spectra become the dominant error sources for the accelerometers and gyroscopes.</p>
<p>The accuracy of the measured variances varies as estimated by Equation (7). The Allan variance measurements of the most right side points, at
<italic>M</italic>
= 10 or τ = 1000 s, are less accurate; the accuracy is estimated to be δ
<sub>σ</sub>
= 23.6% Equation (7).</p>
<p>The same measurements were performed on six different smartphones (iPhone 4). We have noticed only minor differences in the white noise model parameters VRV and ARW. The differences in the bias instability were more noticeable, which we believe to be primarily the effect of the different temperature sensitivities of the smartphone embedded MEMS. The calculated average sensor white noise model parameters are VRW = 0.25 m
<italic>g</italic>
<sub>0</sub>
/
<inline-formula>
<mml:math id="mm12">
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mtext>Hz</mml:mtext>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
and ARW = 28 mdeg/s/
<inline-formula>
<mml:math id="mm13">
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mtext>Hz</mml:mtext>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
. According to [
<xref rid="B28-sensors-16-00301" ref-type="bibr">28</xref>
] iPhone 4 embedded MEMS accelerometer is ST Microelectronics LIS331DLH MEMS and according to [
<xref rid="B30-sensors-16-00301" ref-type="bibr">30</xref>
] iPhone 4 embedded MEMS gyroscope is ST Microelectronics L3G4200D. Their average noise model parameters are found in
<xref ref-type="table" rid="sensors-16-00301-t001">Table 1</xref>
: VRW
<sub>MEMS</sub>
= 0.218 m
<italic>g</italic>
<sub>0</sub>
/
<inline-formula>
<mml:math id="mm14">
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mtext>Hz</mml:mtext>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
and ARW
<sub>MEMS</sub>
= 30 mdeg/s/
<inline-formula>
<mml:math id="mm15">
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mtext>Hz</mml:mtext>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
</inline-formula>
. It can be observed that noise parameters of the smartphone sensors offered by the operating system does not differ much from the same parameters of MEMS sensors.</p>
<sec id="sec3dot4dot1-sensors-16-00301">
<title>3.4.1. Bias Measurement Error</title>
<p>Based on the measured sensor noise model, we can also determine the averaging times for the bias measurements that are used as the offset values for sensor bias compensation. Bias estimation error is a result of sensor noise passing through an averaging filter. The bias variance decays linearly with integration time only if white noise is a dominant source of error. Unfortunately, averaging cannot eliminate low frequency noise. The results from
<xref ref-type="fig" rid="sensors-16-00301-f004">Figure 4</xref>
help us analyze the trade-off between the signal averaging time and the bias measurement accuracy. Reasonable averaging times for bias measurements are between 10 and 100 s. The Allan Variance Equation (6) can be used as an approximation of the standard bias variance [
<xref rid="B46-sensors-16-00301" ref-type="bibr">46</xref>
,
<xref rid="B47-sensors-16-00301" ref-type="bibr">47</xref>
,
<xref rid="B48-sensors-16-00301" ref-type="bibr">48</xref>
]. The predicted bias measurement errors for the accelerometers and gyroscopes with defined confidence interval
<italic>k(P)</italic>
are Equations (8) and (9):
<disp-formula id="FD8">
<label>(8)</label>
<mml:math id="mm16">
<mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>P</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo></mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="FD9">
<label>(9)</label>
<mml:math id="mm17">
<mml:mrow>
<mml:mo>Δ</mml:mo>
<mml:mi mathvariant="sans-serif">ω</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>P</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo></mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The bias measurement errors are constant after the compensation and induce drifts in Position (1), Orientation (2) and Rotation (3). The bias variations due to the sensor noise shown in
<xref ref-type="fig" rid="sensors-16-00301-f003">Figure 3</xref>
are in accordance with the measured sensor noise density described by the ARW and VRW models, where peak-to-peak values are within ±3σ
<sub>A</sub>
(
<italic>T
<sub>avg</sub>
</italic>
) Equations (8) and (9). Under the assumption that the sensor white noise is Gaussian [
<xref rid="B49-sensors-16-00301" ref-type="bibr">49</xref>
,
<xref rid="B50-sensors-16-00301" ref-type="bibr">50</xref>
],
<italic>P(k =</italic>
3
<italic>)</italic>
= 99.7% is the confidence interval.</p>
</sec>
<sec id="sec3dot4dot2-sensors-16-00301">
<title>3.4.2. Influence of the Sensor White Noise on the Derived Parameters</title>
<p>The Allan measurement results confirm that white noise is the dominant sensor error source for short integration times. Gyroscope white noise creates an angle random walk, where the standard deviation grows with the square root of the integration time [
<xref rid="B51-sensors-16-00301" ref-type="bibr">51</xref>
]:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math id="mm18">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="sans-serif">σ</mml:mi>
<mml:mi>φ</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>W</mml:mi>
<mml:mo></mml:mo>
<mml:msqrt>
<mml:mi>t</mml:mi>
</mml:msqrt>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Position random variations are the result of accelerometer signal double integration. Under the white noise accelerometer random model, the position variance, as a result of a second-order random walk, grows proportionally with
<inline-formula>
<mml:math id="mm1000">
<mml:mrow>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mfrac>
<mml:mn>3</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
[
<xref rid="B51-sensors-16-00301" ref-type="bibr">51</xref>
]:
<disp-formula id="FD11">
<label>(11)</label>
<mml:math id="mm18000">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="sans-serif">σ</mml:mi>
<mml:mi>φ</mml:mi>
</mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:msqrt>
<mml:mn>3</mml:mn>
</mml:msqrt>
</mml:mfrac>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mi>t</mml:mi>
<mml:mfrac>
<mml:mn>3</mml:mn>
<mml:mn>2</mml:mn>
</mml:mfrac>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>We assume that the white noise in the accelerometer and gyroscope is Gaussian [
<xref rid="B49-sensors-16-00301" ref-type="bibr">49</xref>
,
<xref rid="B50-sensors-16-00301" ref-type="bibr">50</xref>
], and therefore, both Random Variations (10) and (11) represent 68% confidence intervals.</p>
</sec>
</sec>
</sec>
<sec id="sec4-sensors-16-00301">
<title>4. Discussion of the Results</title>
<p>The basis for the discussion of the measurement results is
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
, which illustrates various error components of the bias.</p>
<p>The measurement results presented in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
(A) show uncompensated bias values from
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
that induce bias error A in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
.</p>
<p>From
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
, we see that the largest gyroscope biases are approximately 1 deg/s, and the largest accelerometer biases are approximately 40 m
<italic>g</italic>
<sub>0</sub>
. For the
<italic>uncompensated gyroscope,</italic>
in a short time analysis, for example, in a 3 s analysis interval, the bias induces an angular error of 3.45 degrees.The precisions of the accelerometer and the gyroscope are considerably better after the bias compensation at time
<italic>t</italic>
<sub>0</sub>
as shown in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
. The compensated bias values at time
<italic>t</italic>
<sub>0</sub>
induce bias errorB in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
b. The bias measurement error depends on the averaging time in Equations (8) and (9). The predicted bias measurement errors B from
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
represent 99.7% confidence intervals under the assumption that the sensor noise is Gaussian. For example, shortly after bias compensation, the expected linear angular drift after a 3 s analysis time does not exceed 0.08 degree, and the expected positional drift remains under 1.0 cm.</p>
<p>If we perform the same analysis at time
<italic>t</italic>
<sub>1,</sub>
the expected angular drift would be higher because of the bias drift, which would result in bias error C, as shown in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
b. According to the results of the bias drift measurements from
<xref ref-type="sec" rid="sec3dot3-sensors-16-00301">Section 3.3</xref>
, the bias drifts are 4 mg
<sub>0</sub>
after one hour for the accelerometer and 86 mdeg/s after one hour for the gyroscope. For example, one hour after compensation, the bias drift induces positional error that does not exceed 17.7 cm and angular error that does not exceed 0.26 degrees in a 3 s analysis interval.</p>
<p>
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
shows that the predicted errors one hour after compensation (C) are more than ten times smaller than those before initial compensation (A). If a new bias error induces angular and positional drifts that are no longer acceptable for the application, the bias drift should be corrected with another bias compensation at time
<italic>t</italic>
<sub>1</sub>
. Based on the bias errors in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
and the boundaries set for the exemplary biofeedback application presented in the
<xref ref-type="sec" rid="sec1-sensors-16-00301">introduction section</xref>
, we can write the following findings:
<list list-type="bullet">
<list-item>
<p>Relatively high accelerometer biases restrict the use of uncompensated accelerometers for position tracking. Shortly after bias compensation, the accelerometer offers sufficient accuracy for applications with short analysis times. Bias drift reduces the allowed analysis time to below 1 s.</p>
</list-item>
<list-item>
<p>When an accelerometer is used for tilt or inclination sensing (static angles) in biofeedback applications, bias-induced errors are generally not the limiting factor. Static angle errors due to accelerometer noise and drift are practically negligible. For most biofeedback applications, even the uncompensated accelerometer signals are acceptable.</p>
</list-item>
<list-item>
<p>Gyroscopes with compensated biases, even some time after compensation, are accurate enough to meet the demands of all biofeedback applications covered in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
. Some applications with short analysis times (less than 3 s) can use uncompensated smartphone gyroscopes.</p>
</list-item>
</list>
</p>
<p>Even with sensor bias compensation, sensor noise sets the lower bound of sensor precision.
<xref ref-type="table" rid="sensors-16-00301-t003">Table 3</xref>
shows the predicted random walk errors of position and angle calculated by Equations (10) and (11). Values are given within a 68% confidence interval under assumption that sensor noise is Gaussian. For the majority of biofeedback applications, the random errors in
<xref ref-type="table" rid="sensors-16-00301-t003">Table 3</xref>
, which are caused by noise, are negligibly small compared to the deterministic errors presented in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
(A) and (C). The random walk position and angular errors calculated from the standard deviations in
<xref ref-type="table" rid="sensors-16-00301-t003">Table 3</xref>
can be higher than the linear drift errors induced by the bias measurement presented in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
(B) if the analysis integration time frame is shorter than the bias measurement time
<italic>t</italic>
< T
<sub>avg</sub>
.</p>
<sec id="sec4dot1-sensors-16-00301">
<title>4.1. Bias Compensation Options</title>
<p>Inertial sensor bias variations in the form of noise and drift (see
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
) could be the limiting factor for their usability in different types of applications. In biofeedback applications, where we generally use inertial sensors to measure movement patterns, large biases are a limiting factor.</p>
<p>The precision of the sensor readings can be improved to a certain extent by bias compensation, but we have to bear in mind that bias errors can never be fully eliminated as shown in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
. With regard to each individual application and its sensor precision demands, we must choose the right strategy for bias compensation. There are several strategies available for bias compensation:
<list list-type="bullet">
<list-item>
<p>
<italic>One-time bias compensation</italic>
has a time-limited effect. Therefore, it is suitable only for applications that operate in stable environments. For instance, the smartphone is always used inside the same temperature range and at approximately the same processing load.</p>
</list-item>
<list-item>
<p>
<italic>Periodic bias compensation</italic>
can be performed at regular time intervals or on an as-needed basis. For instance, bias compensation is needed after every significant change in the inertial sensor temperature.</p>
</list-item>
</list>
</p>
<p>What are the available application scenarios according to the above options, according to the demands of the application, and according to the required times needed to perform the compensation? What about biofeedback applications that track and detect movements? To achieve different levels of movement detection accuracy, the following application scenarios are possible:
<list list-type="simple">
<list-item>
<label>I.</label>
<p>The application uses
<italic>uncompensated sensor data</italic>
. In this case, the bias error corresponds to the bias error A in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
. This compensation scenario could be applicable to short time movements, up to a few seconds long, if the application does not use accelerometers for position calculation and does not demand high angular precision. See values for bias error A in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
.</p>
</list-item>
<list-item>
<label>II.</label>
<p>Before each session, the application performs a
<italic>one-time bias compensation</italic>
of the accelerometer and the gyroscope. Shortly after the compensation, the bias error corresponds to the bias error B in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
. With time, the bias error increases and corresponds to the bias error C in
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
. The effect of one-time compensation is satisfactory up to one hour if the operating conditions do not differ much from the conditions at which the compensation was performed. In such cases, biases change in a limited value range, see values for bias error C in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
. Bias errors one hour after bias compensation are still for an order of magnitude lower than bias errors of uncompensated sensor. One-time bias compensation scenario is applicable to short time movements, up to a few seconds long, even for applications demanding high precision or for medium time movements, up to a few tens of seconds long for less demanding applications.</p>
</list-item>
<list-item>
<label>III.</label>
<p>The application constantly compensates biases. At every detected opportunity, the biases are compensated. The measurement times required for this compensation scenario could be between 10 s and 100 s, as proved in
<xref ref-type="sec" rid="sec3dot4-sensors-16-00301">Section 3.4</xref>
. After a longer time without compensation, the application may notify the user that the accuracy of the application operation might be compromised and that a new bias compensation is required. During the application use, gyroscope bias compensation is possible without too much trouble, while accelerometer bias compensation generally requires temporary interruption of application use [
<xref rid="B52-sensors-16-00301" ref-type="bibr">52</xref>
]. The goal in this scenario is to stay as close as possible to the accuracy level of bias error B in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
.</p>
</list-item>
</list>
</p>
</sec>
</sec>
<sec id="sec5-sensors-16-00301">
<title>5. Experimental Biofeedback Application</title>
<p>As an example of a real-time biofeedback system based on smartphone inertial sensors, we designed an application that is designed to help users correct specific golf swing errors. The basic application idea is to monitor the player’s head movements during a golf swing by employing the smartphone’s inertial sensors. Head movements are very often the indicator of incorrect golf swing execution; therefore, the application is developed to detect excessive incorrect head movements and communicate them to the player in real time using audio feedback. The hypothesis is supported by observing the world’s best golfers and their advice [
<xref rid="B53-sensors-16-00301" ref-type="bibr">53</xref>
,
<xref rid="B54-sensors-16-00301" ref-type="bibr">54</xref>
]. The majority of them keep their heads practically still until just after impact.</p>
<sec id="sec5dot1-sensors-16-00301">
<title>5.1. Application Demands and Constraints</title>
<p>In the context of this work, the most important application constraints are bound to the potential inaccuracies of the accelerometer and gyroscope signals from the smartphone. The inertial sensor signal analysis time interval is defined as the golf swing duration. It takes less than 3 s to perform the golf swing from the
<italic>takeaway</italic>
(beginning of the swing) to the
<italic>follow-through</italic>
(end of the swing). The required movement measurement accuracy during the swing execution is set to approximately 2 degrees [
<xref rid="B24-sensors-16-00301" ref-type="bibr">24</xref>
]. We set the following requirements:
<list list-type="order">
<list-item>
<p>Static angle measurement error at address should be less than 2 degrees. The application measures the head position and inclination by detecting the gravity vector projection. The accelerometer error, which causes static angle error, should therefore not exceed 0.035 g
<sub>0</sub>
.</p>
</list-item>
<list-item>
<p>Dynamic angle measurement error during the swing should be less than 2 degrees. The gyroscope error, which causes rotation angle error, should therefore not exceed 0.67 deg/s if we want to stay under the 2 degree margin during the 3 s long swing execution time.</p>
</list-item>
</list>
</p>
<p>By comparing the above requirements to the figures in
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
, we notice that the uncompensated accelerometer and gyroscope biases shown in
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
are close to the application demands set above.
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
shows that a certain number of measured smartphones could most likely be used in the developed biofeedback application without bias compensation. The rest of the smartphones must use at least occasional bias compensation to achieve the desired accuracy.</p>
</sec>
<sec id="sec5dot2-sensors-16-00301">
<title>5.2. Application Configuration</title>
<p>The experimental biofeedback application implements the architecture and elements of the biofeedback system described in
<xref ref-type="sec" rid="sec2-sensors-16-00301">Section 2</xref>
. We use smartphone's inertial sensors, the processing device (laptop) is nearby and under the control of an assistant, wireless headphones serve as the feedback device. With the appropriate attachment of the smartphone to the head of the golfer, we can achieve very good detection repeatability of different 3D head movements measured from the static start position in the swing setup phase. The application running on the laptop is designed in the LabVIEW™ development environment and is able to run on any compatible MS Windows operating system. The audio feedback signal is generated by the laptop and sent to the headphones on the golfer's head over the RF-ISM channel. In the current work, auditory feedback was chosen because auditory sensing is mostly unengaged during the golf swing exercise.</p>
<p>In the above configuration, the smartphone is used only as a sensing device. Practically all modern smartphones have enough processing power to handle the real-time signal processing of the above described biofeedback application. At the same time it can also perform the function of the feedback device (speakers or headphones output). Such compact version of the biofeedback system is much more attractive for a personal use and it is planned to be developed after proofing of the real-time biofeedback motor learning concept.</p>
</sec>
</sec>
<sec id="sec6-sensors-16-00301">
<title>6. Results of the Application Tests</title>
<p>We conducted numerous measurements and experiments aimed primarily at testing the accuracy and precision of operation as well as the usability of the smartphone inertial sensors for the real-time biofeedback golf application. Because the accelerometer signals are used solely for head inclination at setup, we consider the gyroscope signals corresponding to head movements during the swing to be the most important.</p>
<p>Test measurements were recorded using an HD camera, and the recordings were used to help interpret the signals and derived results acquired from the inertial sensors. We focused primarily on the correct presentation of the sensor signals and the derived analysis results. Golf swings were performed by a professional golf player with a very consistent swing execution in terms of movement repeatability. The application analyzes swings from their takeaway phase to the end of the follow-through phase. The analysis was done on the swings that were subjectively characterized as successful by the professional golf player. The presentation of the smartphone sensor signals and the derived results is limited to the last 200 samples of each swing at the sampling frequency of 60 Hz, which yields a time window of 3.33 s. For the measurements, we used uncompensated smartphone inertial sensors (worst case).</p>
<p>As an example, we present measurements of the gyroscope signal representing the rotation speed around the Z-axis (
<xref ref-type="fig" rid="sensors-16-00301-f006">Figure 6</xref>
) and the head roll of the player derived from this signal (
<xref ref-type="fig" rid="sensors-16-00301-f007">Figure 7</xref>
). As shown in
<xref ref-type="fig" rid="sensors-16-00301-f006">Figure 6</xref>
, the speed signals from the rotation of the player’s head indicate that the swing begins at approximately sample number 120. Before that point, the player’s head is at standstill, and gyroscope bias is responsible for most of the signal variation. The swing starts at approximately sample 115 (
<italic>takeaway</italic>
) when the player’s head starts to rotate according to the following swing execution pattern: (a) In the upswing, the player’s head rotates slowly to the left until the top of the backswing at approximately sample 170; (b) In the downswing, the player’s head rotates faster to the right until impact at approximately sample 190; (c) Following the body rotation in the follow-through phase of the swing, the player’s head rotates faster to the right. The results show that the swings of the professional golf player are very consistent.</p>
<p>
<xref ref-type="fig" rid="sensors-16-00301-f007">Figure 7</xref>
shows that the plots up to approximately sample number 115 exhibit approximately linear characteristics. Upon close inspection of the HD video recordings, we confirmed that up to this point, the player’s head did not move to a visually perceivable extent. From the above observation, we can conclude that the approximate linear characteristics at the beginning of the plots are the sum of the angular drift caused by the gyroscope biases and of slight, visually imperceptible head movements of the player. Statistical parameters at the characteristic points of the swings presented in
<xref ref-type="fig" rid="sensors-16-00301-f007">Figure 7</xref>
are as follow: (a) at the takeaway at sample 115, the standard deviation of the plots is 0.61 deg; (b) at the top of the backswing at sample 170, the standard deviation of the plots is 0.72 deg; and (c) at impact at sample 190, the standard deviation of plots is 0.84 deg.</p>
<p>The signal presented in
<xref ref-type="fig" rid="sensors-16-00301-f006">Figure 6</xref>
(angular velocity in the Z-axis) and the derived results in
<xref ref-type="fig" rid="sensors-16-00301-f007">Figure 7</xref>
(head roll) are only two of the many parameters made available by the developed application. The same explanations and conclusions can be drawn from other signals related to various head movements.</p>
<p>One important question arises: is the quality of the results acquired using uncompensated sensor signals high enough for implementation of the presented biofeedback idea? According to the second application requirement in
<xref ref-type="sec" rid="sec5dot1-sensors-16-00301">Section 5.1</xref>
, the dynamic angle measurement error should remain under 2 degrees for the duration of the golf swing analysis, meaning that the gyroscope bias should be less than 0.67 deg/s. As mentioned previously, some of the smartphones in
<xref ref-type="fig" rid="sensors-16-00301-f002">Figure 2</xref>
satisfy this condition. The results presented in
<xref ref-type="fig" rid="sensors-16-00301-f006">Figure 6</xref>
and
<xref ref-type="fig" rid="sensors-16-00301-f007">Figure 7</xref>
were acquired using uncompensated smartphone gyroscopes. They are encouraging as they show that the measurement error, considering the slight player movement inconsistency, stays within 2 degrees.</p>
<p>Bias compensation reduces angular drift by an order of magnitude. For example, if the compensated bias error is 0.1 deg/s (see
<xref ref-type="fig" rid="sensors-16-00301-f005">Figure 5</xref>
), the 3 s analysis time frame yields an angular drift of 0.3 degrees. Measurement errors in this range are insignificant for the developed application. All of the perceivable signals from the compensated inertial sensors are caused by head movements.</p>
<p>The application test has answered the main question, and the developed application operates within the specified requirements even with uncompensated smartphone inertial sensors. For more advanced applications, longer analysis times, and more detailed movement analysis, bias compensation is necessary. The results from
<xref ref-type="sec" rid="sec3-sensors-16-00301">Section 3</xref>
show that even short averaging times (τ = 10 s) for bias compensation reduce the induced angular drift by a factor of 10. With more advance compensation techniques, we could achieve even better results (see options in
<xref ref-type="sec" rid="sec4dot1-sensors-16-00301">Section 4.1</xref>
).</p>
</sec>
<sec id="sec7-sensors-16-00301">
<title>7. Conclusions</title>
<p>The use of the inertial sensors in smartphones for motion capture and motion tracking in biomechanical biofeedback systems is limited due to their performance, which is expressed through the imprecision of their readings. These sensors are sufficiently precise for angular measurements in real-time biomechanical movement biofeedback applications if the time analysis window is not excessively large and if the movement dynamics fall within the sensor’s dynamic range and effective sampling frequency. Present day smartphone sensors are suitable for biofeedback applications with low to moderate movement dynamics containing accelerations in the range of ±8 g, angular velocities in the range of ±2000 deg/s, and requiring sampling frequencies in the range of 100 Hz [
<xref rid="B55-sensors-16-00301" ref-type="bibr">55</xref>
].</p>
<p>We studied the smartphone sensor error sources and measured the accelerometer and gyroscope biases, identified the main causes for short-term and long-term bias variations, and quantified their precisions. The uncompensated accelerometer biases are in the range of ±40 m
<italic>g</italic>
<sub>0</sub>
, and those of the uncompensated gyroscope are in the range of ±1 deg/s. These values restrict their use in biofeedback systems to short analysis windows up to a few seconds long. Bias compensation can significantly increase the range of sensor usability, both in prolonged analysis times and in applications with higher precision requirements. Compensation using averaging times between 10 s and 100 s primarily eliminates sensor white noise. The compensation reduces the bias by an order of magnitude, but the long-term bias variations caused by temperature changes may remain a problem.</p>
<p>We composed a table of predicted smartphone accelerometer and gyroscope analysis accuracies for motion capture in biomechanical biofeedback systems, see
<xref ref-type="table" rid="sensors-16-00301-t002">Table 2</xref>
. The table includes various analysis time windows on which we base the presented bias compensation scenarios. These scenarios can be used as guidance for proper use of smartphone sensor signals in biofeedback applications.</p>
<p>We developed an experimental biofeedback application that showed the following: for loose biofeedback demands and short analysis times, the application operates within the specified requirements even with uncompensated inertial sensors; for stricter biofeedback demands, longer analysis times, and more detailed movement analysis, bias compensation is necessary.</p>
<p>The confirmation of the usability of smartphone inertial sensors for the experimental real-time biofeedback application is only the first step in a much larger project: implementation of biofeedback systems for motor learning. Some very modest experiments have already been conducted. These experiments indicate that the motor learning curve is much more favorable with the aid of biofeedback. We believe that such biofeedback systems are applicable to many similar examples in sport, fitness, healthcare, and other areas.</p>
</sec>
</body>
<back>
<ack>
<title>Acknowledgments</title>
<p>This work was supported by the Slovenian Research Agency within the research program
<italic>Algorithms and Optimization Methods in Telecommunications</italic>
and the project
<italic>Use of Wireless Sensor Devices for Motion Analysis And Biofeedback</italic>
. Publishing costs are covered by the research program
<italic>Algorithms and Optimization Methods in Telecommunications</italic>
.</p>
</ack>
<notes>
<title>Author Contributions</title>
<p>All authors contributed considerably to this article. The article was conceived and structured by all the authors. Anton Kos and Anton Umek conceived, designed, and performed the experiments, analyzed the data, and wrote the paper. The experimental application was conceived and developed by all the authors.</p>
</notes>
<notes>
<title>Conflicts of Interest</title>
<p>The authors declare no conflict of interest.</p>
</notes>
<ref-list>
<title>References</title>
<ref id="B1-sensors-16-00301">
<label>1.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fernando</surname>
<given-names>C.K.</given-names>
</name>
<name>
<surname>Basmajian</surname>
<given-names>J.V.</given-names>
</name>
</person-group>
<article-title>Biofeedback in physical medicine and rehabilitation</article-title>
<source>Biofeedback Self Regul.</source>
<year>1978</year>
<volume>3</volume>
<fpage>435</fpage>
<lpage>455</lpage>
<pub-id pub-id-type="doi">10.1007/BF00998946</pub-id>
<pub-id pub-id-type="pmid">751685</pub-id>
</element-citation>
</ref>
<ref id="B2-sensors-16-00301">
<label>2.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Basmajian</surname>
<given-names>J.V.</given-names>
</name>
</person-group>
<source>Biofeedback: Principles and Practice for Clinicians</source>
<edition>2nd Ed.</edition>
<publisher-name>Williams & Wilkins</publisher-name>
<publisher-loc>Baltimore, MD, USA</publisher-loc>
<year>1989</year>
</element-citation>
</ref>
<ref id="B3-sensors-16-00301">
<label>3.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Sandweiss</surname>
<given-names>J.H.</given-names>
</name>
</person-group>
<source>Biofeedback and Sports Science</source>
<publisher-name>Springer US</publisher-name>
<publisher-loc>New York, NY, USA</publisher-loc>
<year>1985</year>
</element-citation>
</ref>
<ref id="B4-sensors-16-00301">
<label>4.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Blumenstein</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Bar-Eli</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Tenenbaum</surname>
<given-names>G.</given-names>
</name>
</person-group>
<source>Brain and Body in Sport and Exercise: Biofeedback Applications in Performance Enhancement</source>
<publisher-name>John Wiley & Sons</publisher-name>
<publisher-loc>Chichester, UK</publisher-loc>
<year>2002</year>
</element-citation>
</ref>
<ref id="B5-sensors-16-00301">
<label>5.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Giggins</surname>
<given-names>O.M.</given-names>
</name>
<name>
<surname>Persson</surname>
<given-names>U.M.</given-names>
</name>
<name>
<surname>Caulfield</surname>
<given-names>B.</given-names>
</name>
</person-group>
<article-title>Biofeedback in rehabilitation</article-title>
<source>J. Neuroeng. Rehabil.</source>
<year>2013</year>
<volume>10</volume>
<pub-id pub-id-type="doi">10.1186/1743-0003-10-60</pub-id>
<pub-id pub-id-type="pmid">23777436</pub-id>
</element-citation>
</ref>
<ref id="B6-sensors-16-00301">
<label>6.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wolf</surname>
<given-names>S.L.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>J.</given-names>
</name>
</person-group>
<article-title>Recent developments in biofeedback for neuromotor rehabilitation</article-title>
<source>J. Neuroeng. Rehabil.</source>
<year>2006</year>
<volume>3</volume>
<pub-id pub-id-type="doi">10.1186/1743-0003-3-11</pub-id>
<pub-id pub-id-type="pmid">16790060</pub-id>
</element-citation>
</ref>
<ref id="B7-sensors-16-00301">
<label>7.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Franco</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Fleury</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Guméry</surname>
<given-names>P.Y.</given-names>
</name>
<name>
<surname>Diot</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Demongeot</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Vuillerme</surname>
<given-names>N.</given-names>
</name>
</person-group>
<article-title>iBalance-ABF: A smartphone-based audio-biofeedback balance system</article-title>
<source>IEEE Trans. Biomed. Eng.</source>
<year>2013</year>
<volume>60</volume>
<fpage>211</fpage>
<lpage>215</lpage>
<pub-id pub-id-type="doi">10.1109/TBME.2012.2222640</pub-id>
<pub-id pub-id-type="pmid">23047859</pub-id>
</element-citation>
</ref>
<ref id="B8-sensors-16-00301">
<label>8.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Alahakone</surname>
<given-names>A.U.</given-names>
</name>
<name>
<surname>Arosha Senanayake</surname>
<given-names>S.M.N.</given-names>
</name>
</person-group>
<article-title>A real time vibrotactile biofeedback system for improving lower extremity kinematic motion during sports training</article-title>
<source>Proceedings of the International Conference of Soft Computing and Pattern Recognition</source>
<conf-loc>Malacca, Malaysia</conf-loc>
<conf-date>4–7 December 2009</conf-date>
<fpage>610</fpage>
<lpage>615</lpage>
</element-citation>
</ref>
<ref id="B9-sensors-16-00301">
<label>9.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Crowell</surname>
<given-names>H.P.</given-names>
</name>
<name>
<surname>Milner</surname>
<given-names>C.E.</given-names>
</name>
<name>
<surname>Hamill</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Davis</surname>
<given-names>I.S.</given-names>
</name>
</person-group>
<article-title>Reducing impact loading during running with the use of real-time visual feedback</article-title>
<source>J. Orthop. Sport Phys.</source>
<year>2010</year>
<volume>40</volume>
<fpage>206</fpage>
<lpage>213</lpage>
<pub-id pub-id-type="doi">10.2519/jospt.2010.3166</pub-id>
<pub-id pub-id-type="pmid">20357417</pub-id>
</element-citation>
</ref>
<ref id="B10-sensors-16-00301">
<label>10.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lieberman</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Breazeal</surname>
<given-names>C.</given-names>
</name>
</person-group>
<article-title>TIKL: Development of a wearable vibrotactile feedback suit for improved human motor learning</article-title>
<source>IEEE Trans. Robot.</source>
<year>2007</year>
<volume>23</volume>
<fpage>919</fpage>
<lpage>926</lpage>
<pub-id pub-id-type="doi">10.1109/TRO.2007.907481</pub-id>
</element-citation>
</ref>
<ref id="B11-sensors-16-00301">
<label>11.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sigrist</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Rauter</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Riener</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Wolf</surname>
<given-names>P.</given-names>
</name>
</person-group>
<article-title>Augmented visual, auditory, haptic, and multimodal feedback in motor learning: A review</article-title>
<source>Psychon. Bull. Rev.</source>
<year>2013</year>
<volume>20</volume>
<fpage>21</fpage>
<lpage>53</lpage>
<pub-id pub-id-type="doi">10.3758/s13423-012-0333-8</pub-id>
<pub-id pub-id-type="pmid">23132605</pub-id>
</element-citation>
</ref>
<ref id="B12-sensors-16-00301">
<label>12.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sigrist</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Rauter</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Marchal-Crespo</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Riener</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Wolf</surname>
<given-names>P.</given-names>
</name>
</person-group>
<article-title>Sonification and haptic feedback in addition to visual feedback enhances complex motor task learning</article-title>
<source>Exp. Brain Res.</source>
<year>2015</year>
<volume>233</volume>
<fpage>909</fpage>
<lpage>925</lpage>
<pub-id pub-id-type="doi">10.1007/s00221-014-4167-7</pub-id>
<pub-id pub-id-type="pmid">25511166</pub-id>
</element-citation>
</ref>
<ref id="B13-sensors-16-00301">
<label>13.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Schneider</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Börner</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>van Rosmalen</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Specht</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Augmenting the senses: A review on sensor-based learning support</article-title>
<source>Sensors</source>
<year>2015</year>
<volume>15</volume>
<fpage>4097</fpage>
<lpage>4133</lpage>
<pub-id pub-id-type="doi">10.3390/s150204097</pub-id>
<pub-id pub-id-type="pmid">25679313</pub-id>
</element-citation>
</ref>
<ref id="B14-sensors-16-00301">
<label>14.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chambers</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Gabbett</surname>
<given-names>T.J.</given-names>
</name>
<name>
<surname>Cole</surname>
<given-names>M.H.</given-names>
</name>
<name>
<surname>Beard</surname>
<given-names>A.</given-names>
</name>
</person-group>
<article-title>The use of wearable microsensors to quantify sport-specific movements</article-title>
<source>Sports Med.</source>
<year>2015</year>
<volume>45</volume>
<fpage>1065</fpage>
<lpage>1081</lpage>
<pub-id pub-id-type="doi">10.1007/s40279-015-0332-9</pub-id>
<pub-id pub-id-type="pmid">25834998</pub-id>
</element-citation>
</ref>
<ref id="B15-sensors-16-00301">
<label>15.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Windolf</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Götzen</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Morlock</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>Systematic accuracy and precision analysis of video motion capturing systems—Exemplified on the Vicon-460 system</article-title>
<source>J. Biomech.</source>
<year>2008</year>
<volume>41</volume>
<fpage>2776</fpage>
<lpage>2780</lpage>
<pub-id pub-id-type="doi">10.1016/j.jbiomech.2008.06.024</pub-id>
<pub-id pub-id-type="pmid">18672241</pub-id>
</element-citation>
</ref>
<ref id="B16-sensors-16-00301">
<label>16.</label>
<element-citation publication-type="patent">
<person-group person-group-type="author">
<name>
<surname>Josefsson</surname>
<given-names>T.</given-names>
</name>
</person-group>
<article-title>Motion Analysis System</article-title>
<source>U.S. Patent</source>
<patent>6,437,820</patent>
<day>20</day>
<month>8</month>
<year>2002</year>
</element-citation>
</ref>
<ref id="B17-sensors-16-00301">
<label>17.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Umek</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tomažič</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kos</surname>
<given-names>A.</given-names>
</name>
</person-group>
<article-title>Wearable training system with real-time biofeedback and gesture user interface</article-title>
<source>Pers. Ubiquitous Comput.</source>
<year>2015</year>
<volume>19</volume>
<fpage>989</fpage>
<lpage>998</lpage>
<pub-id pub-id-type="doi">10.1007/s00779-015-0886-4</pub-id>
</element-citation>
</ref>
<ref id="B18-sensors-16-00301">
<label>18.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dai</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Bai</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Shen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xuan</surname>
<given-names>D.</given-names>
</name>
</person-group>
<article-title>Mobile phone-based pervasive fall detection</article-title>
<source>Pers. Ubiquitous Comput.</source>
<year>2010</year>
<volume>14</volume>
<fpage>633</fpage>
<lpage>643</lpage>
<pub-id pub-id-type="doi">10.1007/s00779-010-0292-x</pub-id>
</element-citation>
</ref>
<ref id="B19-sensors-16-00301">
<label>19.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Casamassima</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Ferrari</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Milosevic</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Ginis</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Farella</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Rocchi</surname>
<given-names>L.</given-names>
</name>
</person-group>
<article-title>A wearable system for gait training in subjects with Parkinson’s disease</article-title>
<source>Sensors</source>
<year>2014</year>
<volume>14</volume>
<fpage>6229</fpage>
<lpage>6246</lpage>
<pub-id pub-id-type="doi">10.3390/s140406229</pub-id>
<pub-id pub-id-type="pmid">24686731</pub-id>
</element-citation>
</ref>
<ref id="B20-sensors-16-00301">
<label>20.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Giggins</surname>
<given-names>O.M.</given-names>
</name>
<name>
<surname>Sweeney</surname>
<given-names>K.T.</given-names>
</name>
<name>
<surname>Caulfield</surname>
<given-names>B.</given-names>
</name>
</person-group>
<article-title>Rehabilitation exercise assessment using inertial sensors: A cross-sectional analytical study</article-title>
<source>J. Neuroeng. Rehabil.</source>
<year>2014</year>
<volume>11</volume>
<pub-id pub-id-type="doi">10.1186/1743-0003-11-158</pub-id>
<pub-id pub-id-type="pmid">25431092</pub-id>
</element-citation>
</ref>
<ref id="B21-sensors-16-00301">
<label>21.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wei</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Bie</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>L.</given-names>
</name>
</person-group>
<article-title>Performance monitoring and evaluation in dance teaching with mobile sensing technology</article-title>
<source>Pers. Ubiquitous Comput.</source>
<year>2014</year>
<volume>18</volume>
<fpage>1929</fpage>
<lpage>1939</lpage>
<pub-id pub-id-type="doi">10.1007/s00779-014-0799-7</pub-id>
</element-citation>
</ref>
<ref id="B22-sensors-16-00301">
<label>22.</label>
<element-citation publication-type="webpage">
<article-title>Smartphone-penetration</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://en.wikipedia.org/wiki/List_of_countries_by_smartphone_penetration">http://en.wikipedia.org/wiki/List_of_countries_by_smartphone_penetration</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B23-sensors-16-00301">
<label>23.</label>
<element-citation publication-type="webpage">
<article-title>Number of smartphones</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.emarketer.com/Article/2-Billion-Consumers-Worldwide-Smartphones-by-2016/1011694">http://www.emarketer.com/Article/2-Billion-Consumers-Worldwide-Smartphones-by-2016/1011694</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B24-sensors-16-00301">
<label>24.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<collab>Trackman Golf</collab>
</person-group>
<article-title>We need to define industry standards for accuracy</article-title>
<source>Trackman News</source>
<month>1</month>
<year>2009</year>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://trackmangolf.com">http://trackmangolf.com</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B25-sensors-16-00301">
<label>25.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>Fitzgerald</surname>
<given-names>A.M.</given-names>
</name>
</person-group>
<article-title>A practical Guide to MEMS inertial sensors</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.amfitzgerald.com/papers/131114_AMFitzgerald_MEMS_Inertial_Sensors.pdf">http://www.amfitzgerald.com/papers/131114_AMFitzgerald_MEMS_Inertial_Sensors.pdf</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B26-sensors-16-00301">
<label>26.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>Looney</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>A Simple Calibration for MEMS Gyroscopes</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.edn.com/design/sensors/4363439/A-simple-calibration-for-MEMS-gyroscopes">http://www.edn.com/design/sensors/4363439/A-simple-calibration-for-MEMS-gyroscopes</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B27-sensors-16-00301">
<label>27.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Grewal</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Andrews</surname>
<given-names>A.</given-names>
</name>
</person-group>
<article-title>How good is your gyro: Ask the experts</article-title>
<source>IEEE Control Syst.</source>
<year>2010</year>
<volume>30</volume>
<fpage>12</fpage>
<lpage>86</lpage>
<pub-id pub-id-type="doi">10.1109/MCS.2009.935122</pub-id>
</element-citation>
</ref>
<ref id="B28-sensors-16-00301">
<label>28.</label>
<element-citation publication-type="webpage">
<article-title>Motion Sensing in the iPhone 4: MEMS Accelerometer</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.memsjournal.com/2010/12/motion-sensing-in-the-iphone-4-mems-accelerometer.html">http://www.memsjournal.com/2010/12/motion-sensing-in-the-iphone-4-mems-accelerometer.html</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B29-sensors-16-00301">
<label>29.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>ST Microelectronics</surname>
<given-names>M.E.M.S.</given-names>
</name>
</person-group>
<article-title>Digital Output Motion Sensor Ultra Low-Power High. Performance 3-Axes “Nano” Accelerometer, LIS331DLH Specifications. ST Microelectronics</article-title>
<year>2009</year>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.st.com/web/en/resource/technical/document/datasheet/CD00213470.pdf">http://www.st.com/web/en/resource/technical/document/datasheet/CD00213470.pdf</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B30-sensors-16-00301">
<label>30.</label>
<element-citation publication-type="webpage">
<article-title>Motion Sensing in the iPhone 4: MEMS Gyroscope</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.memsjournal.com/2011/01/motion-sensing-in-the-iphone-4-mems-gyroscope.html">http://www.memsjournal.com/2011/01/motion-sensing-in-the-iphone-4-mems-gyroscope.html</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B31-sensors-16-00301">
<label>31.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>ST Microelectronics</surname>
<given-names>M.E.M.S.</given-names>
</name>
</person-group>
<article-title>Motion Sensor: Ultra-Stable Three-Axis Digital Output Gyroscope, L3G4200D Specifications. ST Microelectronics</article-title>
<year>2010</year>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.st.com/web/en/resource/technical/document/datasheet/CD00265057.pdf">http://www.st.com/web/en/resource/technical/document/datasheet/CD00265057.pdf</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B32-sensors-16-00301">
<label>32.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<collab>ST Microelectronics</collab>
</person-group>
<article-title>Everything about STMicroelectronics’ 3-Axis Digital MEMS Gyroscopes, TA0343, Technical article. ST Microelectronics</article-title>
<month>7</month>
<year>2011</year>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.st.com/web/en/resource/technical/document/technical_article/DM00034730.pdf">http://www.st.com/web/en/resource/technical/document/technical_article/DM00034730.pdf</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B33-sensors-16-00301">
<label>33.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>El-Sheimy</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Hou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Niu</surname>
<given-names>X.</given-names>
</name>
</person-group>
<article-title>Analysis and modeling of inertial sensors using Allan variance</article-title>
<source>IEEE Trans. Instrum. Meas.</source>
<year>2008</year>
<volume>57</volume>
<fpage>140</fpage>
<lpage>149</lpage>
<pub-id pub-id-type="doi">10.1109/TIM.2007.908635</pub-id>
</element-citation>
</ref>
<ref id="B34-sensors-16-00301">
<label>34.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>Stockwell</surname>
<given-names>W.</given-names>
</name>
</person-group>
<article-title>Bias Stability Measurement: Allan Variance</article-title>
<year>2004</year>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.moog-crossbow.com/Literature/Application_Notes_Papers/Gyro_Bias_Stability_Measurement_using_Allan_Variance.pdf">http://www.moog-crossbow.com/Literature/Application_Notes_Papers/Gyro_Bias_Stability_Measurement_using_Allan_Variance.pdf</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B35-sensors-16-00301">
<label>35.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shaeffer</surname>
<given-names>D.K.</given-names>
</name>
</person-group>
<article-title>MEMS inertial sensors: A tutorial overview</article-title>
<source>IEEE Commun. Mag.</source>
<year>2013</year>
<volume>51</volume>
<fpage>100</fpage>
<lpage>109</lpage>
<pub-id pub-id-type="doi">10.1109/MCOM.2013.6495768</pub-id>
</element-citation>
</ref>
<ref id="B36-sensors-16-00301">
<label>36.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>M.</given-names>
</name>
</person-group>
<article-title>A study of mobile sensing using smartphones</article-title>
<source>Int. J. Distrib. Sens. Netw.</source>
<year>2013</year>
<volume>2013</volume>
<fpage>1</fpage>
<lpage>11</lpage>
<pub-id pub-id-type="doi">10.1155/2013/272916</pub-id>
</element-citation>
</ref>
<ref id="B37-sensors-16-00301">
<label>37.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Ortiz</surname>
<given-names>J.L.R.</given-names>
</name>
</person-group>
<source>Smartphone-Based Human Activity Recognition</source>
<publisher-name>Springer</publisher-name>
<publisher-loc>Berlin, Germany</publisher-loc>
<year>2015</year>
</element-citation>
</ref>
<ref id="B38-sensors-16-00301">
<label>38.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>El-Diasty</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Pagiatakis</surname>
<given-names>S.</given-names>
</name>
</person-group>
<article-title>Calibration and stochastic modelling of inertial navigation sensor errors</article-title>
<source>J. GPS</source>
<year>2008</year>
<volume>7</volume>
<fpage>170</fpage>
<lpage>182</lpage>
<pub-id pub-id-type="doi">10.5081/jgps.7.2.170</pub-id>
</element-citation>
</ref>
<ref id="B39-sensors-16-00301">
<label>39.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Aggarwal</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Syed</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Niu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>El-Sheimy</surname>
<given-names>N.</given-names>
</name>
</person-group>
<article-title>A standard testing and calibration procedure for low cost MEMS inertial sensors and units</article-title>
<source>J. Navig.</source>
<year>2008</year>
<volume>61</volume>
<fpage>323</fpage>
<lpage>336</lpage>
<pub-id pub-id-type="doi">10.1017/S0373463307004560</pub-id>
</element-citation>
</ref>
<ref id="B40-sensors-16-00301">
<label>40.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Xue</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Chang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>W.</given-names>
</name>
</person-group>
<article-title>Signal processing of MEMS gyroscope arrays to improve accuracy using a 1st order markov for rate signal modeling</article-title>
<source>Sensors</source>
<year>2012</year>
<volume>12</volume>
<fpage>1720</fpage>
<lpage>1737</lpage>
<pub-id pub-id-type="doi">10.3390/s120201720</pub-id>
<pub-id pub-id-type="pmid">22438734</pub-id>
</element-citation>
</ref>
<ref id="B41-sensors-16-00301">
<label>41.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Aggarwal</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Syed</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Niu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>El-Sheimy</surname>
<given-names>N.</given-names>
</name>
</person-group>
<article-title>Cost-effective testing and calibration of low cost MEMS sensors for integrated positioning, navigation and mapping systems</article-title>
<source>Proceedings of the XIII Fig Conference</source>
<conf-loc>Munich, Germany</conf-loc>
<conf-date>8–13 October 2006</conf-date>
<fpage>8</fpage>
<lpage>13</lpage>
</element-citation>
</ref>
<ref id="B42-sensors-16-00301">
<label>42.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Prikhodko</surname>
<given-names>I.P.</given-names>
</name>
<name>
<surname>Trusov</surname>
<given-names>A.A.</given-names>
</name>
<name>
<surname>Shkel</surname>
<given-names>A.M.</given-names>
</name>
</person-group>
<article-title>Compensation of drifts in high-Q MEMS gyroscopes using temperature self-sensing</article-title>
<source>Sens. Actuators A Phys.</source>
<year>2013</year>
<volume>201</volume>
<fpage>517</fpage>
<lpage>524</lpage>
<pub-id pub-id-type="doi">10.1016/j.sna.2012.12.024</pub-id>
</element-citation>
</ref>
<ref id="B43-sensors-16-00301">
<label>43.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Weinberg</surname>
<given-names>H.</given-names>
</name>
</person-group>
<article-title>Gyro mechanical performance: The most important parameter</article-title>
<comment>Technical Article MS-2158</comment>
<publisher-name>Analog Devices</publisher-name>
<publisher-loc>Norwood, NC, USA</publisher-loc>
<month>9</month>
<year>2011</year>
</element-citation>
</ref>
<ref id="B44-sensors-16-00301">
<label>44.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Allan</surname>
<given-names>D.W.</given-names>
</name>
</person-group>
<article-title>Statistics of atomic frequency standards</article-title>
<source>IEEE Proc.</source>
<year>1966</year>
<volume>54</volume>
<fpage>221</fpage>
<lpage>230</lpage>
<pub-id pub-id-type="doi">10.1109/PROC.1966.4634</pub-id>
</element-citation>
</ref>
<ref id="B45-sensors-16-00301">
<label>45.</label>
<element-citation publication-type="webpage">
<article-title>IEEE Standard Specification Format Guide and Test Procedure for Single-Axis Laser Gyros</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=494457&filter=AND%28p_Publication_Number:3601%29">http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=494457&filter=AND%28p_Publication_Number:3601%29</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2016)</date-in-citation>
</element-citation>
</ref>
<ref id="B46-sensors-16-00301">
<label>46.</label>
<element-citation publication-type="webpage">
<article-title>Allan Variance</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.allanstime.com/AllanVariance/">http://www.allanstime.com/AllanVariance/</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B47-sensors-16-00301">
<label>47.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Land</surname>
<given-names>D.V.</given-names>
</name>
<name>
<surname>Levick</surname>
<given-names>A.P.</given-names>
</name>
<name>
<surname>Hand</surname>
<given-names>J.W.</given-names>
</name>
</person-group>
<article-title>The use of the Allan deviation for the measurement of the noise and drift performance of microwave radiometers</article-title>
<source>Meas. Sci. Technol.</source>
<year>2007</year>
<volume>18</volume>
<fpage>1917</fpage>
<lpage>1928</lpage>
<pub-id pub-id-type="doi">10.1088/0957-0233/18/7/018</pub-id>
</element-citation>
</ref>
<ref id="B48-sensors-16-00301">
<label>48.</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Hongwei</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Yuli</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Guangfeng</surname>
<given-names>C.</given-names>
</name>
</person-group>
<article-title>Relations between the Standard variance and the Allan variance</article-title>
<source>Proceedings of the 2010 International Conference on Computational and Information Sciences</source>
<conf-loc>Chengdu, China</conf-loc>
<conf-date>17–19 December 2010</conf-date>
<fpage>66</fpage>
<lpage>67</lpage>
</element-citation>
</ref>
<ref id="B49-sensors-16-00301">
<label>49.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Leland</surname>
<given-names>R.P.</given-names>
</name>
</person-group>
<article-title>Mechanical-thermal noise in MEMS gyroscopes</article-title>
<source>IEEE Sens. J.</source>
<year>2005</year>
<volume>5</volume>
<fpage>493</fpage>
<lpage>500</lpage>
<pub-id pub-id-type="doi">10.1109/JSEN.2005.844538</pub-id>
</element-citation>
</ref>
<ref id="B50-sensors-16-00301">
<label>50.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mohd-Yasin</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Korman</surname>
<given-names>C.E.</given-names>
</name>
<name>
<surname>Nagel</surname>
<given-names>D.J.</given-names>
</name>
</person-group>
<article-title>Measurement of noise characteristics of MEMS accelerometers</article-title>
<source>Solid. State. Electron.</source>
<year>2003</year>
<volume>47</volume>
<fpage>357</fpage>
<lpage>360</lpage>
<pub-id pub-id-type="doi">10.1016/S0038-1101(02)00220-4</pub-id>
</element-citation>
</ref>
<ref id="B51-sensors-16-00301">
<label>51.</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Woodman</surname>
<given-names>O.J.</given-names>
</name>
</person-group>
<source>An Introduction to Inertial Navigation</source>
<comment>Techical Report UCAMCL-TR-696 14</comment>
<publisher-name>University of Cambridge, Computer Laboratory</publisher-name>
<publisher-loc>Cambridge, UK</publisher-loc>
<year>2007</year>
</element-citation>
</ref>
<ref id="B52-sensors-16-00301">
<label>52.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Stančin</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Tomažič</surname>
<given-names>S.</given-names>
</name>
</person-group>
<article-title>Time-and Computation-Efficient Calibration of MEMS 3D Accelerometers and Gyroscopes</article-title>
<source>Sensors</source>
<year>2014</year>
<volume>14</volume>
<fpage>14885</fpage>
<lpage>14915</lpage>
<pub-id pub-id-type="doi">10.3390/s140814885</pub-id>
<pub-id pub-id-type="pmid">25123469</pub-id>
</element-citation>
</ref>
<ref id="B53-sensors-16-00301">
<label>53.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>Woods</surname>
<given-names>T.</given-names>
</name>
</person-group>
<article-title>Maintain A Quiet Head</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="http://www.golfdigest.com/golf-instruction/2009-10/tiger_woods_keep_quiet_head">http://www.golfdigest.com/golf-instruction/2009-10/tiger_woods_keep_quiet_head</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B54-sensors-16-00301">
<label>54.</label>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>Doyle</surname>
<given-names>B.</given-names>
</name>
</person-group>
<article-title>Experts Weigh in on Head Movement during the Golf Swing</article-title>
<comment>Available online:
<ext-link ext-link-type="uri" xlink:href="https://foreverbettergolf.com/articles/experts-weigh-in-on-head-movement-during-the-golf-swing/">https://foreverbettergolf.com/articles/experts-weigh-in-on-head-movement-during-the-golf-swing/</ext-link>
</comment>
<date-in-citation>(accessed on 26 December 2015)</date-in-citation>
</element-citation>
</ref>
<ref id="B55-sensors-16-00301">
<label>55.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Karantonis</surname>
<given-names>D.M.</given-names>
</name>
<name>
<surname>Narayanan</surname>
<given-names>M.R.</given-names>
</name>
<name>
<surname>Mathie</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Lovell</surname>
<given-names>N.H.</given-names>
</name>
<name>
<surname>Celler</surname>
<given-names>B.G.</given-names>
</name>
</person-group>
<article-title>Implementation of a real-time human movement classifier using a triaxial accelerometer for ambulatory monitoring</article-title>
<source>IEEE Trans. Inf. Technol. Biomed.</source>
<year>2006</year>
<volume>10</volume>
<pub-id pub-id-type="doi">10.1109/TITB.2005.856864</pub-id>
</element-citation>
</ref>
</ref-list>
</back>
<floats-group>
<fig id="sensors-16-00301-f001" position="float">
<label>Figure 1</label>
<caption>
<p>Operation of the biofeedback system. The user starts to execute a movement. One or more sensors attached to the user feed their signals to the processing device for real-time signal analysis. The analysis results drive the feedback device activity. The user may react to the feedback signals (audio, video, or tactile), ideally by correction of the unwanted action, but most likely by interrupting the action and correcting it in the next try. User (re)action alters the sensor signals, thus closing the feedback loop of the system.</p>
</caption>
<graphic xlink:href="sensors-16-00301-g001"></graphic>
</fig>
<fig id="sensors-16-00301-f002" position="float">
<label>Figure 2</label>
<caption>
<p>3D gyroscope and 3D accelerometer biases obtained from multiple measurements on several smartphones. Values are shown in a scatter diagram with each of the axes plotted in a separate vertical column. Biases are calculated by averaging
<italic>N</italic>
= 600 sensor signal samples at a sampling frequency
<italic>f
<sub>s</sub>
</italic>
= 60 Hz; the corresponding averaging time is therefore τ = 10 s. (
<bold>a</bold>
) Accelerometer biases presented in m
<italic>g</italic>
<sub>0</sub>
have slightly different dynamic ranges; (
<bold>b</bold>
) Gyroscope biases presented in deg/s have similar dynamic ranges.</p>
</caption>
<graphic xlink:href="sensors-16-00301-g002"></graphic>
</fig>
<fig id="sensors-16-00301-f003" position="float">
<label>Figure 3</label>
<caption>
<p>Measured bias values in the 3-hour temperature stress test. The bias values are found by averaging 600 sensor signal samples in 10 s intervals. Temperature changes induce noticeable bias drifts in the accelerometers and gyroscopes. The graphs show the bias drifts of the (
<bold>a</bold>
) accelerometer X-axis and (
<bold>b</bold>
) gyroscope X-axis.</p>
</caption>
<graphic xlink:href="sensors-16-00301-g003"></graphic>
</fig>
<fig id="sensors-16-00301-f004" position="float">
<label>Figure 4</label>
<caption>
<p>Allan variance measurements for all three axes of the accelerometer and gyroscope of a single smartphone as a function of averaging time in seconds. The dotted line represents the white noise model: (
<bold>a</bold>
) Accelerometer results conform to the VRW model at short averaging times; (
<bold>b</bold>
) Gyroscope results conform to the ARW model at short averaging times. Values in rectangles represent Allan deviation at averaging time of 1 s.</p>
</caption>
<graphic xlink:href="sensors-16-00301-g004"></graphic>
</fig>
<fig id="sensors-16-00301-f005" position="float">
<label>Figure 5</label>
<caption>
<p>Bias variations and their effects. (
<bold>a</bold>
) The bias changes with time (blue line) in the short term primarily because of bias noise (ARW) and in the long term because of other influences (red dashed line). Bias drift is the change in bias value between times
<italic>t</italic>
<sub>0</sub>
and
<italic>t</italic>
<sub>1</sub>
; (
<bold>b</bold>
) Without compensation, we experience
<italic>bias error A</italic>
. With the compensation at time
<italic>t</italic>
<sub>0</sub>
, we decrease the bias error for the measured bias estimate to get
<italic>bias error B</italic>
. By time
<italic>t</italic>
<sub>1</sub>
, the bias drift causes the error to grow to the value of
<italic>bias error C</italic>
.</p>
</caption>
<graphic xlink:href="sensors-16-00301-g005"></graphic>
</fig>
<fig id="sensors-16-00301-f006" position="float">
<label>Figure 6</label>
<caption>
<p>Series of swings performed by a professional golf player. Plots show gyroscope rotation speed around Z-axis in degrees per second. The presented last 200 samples of the swing, at sampling rate of 60 Hz, yield the analysis window of 3.33 s.</p>
</caption>
<graphic xlink:href="sensors-16-00301-g006"></graphic>
</fig>
<fig id="sensors-16-00301-f007" position="float">
<label>Figure 7</label>
<caption>
<p>Series of swings performed by a professional golf player. The plots show the head roll in degrees for the last 3.33 s of each swing. The last 200 samples of the swing at a sampling rate of 60 Hz yields an analysis window of 3.33 s.</p>
</caption>
<graphic xlink:href="sensors-16-00301-g007"></graphic>
</fig>
<table-wrap id="sensors-16-00301-t001" position="float">
<object-id pub-id-type="pii">sensors-16-00301-t001_Table 1</object-id>
<label>Table 1</label>
<caption>
<p>The main parameters of the MEMS accelerometer and gyroscope embedded in the iPhone 4.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">Parameter</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">3-axis AccelerometerLIS331DLH</th>
<th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin" rowspan="1" colspan="1">3-axis GyroscopeL3G4200D</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Range</td>
<td align="center" valign="middle" rowspan="1" colspan="1">±2 g–±8 g</td>
<td align="center" valign="middle" rowspan="1" colspan="1">±250–±2000 deg/s</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Sensitivity</td>
<td align="center" valign="middle" rowspan="1" colspan="1">1 ± 0.1 mg/dig</td>
<td align="center" valign="middle" rowspan="1" colspan="1">70 mdeg/s/dig</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Bias error</td>
<td align="center" valign="middle" rowspan="1" colspan="1">±20 mg</td>
<td align="center" valign="middle" rowspan="1" colspan="1">±8 deg/s</td>
</tr>
<tr>
<td align="center" valign="middle" rowspan="1" colspan="1">Noise density</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.218 mg/sqrt(Hz)</td>
<td align="center" valign="middle" rowspan="1" colspan="1">0.03 deg/s/sqrt(Hz)</td>
</tr>
<tr>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Data rate</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.5–1000 Hz</td>
<td align="center" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">100/200/400/800 Hz</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00301-t002" position="float">
<object-id pub-id-type="pii">sensors-16-00301-t002_Table 2</object-id>
<label>Table 2</label>
<caption>
<p>Predicted analysis accuracy of accelerometer and gyroscope data in different bias compensation states and different analysis time frames. Red colored values indicate accuracies that are outside of the boundaries set for the example biofeedback application presented in the
<xref ref-type="sec" rid="sec1-sensors-16-00301">introduction section</xref>
.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th rowspan="2" align="left" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Sensor/Derived Parameter</th>
<th rowspan="2" align="left" valign="middle" style="border-top:solid thin;border-bottom:solid thin" colspan="1">Bias Error</th>
<th colspan="3" align="center" valign="top" style="border-top:solid thin;border-bottom:solid thin" rowspan="1">Analysis Time Frame</th>
</tr>
<tr>
<th align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">1 s</th>
<th align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">3 s</th>
<th align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">10 s</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3" align="left" valign="middle" style="border-bottom:solid thin" colspan="1">Accelerometer
<break></break>
<italic>position error</italic>
<break></break>
[cm]</td>
<td align="left" valign="top" rowspan="1" colspan="1">A Δ
<italic>a</italic>
= 40 mg
<sub>0</sub>
</td>
<td align="right" valign="top" rowspan="1" colspan="1">
<bold>19.60</bold>
</td>
<td align="right" valign="top" rowspan="1" colspan="1">
<bold>176.8</bold>
</td>
<td align="right" valign="top" rowspan="1" colspan="1">
<bold>1964.0</bold>
</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="1" colspan="1">B (
<italic>T
<sub>avg</sub>
</italic>
= 10 s), Δ
<italic>a</italic>
= 0.24 mg
<sub>0</sub>
<break></break>
B (
<italic>T
<sub>avg</sub>
</italic>
= 100 s), Δ
<italic>a</italic>
= 0.08 mg
<sub>0</sub>
</td>
<td align="right" valign="top" rowspan="1" colspan="1">0.10
<break></break>
0.04</td>
<td align="right" valign="top" rowspan="1" colspan="1">1.0
<break></break>
0.3</td>
<td align="right" valign="top" rowspan="1" colspan="1">
<bold>11.7</bold>
<break></break>
<bold>3.7</bold>
</td>
</tr>
<tr>
<td align="left" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">C Δ
<italic>a</italic>
= 4 mg
<sub>0</sub>
after one hour</td>
<td align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">2.00</td>
<td align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">
<bold>17.7</bold>
</td>
<td align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">
<bold>196.4</bold>
</td>
</tr>
<tr>
<td rowspan="3" align="left" valign="middle" style="border-bottom:solid thin" colspan="1">Accelerometer
<break></break>
<italic>gravitation angle error</italic>
<break></break>
(static measurement)
<break></break>
[deg]</td>
<td align="left" valign="top" rowspan="1" colspan="1">A Δ
<italic>a</italic>
= 40 mg
<sub>0</sub>
</td>
<td colspan="3" align="center" valign="top" rowspan="1">2.300</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="1" colspan="1">B Δ
<italic>a = 3</italic>
σ
<sub>A</sub>
(
<italic>T
<sub>avg</sub>
</italic>
= 10 s) = 0.24 mg
<sub>0</sub>
<break></break>
B Δ
<italic>a = 3</italic>
σ
<sub>A</sub>
(
<italic>T
<sub>avg</sub>
</italic>
= 100 s) = 0.08 mg
<sub>0</sub>
</td>
<td colspan="3" align="center" valign="top" rowspan="1">0.014
<break></break>
0.004</td>
</tr>
<tr>
<td align="left" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">C Δ
<italic>a</italic>
= 4 mg
<sub>0</sub>
after one hour</td>
<td colspan="3" align="center" valign="top" style="border-bottom:solid thin" rowspan="1">0.230</td>
</tr>
<tr>
<td rowspan="3" align="left" valign="middle" style="border-bottom:solid thin" colspan="1">Gyroscope
<break></break>
<italic>angle error</italic>
[deg]</td>
<td align="left" valign="top" rowspan="1" colspan="1">A ΔΩ = 1.15 deg/s</td>
<td align="right" valign="top" rowspan="1" colspan="1">1.15</td>
<td align="right" valign="top" rowspan="1" colspan="1">
<bold>3.45</bold>
</td>
<td align="right" valign="top" rowspan="1" colspan="1">
<bold>11.50</bold>
</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="1" colspan="1">B ΔΩ =
<italic>3</italic>
σ
<sub>A</sub>
(
<italic>T
<sub>avg</sub>
</italic>
= 10 s) = 27 mdeg/s
<break></break>
B ΔΩ =
<italic>3</italic>
σ
<sub>A</sub>
(
<italic>T
<sub>avg</sub>
</italic>
= 100 s) = 8.6 mdeg/s</td>
<td align="right" valign="top" rowspan="1" colspan="1">0.03
<break></break>
0.01</td>
<td align="right" valign="top" rowspan="1" colspan="1">0.08
<break></break>
0.03</td>
<td align="right" valign="top" rowspan="1" colspan="1">0.27
<break></break>
0.09</td>
</tr>
<tr>
<td align="left" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">C ΔΩ = 86 mdeg/s after one h</td>
<td align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">0.09</td>
<td align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">0.26</td>
<td align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">0.86</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="sensors-16-00301-t003" position="float">
<object-id pub-id-type="pii">sensors-16-00301-t003_Table 3</object-id>
<label>Table 3</label>
<caption>
<p>Predicted random walk errors induced by accelerometer and gyroscope white noise. Values in the table represent standard deviations.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th rowspan="2" colspan="2" align="left" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Random Walk Error</th>
<th colspan="3" align="center" valign="top" style="border-top:solid thin;border-bottom:solid thin" rowspan="1">Analysis Time Frame</th>
</tr>
<tr>
<th align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">1 s</th>
<th align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">3 s</th>
<th align="right" valign="top" style="border-bottom:solid thin" rowspan="1" colspan="1">10 s</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2" align="left" valign="middle" style="border-bottom:solid thin" colspan="1">Accelerometer
<break></break>
VRW = 0.25 mg
<sub>0</sub>
</td>
<td align="left" valign="middle" rowspan="1" colspan="1">STD of the position error [cm]</td>
<td align="right" valign="top" rowspan="1" colspan="1">0.14</td>
<td align="right" valign="top" rowspan="1" colspan="1">0.74</td>
<td align="right" valign="top" rowspan="1" colspan="1">4.48</td>
</tr>
<tr>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">STD of the gravitation angle error [deg]</td>
<td colspan="3" align="right" valign="top" style="border-bottom:solid thin" rowspan="1">0.02</td>
</tr>
<tr>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">Gyroscope
<break></break>
ARW = 28 mdeg/s</td>
<td align="left" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">STD of the angular error in [deg]</td>
<td align="right" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.03</td>
<td align="right" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.05</td>
<td align="right" valign="middle" style="border-bottom:solid thin" rowspan="1" colspan="1">0.09</td>
</tr>
</tbody>
</table>
</table-wrap>
</floats-group>
</pmc>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/HapticV1/Data/Pmc/Curation
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000575 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd -nk 000575 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Ticri/CIDE
   |area=    HapticV1
   |flux=    Pmc
   |étape=   Curation
   |type=    RBID
   |clé=     PMC:4813876
   |texte=   Suitability of Smartphone Inertial Sensors for Real-Time Biofeedback Applications
}}

Pour générer des pages wiki

HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Curation/RBID.i   -Sk "pubmed:26927125" \
       | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd   \
       | NlmPubMed2Wicri -a HapticV1 

Wicri

This area was generated with Dilib version V0.6.23.
Data generation: Mon Jun 13 01:09:46 2016. Site generation: Wed Mar 6 09:54:07 2024