<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Digit. Health</journal-id>
<journal-title>Frontiers in Digital Health</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Digit. Health</abbrev-journal-title>
<issn pub-type="epub">2673-253X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fdgth.2021.736418</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Digital Health</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Calibration-Free Gait Assessment by Foot-Worn Inertial Sensors</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Laidig</surname> <given-names>Daniel</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1394022/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Jocham</surname> <given-names>Andreas J.</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1429494/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Guggenberger</surname> <given-names>Bernhard</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1447263/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Adamer</surname> <given-names>Klemens</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1396445/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Fischer</surname> <given-names>Michael</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
<xref ref-type="aff" rid="aff5"><sup>5</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1122445/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Seel</surname> <given-names>Thomas</given-names></name>
<xref ref-type="aff" rid="aff6"><sup>6</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Control Systems Group, Technische Universit&#x000E4;t Berlin</institution>, <addr-line>Berlin</addr-line>, <country>Germany</country></aff>
<aff id="aff2"><sup>2</sup><institution>Institute of Physiotherapy, FH JOANNEUM University of Applied Sciences</institution>, <addr-line>Graz</addr-line>, <country>Austria</country></aff>
<aff id="aff3"><sup>3</sup><institution>Vamed Rehabilitation Center Kitzbuehel</institution>, <addr-line>Kitzbuehel</addr-line>, <country>Austria</country></aff>
<aff id="aff4"><sup>4</sup><institution>Ludwig Boltzmann Institute for Rehabilitation Research</institution>, <addr-line>Vienna</addr-line>, <country>Austria</country></aff>
<aff id="aff5"><sup>5</sup><institution>Hannover Medical School MHH, Clinic for Rehabilitation Medicine</institution>, <addr-line>Hannover</addr-line>, <country>Germany</country></aff>
<aff id="aff6"><sup>6</sup><institution>Department Artificial Intelligence in Biomedical Engineering, Friedrich-Alexander-Universit&#x000E4;t Erlangen-N&#x000FC;rnberg</institution>, <addr-line>Erlangen</addr-line>, <country>Germany</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Mohamed Elgendi, University of British Columbia, Canada</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Thibault Bernard Warlop, Catholic University of Louvain, Belgium; Matthew R. Patterson, Data Scientist Shimmer Research Ltd Dublin, Ireland</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Daniel Laidig <email>laidig&#x00040;control.tu-berlin.de</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Connected Health, a section of the journal Frontiers in Digital Health</p></fn></author-notes>
<pub-date pub-type="epub">
<day>04</day>
<month>11</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2021</year>
</pub-date>
<volume>3</volume>
<elocation-id>736418</elocation-id>
<history>
<date date-type="received">
<day>05</day>
<month>06</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>09</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2021 Laidig, Jocham, Guggenberger, Adamer, Fischer and Seel.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Laidig, Jocham, Guggenberger, Adamer, Fischer and Seel</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license></permissions>
<abstract><p>Walking is a central activity of daily life, and there is an increasing demand for objective measurement-based gait assessment. In contrast to stationary systems, wearable inertial measurement units (IMUs) have the potential to enable non-restrictive and accurate gait assessment in daily life. We propose a set of algorithms that uses the measurements of two foot-worn IMUs to determine major spatiotemporal gait parameters that are essential for clinical gait assessment: durations of five gait phases for each side as well as stride length, walking speed, and cadence. Compared to many existing methods, the proposed algorithms neither require magnetometers nor a precise mounting of the sensor or dedicated calibration movements. They are therefore suitable for unsupervised use by non-experts in indoor as well as outdoor environments. While previously proposed methods are rarely validated in pathological gait, we evaluate the accuracy of the proposed algorithms on a very broad dataset consisting of 215 trials and three different subject groups walking on a treadmill: healthy subjects (<italic>n</italic> &#x0003D; 39), walking at three different speeds, as well as orthopedic (<italic>n</italic> &#x0003D; 62) and neurological (<italic>n</italic> &#x0003D; 36) patients, walking at a self-selected speed. The results show a very strong correlation of all gait parameters (Pearson&#x00027;s <italic>r</italic> between 0.83 and 0.99, <italic>p</italic> &#x0003C; 0.01) between the IMU system and the reference system. The mean absolute difference (MAD) is 1.4 % for the gait phase durations, 1.7 cm for the stride length, 0.04 km/h for the walking speed, and 0.7 steps/min for the cadence. We show that the proposed methods achieve high accuracy not only for a large range of walking speeds but also in pathological gait as it occurs in orthopedic and neurological diseases. In contrast to all previous research, we present calibration-free methods for the estimation of gait phases and spatiotemporal parameters and validate them in a large number of patients with different pathologies. The proposed methods lay the foundation for ubiquitous unsupervised gait assessment in daily-life environments.</p></abstract>
<kwd-group>
<kwd>inertial sensors</kwd>
<kwd>IMU</kwd>
<kwd>human motion analysis</kwd>
<kwd>gait analysis</kwd>
<kwd>gait assessment</kwd>
<kwd>gait phases</kwd>
<kwd>rehabilitation</kwd>
<kwd>walking</kwd>
</kwd-group>
<counts>
<fig-count count="12"/>
<table-count count="3"/>
<equation-count count="32"/>
<ref-count count="71"/>
<page-count count="21"/>
<word-count count="13176"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Walking is a central activity of daily life, and restrictions of this ability lead to a reduction in the quality of life (<xref ref-type="bibr" rid="B1">1</xref>, <xref ref-type="bibr" rid="B2">2</xref>). Therefore, gait analysis is an important tool in different medical and therapeutic fields (<xref ref-type="bibr" rid="B3">3</xref>, <xref ref-type="bibr" rid="B4">4</xref>). The measurement of various gait characteristics can either facilitate diagnosis or be used to track the progress of rehabilitation. Gait can be measured by spatial (e.g., step or stride length) and temporal (e.g., stride time, cadence) parameters, relative durations of gait phases, and kinematic and kinetic gait variables (<xref ref-type="bibr" rid="B5">5</xref>). These parameters are used to quantify gait deviation in both clinical practice and research, and their use varies with the medical field, the research question, and the analysis options. While gait assessment in clinical practice is mostly based on visual observation by medical experts (<xref ref-type="bibr" rid="B6">6</xref>), it is desirable to support expert knowledge and time by objective measurements. This is also important because relevant gait changes are often too subtle to be detected by the naked eye (<xref ref-type="bibr" rid="B7">7</xref>).</p>
<p>Traditionally, sensor-based gait assessment is performed with stationary systems like marker-based optical motion tracking, instrumented treadmills, or pressure-sensitive walkways (<xref ref-type="bibr" rid="B6">6</xref>, <xref ref-type="bibr" rid="B8">8</xref>). Besides being expensive, one major drawback of those systems is that they are limited to a small capture space or require the subject to walk on a treadmill (<xref ref-type="bibr" rid="B4">4</xref>, <xref ref-type="bibr" rid="B9">9</xref>&#x02013;<xref ref-type="bibr" rid="B12">12</xref>). Furthermore, the use of walking aids is often not possible or restricted in combination with such systems.</p>
<p>A promising, more ambulatory, and less restrictive alternative is inertial gait analysis, i.e., gait analysis with inertial sensor technology. Lightweight and battery-powered inertial measurement units (IMUs) are used, which transmit the data wirelessly.</p>
<p>The transition from expensive stationary systems to small wearable sensors opens up possibilities that go beyond replacing the measurement technology used for gait assessment in a clinical setting. Integrating objective long-term gait monitoring in day-to-day life&#x02014;as illustrated in <xref ref-type="fig" rid="F1">Figure 1</xref>&#x02014;could provide more powerful tools for clinicians to help patients in rehabilitation but also to gain further insights into disease progression. Furthermore, non-obtrusive wearable plug-and-play systems facilitate applications in neuroprosthetics (<xref ref-type="bibr" rid="B13">13</xref>) or exoskeletons and can be used to provide biofeedback (<xref ref-type="bibr" rid="B14">14</xref>). In the last years, wireless battery-powered IMUs have become smaller, lighter, more accurate, and at the same time cheaper and more energy-efficient, and it is to be expected that this development is going to continue. For those new trends, it is important to develop methods that can provide a wide variety of gait parameters that are useful to medical experts. At the same time, the methods need to be robust so that the system can be used by patients in unsupervised settings, outdoors as well as indoors.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Inertial gait analysis can be realized with two miniaturized IMUs on the shoes, enabling daily-life assessment outside of laboratory environments. From the raw sensor data, orientation, gait phases, and velocity and position trajectories can be estimated. Parameters commonly used in gait analysis, such as stride length, cadence, and walking speed, can easily be derived from this.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0001.tif"/>
</fig>
<p>It has been shown by previous contributions (<xref ref-type="bibr" rid="B15">15</xref>&#x02013;<xref ref-type="bibr" rid="B17">17</xref>) that major gait parameters can be determined with two IMUs that are placed on the feet or the shoes, as illustrated in <xref ref-type="fig" rid="F1">Figure 1</xref>. This includes stride length, gait phase durations (e.g., stance and swing percentage), and also the cadence and walking speed.</p>
<p>Our aim is to propose methods for gait assessment that meet the requirements for day-to-day life monitoring in unsupervised settings and that are validated on a broad group of subjects including patients with various gait pathologies. The proposed methods do not assume any fixed orientation of the sensor with respect to the foot and do not require the subject to perform dedicated calibration movements. Furthermore, magnetometers are not used since the magnetic field is known to be severely disturbed in indoor environments (<xref ref-type="bibr" rid="B18">18</xref>). This makes the use of inertial gait analysis easy and practical in clinical settings and facilitates future applications of ubiquitous gait analysis in home environments.</p>
<p>The remainder of the article is structured as follows. In section 2, we briefly review existing methods for IMU-based spatiotemporal gait parameter estimation. In section 3, we describe the proposed methods, which we then validate in section 4 using experimental data of 98 orthopedic and neurological patients, as well as 39 healthy subjects walking at different speeds. The results are discussed in section 5, and section 6 provides conclusions.</p></sec>
<sec id="s2">
<title>2. Brief Review of IMU-Based Spatiotemporal Gait Parameter Estimation</title>
<p>Several methods have been proposed that employ inertial sensors to obtain spatiotemporal gait parameters. In the following, we present a brief overview of the current state of the art and summarize the different hardware setups that are used, which parameters are calculated, and how the methods were validated. <xref ref-type="table" rid="T1">Table 1</xref> categorizes 23 publications that provide a range of examples for the variety of existing approaches in the estimation of spatiotemporal gait parameters with inertial sensors.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Overview of IMU-based spatiotemporal gait parameter estimation literature.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left" colspan="2">Employed sensor setup</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;2 IMUs on feet/shoes</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B15">15</xref>, <xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B19">19</xref>&#x02013;<xref ref-type="bibr" rid="B31">31</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;2 IMUs on shank</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B13">13</xref>, <xref ref-type="bibr" rid="B16">16</xref>, <xref ref-type="bibr" rid="B27">27</xref>, <xref ref-type="bibr" rid="B30">30</xref>, <xref ref-type="bibr" rid="B32">32</xref>, <xref ref-type="bibr" rid="B33">33</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;3 or more IMUs</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B34">34</xref>&#x02013;<xref ref-type="bibr" rid="B37">37</xref>)</td>
</tr>
<tr>
<td valign="top" align="left" colspan="2">Detected gait phases</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;Stance/swing</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B13">13</xref>, <xref ref-type="bibr" rid="B16">16</xref>, <xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B22">22</xref>, <xref ref-type="bibr" rid="B23">23</xref>, <xref ref-type="bibr" rid="B27">27</xref>, <xref ref-type="bibr" rid="B30">30</xref>, <xref ref-type="bibr" rid="B32">32</xref>, <xref ref-type="bibr" rid="B33">33</xref>, <xref ref-type="bibr" rid="B35">35</xref>, <xref ref-type="bibr" rid="B37">37</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;4 unilateral events</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B15">15</xref>, <xref ref-type="bibr" rid="B19">19</xref>&#x02013;<xref ref-type="bibr" rid="B21">21</xref>, <xref ref-type="bibr" rid="B25">25</xref>, <xref ref-type="bibr" rid="B26">26</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;Single/double support</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B29">29</xref>, <xref ref-type="bibr" rid="B36">36</xref>)</td>
</tr>
<tr>
<td valign="top" align="left" colspan="2">Ground truth used for evaluation</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;Optical motion capture</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B20">20</xref>, <xref ref-type="bibr" rid="B25">25</xref>, <xref ref-type="bibr" rid="B26">26</xref>, <xref ref-type="bibr" rid="B28">28</xref>, <xref ref-type="bibr" rid="B29">29</xref>, <xref ref-type="bibr" rid="B31">31</xref>, <xref ref-type="bibr" rid="B34">34</xref>, <xref ref-type="bibr" rid="B37">37</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;Pressure-sensitive walkways</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B16">16</xref>, <xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B23">23</xref>, <xref ref-type="bibr" rid="B32">32</xref>, <xref ref-type="bibr" rid="B33">33</xref>, <xref ref-type="bibr" rid="B35">35</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;Instrumented treadmills</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B24">24</xref>, <xref ref-type="bibr" rid="B27">27</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;Pressure insoles</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B15">15</xref>, <xref ref-type="bibr" rid="B30">30</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;Others/none</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B19">19</xref>, <xref ref-type="bibr" rid="B21">21</xref>, <xref ref-type="bibr" rid="B22">22</xref>, <xref ref-type="bibr" rid="B36">36</xref>)</td>
</tr>
<tr>
<td valign="top" align="left" colspan="2">Non-healthy subjects included in evaluation</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;None (healthy only)</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B21">21</xref>, <xref ref-type="bibr" rid="B22">22</xref>, <xref ref-type="bibr" rid="B24">24</xref>&#x02013;<xref ref-type="bibr" rid="B28">28</xref>, <xref ref-type="bibr" rid="B34">34</xref>, <xref ref-type="bibr" rid="B36">36</xref>, <xref ref-type="bibr" rid="B37">37</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0; &#x02264; 20</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B20">20</xref>, <xref ref-type="bibr" rid="B30">30</xref>, <xref ref-type="bibr" rid="B31">31</xref>, <xref ref-type="bibr" rid="B33">33</xref>, <xref ref-type="bibr" rid="B35">35</xref>)</td>
</tr>
<tr>
<td valign="top" align="left">&#x000A0;&#x000A0;&#x000A0;&#x0003E;20</td>
<td valign="top" align="left">(<xref ref-type="bibr" rid="B15">15</xref>&#x02013;<xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B23">23</xref>, <xref ref-type="bibr" rid="B29">29</xref>, <xref ref-type="bibr" rid="B32">32</xref>)</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>A total of 23 publications that describe estimation of spatiotemporal gait parameters with IMUs are categorized based on sensor setup, detected gait phases, and the ground truth and number of non-healthy subjects for evaluation</italic>.</p>
</table-wrap-foot>
</table-wrap>
<p>There are different hardware setups, based on the number of inertial sensors and their placement. The chosen setup has an impact on which and how many parameters can be derived from the measured data. The most commonly used setup consists of two IMUs. As shown in <xref ref-type="table" rid="T1">Table 1</xref>, sensors are typically placed on the feet or shoes and sometimes on the shank. This setup is occasionally extended by adding a third sensor on the pelvis or lumbar spine (<xref ref-type="bibr" rid="B34">34</xref>, <xref ref-type="bibr" rid="B35">35</xref>). Note that it has even been shown that temporal gait events can be obtained from a single IMU at the pelvis (<xref ref-type="bibr" rid="B38">38</xref>), but the potential for extracting further spatial parameters is limited. Full (lower) body motion tracking opens up additional possibilities, as demonstrated with 7 IMUs on the lower body and pelvis in (<xref ref-type="bibr" rid="B37">37</xref>) and with 8&#x02013;15 IMUs in (<xref ref-type="bibr" rid="B36">36</xref>). Another, less common, option consists of combining inertial sensors with further measurement devices, e.g., a camera on one foot and LEDs on the other foot to facilitate the direct measurement of relative positions (<xref ref-type="bibr" rid="B39">39</xref>).</p>
<p>Some methods require that a known orientation of the sensor axes with respect to the anatomical foot axes has to be ensured by precise placement. Many methods in the literature are based on such assumptions, including (<xref ref-type="bibr" rid="B13">13</xref>, <xref ref-type="bibr" rid="B15">15</xref>&#x02013;<xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B22">22</xref>, <xref ref-type="bibr" rid="B23">23</xref>, <xref ref-type="bibr" rid="B25">25</xref>, <xref ref-type="bibr" rid="B26">26</xref>, <xref ref-type="bibr" rid="B30">30</xref>&#x02013;<xref ref-type="bibr" rid="B33">33</xref>). In practice, however, ensuring a precise placement is a challenge, especially in non-supervised application scenarios and during activities of daily life. Alternatives are to develop methods that are agnostic to the sensor-to-segment orientation&#x02014;e.g., by only relying on signal norms&#x02014;or to determine this orientation in a process commonly called anatomical calibration (<xref ref-type="bibr" rid="B40">40</xref>). For setups with more sensors, there are recently developed methods that facilitate automatic anatomical calibration by exploiting kinematic constraints of the respective joints without requiring the subject to perform precise calibration movements (<xref ref-type="bibr" rid="B41">41</xref>, <xref ref-type="bibr" rid="B42">42</xref>). For those setups, the linking of the sensors to the body segments poses another challenge to a plug-and-play approach, which can be solved by automatic pairing methods (<xref ref-type="bibr" rid="B43">43</xref>).</p>
<p>The calculation of spatiotemporal gait parameters is usually implemented in a two-stage approach. In a first step, gait events and corresponding gait phases are detected. In a second step, spatial parameters are calculated.</p>
<p>Existing methods vary in the set of gait events or phases that are detected. In many cases, the focus is only on the separation between stance and swing (cf. <xref ref-type="table" rid="T1">Table 1</xref>), although sometimes additional events, such as mid-swing (<xref ref-type="bibr" rid="B33">33</xref>), are also detected. It is also common to detect four events that occur during the gait cycle and are only defined by the ipsilateral (same) foot. Those events are initial contact, full contact, heel rise, and toe-off, although the terminology varies. Despite being common practice in gait analysis (<xref ref-type="bibr" rid="B5">5</xref>, <xref ref-type="bibr" rid="B44">44</xref>), employing bilateral information, i.e., combining information from both feet to define the gait phase, is far less common in IMU-based gait analysis. One example is (<xref ref-type="bibr" rid="B36">36</xref>) in which single and double limb support durations are calculated.</p>
<p>There are various approaches for detection of gait events using inertial sensors. It has been shown that exploiting features of the angular rate signal in the sagittal plane is sufficient to achieve reliable gait event detection (<xref ref-type="bibr" rid="B16">16</xref>, <xref ref-type="bibr" rid="B22">22</xref>, <xref ref-type="bibr" rid="B25">25</xref>, <xref ref-type="bibr" rid="B30">30</xref>, <xref ref-type="bibr" rid="B32">32</xref>). Many other methods use both accelerometers and gyroscopes and detect characteristic signal features in the inertial sensor data, including (<xref ref-type="bibr" rid="B13">13</xref>, <xref ref-type="bibr" rid="B15">15</xref>, <xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B19">19</xref>&#x02013;<xref ref-type="bibr" rid="B21">21</xref>, <xref ref-type="bibr" rid="B23">23</xref>, <xref ref-type="bibr" rid="B31">31</xref>, <xref ref-type="bibr" rid="B33">33</xref>). Sometimes automatic adaption mechanisms are used to adjust thresholds based on the subject&#x00027;s walking style (<xref ref-type="bibr" rid="B19">19</xref>&#x02013;<xref ref-type="bibr" rid="B21">21</xref>, <xref ref-type="bibr" rid="B33">33</xref>). An alternative to the signal-based methods is to rely on a kinematic model to detect gait events (<xref ref-type="bibr" rid="B36">36</xref>, <xref ref-type="bibr" rid="B37">37</xref>). Machine learning methods, often based on hidden Markov models (<xref ref-type="bibr" rid="B26">26</xref>, <xref ref-type="bibr" rid="B35">35</xref>), are also used for event detection [cf. (<xref ref-type="bibr" rid="B45">45</xref>)].</p>
<p>In addition to the detection of gait events, spatial parameters such as stride length and walking speed are often calculated. Those parameters are obtained by either signal integration, human gait models, or by machine learning methods (<xref ref-type="bibr" rid="B46">46</xref>). By far the most common approach is numerical strapdown integration of the accelerations (<xref ref-type="bibr" rid="B16">16</xref>, <xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B22">22</xref>, <xref ref-type="bibr" rid="B27">27</xref>, <xref ref-type="bibr" rid="B28">28</xref>, <xref ref-type="bibr" rid="B31">31</xref>, <xref ref-type="bibr" rid="B32">32</xref>, <xref ref-type="bibr" rid="B37">37</xref>). The cyclic nature of gait and the fact that there is frequent ground contact are exploited to correct for drift that is due to double integration. It has been shown that Fourier-based integration is an alternative to numerical integration (<xref ref-type="bibr" rid="B34">34</xref>), that spatial parameters can be obtained from kinematic models (<xref ref-type="bibr" rid="B27">27</xref>, <xref ref-type="bibr" rid="B36">36</xref>), and that convolutional neural networks can also be used to estimate spatial parameters (<xref ref-type="bibr" rid="B23">23</xref>).</p>
<p>Most publications focus on common spatiotemporal parameters such as stride length, walking speed, and cadence. Other than those spatiotemporal parameters, there is a multitude of spatiotemporal gait parameters that are relevant in a clinical context for various pathologies (<xref ref-type="bibr" rid="B6">6</xref>). Examples that can be estimated using inertial sensors include step width (<xref ref-type="bibr" rid="B37">37</xref>), swing width (<xref ref-type="bibr" rid="B31">31</xref>, <xref ref-type="bibr" rid="B37">37</xref>), incline (<xref ref-type="bibr" rid="B22">22</xref>), and foot clearance (<xref ref-type="bibr" rid="B47">47</xref>).</p>
<p>Some publications (<xref ref-type="bibr" rid="B13">13</xref>, <xref ref-type="bibr" rid="B19">19</xref>&#x02013;<xref ref-type="bibr" rid="B21">21</xref>, <xref ref-type="bibr" rid="B25">25</xref>, <xref ref-type="bibr" rid="B33">33</xref>) focus on real-time detection of events, e.g., to trigger functional electrical stimulation (FES). While the approaches used are usually similar to the ones used in offline gait analysis, this typically implies a focus on minimizing the detection delay rather than the accuracy of the reported values.</p>
<p>As shown in <xref ref-type="table" rid="T1">Table 1</xref>, evaluation is often performed with marker-based optical motion capture as ground truth. Systems based on the detection of pressure, such as pressure-sensitive walkways, instrumented treadmills, and pressure insoles, are a common alternative. In some cases, no validation with respect to a gold standard is performed. Instead, the settings of a (calibrated) treadmill are used for walking speed and incline (<xref ref-type="bibr" rid="B22">22</xref>), a manually counted number of steps is combined with the detection of irregularities (<xref ref-type="bibr" rid="B21">21</xref>), validation is performed by visual inspection of the results (<xref ref-type="bibr" rid="B19">19</xref>), or the focus is only on test-retest reliability (<xref ref-type="bibr" rid="B36">36</xref>).</p>
<p>Even though it has been shown that the accuracy of gait analysis methods decreases when applied to non-healthy subjects (<xref ref-type="bibr" rid="B45">45</xref>), the evaluation of inertial gait analysis methods is often only based on healthy subjects. When data obtained from non-healthy subjects is part of the evaluation, the number of subjects is often small, for example five transfemoral amputees (<xref ref-type="bibr" rid="B20">20</xref>), 10 stroke patients (<xref ref-type="bibr" rid="B33">33</xref>), 10 hemiparetic patients and 10 Huntington&#x00027;s disease patients (<xref ref-type="bibr" rid="B35">35</xref>), or 10 patients with Parkinson&#x00027;s disease (<xref ref-type="bibr" rid="B31">31</xref>).</p>
<p>To the best of our knowledge, few publications (<xref ref-type="bibr" rid="B15">15</xref>&#x02013;<xref ref-type="bibr" rid="B17">17</xref>, <xref ref-type="bibr" rid="B23">23</xref>, <xref ref-type="bibr" rid="B29">29</xref>, <xref ref-type="bibr" rid="B32">32</xref>) exist which propose methods for IMU-based spatiotemporal gait parameter estimation <italic>and</italic> validate the methods on a larger set of subjects with gait pathologies. In the following, we briefly summarize those publications.</p>
<p>In (<xref ref-type="bibr" rid="B15">15</xref>), sensors are placed on the forefoot in a known orientation, and four different unilateral gait events are detected based on features of the angular velocity in the sagittal plane, the norm of the accelerometer signal, and the derivative of angular velocity norm. Using pressure insoles as reference, the method is validated on 10 healthy and 32 orthopedic subjects.</p>
<p>The commercial Gait Up system is evaluated in (<xref ref-type="bibr" rid="B29">29</xref>) with 25 subacute stroke patients as subjects and marker-based optical motion capture as reference.</p>
<p>Gait events and stride length are calculated in (<xref ref-type="bibr" rid="B16">16</xref>) based on shank-mounted IMUs. Events are detected based on the angular rate in the sagittal plane, and stride length is obtained via double integration of the accelerations. The latter relies on the proprietary orientation estimation algorithm provided by the sensor manufacturer. Experimental evaluation is performed using the GAITRite pressure-sensitive walkway as reference on 10 healthy elderly and 30 non-healthy subjects.</p>
<p>In (<xref ref-type="bibr" rid="B32">32</xref>), the same method is validated on a much larger group of subjects, consisting of 236 community-living older adults, including 31 mild cognitive impaired subjects and 125 Parkinson&#x00027;s disease patients.</p>
<p>In (<xref ref-type="bibr" rid="B17">17</xref>), IMUs are placed laterally on the shoe in a fixed orientation, stance, and swing durations are calculated based on characteristic signal features, and the stride length is obtained via double integration. The method is evaluated using a large data set of 101 geriatric inpatients, with reference data obtained from a GAITRite pressure-sensitive walkway.</p>
<p>Using the same gait event detection method and the same data set for evaluation as (<xref ref-type="bibr" rid="B17">17</xref>), Hannink et al. (<xref ref-type="bibr" rid="B23">23</xref>) estimates stride length, stride width, mediolateral change in foot angle, heel contact times, and toe contact times using deep convolutional neural networks.</p>
<p>In summary, the main shortcoming of existing approaches for the vision of plug-and-play ambulatory gait analysis is that most methods&#x02014;especially those with broad validation&#x02014;require a precise attachment of the sensor to the subject&#x00027;s foot. Some methods only focus on gait events and do not provide spatial parameters, and some methods rely on proprietary algorithms of the sensor manufacturers. Furthermore, very few of the proposed methods are validated on a large group of subjects with diverse gait pathologies.</p>
<p>In the following section, we propose a set of methods that combine the valuable achievements of existing methods with additional features that overcome the remaining limitations.</p></sec>
<sec sec-type="methods" id="s3">
<title>3. Methods</title>
<p>In the following, we propose a set of methods to determine gait parameters from two IMUs attached to the foot. The proposed methods are based on the following assumptions and requirements: An IMU is attached to each foot (or shoe) in an arbitrary orientation. This implies that the proposed method does not make any assumption about the orientation of the sensor coordinate system, which means it does not require any specific sensor axis to be aligned with an anatomical or functional axis of the foot. In order to avoid artifacts caused by toe or ankle motions, and also to not limit the subject&#x00027;s freedom of movement, we propose to attach the IMU on the instep, i.e., the dorsal side of the midfoot. We obtain the accelerometer and gyroscope readings of both IMUs at a fixed sampling rate (typically in the range 50&#x02013;1,000 Hz). We assume that data for several steps is processed at once, which allows us to employ non-causal signal processing to increase the accuracy compared to sample-by-sample real-time capable methods. This processing can either be performed in batches while the subject is walking, e.g., for use in biofeedback applications, or after the recording is completed. During the recording, the subject walks either on a treadmill or an indoor or outdoor ground.</p>
<p>The set of methods that we propose is explained in the following subsections, and the presentation is structured as follows. Separately for each foot, we use the recorded sensor data to separate phases in which the foot is in full contact with the ground from phases in which the foot moves, i.e., we detect when strides take place (section 3.3). For each detected stride, we then detect toe-off (section 3.5) and initial contact (section 3.6). The gait events from the ipsilateral and contralateral foot are combined to define gait phases. We calculate the relative duration of each gait phase and the cadence (section 3.7). We then estimate the sensor orientation by sensor fusion of the gyroscope and accelerometer readings (section 3.8) and double-integrate the acceleration to obtain a position trajectory (section 3.9). From this position trajectory, we obtain the stride length and the walking speed (section 3.10). <xref ref-type="fig" rid="F2">Figure 2</xref> provides an overview of the proposed set of methods.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Overview of the proposed modular set of methods to determine spatiotemporal gait parameters from foot-worn IMUs. While gait phase durations and cadence are determined from gait events, stride length and walking speed are derived from a position trajectory obtained via piecewise strapdown integration of the acceleration.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0002.tif"/>
</fig>
<p>In the remainder of this section, we define parameters used by the method. For an overview of those parameters and proposed values, please refer to <xref ref-type="table" rid="T2">Table 2</xref> in section 4. Our aim is to define the parameters in a way that they are not sensitive to different gait styles or velocities. In section 4, we demonstrate that this approach works by only employing one common set of parameters for validation on a very broad data set with healthy and non-healthy subjects walking at different speeds.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Parameter values used for the proposed IMU-based methods.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Symbol</bold></th>
<th valign="top" align="left"><bold>Description</bold></th>
<th valign="top" align="left"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>h</italic><sub><italic>a</italic></sub></td>
<td valign="top" align="left">Hysteresis factor for acceleration</td>
<td valign="top" align="left">0.23</td>
</tr>
<tr>
<td valign="top" align="left"><italic>h</italic><sub>&#x003C9;</sub></td>
<td valign="top" align="left">Hysteresis factor for angular rate</td>
<td valign="top" align="left">0.23</td>
</tr>
<tr>
<td valign="top" align="left"><italic>w</italic><sub><italic>a</italic></sub></td>
<td valign="top" align="left">Factor for <italic>a</italic><sub>th</sub> auto-tuning</td>
<td valign="top" align="left">0.85</td>
</tr>
<tr>
<td valign="top" align="left"><italic>a</italic><sub>th,min</sub></td>
<td valign="top" align="left">Lower bound for <italic>a</italic><sub>th</sub></td>
<td valign="top" align="left">1.8 m/s<sup>2</sup></td>
</tr>
<tr>
<td valign="top" align="left"><italic>w</italic><sub>&#x003C9;</sub></td>
<td valign="top" align="left">Factor for &#x003C9;<sub>th</sub> auto-tuning</td>
<td valign="top" align="left">0.8</td>
</tr>
<tr>
<td valign="top" align="left">&#x003C9;<sub>th,min</sub></td>
<td valign="top" align="left">Lower bound for &#x003C9;<sub>th</sub></td>
<td valign="top" align="left">0 rad/s</td>
</tr>
<tr>
<td valign="top" align="left"><italic>T</italic><sub>0,min</sub></td>
<td valign="top" align="left">Minimum duration of zero-phase</td>
<td valign="top" align="left">120 ms</td>
</tr>
<tr>
<td valign="top" align="left"><italic>T</italic><sub>1,min</sub></td>
<td valign="top" align="left">Minimum duration of one-phase</td>
<td valign="top" align="left">180 ms</td>
</tr>
<tr>
<td valign="top" align="left"><italic>j</italic><sub>win</sub></td>
<td valign="top" align="left">Ratio of the window to look for initial contact</td>
<td valign="top" align="left">0.7</td>
</tr>
<tr>
<td valign="top" align="left"><italic>j</italic><sub>th</sub></td>
<td valign="top" align="left">Threshold for jerk norm (relative to maximum)</td>
<td valign="top" align="left">0.95</td>
</tr>
<tr>
<td valign="top" align="left"><italic>T</italic><sub><italic>a</italic></sub></td>
<td valign="top" align="left">Time constant for acceleration moving average filter</td>
<td valign="top" align="left">8.0 s</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>This parametrization is used for the processing of all trials, regardless of gait pathology, walking speed, or style, in order to show that the method works well without tuning the parameters for specific gait characteristics</italic>.</p>
</table-wrap-foot>
</table-wrap>
<sec>
<title>3.1. Notation</title>
<p>Denote the accelerometer readings <inline-formula><mml:math id="M1"><mml:mstyle class="text"><mml:mtext mathvariant="bold">a</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and the gyroscope readings <inline-formula><mml:math id="M2"><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003C9;</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, sampled at times <italic>t</italic><sub><italic>k</italic></sub> &#x0003D; <italic>kT</italic><sub>s</sub>, <italic>k</italic> &#x02208; {1 .. <italic>N</italic>}, <italic>T</italic><sub>s</sub> &#x02208; &#x0211D;<sub>&#x0003E;0</sub>.</p>
<p>In the following, all times <italic>t</italic> with any index are multiples of <italic>T</italic><sub><italic>s</italic></sub>. If any calculation yields a time that is not a multiple of <italic>T</italic><sub><italic>s</italic></sub>, we assume that this value is rounded to the nearest multiple of <italic>T</italic><sub><italic>s</italic></sub> and do not explicitly write this for the sake of a compact notation. Furthermore, any summation over &#x003C4; should be interpreted as a summation with a non-integer step size of <italic>T</italic><sub><italic>s</italic></sub>, i.e., we simply write <inline-formula><mml:math id="M3"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> instead of the longer but mathematically precise notation <inline-formula><mml:math id="M4"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">s</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">s</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math></inline-formula>.</p>
<p>Unit quaternions in vector notation are used to represent rotations and orientations (<xref ref-type="bibr" rid="B48">48</xref>). When a quaternion is used to represent the sensor orientation, it is the rotation from an inertial reference frame with the <italic>z</italic>-axis pointing up (and arbitrary heading) to the coordinate system of the sensor. In the context of quaternion multiplication, which we denote by &#x02297;, three-dimensional vectors are implicitly regarded as quaternions with zero real part.</p>
<p>Furthermore, <italic><bold>v</bold></italic><sup>&#x022BA;</sup> denotes the transpose of the vector <italic><bold>v</bold></italic>.</p></sec>
<sec>
<title>3.2. Gait Events and Gait Phases</title>
<p>According to standard literature (<xref ref-type="bibr" rid="B44">44</xref>) and as illustrated in <xref ref-type="fig" rid="F3">Figure 3A</xref>, the gait cycle starts at initial contact. Each stride can be separated into <italic>stance</italic> and <italic>swing</italic>. Stance consists of the gait phases <italic>loading response, mid-stance, terminal stance</italic>, and <italic>pre-swing</italic>. Swing can be separated into <italic>initial swing, mid-swing</italic>, and <italic>terminal swing</italic>. The combination of mid-stance and terminal stance is called <italic>single limb support</italic> and corresponds to the swing phase of the contralateral foot. In standard literature (<xref ref-type="bibr" rid="B44">44</xref>), the initial contact is commonly considered to be a very short gait phase with a duration of 2 %. As it is common practice in IMU-based gait analysis (<xref ref-type="bibr" rid="B15">15</xref>, <xref ref-type="bibr" rid="B19">19</xref>, <xref ref-type="bibr" rid="B21">21</xref>, <xref ref-type="bibr" rid="B26">26</xref>), we define the initial contact as an event without duration. Note that sometimes the initial contact is also called foot strike (<xref ref-type="bibr" rid="B26">26</xref>) or heel strike (<xref ref-type="bibr" rid="B15">15</xref>).</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p><bold>(A)</bold> Definition of gait phases as used in standard literature [cf. (<xref ref-type="bibr" rid="B44">44</xref>)], and transitions based on gait events of the ipsilateral and contralateral foot. <bold>(B)</bold> Raw accelerometer and gyroscope sensor readings and representation of the gait event cycle with a staircase-shaped signal. We define time instants <italic>t</italic><sub>ic,<italic>i</italic></sub>, <italic>t</italic><sub>fc,<italic>i</italic></sub>, <italic>t</italic><sub>hr,<italic>i</italic></sub>, <italic>t</italic><sub>to,<italic>i</italic></sub> that mark characteristic events and a rest instant <italic>t</italic><sub>rest,<italic>i</italic></sub> in the middle of the phase in which the foot is fully on the ground (foot flat).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0003.tif"/>
</fig>
<p>The separation between stance and swing and the separation of stance into loading response, mid-stance, terminal stance, and pre-swing is defined based on three events that describe a change of ground contact of the feet: <italic>initial contact, heel rise</italic>, and <italic>toe-off</italic>. In contrast, the separation of swing into initial swing, mid-swing, and terminal swing is based on positional information of the feet and on the tibia orientation. The gait phases are defined based on bilateral events, i.e., the gait phase of the ipsilateral foot is not only described based on the events of the same (ipsilateral) foot but also based on toe-off and initial contact of the other (contralateral) foot.</p>
<p>We will now describe how we determine five of those gait phases (swing and the four sub-phases of stance) using IMUs in a two-step approach. First, we detect four gait events independently for each foot. We then use this gait event cycle of both feet to derive gait phases for each foot.</p>
<p>To this end, for each stride <italic>i</italic> &#x02208; {1 .. <italic>M</italic>}, we define the following events that we want to detect independently for the right and left foot from the raw measurement data of the corresponding IMU:</p>
<list list-type="bullet">
<list-item><p>initial contact &#x02013; <italic>t</italic><sub>ic,<italic>i</italic></sub></p></list-item>
<list-item><p>full contact &#x02013; <italic>t</italic><sub>fc,<italic>i</italic></sub></p></list-item>
<list-item><p>heel rise &#x02013; <italic>t</italic><sub>hr,<italic>i</italic></sub></p></list-item>
<list-item><p>toe-off &#x02013; <italic>t</italic><sub>to,<italic>i</italic></sub>.</p></list-item>
</list>
<p>Note that in addition to the three events used to define gait phase transitions in <xref ref-type="fig" rid="F3">Figure 3A</xref>, we introduce an event called <italic>full contact</italic> that indicates that the foot is in full contact with the ground. For various processing steps, such as zero-velocity updates and position integration, we further define a rest instant <italic>t</italic><sub>rest,<italic>i</italic></sub> at the middle of the foot flat phase, i.e.,</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M5"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">fc</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">hr</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>See <xref ref-type="fig" rid="F3">Figure 3B</xref> for a plot of the raw accelerometer and gyroscope data measured during one stride along with a graphical representation of the gait event cycle defined by the introduced events. In the following subsections, we will describe in detail how we determine those time instants from the raw sensor data.</p>
<p>After having determined the gait events for both feet, we use the gait event cycles from both feet to determine the gait phase according to the commonly used definitions by (<xref ref-type="bibr" rid="B44">44</xref>). As shown in <xref ref-type="fig" rid="F4">Figure 4</xref>, finite automata for the gait phases of the left and right foot are each driven by the gait event cycles of both feet.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Derivation of clinically relevant gait phases from the gait event cycles. Following standard literature (<xref ref-type="bibr" rid="B44">44</xref>), events from both the left foot (filled arrows) and the right root (outlined arrows) are necessary to define the gait phase of each foot. Furthermore, support phases based on the number of feet that are in contact with the ground can be defined based on the gait events.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0004.tif"/>
</fig>
<p>Since time instances from both sensors are used for the definition of the gait phase transitions, both feet must be equipped with sensors, and precise time synchronization is required. However, note that the separation into stance and swing directly follows from the gait event cycle (as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>) and is independent of the contralateral foot. Therefore, we can determine stance and swing regardless of the synchronization between the sensors. This is also useful if only one foot is equipped with a sensor and facilitates on-chip data processing.</p>
<p>Note that the three sub-phases of stance in the gait event cycle hold further information that is not directly captured by the standard gait phase definitions as given in <xref ref-type="fig" rid="F3">Figure 3A</xref>. We denote the phase from <italic>t</italic><sub>fc,<italic>i</italic></sub> to <italic>t</italic><sub>hr,<italic>i</italic></sub>, in which the foot is fully on the ground, as <italic>foot flat</italic>. Note that the other two sub-phases of the stance phase, <italic>t</italic><sub>ic,<italic>i</italic></sub> to <italic>t</italic><sub>fc,<italic>i</italic></sub> and <italic>t</italic><sub>hr,<italic>i</italic></sub> to <italic>t</italic><sub>to,<italic>i</italic></sub>, are sometimes called loading response and pre-swing (<xref ref-type="bibr" rid="B19">19</xref>, <xref ref-type="bibr" rid="B21">21</xref>) but do not correspond to the phases with the same name as defined in standard literature (<xref ref-type="bibr" rid="B44">44</xref>).</p>
<p>Furthermore, as also shown in <xref ref-type="fig" rid="F4">Figure 4</xref>, time-synchronized events from both feet also allow for the distinction of <italic>double support, single support</italic>, and <italic>zero-contact</italic> phases, which occur only during running (<xref ref-type="bibr" rid="B44">44</xref>).</p></sec>
<sec>
<title>3.3. Foot Flat Detection</title>
<p>As the first step of gait phase detection, the phases in which the foot is fully on the ground (foot flat) are detected. When the foot is fully on the ground, the Euclidean norm of the accelerometer readings will be close to 9.81 m/s<sup>2</sup>, and the norm of the gyroscope readings will be close to zero. During a stride, we typically will see an increase in the signal norms. However, it is possible that during the motion phase there are long periods with only small changes of velocity or small rotations. To obtain a robust stride detection, we, therefore, first find activity using either the accelerometer or the gyroscope readings and then combine this information.</p>
<p>For an acceleration-based rest signal <italic>r</italic><sub><italic>a</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>), we consider the absolute difference of the norm from 9.81 m/s<sup>2</sup>,</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M6"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:mo>|</mml:mo><mml:mo>&#x02225;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02225;</mml:mo><mml:mo>-</mml:mo><mml:mn>9</mml:mn><mml:mo>.</mml:mo><mml:mn>81</mml:mn><mml:mo>|</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>and perform acausal thresholding using a threshold <italic>a</italic><sub>th</sub> and a hysteresis factor <italic>h</italic><sub><italic>a</italic></sub> by applying hysteresis in forward and backward direction, i.e.,</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M7"><mml:msubsup><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x02254;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>1</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mi>a</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x0003E;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>th</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>0</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mi>a</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x0003C;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>th</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:math></disp-formula>
<disp-formula id="E4"><label>(4)</label><mml:math id="M8"><mml:msub><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x02254;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>1</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:msubsup><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mo>*</mml:mo></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>0</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mi>a</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x0003C;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>th</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>with <inline-formula><mml:math id="M9"><mml:msubsup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> and <inline-formula><mml:math id="M10"><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. In the resulting signal, zero-phases shorter than <italic>T</italic><sub>0,min</sub> are set to one, and afterward, one-phases shorter than <italic>T</italic><sub>1,min</sub> are set to zero.</p>
<p>The same acausal thresholding with the removal of short phases is applied to the gyroscope norm signal &#x003C9;(<italic>t</italic><sub><italic>k</italic></sub>): &#x0003D; &#x02225;<bold>&#x003C9;</bold>(<italic>t</italic><sub><italic>k</italic></sub>)&#x02225; using a threshold &#x003C9;<sub>th</sub> and hysteresis factor <italic>h</italic><sub>&#x003C9;</sub>, which yields a gyroscope-based rest signal <italic>r</italic><sub>&#x003C9;</sub>(<italic>t</italic><sub><italic>k</italic></sub>). See <xref ref-type="fig" rid="F5">Figure 5A</xref> for an illustration of the thresholding method.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p><bold>(A)</bold> Illustration of the thresholding algorithm. Acausal hysteresis and the removal of short phases ensure the robust detection of the desired rest phase. <bold>(B)</bold> Illustration of the combination of <italic>r</italic><sub>&#x003C9;</sub>(<italic>t</italic><sub><italic>k</italic></sub>) and <italic>r</italic><sub><italic>a</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>) into <italic>r</italic>(<italic>t</italic><sub><italic>k</italic></sub>). By using the <italic>OR</italic> combination of the accelerometer- and gyroscope-based signals, we are able to robustly detect when the foot is not fully on the ground.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0005.tif"/>
</fig>
<p>Both rest signals, <italic>r</italic><sub><italic>a</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>) and <italic>r</italic><sub>&#x003C9;</sub>(<italic>t</italic><sub><italic>k</italic></sub>), are combined into <italic>r</italic>(<italic>t</italic><sub><italic>k</italic></sub>), which is set to one if at least one of the two signals is one. Afterward, zero-phases shorter than <italic>T</italic><sub>0,min</sub> are set to one, and then one-phases shorter than 2<italic>T</italic><sub>1,min</sub> are set to zero. This process is illustrated in <xref ref-type="fig" rid="F5">Figure 5B</xref>. Each zero-to-one transition of the resulting signal marks a heel rise <italic>t</italic><sub>hr,<italic>i</italic></sub>, and each one-to-zero transition marks a full contact <italic>t</italic><sub>fc,<italic>i</italic>&#x0002B;1</sub>.</p></sec>
<sec>
<title>3.4. Automatic Threshold Adaptation</title>
<p>A common issue with thresholding approaches is that the thresholds have to be adapted based on gait velocity and also other gait and sensor characteristics (<xref ref-type="bibr" rid="B19">19</xref>, <xref ref-type="bibr" rid="B20">20</xref>). Therefore, instead of performing the thresholding of the accelerometer and gyroscope norm using manually tuned thresholds <italic>a</italic><sub>th</sub> and &#x003C9;<sub>th</sub>, we propose an algorithm that automatically determines these thresholds for each trial based on the measured data.</p>
<p>The threshold <italic>a</italic><sub>th</sub> is determined using an iterative algorithm similar to (<xref ref-type="bibr" rid="B49">49</xref>), with <italic>l</italic> being the iteration index and <italic>w</italic><sub><italic>a</italic></sub> being a weighting parameter:</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">th</mml:mtext><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">min</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E6"><label>(6)</label><mml:math id="M12"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">th</mml:mtext><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E7"><label>(7)</label><mml:math id="M13"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02264;</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">th</mml:mtext><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E8"><label>(8)</label><mml:math id="M14"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">th</mml:mtext><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:msup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msup><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:munder></mml:mstyle><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:msup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msup><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:munder></mml:mstyle><mml:mi>a</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We perform 200 iterations to ensure convergence, i.e., <italic>a</italic><sub>th</sub> :&#x0003D; <italic>a</italic><sub>th,200</sub>. <xref ref-type="fig" rid="F6">Figure 6</xref> illustrates the result of this process. Further, we define a lower bound <italic>a</italic><sub>th,min</sub> for this threshold.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Illustration of the result of the automatic thresholding algorithm for a short segment of accelerometer data. The threshold <italic>a</italic><sub>th</sub> is chosen such that the mean of the values above and the mean of the values below are in a certain proportion.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0006.tif"/>
</fig>
<p>Similarly, we determine the threshold &#x003C9;<sub>th</sub> based on the gyroscope norm &#x003C9;(<italic>t</italic><sub><italic>k</italic></sub>) and a weighting factor <italic>w</italic><sub>&#x003C9;</sub>.</p></sec>
<sec>
<title>3.5. Toe-Off Detection</title>
<p>After determining heel rise and full contact, we want to detect the beginning of the swing phase, i.e., the toe-off. During toe-off, the foot first rotates approximately along the mediolateral axis as the heel rises, then loses contact with the ground and rotates in the opposite direction. An inertial sensor attached to the foot cannot directly measure when the foot fully loses contact with the ground, in contrast to, e.g., pressure-sensitive walkways. Note that the accuracy of toe-off detection using pressure sensors also depends on calibration and the chosen thresholds (<xref ref-type="bibr" rid="B12">12</xref>).</p>
<p>As rotation can be measured precisely with IMUs, we exploit the fact that the direction of rotation of the foot changes when transitioning from the phase in which the heel rises while the toe stays on the ground to the phase in which the toe leaves the ground. This approach is commonly used in existing literature, as detailed in section 2. However, most methods directly rely on the angular rate measured in the sagittal plane and thereby require at least one sensor axis to be well-aligned with a functional axis of the foot.</p>
<p>To be independent of the sensor orientation and also to obtain a reliable detection if the subject exhibits strong inversion or eversion during toe-off, we define a signal called tilt-rate &#x00393;<sub><italic>i</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>), from each heel rise <italic>t</italic><sub>hr,<italic>i</italic></sub> to the subsequent full contact <italic>t</italic><sub>fc,<italic>i</italic>&#x0002B;1</sub>, as</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M15"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003C9;</mml:mi></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022BA;</mml:mo></mml:mrow></mml:msup><mml:mfrac><mml:mrow><mml:mstyle displaystyle="true"><mml:msubsup><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">hr</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mstyle><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003C9;</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mstyle displaystyle="true"><mml:msubsup><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">hr</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mstyle><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003C9;</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">hr</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">fc</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The rationale behind the definition of the tilt-rate &#x00393;<sub><italic>i</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>) is to identify the main axis of rotation since the last heel rise and compute the current rate of rotation around this main axis. This enables us to detect a zero-crossing of the main rotation without making any assumptions on the orientation of the sensor with respect to the foot.</p>
<p>In general, the tilt-rate &#x00393;<sub><italic>i</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>) will exhibit a change of sign after a distinct peak (cf. <xref ref-type="fig" rid="F7">Figure 7A</xref>). As there might be noise, leading to frequent sign changes right after <italic>t</italic><sub>hr,<italic>i</italic></sub>, as well as large peaks later during the stride, we propose the following strategy to robustly determine the sign change of interest:</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Detection of toe-off and initial contact events that define the swing phase. <bold>(A)</bold> Illustration of the toe-off detection. Between heel rise and full contact, the tilt rate might exhibit multiple local maxima and zero-crossings. For a robust detection of the correct zero-crossing, we first find the maximum value during the first half of the phase from <italic>t</italic><sub>hr,<italic>i</italic></sub> to <italic>t</italic><sub>fc,<italic>i</italic>&#x0002B;1</sub> and search for the first zero-crossing after the tilt rate has reached half of this maximum. <bold>(B)</bold> Illustration of the initial contact detection based on the jerk norm. Note how the jerk norm reflects the sudden change when the foot touches the ground much better than the accelerometer norm signal <italic>a</italic>(<italic>t</italic><sub><italic>k</italic></sub>).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0007.tif"/>
</fig>
<p>During the first half of the movement phase, let &#x00393;<sub>max,<italic>i</italic></sub> denote the maximum value of &#x00393;<sub><italic>i</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>), i.e.,</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M16"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">max</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">hr</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">hr</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">fc</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:msub><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We then find the first time instant for which <inline-formula><mml:math id="M17"><mml:msub><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02265;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">max</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Starting from this time instant, we find the first time instant at which &#x00393;<sub><italic>i</italic></sub>(<italic>t</italic><sub><italic>k</italic></sub>) &#x02264; 0. We assume this time instant to be the toe-off <italic>t</italic><sub>to,<italic>i</italic></sub>, i.e., the start of the swing phase. <xref ref-type="fig" rid="F7">Figure 7A</xref> illustrates this process.</p>
<p>Note that <italic>t</italic><sub>to,<italic>i</italic></sub> is defined based on a feature of the rotation of the foot and not directly as the lift-off of the toes. Using the maximum of the tilt rate (or any weighted average of the maximum and zero-crossing time instant) are also plausible approaches.</p></sec>
<sec>
<title>3.6. Initial Contact Detection</title>
<p>The initial contact marks the beginning of the loading response and can be detected by the jerk, i.e., the change of acceleration, caused by the foot touching the ground. We calculate the jerk using the first-order backward difference approximation, i.e.,</p>
<disp-formula id="E11"><label>(11)</label><mml:math id="M18"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle mathvariant="bold-italic"><mml:mi>j</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">s</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For every stride, we only consider a sub-window of the phase between toe-off and the beginning of the subsequent foot-flat phase and denote the start time of this window as <italic>t</italic><sub>win,<italic>i</italic></sub> : &#x0003D; <italic>j</italic><sub>win</sub><italic>t</italic><sub>to,<italic>i</italic>&#x02212;1</sub> &#x0002B; (1 &#x02212; <italic>j</italic><sub>win</sub>)<italic>t</italic><sub>fc,<italic>i</italic></sub>,<italic>j</italic><sub>win</sub> &#x02208; [0, 1]. In this time window, we first determine the maximum value of the jerk norm, i.e.,</p>
<disp-formula id="E12"><label>(12)</label><mml:math id="M19"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">max</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">win</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">fc</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mo>&#x02225;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>j</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02225;</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We then mark the first time instant in this window with &#x02225;<italic><bold>j</bold></italic>(<italic>t</italic><sub><italic>k</italic></sub>)&#x02225; &#x02265; <italic>j</italic><sub>th</sub><italic>j</italic><sub>max,<italic>i</italic></sub> as the start of the loading response <italic>t</italic><sub>ic,<italic>i</italic></sub>. See <xref ref-type="fig" rid="F7">Figure 7B</xref> for an illustration of the initial contact detection.</p></sec>
<sec>
<title>3.7. Stride and Gait Phase Durations and Cadence</title>
<p>For each detected stride, we calculate the stride duration as the duration from one initial contact to the subsequent initial contact of the same foot, i.e.,</p>
<disp-formula id="E13"><label>(13)</label><mml:math id="M20"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stride</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">ic</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">ic</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For each detected stride, the duration of the swing phase is the time between toe-off and initial contact of the subsequent stride, i.e.,</p>
<disp-formula id="E14"><label>(14)</label><mml:math id="M21"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">swing</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">ic</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">to</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The stance duration is the remaining duration of the stride:</p>
<disp-formula id="E15"><label>(15)</label><mml:math id="M22"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stance</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stride</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">swing</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Since relative gait phase durations are easier to interpret, we calculate</p>
<disp-formula id="E16"><label>(16)</label><mml:math id="M23"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">swing,rel</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mo>&#x02254;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">swing</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stride</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E17"><label>(17)</label><mml:math id="M24"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stance,rel</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mo>&#x02254;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stance</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stride</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Similarly, for every stride we calculate relative gait phase durations for loading response <italic>T</italic><sub>lr,rel,<italic>i</italic></sub>, single limb support <italic>T</italic><sub>sl,rel,<italic>i</italic></sub>, terminal stance <italic>T</italic><sub>ts,rel,<italic>i</italic></sub>, and pre-swing <italic>T</italic><sub>ps,rel,<italic>i</italic></sub>, based on the bilateral gait phases as defined in <xref ref-type="fig" rid="F3">Figure 3A</xref>. Note that, analogously, we can also calculate absolute and relative durations for all other gait phases defined in <xref ref-type="fig" rid="F3">Figure 3A</xref>.</p>
<p>To calculate the cadence, we multiply the inverse of the stride duration by two in order to express the cadence as the number of steps per minute instead of strides per minute, i.e.,</p>
<disp-formula id="E18"><label>(18)</label><mml:math id="M25"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:mfrac><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stride</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>3.8. Orientation Estimation</title>
<p>By fusing the gyroscope and accelerometer measurements, we obtain an estimate of the sensor orientation with respect to a global frame that has a vertical <italic>z</italic>-axis and an arbitrary heading.</p>
<p>Starting with an arbitrary initial orientation <bold>q</bold><sub>&#x003C9;</sub>(0), e.g., <inline-formula><mml:math id="M26"><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">T</mml:mtext></mml:mstyle></mml:mrow></mml:msup></mml:math></inline-formula>, we perform gyroscope strapdown integration</p>
<disp-formula id="E19"><label>(19)</label><mml:math id="M27"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo class="qopname">cos</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">s</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo stretchy="false">&#x02225;</mml:mo><mml:mstyle mathvariant="bold"><mml:mi>&#x003C9;</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x02225;</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>&#x003C9;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022BA;</mml:mo></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x02225;</mml:mo><mml:mstyle mathvariant="bold"><mml:mi>&#x003C9;</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x02225;</mml:mo></mml:mrow></mml:mfrac><mml:mo class="qopname">sin</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">s</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo stretchy="false">&#x02225;</mml:mo><mml:mstyle mathvariant="bold"><mml:mi>&#x003C9;</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x02225;</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022BA;</mml:mo></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Using this orientation, we transform the measured acceleration into a (slowly drifting) inertial frame, i.e.,</p>
<disp-formula id="E20"><label>(20)</label><mml:math id="M28"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>a</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>In the rotating sensor frame, the gravitational acceleration can point in different directions depending on sensor orientation. In the inertial frame, however, the gravitational acceleration will point in (almost) the same direction regardless of the sensor orientation, and, when integrating, acceleration and deceleration will cancel out. Exploiting this property, we low-pass filter each component of <bold>a</bold><sub>&#x003C9;</sub>(<italic>t</italic><sub><italic>k</italic></sub>) by applying a moving average filter with a window length of <italic>T</italic><sub><italic>a</italic></sub> in forward and reverse direction. Assuming that the change of velocity over the filter window length is small, the resulting filtered acceleration will be dominated by the gravitational acceleration. This filtered acceleration <bold>a</bold><sub>&#x003C9;, f</sub>(<italic>t</italic><sub><italic>k</italic></sub>) is then transferred back to the sensor frame</p>
<disp-formula id="E21"><label>(21)</label><mml:math id="M29"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">f</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi><mml:mo>,</mml:mo><mml:mtext class="textrm" mathvariant="normal">f</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We then correct the inclination of the gyroscope strapdown integration quaternion <bold>q</bold><sub>&#x003C9;</sub>(<italic>t</italic><sub><italic>k</italic></sub>) by using the filtered acceleration as a vertical reference. To this end, we transform the filtered acceleration into the global frame</p>
<disp-formula id="E22"><label>(22)</label><mml:math id="M30"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">r</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">f</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>with <inline-formula><mml:math id="M31"><mml:msub><mml:mrow><mml:mstyle class="text"><mml:mtext mathvariant="bold">q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">T</mml:mtext></mml:mstyle></mml:mrow></mml:msup></mml:math></inline-formula>, and correct the inclination</p>
<disp-formula id="E23"><label>(23)</label><mml:math id="M32"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle mathvariant="bold-italic"><mml:mi>n</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">r</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">T</mml:mtext></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E24"><label>(24)</label><mml:math id="M33"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x02254;</mml:mo><mml:mo class="qopname">arccos</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">T</mml:mtext></mml:mrow></mml:msup><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">r</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">r</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E25"><label>(25)</label><mml:math id="M34"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo class="qopname">cos</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mfrac><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>n</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>n</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mfrac><mml:mo class="qopname">sin</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022BA;</mml:mo></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Multiplication of the gyroscope strapdown integration quaternion and the accelerometer correction quaternion yields the sensor orientation,</p>
<disp-formula id="E26"><label>(26)</label><mml:math id="M35"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>3.9. Foot Velocity and Position Tracking</title>
<p>Using the estimated orientation, we perform double integration of the measured accelerations to estimate the length of each stride, i.e., the horizontal displacement between two adjacent foot-flat phases.</p>
<p>To integrate accelerations, they are first transformed into the reference frame</p>
<disp-formula id="E27"><label>(27)</label><mml:math id="M36"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>a</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>q</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Assuming that the velocity is zero in the middle of the foot-flat phase, i.e., at <italic>t</italic><sub>rest,<italic>i</italic></sub>, we integrate those accelerations for each stride which yields a velocity</p>
<disp-formula id="E28"><label>(28)</label><mml:math id="M37"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">s</mml:mtext></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>a</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>9</mml:mn><mml:mo>.</mml:mo><mml:mn>81</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">T</mml:mtext></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Due to measurement errors, mainly accelerometer bias, this velocity is usually not zero at <italic>t</italic><sub>rest,<italic>i</italic>&#x0002B;1</sub> even if the foot is perfectly at rest. Therefore, we correct this drift linearly over the time duration of the stride:</p>
<disp-formula id="E29"><label>(29)</label><mml:math id="M38"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">df</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>See <xref ref-type="fig" rid="F8">Figure 8</xref> for an example velocity trajectory with and without drift correction.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Velocity trajectories with (solid) and without (dashed) linear drift correction. The dotted line represents the subtracted linear drift approximation for stride <italic>i</italic>. For demonstration purposes, the drift has been artificially increased by a factor of 10.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0008.tif"/>
</fig>
<p>By integrating this drift-free velocity over the stride duration, we obtain a position trajectory,</p>
<disp-formula id="E30"><label>(30)</label><mml:math id="M39"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>p</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02254;</mml:mo><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">s</mml:mtext></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">df</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>:</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">T</mml:mtext></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>3.10. Stride Length and Walking Speed</title>
<p>We calculate the stride length <italic>L</italic><sub><italic>i</italic></sub> as the horizontal displacement during the stride <italic>i</italic>. Since <bold>p</bold><sub><italic>i</italic></sub>(<italic>t</italic><sub>rest,<italic>i</italic></sub>) &#x0003D; 0,</p>
<disp-formula id="E31"><label>(31)</label><mml:math id="M40"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:msqrt><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">rest</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Note that this method does not make any assumption on the orientation in which the sensor is attached to the foot. Also, note that we integrate from <italic>t</italic><sub>rest,<italic>i</italic></sub> to <italic>t</italic><sub>rest,<italic>i</italic>&#x0002B;1</sub> and not from <italic>t</italic><sub>ic,<italic>i</italic></sub> to <italic>t</italic><sub>ic,<italic>i</italic>&#x0002B;1</sub> since this makes the zero-velocity assumption more robust.</p>
<p>By dividing the stride length by the stride duration, we obtain the walking speed,</p>
<disp-formula id="E32"><label>(32)</label><mml:math id="M41"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02254;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mtext class="textrm" mathvariant="normal">stride</mml:mtext><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>3.11. Summary of the Estimated Parameters</title>
<p>After performing all steps presented above, the set of proposed methods provides the time instants of the defined gait events, the sensor orientation quaternion for each time instant, and velocity and position trajectories. From those time-based signals, the following gait parameters are extracted for each stride <italic>i</italic>:</p>
<list list-type="bullet">
<list-item><p>swing duration <italic>T</italic><sub>swing,rel,<italic>i</italic></sub> [%]</p></list-item>
<list-item><p>stance duration <italic>T</italic><sub>stance,rel,<italic>i</italic></sub> [%]</p></list-item>
<list-item><p>analogously, relative durations for the other gait phases as defined in <xref ref-type="fig" rid="F4">Figure 4</xref></p></list-item>
<list-item><p>stride length <italic>L</italic><sub><italic>i</italic></sub> [cm]</p></list-item>
<list-item><p>walking speed <italic>v</italic><sub><italic>i</italic></sub> [km/h]</p></list-item>
<list-item><p>cadence <italic>c</italic><sub><italic>i</italic></sub> [steps/min]</p></list-item>
</list>
<p>Note that all quantities are calculated separately for each stride of each foot. In many cases, only the mean of those values over multiple steps will be of interest. However, this stepwise calculation also allows for analysis of the variance and the detection of trends.</p>
<p>The accuracy of those gait parameters is validated in the next section.</p></sec></sec>
<sec id="s4">
<title>4. Experimental Validation</title>
<p>In this section, we aim to show that the less restrictive IMU-based setup combined with the methods proposed in section 3 is able to determine the same parameters as stationary systems that are used in clinical practice while providing similar accuracy. To this end, with a large data set consisting of three different subject groups, we compare the parameters calculated by the proposed methods with values reported by instrumented treadmills.</p>
<sec>
<title>4.1. Setup</title>
<p>One PABLO&#x000AE; Lower Extremity inertial sensor (Tyromotion GmbH, Graz, Austria) was attached to each shoe (cf. <xref ref-type="fig" rid="F9">Figure 9A</xref>). The sensors measure angular rate and acceleration at a sampling frequency of 110 Hz. Each sensor has a size of 56 &#x000D7; 34 &#x000D7; 21 mm and transmits the data wirelessly using Bluetooth. The sensors were attached to the subjects&#x00027; shoes with special Velcro straps.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Experimental setup. <bold>(A)</bold> Patient with inertial sensors attached to the shoe. <bold>(B)</bold> Instrumented treadmill at NTK Kapfenberg. Gait parameters are derived from the measurement data of the inertial sensors with the proposed methods and validated against parameters obtained from the instrumented treadmill serving as ground truth.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0009.tif"/>
</fig>
<p>Zebris Rehawalk instrumented treadmills (Zebris Medical, Isny, Germany) were used as reference systems. Since the data collection took place in various institutions (FH Joanneum Graz, NTK Kapfenberg, Rehabilitation Center Kitzb&#x000FC;hel), different systems with identical function were used. See <xref ref-type="fig" rid="F9">Figure 9B</xref> for a picture of the setup at NTK Kapfenberg.</p>
<list list-type="bullet">
<list-item><p>FH Joanneum (Graz, Austria)</p>
<list list-type="simple">
<list-item><p>&#x02013; Treadmill: h-p-c Mercury Med Treadmill (HP Cosmos, Nussdorf, Germany), walking speed: 0&#x02013;22 km/h in 0.1 km/h steps, walking surface: 150 &#x000D7; 50 cm</p></list-item>
<list-item><p>&#x02013; Pressure measuring platform: FDM-THM-M-3i (Zebris Medical, Isny, Germany), 120 Hz, sensor area: 108.4 &#x000D7; 47.4 cm, 7,168 sensors.</p></list-item>
</list></list-item>
<list-item><p>NTK (Kapfenberg, Austria)</p>
<list list-type="simple">
<list-item><p>&#x02013; Treadmill: h-p-c Locomotion Med Treadmill (HP Cosmos, Nussdorf, Germany), walking speed: 0&#x02013;10 km/h in 0.1 km/h steps, walking surface: 150 &#x000D7; 50 cm</p></list-item>
<list-item><p>&#x02013; Pressure measuring platform: FDM-THM-M-2i (Zebris Medical, Isny, Germany), 120 Hz, sensor area: 111.8 &#x000D7; 49.5 cm, 3,432 sensors.</p></list-item>
</list></list-item>
<list-item><p>Rehabilitation Center Kitzb&#x000FC;hel (Kitzb&#x000FC;hel, Austria)</p>
<list list-type="simple">
<list-item><p>&#x02013; Treadmill: h-p-c Mercury Med Treadmill (HP Cosmos, Nussdorf, Germany), walking speed: 0&#x02013;22 km/h in 0.1 km/h steps, walking surface: 150 &#x000D7; 50 cm</p></list-item>
<list-item><p>&#x02013; Pressure measuring platform: FDM-THM-M-2i (Zebris Medical, Isny, Germany), 120 Hz, sensor area: 111.8 &#x000D7; 49.5 cm, 3,432 sensors.</p></list-item>
</list></list-item>
</list>
</sec>
<sec>
<title>4.2. Subjects and Experimental Procedure</title>
<p>The data collection was carried out in three different institutions with different groups of subjects. Approval from the ethics committee of the University of Graz was obtained, and an informed consent form was signed by all participants.</p>
<p><italic>Healthy participants</italic> were recorded at three different walking speeds, each for two minutes: 1.5, 3, and 5 km/h. A prerequisite for participation was the ability to walk on a treadmill at different speeds. The healthy participants (<italic>n</italic> &#x0003D; 39) were recruited from the students at the Physiotherapy Institute of FH Joanneum Graz.</p>
<p><italic>Non-healthy participants</italic> with affected ability to walk were asked to walk on a treadmill at a self-selected comfortable walking speed. Patients who were unable to walk on a treadmill were excluded during participant selection. The following set of participants were recruited:</p>
<list list-type="bullet">
<list-item><p>Participants with different neurological diseases (<italic>n</italic> &#x0003D; 36) were recruited from patients who were in neurological inpatient rehabilitation at NTK Kapfenberg at the time of data collection. This comprises 20 post-stroke patients, 6 patients with Parkinson&#x00027;s disease, two with multiple sclerosis, two with meningioma, two after polytrauma, and one patient each with epilepsy, spinocerebellar ataxia, low back pain, and polyneuropathy.</p></list-item>
<list-item><p>Participants with various orthopedic diseases (<italic>n</italic> &#x0003D; 62) were recruited from the patients who were in orthopedic inpatient rehabilitation at Rehazentrum Kitzb&#x000FC;hel at the time of data collection. Of these, four patients had pathologies in the area of the ankle or lower leg (e.g., ankle joint fractures, tibia fractures), 21 patients at the knee (e.g., osteoarthritis, total knee arthroplasty), 18 patients in the area of the thigh and hip (e.g., osteoarthritis, total hip arthroplasty, femur fractures), 16 patients in the area of the lumbar spine (low back pain, lumbar vertebrae fractures) as well as three patients in whom different body areas were affected (polytrauma, polymyositis).</p></list-item>
</list>
<p>All participants had time to get used to walking on the treadmill prior to the data collection. All participants were free to use the treadmill support (handrail, fall protection system). For the data collection, two minutes of walking was recorded simultaneously by both systems. IMU data was recorded with a tool of the TyroS software (Tyromotion, Graz, Austria) that allows the export of raw gyroscope and accelerometer data. Zebris data was recorded, analyzed, and exported with the software FDM v1.18.38 (Zebris Medical, Isny, Germany).</p></sec>
<sec>
<title>4.3. Data Processing</title>
<p>For each trial, we obtain the following gait parameters from the Zebris Rehawalk instrumented treadmill:</p>
<list list-type="bullet">
<list-item><p>loading response duration</p></list-item>
<list-item><p>single limb support duration</p></list-item>
<list-item><p>pre-swing duration</p></list-item>
<list-item><p>swing duration</p></list-item>
<list-item><p>stride length</p></list-item>
<list-item><p>walking speed</p></list-item>
<list-item><p>cadence.</p></list-item>
</list>
<p>These parameters are reported as averages over the whole trial. The gait phase durations are relative to the stride duration and reported separately for the left and right foot. We add the loading response, single limb support, and pre-swing durations to obtain the stance duration (cf. <xref ref-type="fig" rid="F3">Figure 3A</xref>).</p>
<p>From phases in which the treadmill is not moving and the foot is resting on the ground for approximately 5 s at the beginning and end of each trial, gyroscope turn-on bias is automatically estimated and removed. Using the methods described in section 3, each recorded trial is processed with the parameter values given in <xref ref-type="table" rid="T2">Table 2</xref>. Note that we use the same set of parameters for all different subject groups and walking speeds in order to demonstrate that the method works well without adjusting the parameters for the specific gait velocity and style.</p>
<p>The sensor attachment used for recording the data sets, as shown in <xref ref-type="fig" rid="F9">Figure 9A</xref>, ensures that one sensor axis is always roughly aligned with the mediolateral axis of the foot. To show that the proposed methods do not make assumptions regarding the sensor orientation, we simulate a random sensor attachment by multiplying all gyroscope and accelerometer measurements with a random rotation matrix that is different for each trial.</p>
<p>Finally, we calculate the same gait parameters as reported by the reference system by averaging the respective parameters, excluding the first and last three strides of each foot, and compare the resulting values to the values reported by the Zebris system. The results are found in the following section.</p></sec>
<sec>
<title>4.4. Results</title>
<p>For each trial, we first consider the five main parameters stance duration, swing duration, stride length, walking speed, and cadence, and evaluate the difference between the proposed methods (IMU) and the Zebris Rehawalk reference system (REF). The results are presented separately for each of the three subject groups in scatter plots and Bland-Altman plots (<xref ref-type="bibr" rid="B50">50</xref>) and can be found in <xref ref-type="fig" rid="F10">Figure 10</xref>, for the healthy participants walking at three different speeds; in <xref ref-type="fig" rid="F11">Figure 11</xref>, for the participants with orthopedic diseases; and in <xref ref-type="fig" rid="F12">Figure 12</xref>, for the participants with neurological diseases.</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Scatter plots and Bland-Altman plots for stance and swing duration, stride length, walking speed, and cadence of 39 healthy subjects walking at 1.5, 3, and 5 km/h. Red: 45-degree lines (<italic>y</italic> &#x0003D; <italic>x</italic>). Values obtained with the proposed IMU-based methods (IMU) are compared to the ground truth from the Zebris reference system (REF). The average deviation is &#x0007E;1 % for gait phase durations, below 2 cm for the stride length, below 0.05 km/h for the walking speed, and below 1 step/min for the cadence.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0010.tif"/>
</fig>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>Scatter plots and Bland-Altman plots for stance and swing duration, stride length, walking speed, and cadence of 62 orthopedic patients. Red: 45-degree lines (<italic>y</italic> &#x0003D; <italic>x</italic>). Values obtained with the proposed IMU-based methods (IMU) are compared to the ground truth from the Zebris reference system (REF). The average deviation is below 1 % for gait phase durations, below 2 cm for the stride length, below 0.05 km/h for the walking speed, and below 1 step/min for the cadence.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0011.tif"/>
</fig>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>Scatter plots and Bland-Altman plots for stance and swing duration, stride length, walking speed, and cadence of 36 neurological patients. Red: 45-degree lines (<italic>y</italic> &#x0003D; <italic>x</italic>). Values obtained with the proposed IMU-based methods (IMU) are compared to the ground truth from the Zebris reference system (REF). The average deviation is &#x0007E;2 % for gait phase durations, below 1 cm for the stride length, below 0.05 km/h for the walking speed, and below 1 step/min for the cadence.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fdgth-03-736418-g0012.tif"/>
</fig>
<p>The error (mean &#x000B1; standard deviation) for the relative stance duration is 1.04&#x000B1;1.34 % for healthy subjects, &#x02212;0.29&#x000B1;1.52 % for orthopedic patients, and 2.06&#x000B1;1.63 % for neurological patients. For relative swing duration, the errors are &#x02212;1.01&#x000B1;1.35 % for healthy subjects, 0.32&#x000B1;1.54 % for orthopedic patients, and &#x02212;2.02&#x000B1;1.64 % for neurological patients. This means that the average swing/stance duration error is in the range of 1&#x02013;2 % for all subject groups.</p>
<p>For the stride length, the errors are &#x02212;1.59 &#x000B1; 1.53, &#x02212;1.74 &#x000B1; 1.63, and 0.51 &#x000B1; 1.37 cm for healthy subjects, orthopedic patients, and neurological patients, respectively. This means that the average stride length error is below 2 cm for all subject groups.</p>
<p>The mean errors and standard deviations for the walking speed are &#x02212;0.02&#x000B1;0.05 km/h for healthy subjects, &#x02212;0.03&#x000B1;0.05 km/h for orthopedic patients, and 0.03&#x000B1;0.03 km/h for means that the average walking speed error is below 0.05 km/h for all subject groups.</p>
<p>The cadence estimates show deviations of 0.68&#x000B1;0.56 steps/min for healthy subjects, 0.55&#x000B1;0.47 steps/min for orthopedic patients, and 0.57&#x000B1;0.51 steps/min for neurological patients. This means that the average cadence error is below 1 step/min for all subject groups.</p>
<p>As an additional evaluation metric, we calculate the mean of the absolute difference (MAD) between the values reported by Zebris and the IMU-based analysis over all trials. <xref ref-type="table" rid="T3">Table 3</xref> summarizes the results for the three subject groups and all 215 evaluated trials.</p>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>Deviation between IMU-based and Zebris gait parameters.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th/>
<th valign="top" align="center" style="border-bottom: thin solid #000000;"><bold>Stance [%]</bold></th>
<th style="border-bottom: thin solid #000000;"/>
<th style="border-bottom: thin solid #000000;"/>
<th style="border-bottom: thin solid #000000;"/>
<th valign="top" align="center"><bold>Swing [%]</bold></th>
<th valign="top" align="center"><bold>Stride</bold></th>
<th valign="top" align="center"><bold>Walking</bold></th>
<th valign="top" align="center"><bold>Cadence</bold></th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>LR [%]</bold></th>
<th valign="top" align="center"><bold>SLS [%]</bold></th>
<th valign="top" align="center"><bold>PS [%]</bold></th>
<th/>
<th valign="top" align="center"><bold>length [cm]</bold></th>
<th valign="top" align="center"><bold>speed [km/h]</bold></th>
<th valign="top" align="center"><bold>[steps/min]</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left" colspan="9"><bold>Healthy subjects (<italic>n</italic> &#x0003D; 39)</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<bold>MAD</bold></td>
<td valign="top" align="center"><bold>1.32</bold></td>
<td valign="top" align="center"><bold>1.29</bold></td>
<td valign="top" align="center"><bold>1.28</bold></td>
<td valign="top" align="center"><bold>1.32</bold></td>
<td valign="top" align="center"><bold>1.31</bold></td>
<td valign="top" align="center"><bold>1.73</bold></td>
<td valign="top" align="center"><bold>0.04</bold></td>
<td valign="top" align="center"><bold>0.74</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;&#x003BC;&#x000B1;&#x003C3;</td>
<td valign="top" align="center">1.04 &#x000B1; 1.34</td>
<td valign="top" align="center">0.97 &#x000B1; 1.34</td>
<td valign="top" align="center">&#x02212;0.96 &#x000B1; 1.33</td>
<td valign="top" align="center">1.03 &#x000B1; 1.34</td>
<td valign="top" align="center">&#x02212;1.01 &#x000B1; 1.35</td>
<td valign="top" align="center">&#x02212;1.59 &#x000B1; 1.53</td>
<td valign="top" align="center">&#x02212;0.02 &#x000B1; 0.05</td>
<td valign="top" align="center">0.68 &#x000B1; 0.56</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<italic>r</italic><sub><italic>x,y</italic></sub></td>
<td valign="top" align="center">0.93</td>
<td valign="top" align="center">0.93</td>
<td valign="top" align="center">0.93</td>
<td valign="top" align="center">0.93</td>
<td valign="top" align="center">0.93</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;LoA</td>
<td valign="top" align="center">&#x02212;1.58 to 3.67</td>
<td valign="top" align="center">&#x02212;1.65 to 3.59</td>
<td valign="top" align="center">&#x02212;3.56 to 1.65</td>
<td valign="top" align="center">&#x02212;1.60 to 3.66</td>
<td valign="top" align="center">&#x02212;3.65 to 1.63</td>
<td valign="top" align="center">&#x02212;4.59 to 1.40</td>
<td valign="top" align="center">&#x02212;0.13 to 0.08</td>
<td valign="top" align="center">&#x02212;0.42 to 1.77</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;SDC</td>
<td valign="top" align="center">5.25</td>
<td valign="top" align="center">5.24</td>
<td valign="top" align="center">5.21</td>
<td valign="top" align="center">5.26</td>
<td valign="top" align="center">5.28</td>
<td valign="top" align="center">6.00</td>
<td valign="top" align="center">0.21</td>
<td valign="top" align="center">2.19</td>
</tr>
<tr style="border-top: thin solid #000000;">
<td valign="top" align="left" colspan="9"><bold>Orthopedic patients (<italic>n</italic> &#x0003D; 62)</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<bold>MAD</bold></td>
<td valign="top" align="center"><bold>1.14</bold></td>
<td valign="top" align="center"><bold>1.12</bold></td>
<td valign="top" align="center"><bold>1.14</bold></td>
<td valign="top" align="center"><bold>1.07</bold></td>
<td valign="top" align="center"><bold>1.16</bold></td>
<td valign="top" align="center"><bold>1.94</bold></td>
<td valign="top" align="center"><bold>0.04</bold></td>
<td valign="top" align="center"><bold>0.63</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;&#x003BC;&#x000B1;&#x003C3;</td>
<td valign="top" align="center">&#x02212;0.29 &#x000B1; 1.52</td>
<td valign="top" align="center">&#x02212;0.33 &#x000B1; 1.49</td>
<td valign="top" align="center">0.35 &#x000B1; 1.49</td>
<td valign="top" align="center">&#x02212;0.31 &#x000B1; 1.44</td>
<td valign="top" align="center">0.32 &#x000B1; 1.54</td>
<td valign="top" align="center">&#x02212;1.74 &#x000B1; 1.63</td>
<td valign="top" align="center">&#x02212;0.03 &#x000B1; 0.05</td>
<td valign="top" align="center">0.55 &#x000B1; 0.47</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<italic>r</italic><sub><italic>x,y</italic></sub></td>
<td valign="top" align="center">0.84</td>
<td valign="top" align="center">0.84</td>
<td valign="top" align="center">0.85</td>
<td valign="top" align="center">0.85</td>
<td valign="top" align="center">0.83</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;LoA</td>
<td valign="top" align="center">&#x02212;3.27 to 2.69</td>
<td valign="top" align="center">&#x02212;3.26 to 2.60</td>
<td valign="top" align="center">&#x02212;2.57 to 3.26</td>
<td valign="top" align="center">&#x02212;3.13 to 2.51</td>
<td valign="top" align="center">&#x02212;2.68 to 3.33</td>
<td valign="top" align="center">&#x02212;4.93 to 1.46</td>
<td valign="top" align="center">&#x02212;0.13 to 0.06</td>
<td valign="top" align="center">&#x02212;0.37 to 1.47</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;SDC</td>
<td valign="top" align="center">5.96</td>
<td valign="top" align="center">5.86</td>
<td valign="top" align="center">5.84</td>
<td valign="top" align="center">5.65</td>
<td valign="top" align="center">6.02</td>
<td valign="top" align="center">6.39</td>
<td valign="top" align="center">0.19</td>
<td valign="top" align="center">1.84</td>
</tr>
<tr style="border-top: thin solid #000000;">
<td valign="top" align="left" colspan="9"><bold>Neurological patients (<italic>n</italic> &#x0003D; 36)</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<bold>MAD</bold></td>
<td valign="top" align="center"><bold>2.26</bold></td>
<td valign="top" align="center"><bold>2.20</bold></td>
<td valign="top" align="center"><bold>2.23</bold></td>
<td valign="top" align="center"><bold>2.21</bold></td>
<td valign="top" align="center"><bold>2.22</bold></td>
<td valign="top" align="center"><bold>1.09</bold></td>
<td valign="top" align="center"><bold>0.03</bold></td>
<td valign="top" align="center"><bold>0.60</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;&#x003BC;&#x000B1;&#x003C3;</td>
<td valign="top" align="center">2.06 &#x000B1; 1.63</td>
<td valign="top" align="center">2.04 &#x000B1; 1.65</td>
<td valign="top" align="center">&#x02212;2.04 &#x000B1; 1.64</td>
<td valign="top" align="center">2.06 &#x000B1; 1.65</td>
<td valign="top" align="center">&#x02212;2.02 &#x000B1; 1.64</td>
<td valign="top" align="center">0.51 &#x000B1; 1.37</td>
<td valign="top" align="center">0.03 &#x000B1; 0.03</td>
<td valign="top" align="center">0.57 &#x000B1; 0.51</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<italic>r</italic><sub><italic>x,y</italic></sub></td>
<td valign="top" align="center">0.89</td>
<td valign="top" align="center">0.89</td>
<td valign="top" align="center">0.89</td>
<td valign="top" align="center">0.89</td>
<td valign="top" align="center">0.89</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;LoA</td>
<td valign="top" align="center">&#x02212;1.13 to 5.26</td>
<td valign="top" align="center">&#x02212;1.19 to 5.28</td>
<td valign="top" align="center">&#x02212;5.26 to 1.18</td>
<td valign="top" align="center">&#x02212;1.16 to 5.29</td>
<td valign="top" align="center">&#x02212;5.22 to 1.19</td>
<td valign="top" align="center">&#x02212;2.18 to 3.20</td>
<td valign="top" align="center">&#x02212;0.04 to 0.09</td>
<td valign="top" align="center">&#x02212;0.43 to 1.58</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;SDC</td>
<td valign="top" align="center">6.39</td>
<td valign="top" align="center">6.47</td>
<td valign="top" align="center">6.44</td>
<td valign="top" align="center">6.46</td>
<td valign="top" align="center">6.41</td>
<td valign="top" align="center">5.38</td>
<td valign="top" align="center">0.13</td>
<td valign="top" align="center">2.01</td>
</tr>
<tr style="border-top: thin solid #000000;">
<td valign="top" align="left" colspan="9"><bold>All trials (215 trials)</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<bold>MAD</bold></td>
<td valign="top" align="center"><bold>1.43</bold></td>
<td valign="top" align="center"><bold>1.39</bold></td>
<td valign="top" align="center"><bold>1.40</bold></td>
<td valign="top" align="center"><bold>1.40</bold></td>
<td valign="top" align="center"><bold>1.41</bold></td>
<td valign="top" align="center"><bold>1.68</bold></td>
<td valign="top" align="center"><bold>0.04</bold></td>
<td valign="top" align="center"><bold>0.68</bold></td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;&#x003BC;&#x000B1;&#x003C3;</td>
<td valign="top" align="center">0.83 &#x000B1; 1.65</td>
<td valign="top" align="center">0.78 &#x000B1; 1.65</td>
<td valign="top" align="center">&#x02212;0.76 &#x000B1; 1.64</td>
<td valign="top" align="center">0.82 &#x000B1; 1.64</td>
<td valign="top" align="center">&#x02212;0.79 &#x000B1; 1.66</td>
<td valign="top" align="center">&#x02212;1.28 &#x000B1; 1.73</td>
<td valign="top" align="center">&#x02212;0.02 &#x000B1; 0.05</td>
<td valign="top" align="center">0.62 &#x000B1; 0.53</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;<italic>r</italic><sub><italic>x,y</italic></sub></td>
<td valign="top" align="center">0.87</td>
<td valign="top" align="center">0.87</td>
<td valign="top" align="center">0.88</td>
<td valign="top" align="center">0.88</td>
<td valign="top" align="center">0.87</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
<td valign="top" align="center">&#x0003E;0.99</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;LoA</td>
<td valign="top" align="center">&#x02212;2.41 to 4.07</td>
<td valign="top" align="center">&#x02212;2.45 to 4.0</td>
<td valign="top" align="center">&#x02212;3.98 to 2.46</td>
<td valign="top" align="center">&#x02212;2.39 to 4.03</td>
<td valign="top" align="center">&#x02212;4.05 to 2.46</td>
<td valign="top" align="center">&#x02212;4.68 to 2.11</td>
<td valign="top" align="center">&#x02212;0.12 to 0.09</td>
<td valign="top" align="center">&#x02212;0.41 to 1.66</td>
</tr>
<tr>
<td valign="top" align="center">&#x000A0;&#x000A0;&#x000A0;SDC</td>
<td valign="top" align="center">6.48</td>
<td valign="top" align="center">6.46</td>
<td valign="top" align="center">6.44</td>
<td valign="top" align="center">6.42</td>
<td valign="top" align="center">6.50</td>
<td valign="top" align="center">6.79</td>
<td valign="top" align="center">0.21</td>
<td valign="top" align="center">2.08</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>LR, loading response; SLS, single limb support; PS, pre-swing</italic>.</p>
<p><italic>MAD, mean absolute difference between IMU-based and Zebris values</italic>.</p>
<p><italic>&#x003BC;&#x000B1;&#x003C3;, mean and standard deviation of difference between IMU-based and Zebris values</italic>.</p>
<p><italic>r<sub>x,y</sub>: Pearson correlation coefficient (p &#x0003C;0.01 for all values)</italic>.</p>
<p><italic>LoA, limits of agreement, &#x003BC;&#x02212;1.96&#x003C3; to &#x003BC;&#x0002B;1.96&#x003C3;</italic>.</p>
<p><italic>SDC, smallest detectable change, range between both LoA</italic>.</p>
</table-wrap-foot>
</table-wrap>
<p>The MAD of the stance and swing durations are &#x0007E;1.3 % for healthy subjects and orthopedic patients and 2.2 % for neurological patients. Note that we also evaluated the differences for the three sub-phases of stance that the Zebris Rehawalk reference system reports, i.e., loading response, single limb support, and pre-swing. <xref ref-type="table" rid="T3">Table 3</xref> shows that we can estimate the duration of those phases with the same accuracy as stance and swing.</p>
<p>To summarize, for all subject groups, the MAD is in the range of 1&#x02013;2 % for gait phase durations, below 2 cm for the stride length, below 0.05 km/h for the walking speed, and below 1 step/min for the cadence.</p></sec></sec>
<sec sec-type="discussion" id="s5">
<title>5. Discussion</title>
<p>In the present contribution, we have proposed a set of methods for spatiotemporal gait analysis based on two inertial sensors attached to the feet. Our methods allow for the calculation of the main spatiotemporal gait parameters that are also reported by stationary laboratory systems: gait phase durations, stride length, walking speed, and cadence. Using a large data set consisting of healthy subjects walking at three different speeds, subjects with orthopedic diseases, and subjects with neurological diseases, we have validated the calculation of those parameters, using a Zebris Rehawalk instrumented treadmill as reference. All parameters show a very strong correlation (Pearson&#x00027;s <italic>r</italic> between 0.83 and 0.99, <italic>p</italic> &#x0003C; 0.01) (<xref ref-type="bibr" rid="B51">51</xref>). <xref ref-type="fig" rid="F10">Figures 10</xref>&#x02013;<xref ref-type="fig" rid="F12">12</xref> display consistent results over this large and diverse group of subjects. Averaged over all trials, the MAD with respect to the reference system is 1.4 % for the gait phase durations, 1.7 cm for the stride length, 0.04 km/h for the walking speed, and 0.7 steps/min for the cadence.</p>
<p>In clinical practice and research, the presented parameters are used to quantify gait abnormalities and to document changes in the walking behavior of patients. Associations between spatiotemporal gait parameters and functional capacity, or increased mortality, have been demonstrated (<xref ref-type="bibr" rid="B52">52</xref>&#x02013;<xref ref-type="bibr" rid="B54">54</xref>). A positive correlation with cardiovascular-related mortality was found for cadence (<xref ref-type="bibr" rid="B55">55</xref>). A reduction in walking speed has been shown to correlate with fall risk, frequency of hospitalization, and mortality (<xref ref-type="bibr" rid="B56">56</xref>&#x02013;<xref ref-type="bibr" rid="B58">58</xref>). Stride length describes a strong correlation with walking speed according to the research of (<xref ref-type="bibr" rid="B59">59</xref>). Slower walking speed, altered gait phase duration, and increased variability of walking increase the risk of falls (<xref ref-type="bibr" rid="B60">60</xref>). Furthermore, it was found that psychological modalities, such as fear of falling, can also influence stride length and gait phase duration (<xref ref-type="bibr" rid="B61">61</xref>). The minimal clinically important difference (MCID) can be used to determine how precisely these changes must be detected in order to make a statement about their relevance. Despite thorough research, specific values for the MCID could only be found for the walking speed, ranging from 0.36 to 0.72 km/h (<xref ref-type="bibr" rid="B62">62</xref>&#x02013;<xref ref-type="bibr" rid="B64">64</xref>). For IMU-based measurement with the proposed methods, the smallest detectable change (SDC) for walking speed is 0.21 km/h and clearly within the MCID for all examined groups. For the other parameters, no reported MCID values could be found, which is consistent with the statement of (<xref ref-type="bibr" rid="B29">29</xref>).</p>
<p>The SDC for the cadence is 2.01 steps/min across all studied groups of subjects. This allows for much more accurate changes to be detected than those described as relevant in the literature [e.g., reduction in cadence of 10 steps per minute increases mortality by 4 % (<xref ref-type="bibr" rid="B65">65</xref>)]. The achieved SDC for stride length of 5.3 cm in the patients with neurological diseases seems to be sufficiently accurate to capture the differences occurring, for example, in Parkinson&#x00027;s disease (<xref ref-type="bibr" rid="B66">66</xref>). The stance and swing phase durations show an SDC of 6.5 % across all trials.</p>
<p>Unlike many existing contributions, we showed that the proposed methods reliably work on patients in addition to healthy subjects and still produce accurate results. This is noteworthy since it has been shown that pathological walking deteriorates the accuracy of many gait analysis methods (<xref ref-type="bibr" rid="B45">45</xref>) and specifically the neurologically induced gait abnormalities are challenging for IMU-based gait analysis (<xref ref-type="bibr" rid="B29">29</xref>).</p>
<p>A fundamental challenge of IMU-based gait event detection is that IMUs do not directly measure the gait parameters of interest. For toe-off detection, the time instant of load relief cannot directly be measured, and instead, the inversion of the direction of rotation is used. Similarly, initial contact is not detected based on the onset of load but based on the change of acceleration. It is therefore important to properly validate the IMU-based methods by comparing the estimated gait parameters to a reliable ground truth.</p>
<p>As reference system, treadmills instrumented with Zebris pressure measurement platforms were used, which are frequently employed for gait analysis in clinical practice as well as scientific data collection (<xref ref-type="bibr" rid="B12">12</xref>). This system shows good reliability (<xref ref-type="bibr" rid="B67">67</xref>), but no studies could be found in which the validity of the gait parameters was investigated. It should be noted that due to the length of the pressure sensors (FDM-THM-M-3i: 0.85 cm; FDM-THM-M-2i: 1.27 cm) there may be inaccuracies in the recording of spatial parameters, which may have an effect on the results of the comparative measurements. Moreover, calibration and proper thresholding pose challenges in gait event detection based on pressure measurements (<xref ref-type="bibr" rid="B12">12</xref>).</p>
<p>For the neurological patients, the reported duration of stance is, on average, 2 % longer than the reference duration. While this is still a small deviation, it is worth noting because this bias suggests a pattern that is common to this subject group. One likely explanation is that toe-off is being detected later than with the Zebris system. This might be due to a comparatively long phase of load relief that causes the pressure to fall below the threshold too early. Furthermore, the reversal of rotation direction might happen later than for healthy subjects or orthopedic patients. Still, even though both systems measure inherently different phenomena, the observation deviation is only 2 %.</p>
<p>As a replacement for traditional stationary gait analysis systems, which are commonly used in clinical practice, IMU-based gait analysis offers several advantages. Measurement is possible both on treadmills and overground and not restricted to a dedicated laboratory. The small and lightweight IMUs do not restrict the movement of the subject and can be used in conjunction with walking aids such as wheeled walkers. Furthermore, only a very short setup time is required before starting the actual measurement.</p>
<p>Unlike most existing methods (cf. section 2), the proposed method makes gait analysis easier and faster by not requiring any specific sensor attachment, which we demonstrated by simulating a different random sensor-to-foot orientation in each trial. It does not make use of magnetometers and can therefore be used in both indoor and outdoor environments.</p>
<p>While evaluation was limited to the gait phases reported by the reference system, our proposed set of methods further allows for the calculation of many gait phases (<xref ref-type="fig" rid="F4">Figure 4</xref>), i.e., swing and stance for each foot, four unilateral gait phases for each foot, five bilateral gait phases following standard literature (<xref ref-type="bibr" rid="B44">44</xref>) for each foot, and finally the distinction between double and single support. To the best of our knowledge, no existing work on IMU-based gait analysis describes the calculation of this set of gait phases.</p>
<p>Besides the more fine-grained gait phases, there are many more parameters that can be extracted, e.g., from the velocity and position trajectories, such as the maximum velocity during swing, foot clearance, and symmetry parameters. While it is not surprising that the prevalence of pressure-based systems has led researchers to focus on features based on ground contact, it is to be expected that the focus of clinical gait analysis will be directed toward other parameters as IMU-based systems become more popular.</p>
<p>Furthermore, miniaturized lightweight sensors with a long battery life open up possibilities for objective gait analysis outside of clinical laboratories. Daily-life gait assessment over the course of multiple days can bring insights that are not possible with short sessions in a laboratory. If patients place the sensors on or in the shoes themselves in an unsupervised telemedicine setting, not requiring the sensor to be oriented in a special way becomes even more important.</p>
<p>Technological advancement also facilitates real-time biofeedback applications. While there are methods for real-time applications that require event detection during a step (<xref ref-type="bibr" rid="B41">41</xref>), e.g., to trigger FES, the proposed set of methods is real-time capable in the sense that during walking, sections of data containing a small number of strides can be processed and used to provide feedback to the subject.</p>
<p>The presented work exhibits a few remaining limitations. In the statistical analysis, the gait parameters were averaged over the duration of the trial before comparison with the reference. While it allows for single-stride errors to cancel out, this methodology corresponds well with the use case of clinical gait analysis, in which a subject is asked to walk for several steps, and averaged parameters are then used to assess the gait. An additional stride-by-stride comparison was not performed because the employed reference system can only export averaged gait parameters. In addition, it should be noted that all recordings were made on treadmills and not while walking overground, which has an influence on the movement pattern of gait (<xref ref-type="bibr" rid="B68">68</xref>, <xref ref-type="bibr" rid="B69">69</xref>). Despite the known differences between treadmill walking and overground walking, treadmill gait analysis is considered a standard method in clinical practice (<xref ref-type="bibr" rid="B70">70</xref>, <xref ref-type="bibr" rid="B71">71</xref>), especially when weight support and handrails are required for safety reasons.</p></sec>
<sec sec-type="conclusions" id="s6">
<title>6. Conclusion</title>
<p>In the present contribution, we have proposed a set of methods for IMU-based gait analysis. Based on gyroscope and accelerometer measurements from two inertial sensors on the feet, we estimate durations of five gait phases, stride length, walking speed, and cadence. Using a Zebris Rehawalk instrumented treadmill as reference, we validated the proposed methods based on a large data set consisting of healthy subjects (<italic>n</italic> &#x0003D; 39) walking at three different speeds, subjects with orthopedic diseases (<italic>n</italic> &#x0003D; 62), and subjects with neurological diseases (<italic>n</italic> &#x0003D; 36). Averaged over all trials, the MAD with respect to the reference system are 1.4 % for the gait phase durations, 1.7 cm for the stride length, 0.04 km/h for the walking speed, and 0.7 steps/min for the cadence. We also demonstrated that the proposed methods work reliably not only in healthy subjects but also in patients and still provide accurate results under different pathological gait patterns.</p>
<p>This shows that the proposed setup in combination with the proposed methods can accurately calculate relevant gait parameters from the inertial sensor data and thus has the potential to replace traditional stationary gait analysis systems.</p>
<p>Furthermore, we validated that the proposed methods work well regardless of the orientation in which the sensor is attached to the foot, and dedicated calibration movements and magnetometer measurements are completely avoided. The combination of these advantages facilitates long-term ambulatory gait analysis in day-to-day situations without the need for supervision by health professionals.</p>
<p>Future research will focus on the estimation of additional gait parameters, on the validation on stairs and slopes, and the validation against marker-based optical motion capture systems.</p></sec>
<sec sec-type="data-availability" id="s7">
<title>Data Availability Statement</title>
<p>The datasets presented in this article are not readily available because sharing of the data is not covered by the ethical approval. Requests to access the datasets should be directed to Andreas J. Jocham, <email>andreas.jocham&#x00040;fh-joanneum.at</email>.</p></sec>
<sec id="s8">
<title>Ethics Statement</title>
<p>The studies involving human participants were reviewed and approved by the Ethics Committee of the University of Graz (GZ. 39/55/63 ex 2017/18, 28 May 2018). The patients/participants provided their written informed consent to participate in this study.</p></sec>
<sec id="s9">
<title>Author Contributions</title>
<p>DL and TS devised and developed the mathematical method. DL implemented the method, performed the data analysis, and drafted the manuscript. AJ, BG, KA, and MF planned and organized the data collection. AJ, BG, and KA conducted the data collection and post-processed the data. DL, AJ, BG, KA, MF, and TS revised the manuscript. All authors approved the submitted version.</p></sec>
<sec sec-type="funding-information" id="s10">
<title>Funding</title>
<p>We acknowledge support by the German Research Foundation and the Open Access Publication Fund of TU Berlin.</p></sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p></sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x00027;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p></sec>
</body>
<back>
<ack><p>We thank all subjects for their participation, Dr. Matthias K&#x000F6;nig and Andrea Eschbach as well as the whole team of the Neurological Therapy Center Kapfenberg for the support during data collection, and Andrew Cote and Eva Kastenbauer for the skillful support in algorithm development and evaluation.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1">
<label>1.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hass</surname> <given-names>CJ</given-names></name> <name><surname>Malczak</surname> <given-names>P</given-names></name> <name><surname>Nocera</surname> <given-names>J</given-names></name> <name><surname>Stegem&#x000F6;ller</surname> <given-names>EL</given-names></name> <name><surname>Shukala</surname> <given-names>A</given-names></name> <name><surname>Malaty</surname> <given-names>I</given-names></name> <etal/></person-group>. <article-title>Quantitative normative gait data in a large cohort of ambulatory persons with Parkinson&#x00027;s disease</article-title>. <source>PLoS ONE</source>. (<year>2012</year>) <volume>7</volume>:<fpage>e42337</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0042337</pub-id><pub-id pub-id-type="pmid">22879945</pub-id></citation></ref>
<ref id="B2">
<label>2.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Park</surname> <given-names>J</given-names></name> <name><surname>Kim</surname> <given-names>TH</given-names></name></person-group>. <article-title>The effects of balance and gait function on quality of life of stroke patients</article-title>. <source>NeuroRehabilitation</source>. (<year>2019</year>) <volume>44</volume>:<fpage>37</fpage>&#x02013;<lpage>41</lpage>. <pub-id pub-id-type="doi">10.3233/NRE-182467</pub-id><pub-id pub-id-type="pmid">30741699</pub-id></citation></ref>
<ref id="B3">
<label>3.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Abu-Faraj</surname> <given-names>ZO</given-names></name> <name><surname>Harris</surname> <given-names>GF</given-names></name> <name><surname>Smith</surname> <given-names>PA</given-names></name> <name><surname>Hassani</surname> <given-names>S</given-names></name></person-group>. <article-title>Human gait and clinical movement analysis. In: Webster JG, editor</article-title>. <source>Wiley Encyclopedia of Electrical and Electronics Engineering</source>. <publisher-loc>New York, NY</publisher-loc>: <publisher-name>John Wiley &#x00026; Sons, Inc</publisher-name>. (<year>2015</year>). p. <fpage>1</fpage>&#x02013;<lpage>34</lpage>. <pub-id pub-id-type="doi">10.1002/047134608X.W6606.pub2</pub-id></citation></ref>
<ref id="B4">
<label>4.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Baker</surname> <given-names>R</given-names></name></person-group>. <article-title>Gait analysis methods in rehabilitation</article-title>. <source>J NeuroEng Rehabil</source>. (<year>2006</year>) <volume>3</volume>:<fpage>4</fpage>. <pub-id pub-id-type="doi">10.1186/1743-0003-3-4</pub-id><pub-id pub-id-type="pmid">16512912</pub-id></citation></ref>
<ref id="B5">
<label>5.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Baker</surname> <given-names>RW</given-names></name></person-group>. <source>Measuring Walking: A Handbook of Clinical Gait Analysis</source>. <edition>1st Edn</edition>. <publisher-loc>London</publisher-loc>: <publisher-name>Mac Keith Press</publisher-name> (<year>2013</year>).</citation></ref>
<ref id="B6">
<label>6.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>S</given-names></name> <name><surname>Lach</surname> <given-names>J</given-names></name> <name><surname>Lo</surname> <given-names>B</given-names></name> <name><surname>Yang</surname> <given-names>GZ</given-names></name></person-group>. <article-title>Toward pervasive gait analysis with wearable sensors: a systematic review</article-title>. <source>IEEE J Biomed Health Informatics</source>. (<year>2016</year>) <volume>20</volume>:<fpage>1521</fpage>&#x02013;<lpage>37</lpage>. <pub-id pub-id-type="doi">10.1109/JBHI.2016.2608720</pub-id><pub-id pub-id-type="pmid">28113185</pub-id></citation></ref>
<ref id="B7">
<label>7.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bridenbaugh</surname> <given-names>SA</given-names></name> <name><surname>Kressig</surname> <given-names>RW</given-names></name></person-group>. <article-title>Laboratory review: the role of gait analysis in seniors&#x00027; mobility and fall prevention</article-title>. <source>Gerontology</source>. (<year>2011</year>) <volume>57</volume>:<fpage>256</fpage>&#x02013;<lpage>64</lpage>. <pub-id pub-id-type="doi">10.1159/000322194</pub-id><pub-id pub-id-type="pmid">20980732</pub-id></citation></ref>
<ref id="B8">
<label>8.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Givon</surname> <given-names>U</given-names></name> <name><surname>Zeilig</surname> <given-names>G</given-names></name> <name><surname>Achiron</surname> <given-names>A</given-names></name></person-group>. <article-title>Gait analysis in multiple sclerosis: characterization of temporal&#x02013;spatial parameters using GAITRite functional ambulation system</article-title>. <source>Gait Posture</source>. (<year>2009</year>) <volume>29</volume>:<fpage>138</fpage>&#x02013;<lpage>42</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2008.07.011</pub-id><pub-id pub-id-type="pmid">18951800</pub-id></citation></ref>
<ref id="B9">
<label>9.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wren</surname> <given-names>TAL</given-names></name> <name><surname>Tucker</surname> <given-names>CA</given-names></name> <name><surname>Rethlefsen</surname> <given-names>SA</given-names></name> <name><surname>Gorton</surname> <given-names>GE</given-names></name> <name><surname>Ounpuu</surname> <given-names>S</given-names></name></person-group>. <article-title>clinical efficacy of instrumented gait analysis: systematic review 2020 update</article-title>. <source>Gait Posture</source>. (<year>2020</year>) <volume>80</volume>:<fpage>274</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2020.05.031</pub-id><pub-id pub-id-type="pmid">32563727</pub-id></citation></ref>
<ref id="B10">
<label>10.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Riis</surname> <given-names>J</given-names></name> <name><surname>Byrgesen</surname> <given-names>SM</given-names></name> <name><surname>Kragholm</surname> <given-names>KH</given-names></name> <name><surname>M&#x000F8;&#x000A8;rch</surname> <given-names>MM</given-names></name> <name><surname>Melgaard</surname> <given-names>D</given-names></name></person-group>. <article-title>Validity of the GAITRite walkway compared to functional balance tests for fall risk assessment in geriatric outpatients</article-title>. <source>Geriatrics</source>. (<year>2020</year>) <volume>5</volume>:<fpage>77</fpage>. <pub-id pub-id-type="doi">10.3390/geriatrics5040077</pub-id><pub-id pub-id-type="pmid">33080775</pub-id></citation></ref>
<ref id="B11">
<label>11.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Schmitz-H&#x000FC;bsch</surname> <given-names>T</given-names></name> <name><surname>Brandt</surname> <given-names>AU</given-names></name> <name><surname>Pfueller</surname> <given-names>C</given-names></name> <name><surname>Zange</surname> <given-names>L</given-names></name> <name><surname>Seidel</surname> <given-names>A</given-names></name> <name><surname>K&#x000FC;hn</surname> <given-names>AA</given-names></name> <etal/></person-group>. <article-title>Accuracy and repeatability of two methods of gait analysis&#x02013;GaitRiteTM und mobility labTM&#x02013;in subjects with cerebellar ataxia</article-title>. <source>Gait Posture</source>. (<year>2016</year>) <volume>48</volume>:<fpage>194</fpage>&#x02013;<lpage>201</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2016.05.014</pub-id><pub-id pub-id-type="pmid">27289221</pub-id></citation></ref>
<ref id="B12">
<label>12.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wearing</surname> <given-names>SC</given-names></name> <name><surname>Reed</surname> <given-names>LF</given-names></name> <name><surname>Urry</surname> <given-names>SR</given-names></name></person-group>. <article-title>Agreement between temporal and spatial gait parameters from an instrumented walkway and treadmill system at matched walking speed</article-title>. <source>Gait Posture</source>. (<year>2013</year>) <volume>38</volume>:<fpage>380</fpage>&#x02013;<lpage>4</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2012.12.017</pub-id><pub-id pub-id-type="pmid">23337733</pub-id></citation></ref>
<ref id="B13">
<label>13.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kotiadis</surname> <given-names>D</given-names></name> <name><surname>Hermens</surname> <given-names>HJ</given-names></name> <name><surname>Veltink</surname> <given-names>PH</given-names></name></person-group>. <article-title>Inertial gait phase detection for control of a drop foot stimulator: inertial sensing for gait phase detection</article-title>. <source>Med Eng Phys</source>. (<year>2010</year>) <volume>32</volume>:<fpage>287</fpage>&#x02013;<lpage>97</lpage>. <pub-id pub-id-type="doi">10.1016/j.medengphy.2009.10.014</pub-id><pub-id pub-id-type="pmid">20153237</pub-id></citation></ref>
<ref id="B14">
<label>14.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dvorani</surname> <given-names>A</given-names></name> <name><surname>Wiesener</surname> <given-names>C</given-names></name> <name><surname>Valtin</surname> <given-names>M</given-names></name> <name><surname>Voigt</surname> <given-names>H</given-names></name> <name><surname>K&#x000FC;hn</surname> <given-names>A</given-names></name> <name><surname>Wenger</surname> <given-names>N</given-names></name> <etal/></person-group>. <article-title>Mobil4Park: development of a sensor-stimulator network for the therapy of freezing of gait in Parkinson patients</article-title>. <source>Curr Direct Biomed Eng</source>. (<year>2020</year>) <volume>6</volume>:<fpage>1</fpage>&#x02013;<lpage>4</lpage>. <pub-id pub-id-type="doi">10.1515/cdbme-2020-2013</pub-id></citation></ref>
<ref id="B15">
<label>15.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mariani</surname> <given-names>B</given-names></name> <name><surname>Rouhani</surname> <given-names>H</given-names></name> <name><surname>Crevoisier</surname> <given-names>X</given-names></name> <name><surname>Aminian</surname> <given-names>K</given-names></name></person-group>. <article-title>Quantitative estimation of foot-flat and stance phase of gait using foot-worn inertial sensors</article-title>. <source>Gait Posture</source>. (<year>2013</year>) <volume>37</volume>:<fpage>229</fpage>&#x02013;<lpage>34</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2012.07.012</pub-id><pub-id pub-id-type="pmid">22877845</pub-id></citation></ref>
<ref id="B16">
<label>16.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Trojaniello</surname> <given-names>D</given-names></name> <name><surname>Cereatti</surname> <given-names>A</given-names></name> <name><surname>Pelosin</surname> <given-names>E</given-names></name> <name><surname>Avanzino</surname> <given-names>L</given-names></name> <name><surname>Mirelman</surname> <given-names>A</given-names></name> <name><surname>Hausdorff</surname> <given-names>JM</given-names></name> <etal/></person-group>. <article-title>Estimation of step-by-step spatio-temporal parameters of normal and impaired gait using shank-mounted magneto-inertial sensors: application to elderly, hemiparetic, parkinsonian and choreic gait</article-title>. <source>J NeuroEng Rehabil</source>. (<year>2014</year>) <volume>11</volume>:<fpage>152</fpage>. <pub-id pub-id-type="doi">10.1186/1743-0003-11-152</pub-id><pub-id pub-id-type="pmid">25388296</pub-id></citation></ref>
<ref id="B17">
<label>17.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rampp</surname> <given-names>A</given-names></name> <name><surname>Barth</surname> <given-names>J</given-names></name> <name><surname>Sch&#x000FC;lein</surname> <given-names>S</given-names></name> <name><surname>Ga&#x000DF;mann</surname> <given-names>KG</given-names></name> <name><surname>Klucken</surname> <given-names>J</given-names></name> <name><surname>Eskofier</surname> <given-names>BM</given-names></name></person-group>. <article-title>Inertial sensor-based stride parameter calculation from gait sequences in geriatric patients</article-title>. <source>IEEE Trans Biomed Eng</source>. (<year>2015</year>) <volume>62</volume>:<fpage>1089</fpage>&#x02013;<lpage>97</lpage>. <pub-id pub-id-type="doi">10.1109/TBME.2014.2368211</pub-id><pub-id pub-id-type="pmid">25389237</pub-id></citation></ref>
<ref id="B18">
<label>18.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>de Vries</surname> <given-names>WHK</given-names></name> <name><surname>Veeger</surname> <given-names>HEJ</given-names></name> <name><surname>Baten</surname> <given-names>CTM</given-names></name> <name><surname>van der Helm</surname> <given-names>FCT</given-names></name></person-group>. <article-title>Magnetic distortion in motion labs, implications for validating inertial magnetic sensors</article-title>. <source>Gait Posture</source>. (<year>2009</year>) <volume>29</volume>:<fpage>535</fpage>&#x02013;<lpage>41</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2008.12.004</pub-id><pub-id pub-id-type="pmid">19150239</pub-id></citation></ref>
<ref id="B19">
<label>19.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Seel</surname> <given-names>T</given-names></name> <name><surname>Landgraf</surname> <given-names>L</given-names></name> <name><surname>Cerme&#x000F1;o Escobar</surname> <given-names>V</given-names></name> <name><surname>Raisch</surname> <given-names>J</given-names></name> <name><surname>Schauer</surname> <given-names>T</given-names></name></person-group>. <article-title>Online gait phase detection with automatic adaption to gait velocity changes using accelerometers and gyroscopes</article-title>. <source>Biomed Eng Biomed Techik</source>. (<year>2014</year>) <volume>59</volume>:<fpage>795</fpage>&#x02013;<lpage>98</lpage>. <pub-id pub-id-type="doi">10.1515/bmt-2014-5011</pub-id><pub-id pub-id-type="pmid">25385896</pub-id></citation></ref>
<ref id="B20">
<label>20.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>M&#x000FC;ller</surname> <given-names>P</given-names></name> <name><surname>Seel</surname> <given-names>T</given-names></name> <name><surname>Schauer</surname> <given-names>T</given-names></name></person-group>. <article-title>Experimental evaluation of a novel inertial sensor based realtime gait phase detection algorithm</article-title>. In: <source>Proceedings of the Technically Assisted Rehabilitation Conference</source>. (<year>2015</year>).</citation></ref>
<ref id="B21">
<label>21.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Schicketmueller</surname> <given-names>A</given-names></name> <name><surname>Rose</surname> <given-names>G</given-names></name> <name><surname>Hofmann</surname> <given-names>M</given-names></name></person-group>. <article-title>Feasibility of a sensor-based gait event detection algorithm for triggering functional electrical stimulation during robot-assisted gait training</article-title>. <source>Sensors</source>. (<year>2019</year>) <volume>19</volume>:<fpage>4804</fpage>. <pub-id pub-id-type="doi">10.3390/s19214804</pub-id><pub-id pub-id-type="pmid">31694188</pub-id></citation></ref>
<ref id="B22">
<label>22.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sabatini</surname> <given-names>AM</given-names></name> <name><surname>Martelloni</surname> <given-names>C</given-names></name> <name><surname>Scapellato</surname> <given-names>S</given-names></name> <name><surname>Cavallo</surname> <given-names>F</given-names></name></person-group>. <article-title>Assessment of walking features from foot inertial sensing</article-title>. <source>IEEE Trans Biomed Eng</source>. (<year>2005</year>) <volume>52</volume>:<fpage>486</fpage>&#x02013;<lpage>94</lpage>. <pub-id pub-id-type="doi">10.1109/TBME.2004.840727</pub-id><pub-id pub-id-type="pmid">15759579</pub-id></citation></ref>
<ref id="B23">
<label>23.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hannink</surname> <given-names>J</given-names></name> <name><surname>Kautz</surname> <given-names>T</given-names></name> <name><surname>Pasluosta</surname> <given-names>CF</given-names></name> <name><surname>Ga&#x000DF;mann</surname> <given-names>KG</given-names></name> <name><surname>Klucken</surname> <given-names>J</given-names></name> <name><surname>Eskofier</surname> <given-names>BM</given-names></name></person-group>. <article-title>Sensor-based gait parameter extraction with deep convolutional neural networks</article-title>. <source>IEEE J Biomed Health Informatics</source>. (<year>2017</year>) <volume>21</volume>:<fpage>85</fpage>&#x02013;<lpage>93</lpage>. <pub-id pub-id-type="doi">10.1109/JBHI.2016.2636456</pub-id><pub-id pub-id-type="pmid">28103196</pub-id></citation></ref>
<ref id="B24">
<label>24.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Donath</surname> <given-names>L</given-names></name> <name><surname>Faude</surname> <given-names>O</given-names></name> <name><surname>Lichtenstein</surname> <given-names>E</given-names></name> <name><surname>N&#x000FC;esch</surname> <given-names>C</given-names></name> <name><surname>M&#x000FC;ndermann</surname> <given-names>A</given-names></name></person-group>. <article-title>Validity and reliability of a portable gait analysis system for measuring spatiotemporal gait characteristics: comparison to an instrumented treadmill</article-title>. <source>J NeuroEng Rehabil</source>. (<year>2016</year>) <volume>13</volume>:<fpage>6</fpage>. <pub-id pub-id-type="doi">10.1186/s12984-016-0115-z</pub-id><pub-id pub-id-type="pmid">26790409</pub-id></citation></ref>
<ref id="B25">
<label>25.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mannini</surname> <given-names>A</given-names></name> <name><surname>Genovese</surname> <given-names>V</given-names></name> <name><surname>Maria Sabatini</surname> <given-names>A</given-names></name></person-group>. <article-title>Online decoding of hidden Markov models for gait event detection using foot-mounted gyroscopes</article-title>. <source>IEEE J Biomed Health Informatics</source>. (<year>2014</year>) <volume>18</volume>:<fpage>1122</fpage>&#x02013;<lpage>30</lpage>. <pub-id pub-id-type="doi">10.1109/JBHI.2013.2293887</pub-id><pub-id pub-id-type="pmid">25014927</pub-id></citation></ref>
<ref id="B26">
<label>26.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mannini</surname> <given-names>A</given-names></name> <name><surname>Sabatini</surname> <given-names>AM</given-names></name></person-group>. <article-title>Gait phase detection and discrimination between walking&#x02013;jogging activities using hidden Markov models applied to foot motion data from a gyroscope</article-title>. <source>Gait Posture</source>. (<year>2012</year>) <volume>36</volume>:<fpage>657</fpage>&#x02013;<lpage>61</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2012.06.017</pub-id><pub-id pub-id-type="pmid">22796244</pub-id></citation></ref>
<ref id="B27">
<label>27.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Washabaugh</surname> <given-names>EP</given-names></name> <name><surname>Kalyanaraman</surname> <given-names>T</given-names></name> <name><surname>Adamczyk</surname> <given-names>PG</given-names></name> <name><surname>Claflin</surname> <given-names>ES</given-names></name> <name><surname>Krishnan</surname> <given-names>C</given-names></name></person-group>. <article-title>Validity and repeatability of inertial measurement units for measuring gait parameters</article-title>. <source>Gait Posture</source>. (<year>2017</year>) <volume>55</volume>:<fpage>87</fpage>&#x02013;<lpage>93</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2017.04.013</pub-id><pub-id pub-id-type="pmid">28433867</pub-id></citation></ref>
<ref id="B28">
<label>28.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mariani</surname> <given-names>B</given-names></name> <name><surname>Hoskovec</surname> <given-names>C</given-names></name> <name><surname>Rochat</surname> <given-names>S</given-names></name> <name><surname>B&#x000FC;la</surname> <given-names>C</given-names></name> <name><surname>Penders</surname> <given-names>J</given-names></name> <name><surname>Aminian</surname> <given-names>K</given-names></name></person-group>. <article-title>3D gait assessment in young and elderly subjects using foot-worn inertial sensors</article-title>. <source>J Biomech</source>. (<year>2010</year>) <volume>43</volume>:<fpage>2999</fpage>&#x02013;<lpage>3006</lpage>. <pub-id pub-id-type="doi">10.1016/j.jbiomech.2010.07.003</pub-id><pub-id pub-id-type="pmid">20656291</pub-id></citation></ref>
<ref id="B29">
<label>29.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lefeber</surname> <given-names>N</given-names></name> <name><surname>Degelaen</surname> <given-names>M</given-names></name> <name><surname>Truyers</surname> <given-names>C</given-names></name> <name><surname>Safin</surname> <given-names>I</given-names></name> <name><surname>Beckw&#x000E9;e</surname> <given-names>D</given-names></name></person-group>. <article-title>Validity and reproducibility of inertial physilog sensors for spatiotemporal gait analysis in patients with stroke</article-title>. <source>IEEE Trans Biomed Eng</source>. (<year>2019</year>) <volume>27</volume>:<fpage>1865</fpage>&#x02013;<lpage>74</lpage>. <pub-id pub-id-type="doi">10.1109/TNSRE.2019.2930751</pub-id><pub-id pub-id-type="pmid">31352347</pub-id></citation></ref>
<ref id="B30">
<label>30.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jasiewicz</surname> <given-names>JM</given-names></name> <name><surname>Allum</surname> <given-names>JHJ</given-names></name> <name><surname>Middleton</surname> <given-names>JW</given-names></name> <name><surname>Barriskill</surname> <given-names>A</given-names></name> <name><surname>Condie</surname> <given-names>P</given-names></name> <name><surname>Purcell</surname> <given-names>B</given-names></name> <etal/></person-group>. <article-title>Gait event detection using linear accelerometers or angular velocity transducers in able-bodied and spinal-cord injured individuals</article-title>. <source>Gait Posture</source>. (<year>2006</year>) <volume>24</volume>:<fpage>502</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2005.12.017</pub-id><pub-id pub-id-type="pmid">16500102</pub-id></citation></ref>
<ref id="B31">
<label>31.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mariani</surname> <given-names>B</given-names></name> <name><surname>Jim&#x000E9;nez</surname> <given-names>MC</given-names></name> <name><surname>Vingerhoets</surname> <given-names>FJG</given-names></name> <name><surname>Aminian</surname> <given-names>K</given-names></name></person-group>. <article-title>On-shoe wearable sensors for gait and turning assessment of patients with Parkinson&#x00027;s disease</article-title>. <source>IEEE Trans Biomed Eng</source>. (<year>2013</year>) <volume>60</volume>:<fpage>155</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1109/TBME.2012.2227317</pub-id><pub-id pub-id-type="pmid">23268531</pub-id></citation></ref>
<ref id="B32">
<label>32.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bertoli</surname> <given-names>M</given-names></name> <name><surname>Cereatti</surname> <given-names>A</given-names></name> <name><surname>Trojaniello</surname> <given-names>D</given-names></name> <name><surname>Avanzino</surname> <given-names>L</given-names></name> <name><surname>Pelosin</surname> <given-names>E</given-names></name> <name><surname>Del Din</surname> <given-names>S</given-names></name> <etal/></person-group>. <article-title>Estimation of spatio-temporal parameters of gait from magneto-inertial measurement units: multicenter validation among Parkinson, mildly cognitively impaired and healthy older adults</article-title>. <source>BioMedical Eng OnLine</source>. (<year>2018</year>) <volume>17</volume>:<fpage>1</fpage>&#x02013;<lpage>14</lpage>. <pub-id pub-id-type="doi">10.1186/s12938-018-0488-2</pub-id><pub-id pub-id-type="pmid">29739456</pub-id></citation></ref>
<ref id="B33">
<label>33.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chia Bejarano</surname> <given-names>N</given-names></name> <name><surname>Ambrosini</surname> <given-names>E</given-names></name> <name><surname>Pedrocchi</surname> <given-names>A</given-names></name> <name><surname>Ferrigno</surname> <given-names>G</given-names></name> <name><surname>Monticone</surname> <given-names>M</given-names></name> <name><surname>Ferrante</surname> <given-names>S</given-names></name></person-group>. <article-title>A novel adaptive, real-time algorithm to detect gait events from wearable sensors</article-title>. <source>IEEE Trans Neural Syst Rehabil Eng</source>. (<year>2015</year>) <volume>23</volume>:<fpage>413</fpage>&#x02013;<lpage>22</lpage>. <pub-id pub-id-type="doi">10.1109/TNSRE.2014.2337914</pub-id><pub-id pub-id-type="pmid">25069118</pub-id></citation></ref>
<ref id="B34">
<label>34.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sabatini</surname> <given-names>AM</given-names></name> <name><surname>Ligorio</surname> <given-names>G</given-names></name> <name><surname>Mannini</surname> <given-names>A</given-names></name></person-group>. <article-title>Fourier-based integration of quasi-periodic gait accelerations for drift-free displacement estimation using inertial sensors</article-title>. <source>BioMed Eng OnLine</source>. (<year>2015</year>) <volume>14</volume>:<fpage>106</fpage>. <pub-id pub-id-type="doi">10.1186/s12938-015-0103-8</pub-id><pub-id pub-id-type="pmid">26597696</pub-id></citation></ref>
<ref id="B35">
<label>35.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mannini</surname> <given-names>A</given-names></name> <name><surname>Trojaniello</surname> <given-names>D</given-names></name> <name><surname>Della Croce</surname> <given-names>U</given-names></name> <name><surname>Sabatini</surname> <given-names>AM</given-names></name></person-group>. <article-title>Hidden Markov model-based strategy for gait segmentation using inertial sensors: application to elderly, hemiparetic patients and Huntington&#x00027;s disease patients</article-title>. In: <source>2015 37th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC)</source>. <publisher-loc>Milan</publisher-loc> (<year>2015</year>). p. <fpage>5179</fpage>&#x02013;<lpage>82</lpage>. <pub-id pub-id-type="doi">10.1109/EMBC.2015.7319558</pub-id><pub-id pub-id-type="pmid">26737458</pub-id></citation></ref>
<ref id="B36">
<label>36.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mar&#x000ED;n</surname> <given-names>J</given-names></name> <name><surname>Blanco</surname> <given-names>T</given-names></name> <name><surname>de la Torre</surname> <given-names>J</given-names></name> <name><surname>Mar&#x000ED;n</surname> <given-names>JJ</given-names></name></person-group>. <article-title>Gait analysis in a box: a system based on magnetometer-free IMUs or clusters of optical markers with automatic event detection</article-title>. <source>Sensors</source>. (<year>2020</year>) <volume>20</volume>:<fpage>3338</fpage>. <pub-id pub-id-type="doi">10.3390/s20123338</pub-id><pub-id pub-id-type="pmid">32545515</pub-id></citation></ref>
<ref id="B37">
<label>37.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Teufl</surname> <given-names>W</given-names></name> <name><surname>Lorenz</surname> <given-names>M</given-names></name> <name><surname>Miezal</surname> <given-names>M</given-names></name> <name><surname>Taetz</surname> <given-names>B</given-names></name> <name><surname>Fr&#x000F6;hlich</surname> <given-names>M</given-names></name> <name><surname>Bleser</surname> <given-names>G</given-names></name></person-group>. <article-title>Towards inertial sensor based mobile gait analysis: event-detection and spatio-temporal parameters</article-title>. <source>Sensors</source>. (<year>2019</year>) <volume>19</volume>:<fpage>38</fpage>. <pub-id pub-id-type="doi">10.3390/s19010038</pub-id><pub-id pub-id-type="pmid">30583508</pub-id></citation></ref>
<ref id="B38">
<label>38.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sejdi&#x00107;</surname> <given-names>E</given-names></name> <name><surname>Lowry</surname> <given-names>KA</given-names></name> <name><surname>Bellanca</surname> <given-names>J</given-names></name> <name><surname>Perera</surname> <given-names>S</given-names></name> <name><surname>Redfern</surname> <given-names>MS</given-names></name> <name><surname>Brach</surname> <given-names>JS</given-names></name></person-group>. <article-title>Extraction of stride events from gait accelerometry during treadmill walking</article-title>. <source>IEEE J Transl Eng Health Med</source>. (<year>2016</year>) <volume>4</volume>:<fpage>1</fpage>&#x02013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1109/JTEHM.2015.2504961</pub-id><pub-id pub-id-type="pmid">27088063</pub-id></citation></ref>
<ref id="B39">
<label>39.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hung</surname> <given-names>TN</given-names></name> <name><surname>Suh</surname> <given-names>YS</given-names></name></person-group>. <article-title>Inertial sensor-based two feet motion tracking for gait analysis</article-title>. <source>Sensors</source>. (<year>2013</year>) <volume>13</volume>:<fpage>5614</fpage>&#x02013;<lpage>29</lpage>. <pub-id pub-id-type="doi">10.3390/s130505614</pub-id><pub-id pub-id-type="pmid">23628759</pub-id></citation></ref>
<ref id="B40">
<label>40.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Picerno</surname> <given-names>P</given-names></name> <name><surname>Cereatti</surname> <given-names>A</given-names></name> <name><surname>Cappozzo</surname> <given-names>A</given-names></name></person-group>. <article-title>Joint kinematics estimate using wearable inertial and magnetic sensing modules</article-title>. <source>Gait Posture</source>. (<year>2008</year>) <volume>28</volume>:<fpage>588</fpage>&#x02013;<lpage>95</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2008.04.003</pub-id><pub-id pub-id-type="pmid">18502130</pub-id></citation></ref>
<ref id="B41">
<label>41.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Seel</surname> <given-names>T</given-names></name> <name><surname>Raisch</surname> <given-names>J</given-names></name> <name><surname>Schauer</surname> <given-names>T</given-names></name></person-group>. <article-title>IMU-based joint angle measurement for gait analysis</article-title>. <source>Sensors</source>. (<year>2014</year>) <volume>14</volume>:<fpage>6891</fpage>&#x02013;<lpage>909</lpage>. <pub-id pub-id-type="doi">10.3390/s140406891</pub-id><pub-id pub-id-type="pmid">24743160</pub-id></citation></ref>
<ref id="B42">
<label>42.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Laidig</surname> <given-names>D</given-names></name> <name><surname>M&#x000FC;ller</surname> <given-names>P</given-names></name> <name><surname>Seel</surname> <given-names>T</given-names></name></person-group>. <article-title>Automatic anatomical calibration for IMU-based elbow angle measurement in disturbed magnetic fields</article-title>. <source>Curr Direct Biomed Eng</source>. (<year>2017</year>) <volume>3</volume>:<fpage>167</fpage>&#x02013;<lpage>70</lpage>. <pub-id pub-id-type="doi">10.1515/cdbme-2017-0035</pub-id></citation></ref>
<ref id="B43">
<label>43.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Graurock</surname> <given-names>D</given-names></name> <name><surname>Schauer</surname> <given-names>T</given-names></name> <name><surname>Seel</surname> <given-names>T</given-names></name></person-group>. <article-title>Automatic pairing of inertial sensors to lower limb segments&#x02013;a plug-and-play approach</article-title>. <source>Curr Direct Biomed Eng</source>. (<year>2016</year>) <volume>2</volume>:<fpage>715</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1515/cdbme-2016-0155</pub-id></citation></ref>
<ref id="B44">
<label>44.</label>
<citation citation-type="book"><person-group person-group-type="editor"><name><surname>Perry</surname> <given-names>J</given-names></name> <name><surname>Burnfield</surname> <given-names>JM</given-names></name></person-group> editors. <source>Gait Analysis: Normal and Pathological Function</source>. <edition>2nd Edn</edition>. <publisher-loc>Thorofare, NJ</publisher-loc>: <publisher-name>SLACK</publisher-name> (<year>2010</year>).</citation></ref>
<ref id="B45">
<label>45.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Caldas</surname> <given-names>R</given-names></name> <name><surname>Mundt</surname> <given-names>M</given-names></name> <name><surname>Potthast</surname> <given-names>W</given-names></name> <name><surname>Buarque de Lima Neto</surname> <given-names>F</given-names></name> <name><surname>Markert</surname> <given-names>B</given-names></name></person-group>. <article-title>A systematic review of gait analysis methods based on inertial sensors and adaptive algorithms</article-title>. <source>Gait Posture</source>. (<year>2017</year>) <volume>57</volume>:<fpage>204</fpage>&#x02013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2017.06.019</pub-id><pub-id pub-id-type="pmid">28666178</pub-id></citation></ref>
<ref id="B46">
<label>46.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S</given-names></name> <name><surname>Li</surname> <given-names>Q</given-names></name></person-group>. <article-title>Inertial sensor-based methods in walking speed estimation: a systematic review</article-title>. <source>Sensors</source>. (<year>2012</year>) <volume>12</volume>:<fpage>6102</fpage>&#x02013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.3390/s120506102</pub-id><pub-id pub-id-type="pmid">22778632</pub-id></citation></ref>
<ref id="B47">
<label>47.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mariani</surname> <given-names>B</given-names></name> <name><surname>Rochat</surname> <given-names>S</given-names></name> <name><surname>B&#x000FC;la</surname> <given-names>CJ</given-names></name> <name><surname>Aminian</surname> <given-names>K</given-names></name></person-group>. <article-title>Heel and toe clearance estimation for gait analysis using wireless inertial sensors</article-title>. <source>IEEE Trans Biomed Eng</source>. (<year>2012</year>) <volume>59</volume>:<fpage>3162</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1109/TBME.2012.2216263</pub-id><pub-id pub-id-type="pmid">22955865</pub-id></citation></ref>
<ref id="B48">
<label>48.</label>
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Kuipers</surname> <given-names>JB</given-names></name></person-group>. <article-title>Quaternions and rotation sequences</article-title>. In: <source>Proceedings of the International Conference on Geometry, Integrability and Quantization</source>. <publisher-loc>Varna</publisher-loc>: <publisher-name>Coral Press Scientific Publishing</publisher-name> (<year>2000</year>). p. <fpage>127</fpage>&#x02013;<lpage>43</lpage>.</citation></ref>
<ref id="B49">
<label>49.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ridler</surname> <given-names>TW</given-names></name> <name><surname>Calvard</surname> <given-names>S</given-names></name></person-group>. <article-title>Picture thresholding using an iterative selection method</article-title>. <source>IEEE Trans Syst Man Cybern</source>. (<year>1978</year>) <volume>8</volume>:<fpage>630</fpage>&#x02013;<lpage>2</lpage>. <pub-id pub-id-type="doi">10.1109/TSMC.1978.4310039</pub-id></citation></ref>
<ref id="B50">
<label>50.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Giavarina</surname> <given-names>D</given-names></name></person-group>. <article-title>Understanding bland altman analysis</article-title>. <source>Biochem Med</source>. (<year>2015</year>) <volume>25</volume>:<fpage>141</fpage>&#x02013;<lpage>51</lpage>. <pub-id pub-id-type="doi">10.11613/BM.2015.015</pub-id><pub-id pub-id-type="pmid">26110027</pub-id></citation></ref>
<ref id="B51">
<label>51.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chan</surname> <given-names>YH</given-names></name></person-group>. <article-title>Biostatistics 104: correlational analysis</article-title>. <source>Singapore Med J</source>. (<year>2003</year>) <volume>44</volume>:<fpage>614</fpage>&#x02013;<lpage>9</lpage>.</citation></ref>
<ref id="B52">
<label>52.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Busch</surname> <given-names>TdA</given-names></name> <name><surname>Duarte</surname> <given-names>YA</given-names></name> <name><surname>Pires Nunes</surname> <given-names>D</given-names></name> <name><surname>Lebrao</surname> <given-names>ML</given-names></name> <name><surname>Satya Naslavsky</surname> <given-names>M</given-names></name> <name><surname>dos Santos Rodrigues</surname> <given-names>A</given-names></name> <etal/></person-group>. <article-title>Factors associated with lower gait speed among the elderly living in a developing country: a cross-sectional population-based study</article-title>. <source>BMC Geriatr</source>. (<year>2015</year>) <volume>15</volume>:<fpage>35</fpage>. <pub-id pub-id-type="doi">10.1186/s12877-015-0031-2</pub-id><pub-id pub-id-type="pmid">25880124</pub-id></citation></ref>
<ref id="B53">
<label>53.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dommershuijsen</surname> <given-names>LJ</given-names></name> <name><surname>Isik</surname> <given-names>BM</given-names></name> <name><surname>Darweesh</surname> <given-names>SKL</given-names></name> <name><surname>van der Geest</surname> <given-names>JN</given-names></name> <name><surname>Ikram</surname> <given-names>MK</given-names></name> <name><surname>Ikram</surname> <given-names>MA</given-names></name></person-group>. <article-title>Unraveling the association between gait and mortality&#x02013;one step at a time</article-title>. <source>J Gerontol</source>. (<year>2020</year>) <volume>75</volume>:<fpage>1184</fpage>&#x02013;<lpage>90</lpage>. <pub-id pub-id-type="doi">10.1093/gerona/glz282</pub-id><pub-id pub-id-type="pmid">31807749</pub-id></citation></ref>
<ref id="B54">
<label>54.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>White</surname> <given-names>DK</given-names></name> <name><surname>Neogi</surname> <given-names>T</given-names></name> <name><surname>Nevitt</surname> <given-names>MC</given-names></name> <name><surname>Peloquin</surname> <given-names>CE</given-names></name> <name><surname>Zhu</surname> <given-names>Y</given-names></name> <name><surname>Boudreau</surname> <given-names>RM</given-names></name> <etal/></person-group>. <article-title>Trajectories of gait speed predict mortality in well-functioning older adults: the health, aging and body composition study</article-title>. <source>J Gerontol Ser A</source>. (<year>2013</year>) <volume>68</volume>:<fpage>456</fpage>&#x02013;<lpage>64</lpage>. <pub-id pub-id-type="doi">10.1093/gerona/gls197</pub-id><pub-id pub-id-type="pmid">23051974</pub-id></citation></ref>
<ref id="B55">
<label>55.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jerome</surname> <given-names>GJ</given-names></name> <name><surname>Ko</surname> <given-names>Su</given-names></name> <name><surname>Kauffman</surname> <given-names>D</given-names></name> <name><surname>Studenski</surname> <given-names>SA</given-names></name> <name><surname>Ferrucci</surname> <given-names>L</given-names></name> <name><surname>Simonsick</surname> <given-names>EM</given-names></name></person-group>. <article-title>Gait characteristics associated with walking speed decline in older adults: results from the Baltimore longitudinal study of aging</article-title>. <source>Arch Gerontol Geriatr</source>. (<year>2015</year>) <volume>60</volume>:<fpage>239</fpage>&#x02013;<lpage>43</lpage>. <pub-id pub-id-type="doi">10.1016/j.archger.2015.01.007</pub-id><pub-id pub-id-type="pmid">25614178</pub-id></citation></ref>
<ref id="B56">
<label>56.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Abellan Van Kan</surname> <given-names>G</given-names></name> <name><surname>Rolland</surname> <given-names>Y</given-names></name> <name><surname>Andrieu</surname> <given-names>S</given-names></name> <name><surname>Bauer</surname> <given-names>J</given-names></name> <name><surname>Beauchet</surname> <given-names>O</given-names></name> <name><surname>Bonnefoy</surname> <given-names>M</given-names></name> <etal/></person-group>. <article-title>Gait speed at usual pace as a predictor of adverse outcomes in community-dwelling older people an International Academy on Nutrition and Aging (IANA) task force</article-title>. <source>J Nutr Health Aging</source>. (<year>2009</year>) <volume>13</volume>:<fpage>881</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1007/s12603-009-0246-z</pub-id><pub-id pub-id-type="pmid">19924348</pub-id></citation></ref>
<ref id="B57">
<label>57.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Studenski</surname> <given-names>S</given-names></name> <name><surname>Perera</surname> <given-names>S</given-names></name> <name><surname>Patel</surname> <given-names>K</given-names></name> <name><surname>Rosano</surname> <given-names>C</given-names></name> <name><surname>Faulkner</surname> <given-names>K</given-names></name> <name><surname>Inzitari</surname> <given-names>M</given-names></name> <etal/></person-group>. <article-title>Gait speed and survival in older adults</article-title>. <source>JAMA</source>. (<year>2011</year>) <volume>305</volume>:<fpage>50</fpage>&#x02013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1001/jama.2010.1923</pub-id><pub-id pub-id-type="pmid">33237587</pub-id></citation></ref>
<ref id="B58">
<label>58.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Studenski</surname> <given-names>S</given-names></name> <name><surname>Perera</surname> <given-names>S</given-names></name> <name><surname>Wallace</surname> <given-names>D</given-names></name> <name><surname>Chandler</surname> <given-names>JM</given-names></name> <name><surname>Duncan</surname> <given-names>PW</given-names></name> <name><surname>Rooney</surname> <given-names>E</given-names></name> <etal/></person-group>. <article-title>Physical performance measures in the clinical setting</article-title>. <source>J Am Geriatr Soc</source>. (<year>2003</year>) <volume>51</volume>:<fpage>314</fpage>&#x02013;<lpage>22</lpage>. <pub-id pub-id-type="doi">10.1046/j.1532-5415.2003.51104.x</pub-id><pub-id pub-id-type="pmid">12588574</pub-id></citation></ref>
<ref id="B59">
<label>59.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Smith</surname> <given-names>AJJ</given-names></name> <name><surname>Lemaire</surname> <given-names>ED</given-names></name></person-group>. <article-title>Temporal-spatial gait parameter models of very slow walking</article-title>. <source>Gait Posture</source>. (<year>2018</year>) <volume>61</volume>:<fpage>125</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2018.01.003</pub-id><pub-id pub-id-type="pmid">29331720</pub-id></citation></ref>
<ref id="B60">
<label>60.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Verghese</surname> <given-names>J</given-names></name> <name><surname>Holtzer</surname> <given-names>R</given-names></name> <name><surname>Lipton</surname> <given-names>RB</given-names></name> <name><surname>Wang</surname> <given-names>C</given-names></name></person-group>. <article-title>Quantitative gait markers and incident fall risk in older adults</article-title>. <source>J Gerontol Ser A</source>. (<year>2009</year>) <volume>64A</volume>:<fpage>896</fpage>&#x02013;<lpage>901</lpage>. <pub-id pub-id-type="doi">10.1093/gerona/glp033</pub-id><pub-id pub-id-type="pmid">19349593</pub-id></citation></ref>
<ref id="B61">
<label>61.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Maki</surname> <given-names>BE</given-names></name></person-group>. <article-title>Gait changes in older adults: predictors of falls or indicators of fear?</article-title> <source>J Am Geriatr Soc</source>. (<year>1997</year>) <volume>45</volume>:<fpage>313</fpage>&#x02013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1111/j.1532-5415.1997.tb00946.x</pub-id><pub-id pub-id-type="pmid">9063277</pub-id></citation></ref>
<ref id="B62">
<label>62.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bohannon</surname> <given-names>RW</given-names></name> <name><surname>Glenney</surname> <given-names>SS</given-names></name></person-group>. <article-title>Minimal clinically important difference for change in comfortable gait speed of adults with pathology: a systematic review</article-title>. <source>J Eval Clin Pract</source>. (<year>2014</year>) <volume>20</volume>:<fpage>295</fpage>&#x02013;<lpage>300</lpage>. <pub-id pub-id-type="doi">10.1111/jep.12158</pub-id><pub-id pub-id-type="pmid">24798823</pub-id></citation></ref>
<ref id="B63">
<label>63.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tilson</surname> <given-names>JK</given-names></name> <name><surname>Sullivan</surname> <given-names>KJ</given-names></name> <name><surname>Cen</surname> <given-names>SY</given-names></name> <name><surname>Rose</surname> <given-names>DK</given-names></name> <name><surname>Koradia</surname> <given-names>CH</given-names></name> <name><surname>Azen</surname> <given-names>SP</given-names></name> <etal/></person-group>. <article-title>Meaningful gait speed improvement during the first 60 days poststroke: minimal clinically important difference</article-title>. <source>Phys Ther</source>. (<year>2010</year>) <volume>90</volume>:<fpage>196</fpage>&#x02013;<lpage>208</lpage>. <pub-id pub-id-type="doi">10.2522/ptj.20090079</pub-id><pub-id pub-id-type="pmid">20022995</pub-id></citation></ref>
<ref id="B64">
<label>64.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Palombaro</surname> <given-names>KM</given-names></name> <name><surname>Craik</surname> <given-names>RL</given-names></name> <name><surname>Mangione</surname> <given-names>KK</given-names></name> <name><surname>Tomlinson</surname> <given-names>JD</given-names></name></person-group>. <article-title>Determining meaningful changes in gait speed after hip fracture</article-title>. <source>Phys Ther</source>. (<year>2006</year>) <volume>86</volume>:<fpage>809</fpage>&#x02013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1093/ptj/86.6.809</pub-id><pub-id pub-id-type="pmid">16737406</pub-id></citation></ref>
<ref id="B65">
<label>65.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Brown</surname> <given-names>JC</given-names></name> <name><surname>Harhay</surname> <given-names>MO</given-names></name> <name><surname>Harhay</surname> <given-names>MN</given-names></name></person-group>. <article-title>Walking cadence and mortality among community-dwelling older adults</article-title>. <source>J Gen Intern Med</source>. (<year>2014</year>) <volume>29</volume>:<fpage>1263</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1007/s11606-014-2926-6</pub-id><pub-id pub-id-type="pmid">24934147</pub-id></citation></ref>
<ref id="B66">
<label>66.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hannink</surname> <given-names>J</given-names></name> <name><surname>Kautz</surname> <given-names>T</given-names></name> <name><surname>Pasluosta</surname> <given-names>CF</given-names></name> <name><surname>Barth</surname> <given-names>J</given-names></name> <name><surname>Sch&#x000FC;lein</surname> <given-names>S</given-names></name> <name><surname>Ga&#x000DF;mann</surname> <given-names>KG</given-names></name> <etal/></person-group>. <article-title>Mobile stride length estimation with deep convolutional neural networks</article-title>. <source>IEEE J Biomed Health Informatics</source>. (<year>2018</year>) <volume>22</volume>:<fpage>354</fpage>&#x02013;<lpage>62</lpage>. <pub-id pub-id-type="doi">10.1109/JBHI.2017.2679486</pub-id><pub-id pub-id-type="pmid">28333648</pub-id></citation></ref>
<ref id="B67">
<label>67.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>N&#x000FC;esch</surname> <given-names>C</given-names></name> <name><surname>Overberg</surname> <given-names>JA</given-names></name> <name><surname>Schwameder</surname> <given-names>H</given-names></name> <name><surname>Pagenstert</surname> <given-names>G</given-names></name> <name><surname>M&#x000FC;ndermann</surname> <given-names>A</given-names></name></person-group>. <article-title>Repeatability of spatiotemporal, plantar pressure and force parameters during treadmill walking and running</article-title>. <source>Gait Posture</source>. (<year>2018</year>) <volume>62</volume>:<fpage>117</fpage>&#x02013;<lpage>23</lpage>. <pub-id pub-id-type="doi">10.1016/j.gaitpost.2018.03.017</pub-id><pub-id pub-id-type="pmid">29547791</pub-id></citation></ref>
<ref id="B68">
<label>68.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>SJ</given-names></name> <name><surname>Hidler</surname> <given-names>J</given-names></name></person-group>. <article-title>Biomechanics of overground vs. treadmill walking in healthy individuals</article-title>. <source>J Appl Physiol</source>. (<year>2008</year>) <volume>104</volume>:<fpage>747</fpage>&#x02013;<lpage>55</lpage>. <pub-id pub-id-type="doi">10.1152/japplphysiol.01380.2006</pub-id><pub-id pub-id-type="pmid">18048582</pub-id></citation></ref>
<ref id="B69">
<label>69.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Watt</surname> <given-names>JR</given-names></name> <name><surname>Franz</surname> <given-names>JR</given-names></name> <name><surname>Jackson</surname> <given-names>K</given-names></name> <name><surname>Dicharry</surname> <given-names>J</given-names></name> <name><surname>Riley</surname> <given-names>PO</given-names></name> <name><surname>Kerrigan</surname> <given-names>DC</given-names></name></person-group>. <article-title>A Three-dimensional kinematic and kinetic comparison of overground and treadmill walking in healthy elderly subjects</article-title>. <source>Clin Biomech</source>. (<year>2010</year>) <volume>25</volume>:<fpage>444</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/j.clinbiomech.2009.09.002</pub-id><pub-id pub-id-type="pmid">20347194</pub-id></citation></ref>
<ref id="B70">
<label>70.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Meyer</surname> <given-names>C</given-names></name> <name><surname>Killeen</surname> <given-names>T</given-names></name> <name><surname>Easthope</surname> <given-names>CS</given-names></name> <name><surname>Curt</surname> <given-names>A</given-names></name> <name><surname>Bolliger</surname> <given-names>M</given-names></name> <name><surname>Linnebank</surname> <given-names>M</given-names></name> <etal/></person-group>. <article-title>Familiarization with treadmill walking: how much is enough?</article-title> <source>Sci Rep</source>. (<year>2019</year>) <volume>9</volume>:<fpage>5232</fpage>. <pub-id pub-id-type="doi">10.1038/s41598-019-41721-0</pub-id><pub-id pub-id-type="pmid">30914746</pub-id></citation></ref>
<ref id="B71">
<label>71.</label>
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kalron</surname> <given-names>A</given-names></name> <name><surname>Dvir</surname> <given-names>Z</given-names></name> <name><surname>Frid</surname> <given-names>L</given-names></name> <name><surname>Achiron</surname> <given-names>A</given-names></name></person-group>. <article-title>Quantifying gait impairment using an instrumented treadmill in people with multiple sclerosis</article-title>. <source>ISRN Neurol</source>. (<year>2013</year>) <volume>2013</volume>:<fpage>e867575</fpage>. <pub-id pub-id-type="doi">10.1155/2013/867575</pub-id><pub-id pub-id-type="pmid">23878746</pub-id></citation></ref>
</ref-list> 
</back>
</article>