<?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. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2022.1064313</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A gait phase prediction model trained on benchmark datasets for evaluating a controller for prosthetic legs</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Kim</surname> <given-names>Minjae</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1208134/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Hargrove</surname> <given-names>Levi J.</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/143416/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Department of Physical Medicine and Rehabilitation, Northwestern University</institution>, <addr-line>Chicago, IL</addr-line>, <country>United States</country></aff>
<aff id="aff2"><sup>2</sup><institution>Regenstein Center for Bionic Medicine, Shirley Ryan AbilityLab</institution>, <addr-line>Chicago, IL</addr-line>, <country>United States</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Hyung-Soon Park, Korea Advanced Institute of Science and Technology (KAIST), South Korea</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Farong Gao, Hangzhou Dianzi University, China; Stefano Tortora, University of Padua, Italy</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Levi J. Hargrove &#x02709; <email>l-hargrove&#x00040;northwestern.edu</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>05</day>
<month>01</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>16</volume>
<elocation-id>1064313</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>10</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>30</day>
<month>11</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2023 Kim and Hargrove.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Kim and Hargrove</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>Powered lower-limb assistive devices, such as prostheses and exoskeletons, are a promising option for helping mobility-impaired individuals regain functional gait. Gait phase prediction plays an important role in controlling these devices and evaluating whether the device generates a gait similar to that of individuals with intact limbs. This study proposes a gait phase prediction method based on a deep neural network (DNN). The long short-term memory (LSTM)-based model predicts a continuous gait phase from the 250 ms history of the vertical load, thigh angle, knee angle, and ankle angle, commonly available on powered lower-limb assistive devices. One unified model was trained using publicly available benchmark datasets containing intact limb gaits for level-ground walking (LGW) and ascending stairs (SA). A phase prediction error of 1.28% for all benchmark datasets was obtained. The model was subsequently applied to a state machine-controlled powered prosthetic leg dataset collected from four individuals with unilateral transfemoral amputation. The gait phase prediction results (a phase prediction error of 5.70%) indicate that the model trained on benchmark data can be used for a system not included in the training dataset with no post-processing, such as model adaptation. Furthermore, it provided information regarding evaluation of the controller: whether the prosthetic leg generated normal gait. In conclusion, the proposed gait phase prediction model will facilitate efficient gait prediction and evaluation of controllers for powered lower-limb assistive devices.</p></abstract>
<kwd-group>
<kwd>prosthetics</kwd>
<kwd>deep learning</kwd>
<kwd>continuous gait recognition</kwd>
<kwd>benchmark data</kwd>
<kwd>gait phase</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Institutes of Health<named-content content-type="fundref-id">10.13039/100000002</named-content></contract-sponsor>
<counts>
<fig-count count="8"/>
<table-count count="3"/>
<equation-count count="6"/>
<ref-count count="25"/>
<page-count count="13"/>
<word-count count="7213"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Powered lower-limb assistive devices, such as powered prostheses and exoskeletons, have significant potentials for helping regain functional gait for people with mobility impairments from a variety of causes, including resulting from a spinal cord injury, stroke, or limb amputation.</p>
<p>Generally, these devices are expected to generate joint trajectories to support movements that are based on user intentions. Therefore, a proper understanding of joint kinematics is important for proper control of these devices. For example, prostheses control the powered knee and ankle to restore mobility by analyzing historical information from prior gait strides (Hargrove et al., <xref ref-type="bibr" rid="B9">2015</xref>). Actuating timing of an ankle exoskeleton was controlled for the next stride based on the sensor signal from the previous stride; optimal timing reduced muscle activities and metabolic costs (Galle et al., <xref ref-type="bibr" rid="B7">2017</xref>).</p>
<p>Walking can be represented as a gait cycle. Each gait cycle begins at a heel strike (0%) and ends at the next heel strike of the same leg (100%). The gait cycle can be broken down into a set of periods (e.g., stance and swing), with gait phase representing a specific timing in the gait cycle. Because gait cycle depends on joint kinematics and kinetics, gait phase prediction plays an important role in observing the human state and controlling powered assistive devices. Additionally, the device can be quantitatively evaluated for normal gait generation by analyzing the gait phase.</p>
<p>A variety of methods have been proposed to predict gait phase. Mechanical sensors (Kotiadis et al., <xref ref-type="bibr" rid="B14">2010</xref>; Agostini et al., <xref ref-type="bibr" rid="B1">2013</xref>; Maqbool et al., <xref ref-type="bibr" rid="B18">2016</xref>; Han et al., <xref ref-type="bibr" rid="B8">2019</xref>) (e.g., foot switches embedded in a shoe and inertial sensors on the shank) have been used to determine the gait phase directly. Using a finite-state machine (Lawson et al., <xref ref-type="bibr" rid="B15">2014</xref>) is a popular method for most passive prostheses (Fluit et al., <xref ref-type="bibr" rid="B6">2019</xref>); a state machine sub-divides the gait into a set of discrete phases and defines the transition conditions. A set of surface electromyography sensors on the lower limbs (Yao et al., <xref ref-type="bibr" rid="B25">2021</xref>) were used to predict the discretized gait phase using a neural network having two hidden layers. Since discretization of a gait limits the information during locomotion, continuous gait phase prediction modes have alternatively been proposed. For example, a human-inspired phase variable (Quintero et al., <xref ref-type="bibr" rid="B19">2017</xref>) (e.g., the thigh angle) that uniquely represents the gait cycle in a continuous and monotonically increasing manner was used to predict the gait phase. A discrete wavelet transform-based method (Livolsi et al., <xref ref-type="bibr" rid="B17">2021</xref>) was proposed to predict the continuous gait phase for treadmill walking using hip encoders.</p>
<p>Recently, deep neural network-based (DNN-based) gait phase prediction methods have been proposed. Deep neural networks are highly capable of determining the non-linear relationship between the input and output mapping. The discretized gait phase was predicted using electromyography signals based on a temporal convolutional network (Chen et al., <xref ref-type="bibr" rid="B5">2022</xref>). A recurrent neural network with a shank-mounted inertial measurement unit (IMU) was used to predict the gait phase for controlling an ankle exoskeleton (Seo et al., <xref ref-type="bibr" rid="B22">2019</xref>). In addition, a long short-term memory (LSTM)-based network was proposed to predict the gait phase using a set of wearable sensors, including IMUs and a force sensor at the heel (Lee et al., <xref ref-type="bibr" rid="B16">2021</xref>).</p>
<p>The end-to-end learning capability of DNNs enables gait phase prediction, with multiple ambulation modes showing different gait trajectories. A convolutional neural network-based gait phase estimator (Kang et al., <xref ref-type="bibr" rid="B11">2021</xref>) was proposed to modulate hip exoskeleton assistance for multiple ambulation modes. Gait phases for three different ambulation modes were predicted using a single IMU placed at the shank (Weigand et al., <xref ref-type="bibr" rid="B24">2020</xref>).</p>
<p>Although several studies have successfully demonstrated gait phase prediction, a remaining issue is the lack of efficient adaptation of gait phase prediction methods on a specific system as conventional methods are generally device-specific. In other words, conventional methods were validated using their own hardware. Therefore, a gait phase prediction model trained using a specific system cannot be easily adapted to other systems. Furthermore, training or validating a prediction model for a specific system is time-consuming and burdensome, particularly when targeting mobility-limited patients.</p>
<p>To address this issue, in this study, we propose prediction of continuous gait phase using a DNN. The primary objective was to eliminate the need for device-specific training of gait phase prediction models by using publicly available benchmark datasets (Camargo et al., <xref ref-type="bibr" rid="B4">2021</xref>; Reznick et al., <xref ref-type="bibr" rid="B21">2021</xref>) containing locomotion data of non-disabled individuals. The vertical load (i.e., the weight of users on force plates) and lower limb joint angles [i.e., thigh (induced by hip joint movement), knee, and ankle] were selected as the input data for the proposed gait phase prediction model because these data are commonly available in powered lower-limb assistive devices. Additionally, these data from non-disabled individuals can be collected using various sensor systems.</p>
<p>In conclusion, the proposed method (i) is versatile owing to using sensor data available in generic powered lower-limb assistive devices; (ii) facilitates developing a single unified gait phase prediction model trained on multiple datasets with diverse sensor characteristics; (iii) enables quantitative evaluation of a controller in terms of whether it can generate resembling gait phases of able-bodied individuals.</p>
<p>To validate feasibility, level-ground walking (LGW) and ascending stairs (SA) among various ambulation modes were considered for gait phase prediction because they have distinct differences in gait pattern (Kim et al., <xref ref-type="bibr" rid="B13">2022</xref>).</p>
<p>For demonstration, the proposed method was applied to a prosthetic leg system. The gait phases of a state machine-controlled powered prosthetic leg for transfemoral amputees (Simon et al., <xref ref-type="bibr" rid="B23">2014</xref>) were predicted and evaluated to verify that the proposed method can be used for gait evaluation and has the potential to be used in a system not included in the training datasets.</p>
<p>We hypothesized that the proposed gait phase prediction model could (i) predict the gait phase for a prosthetic leg using a model trained on benchmark dataset, and (ii) it can evaluate the generated gait using the device.</p></sec>
<sec sec-type="methods" id="s2">
<title>2. Methods</title>
<p>The proposed method uses a DNN to predict the continuous gait phase based on the history of the vertical load and joint angles (thigh, knee, and ankle). The gait phase prediction model was trained using benchmark datasets, and its prediction performance across benchmark datasets was evaluated. Then, we collected prosthetic leg data to demonstrate the trained model; four participants with transfemoral amputation then performed in-laboratory LGW and SA using state machine-based impedance controllers at a self-selected speed. Then, the gait phase was predicted from this recorded data. The details of this process are provided below.</p>
<sec>
<title>2.1. Benchmark datasets for training</title>
<p>The proposed method predicts the gait phase using the vertical load and lower limb joint angles (thigh, knee, and ankle). Two benchmark datasets, dataset A (Camargo et al., <xref ref-type="bibr" rid="B4">2021</xref>) and dataset B (Reznick et al., <xref ref-type="bibr" rid="B21">2021</xref>), were selected to train and validate the proposed method; we used the data of LGW on a treadmill and SA.</p>
<p>Datasets A and B were collected from 22 and 10 non-disabled participants, respectively. In both datasets, joint angles from both legs were reconstructed from the motion capture data. In addition, dataset A contains the goniometer data for the joint angles of the right leg. In the case of the LGW, the walking speed ranges from 0.5 to 1.85 m/s for dataset A and from 0.8 to 1.2 m/s for dataset B. The vertical load was measured using force plates embedded in the treadmill. In the case of the SA, we only considered the data from dataset A as dataset B does not provide continuous force plate data for SA. Data from dataset A for SA were collected from four different stair heights of 4, 5, 6, and 7 inches; the vertical load was measured using force plates located on the stairs.</p>
<p>Eight sub-divided datasets were obtained from the benchmark datasets: left/right leg from dataset A, where joint angles were measured using motion capture data (<inline-formula><mml:math id="M1"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M2"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for LGW, and <inline-formula><mml:math id="M3"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M4"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for SA); right leg from dataset A, where joint angles were measured using goniometers (<inline-formula><mml:math id="M5"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M6"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>); and left/right leg from dataset B (<inline-formula><mml:math id="M7"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M8"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for LGW). In conclusion, five LGW datasets (<inline-formula><mml:math id="M9"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M10"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M11"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M12"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="M13"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>) and three SA datasets (<inline-formula><mml:math id="M14"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M15"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="M16"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>) were extracted. In addition to the sub-divided datasets, all data were included in a dataset, <italic>Alldata</italic>. Thus, there are nine dataset configurations in all. The number of steps collected from each dataset is presented in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Brief description of datasets and the number of steps collected.</p></caption>
<table frame="box" rules="all">
<thead><tr>
<th valign="top" align="left" style="background-color:#919497"><bold>Dataset</bold></th>
<th valign="top" align="left" style="background-color:#919497"><bold>Description</bold></th>
<th valign="top" align="center" style="background-color:#919497"><bold>The number of steps</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><inline-formula><mml:math id="M17"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset A, LGW, left leg, motion capture</td>
<td valign="top" align="center">20,650</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M18"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset A, LGW, right leg, motion capture</td>
<td valign="top" align="center">20,685</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M19"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset A, LGW, right leg, goniometer</td>
<td valign="top" align="center">20,685</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M20"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset B, LGW, left leg, motion capture</td>
<td valign="top" align="center">1,148</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M21"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset B, LGW, right leg, motion capture</td>
<td valign="top" align="center">1,286</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M22"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset A, SA, left leg, motion capture</td>
<td valign="top" align="center">477</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M23"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset A, SA, right leg, motion capture</td>
<td valign="top" align="center">465</td>
</tr> <tr>
<td valign="top" align="left"><inline-formula><mml:math id="M24"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula></td>
<td valign="top" align="left">Dataset A, SA, right leg, goniometer</td>
<td valign="top" align="center">465</td>
</tr> <tr>
<td valign="top" align="left"><italic>Alldata</italic></td>
<td valign="top" align="left">All datasets, all modes, both legs, all sensors</td>
<td valign="top" align="center">65,861</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>2.2. An open-source bionic leg</title>
<p>The trained gait phase prediction model was validated using an open-source bionic leg (OSL) that contains a powered knee and ankle actuated in the sagittal plane. The details of the OSL system configuration are provided in Azocar et al. (<xref ref-type="bibr" rid="B2">2020</xref>). The vertical load and joint angles (thigh, knee, and ankle) were determined using mechanical sensors (i.e., encoders and IMU) embedded in the OSL.</p>
<p>A state machine-based impedance controller (Simon et al., <xref ref-type="bibr" rid="B23">2014</xref>) was used to control the OSL. Each ambulation was sub-divided into four states (i.e., early stance, late stance, early swing, and late swing). Then, the six impedance parameters (i.e., stiffness, damping coefficient, and equilibrium angle for the knee and ankle) were tuned to generate the gait trajectory of an individual state as follows:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M25"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></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>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>b</mml:mi><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x02022;</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>i</italic> represents the knee or ankle joint; &#x003C4; represents the joint torque; <italic>k</italic>, <italic>b</italic>, and &#x003B8;<sup><italic>eq</italic></sup> denote the stiffness, damping coefficient, and equilibrium angle, respectively; and &#x003B8; and <inline-formula><mml:math id="M26"><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mo>&#x02022;</mml:mo></mml:mover></mml:math></inline-formula> represent the joint angle and velocity, respectively. Impedance parameters were generated every 25 ms. Further details on the state machine and the configuration process are provided in Simon et al. (<xref ref-type="bibr" rid="B23">2014</xref>). The impedance parameters were individually adjusted based on user feedback and visual inspections of gait were conducted by a certified prosthetist and licensed therapist.</p>
</sec>
<sec>
<title>2.3. Participants</title>
<p>Four individuals with unilateral transfemoral amputation (<xref ref-type="table" rid="T2">Table 2</xref>) participated in this study and performed LGW and SA. All individuals provided written informed consent for the protocol approved by the Northwestern University Institutional Review Board. Users walked with 8-feet parallel bars for LGW, and ascended a 6-step staircase with stair height of 6-inch. We collected as much data as experimental time allowed per user. TF1 and TF2 had each participated in two sessions on separate days; TF3 and TF4 each participated in one session. In each session, we collected an LGW dataset and then an SA dataset. Participants were allowed sufficient rest time during a session under the assistance of a therapist. A total of, 214, 122, 174, and 221 steps were collected for TF1, TF2, TF3, and TF4, respectively. The detailed number of steps per user is given in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Subject demographics.</p></caption>
<table frame="box" rules="all">
<thead><tr>
<th valign="top" align="left" style="background-color:#919497"><bold>User</bold></th>
<th valign="top" align="center" style="background-color:#919497"><bold>Gender</bold></th>
<th valign="top" align="center" style="background-color:#919497"><bold>Etiology</bold></th>
<th valign="top" align="center" style="background-color:#919497"><bold>Height (m)</bold></th>
<th valign="top" align="center" style="background-color:#919497"><bold>Weight (kg)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">TF1</td>
<td valign="top" align="center">M</td>
<td valign="top" align="center">Right sarcoma</td>
<td valign="top" align="center">1.93</td>
<td valign="top" align="center">72.57</td>
</tr> <tr>
<td valign="top" align="left">TF2</td>
<td valign="top" align="center">M</td>
<td valign="top" align="center">Left sarcoma</td>
<td valign="top" align="center">1.93</td>
<td valign="top" align="center">104</td>
</tr> <tr>
<td valign="top" align="left">TF3</td>
<td valign="top" align="center">F</td>
<td valign="top" align="center">Left sarcoma</td>
<td valign="top" align="center">1.7</td>
<td valign="top" align="center">72.5</td>
</tr> <tr>
<td valign="top" align="left">TF4</td>
<td valign="top" align="center">F</td>
<td valign="top" align="center">Right sarcoma</td>
<td valign="top" align="center">1.65</td>
<td valign="top" align="center">70.99</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>The number of steps per user.</p></caption>
<table frame="box" rules="all">
<thead><tr>
<th valign="top" align="left" style="background-color:#919497"><bold>Mode</bold></th>
<th valign="top" align="center" colspan="5" style="background-color:#919497"><bold>User</bold></th>
</tr>
<tr>
<th/>
</tr>
</thead>
<tbody>
<tr>
<td/>
<td valign="top" align="center"><bold>TF1</bold></td>
<td valign="top" align="center"><bold>TF2</bold></td>
<td valign="top" align="center"><bold>TF3</bold></td>
<td valign="top" align="center"><bold>TF4</bold></td>
<td valign="top" align="center"><bold>Total</bold></td>
</tr> <tr>
<td valign="top" align="left">LGW</td>
<td valign="top" align="center">161</td>
<td valign="top" align="center">104</td>
<td valign="top" align="center">154</td>
<td valign="top" align="center">181</td>
<td valign="top" align="center">600</td>
</tr> <tr>
<td valign="top" align="left">SA</td>
<td valign="top" align="center">53</td>
<td valign="top" align="center">18</td>
<td valign="top" align="center">20</td>
<td valign="top" align="center">40</td>
<td valign="top" align="center">131</td>
</tr> <tr>
<td valign="top" align="left">Total</td>
<td valign="top" align="center">214</td>
<td valign="top" align="center">122</td>
<td valign="top" align="center">174</td>
<td valign="top" align="center">221</td>
<td valign="top" align="center">731</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p>LGW, level-ground walking; SA, ascending stairs.</p>
</table-wrap-foot>
</table-wrap>
</sec>
<sec>
<title>2.4. Gait phase prediction model</title>
<p>The proposed method can be divided into two parts. First, discretized gait events (i.e., toe-off and heel-strike) and phases (i.e., stance and swing phases) are identified from the vertical load based on a peak detection algorithm using z-scores (Brakel, <xref ref-type="bibr" rid="B3">2014</xref>). Although this algorithm is simple and only dependent on the vertical load, continuous gait phase cannot be identified in real-time because gait duration between one heel-strike to the next heel-strike is needed for it. Therefore, to overcome this limitation, the relationship between the continuous gait phase and the sensor data (the joint angles and vertical load) is identified using a DNN.</p>
<p>This section describes all procedures for the gait phase prediction. The procedures are shown in <xref ref-type="fig" rid="F1">Figure 1</xref> using example data. Section 2.4.1 describes data conversion for the DNN application (i.e., data normalization). Section 2.4.2 describes gait segmentation from sensor data and conversion to 2-D variables representing gait phase percentage. Section 2.4.3 describes the architecture of the proposed DNN.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Flowchart of the proposed method. <bold>(A)</bold> Gait phase, extracted from the vertical load, is converted to the 2-D variable. <bold>(B)</bold> The joint angles, vertical load, and gait phase variable are scaled for application to the deep neural network (DNN). <bold>(C)</bold> The scaled (i.e., converted) joint angles and vertical load are used as input for the DNN. <bold>(D)</bold> The DNN output is scaled and converted to the predicted gait phase.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0001.tif"/>
</fig>
<sec>
<title>2.4.1. Sensor data conversion</title>
<p>Sensor configurations, including the sampling frequency and sign convention, depend on the experimental setup and hardware specifications. Thus, all sensor configurations were converted to those of the OSL. With respect to the sign convention, thigh extension, knee flexion, and ankle dorsiflexion were defined as positive. Vertical load was normalized by the weight of the user. Since our system recorded data from the OSL every 5 ms, sensor data were downsampled or upsampled to 200 Hz. In addition, owing to differences in sensor configurations, the baseline amplitudes of the joint angles differ. Thus, angular biases were removed to match the baseline with the OSL.</p>
<p>The recommended range of the input data to the DNN is 0 to 1. Therefore, scaling was applied to the sensor data as follows:</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M27"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>v</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mfrac><mml:mi>v</mml:mi><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mn>5</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:mo>/</mml:mo><mml:mn>10</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>g</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#x000A0;</mml:mtext><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn>36</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>v</italic> denotes the raw data (i.e., the weight-normalized vertical load and joint angles), <italic>v</italic><sub><italic>n</italic></sub> denotes the data bounded from 0 to 1, <italic>F</italic><sub><italic>z</italic></sub> denotes the weight-normalized vertical load, and <italic>g</italic><sub><italic>v</italic></sub> denotes the gain. Thus, for instance, <italic>v</italic><sub><italic>n</italic></sub> will be 0.5 when <italic>F</italic><sub><italic>z</italic></sub> is zero (i.e., no weight on the prosthetic leg) and 0.6 when <italic>F</italic><sub><italic>z</italic></sub> is 1 (i.e., full weight on the prosthetic leg).</p></sec>
<sec>
<title>2.4.2. Gait phase conversion</title>
<p>The gait events were mathematically extracted (<xref ref-type="table" rid="T4">Algorithms 1</xref>&#x02013;<xref ref-type="table" rid="T6">3</xref>) based on a peak detection algorithm using z-scores (Brakel, <xref ref-type="bibr" rid="B3">2014</xref>). The <xref ref-type="supplementary-material" rid="SM1">Supplementary Video S1</xref> shows an example of extraction.</p>
<table-wrap position="float" id="T4">
<label>Algorithm 1</label>
<caption><p>Gait phase extraction.</p></caption>
<table frame="box" rules="all">
<tbody>
<tr>
<td valign="top" align="left"><monospace> Input: &#x000A0;<inline-formula><mml:math id="M29"><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>: <italic>T</italic> time series of the vertical load</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> Param: &#x000A0;<italic>F</italic><sub><italic>th</italic></sub>, <italic>influence</italic>, <italic>lag</italic>, <italic>p</italic><sub><italic>hist</italic></sub>, <italic>filtered</italic>&#x02208;<italic>R</italic><sup><italic>lag</italic></sup></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> &#x000A0;/* Parameter initialization */</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 1: &#x000A0;<italic>F</italic><sub><italic>th</italic></sub> &#x02190; 0.2</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 2: &#x000A0;<italic>lag</italic> &#x02190; 8</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 3: &#x000A0;<italic>influence</italic> &#x02190; 0.01</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 4: &#x000A0;<italic>p</italic><sub><italic>hist</italic></sub> &#x02190; 5</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 5: &#x000A0;<italic>Filtered</italic>(1:<italic>lag</italic>) &#x02190; 0</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> &#x000A0;/* Phase Extraction */</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 6: &#x000A0;for <italic>t</italic> &#x0003D; 1 to <italic>T</italic> <bold>do</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 7: &#x000A0; [<italic>P</italic><sub><italic>ext</italic></sub>(<italic>t</italic>), <italic>filtered</italic>] = SEGMENT (<italic>F</italic><sub><italic>z</italic></sub>(<italic>t</italic>), <italic>filtered</italic>)</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 8: &#x000A0;end <bold>for</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 9: &#x000A0;<italic>P</italic><sub><italic>output</italic></sub> = POST REFINEMENT(<italic>P</italic><sub><italic>ext</italic></sub>)</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 10: &#x000A0;return <italic>P</italic><sub><italic>output</italic></sub></monospace></td>
</tr> 
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T5"> 
<label>Algorithm 2</label>
<caption><p>Gait segmentation.</p></caption>
<table frame="box" rules="all">
<tbody>
<tr>
<td valign="top" align="left"><monospace> 1: &#x000A0;function SEGMENT(<italic>f</italic><sub><italic>z</italic></sub>, <italic>filtered</italic>)</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 2: &#x000A0; <italic>filtered</italic>(<italic>i</italic>) = <italic>filtered</italic>(<italic>i</italic>&#x0002B;1) for <italic>i</italic> &#x0003D; 1:<italic>lag</italic>&#x02212;1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 3: &#x000A0; <italic>f</italic><sub><italic>z</italic></sub> &#x0003D; 1 if <italic>f</italic><sub><italic>z</italic></sub>&#x0003E;1 and <italic>f</italic><sub><italic>z</italic></sub>=0 if <italic>f</italic><sub><italic>z</italic></sub> &#x0003C; 0</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 4: &#x000A0; if <italic>f</italic><sub><italic>z</italic></sub> == mean(<italic>filtered</italic>) <bold>then</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 5: &#x000A0; <italic>p</italic><sub><italic>ext</italic></sub> = 0 // swing phase</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 6: &#x000A0; <italic>filtered</italic>(<italic>lag</italic>) = <italic>f</italic><sub><italic>z</italic></sub></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 7: &#x000A0; else</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 8: &#x000A0; if <italic>f</italic><sub><italic>t</italic></sub>&#x0003E;<italic>F</italic><sub><italic>th</italic></sub> <bold>then</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 9: &#x000A0; <italic>p</italic><sub><italic>ext</italic></sub> = 1 // stance phase</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 10: &#x000A0; else <bold>if</bold> <italic>f</italic><sub><italic>t</italic></sub>&#x02265; mean(<italic>filtered</italic>) <bold>then</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 11: &#x000A0; // increasing vertical load</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 12: &#x000A0; <italic>p</italic><sub><italic>ext</italic></sub> = 1 // stance phase</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 13: &#x000A0; else</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 14: &#x000A0; <italic>p</italic><sub><italic>ext</italic></sub> = 0 // swing phase</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 15: &#x000A0; end <bold>if</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 16: &#x000A0; <italic>filtered</italic>(<italic>lag</italic>) = <italic>influence</italic>&#x000B7;<italic>f</italic><sub><italic>z</italic></sub>&#x0002B;(1&#x02212;<italic>influence</italic>)&#x000B7;<italic>filtered</italic>(<italic>lag</italic>&#x02212;1);</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 17: &#x000A0; end <bold>if</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 18: &#x000A0; return <italic>p</italic><sub><italic>ext</italic></sub>, <italic>filtered</italic></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 19: &#x000A0;end <bold>function</bold></monospace></td>
</tr> 
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T6">
<label>Algorithm 3</label>
<caption><p>Post refinement to improve robustness.</p></caption>
<table frame="box" rules="all">
<tbody>
<tr>
<td valign="top" align="left"><monospace> 1: &#x000A0;function POST REFINEMENT(<italic>p</italic><sub><italic>ext</italic></sub>)</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 2: &#x000A0; <italic>p</italic><sub><italic>past</italic></sub> &#x02190; <italic>p</italic><sub><italic>ext</italic></sub>(1)</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 3: &#x000A0; <italic>p</italic><sub><italic>current</italic></sub> &#x02190; &#x02212;1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 4: &#x000A0; <italic>count</italic> &#x02190; 0</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 5: &#x000A0; <italic>idx</italic><sub><italic>bgn</italic></sub> &#x02190; 1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 6: &#x000A0; <italic>idx</italic><sub><italic>fin</italic></sub> &#x02190; 0</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 7: &#x000A0; <italic>p</italic><sub><italic>re</italic></sub>(1:<italic>T</italic>) &#x02190; &#x02212;1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 8: &#x000A0; for <italic>t</italic> &#x0003D; 1 to <italic>T</italic> <bold>do</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 9: &#x000A0; <italic>p</italic><sub><italic>current</italic></sub> &#x0003D; <italic>p</italic><sub><italic>ext</italic></sub>(<italic>t</italic>)</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 10: &#x000A0; if <italic>p</italic><sub><italic>current</italic></sub> &#x02260; <italic>p</italic><sub><italic>past</italic></sub> <bold>then</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 11: &#x000A0; <italic>idx</italic><sub><italic>fin</italic></sub> &#x0003D; <italic>t</italic>&#x02212;1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 12: &#x000A0; if <italic>count</italic>&#x0003E;<italic>p</italic><sub><italic>hist</italic></sub> <bold>then</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 13: &#x000A0; <italic>p</italic><sub><italic>re</italic></sub>(<italic>idx</italic><sub><italic>bgn</italic></sub>:<italic>idx</italic><sub><italic>fin</italic></sub>) &#x0003D; <italic>p</italic><sub><italic>past</italic></sub></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 14: &#x000A0; <italic>idx</italic><sub><italic>bgn</italic></sub> &#x0003D; <italic>t</italic></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 15: &#x000A0; <italic>count</italic> &#x0003D; 1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 16: &#x000A0; else</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 17: &#x000A0; <italic>p</italic><sub><italic>re</italic></sub>(<italic>idx</italic><sub><italic>bgn</italic></sub>:<italic>idx</italic><sub><italic>fin</italic></sub>) &#x0003D; <italic>p</italic><sub><italic>current</italic></sub></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 18: &#x000A0; <italic>count</italic> &#x0003D; <italic>count</italic>&#x0002B;1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 19: &#x000A0; end <bold>if</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 20: &#x000A0; else</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 21: &#x000A0; <italic>count</italic> &#x0003D; <italic>count</italic>&#x0002B;1</monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 22: &#x000A0; end <bold>if</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 23: &#x000A0; <italic>p</italic><sub><italic>past</italic></sub> &#x0003D; <italic>p</italic><sub><italic>current</italic></sub></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 24: &#x000A0; end <bold>for</bold></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 25: &#x000A0; return <italic>p</italic><sub><italic>re</italic></sub></monospace></td>
</tr>
<tr>
<td valign="top" align="left"><monospace> 26: &#x000A0;end <bold>function</bold></monospace></td>
</tr> 
</tbody>
</table>
</table-wrap>
<p><xref ref-type="table" rid="T4">Algorithm 1</xref> is applied to the recorded data; it extracts a discretized gait phase (i.e., stance or swing phase), for each time step, <italic>t</italic> based on <xref ref-type="table" rid="T5">Algorithm 2</xref>.</p>
<p>In every time step, <xref ref-type="table" rid="T5">Algorithm 2</xref> subdivides the gait into stance and swing phases according to the vertical load. If the vertical load is higher than <italic>F</italic><sub><italic>th</italic></sub>, the current phase is set to stance. When the vertical load is less than <italic>F</italic><sub><italic>th</italic></sub>, the phase is set to stance if the vertical load tends to increase; and swing if the vertical load tends to decrease. The tendency of the vertical load was determined using the history of <italic>filtered</italic>, which is an output of the peak detection algorithm (Brakel, <xref ref-type="bibr" rid="B3">2014</xref>).</p>
<p>Sensor interference may lead to incorrect extraction; <xref ref-type="table" rid="T6">Algorithm 3</xref> improves robustness and refines the extraction. When phase change occurs, if the time length of the previous phase is less than <italic>p</italic><sub><italic>hist</italic></sub>, <xref ref-type="table" rid="T6">Algorithm 3</xref> discards this phase change.</p>
<p>Here, all tunable parameters, including <italic>lag</italic>, <italic>influence</italic>, <italic>F</italic><sub><italic>th</italic></sub>, and <italic>p</italic><sub><italic>hist</italic></sub> were selected heuristically. The values for the peak detection algorithm (<italic>lag</italic> of 8 and <italic>influence</italic> of 0.01) were chosen via visual inspection of the identification results. <italic>F</italic><sub><italic>th</italic></sub> was set to 0.2 because our state machine-based controller determines the transition from stance phase to swing phase based on this value. <italic>p</italic><sub><italic>hist</italic></sub> was set to 5, which indicates that phase changes within 25 ms were ignored, because our control frequency of the OSL is 40 Hz.</p>
<p>Using these algorithms, the gait phase percentage was obtained between 0% and 100% in 0.5% increments. As the gait phase percentage increases monotonically from 0% to 100% (i.e., a heel-strike to the next heel-strike), the discontinuities in the percentage of the gait phase from 100% to 0% degrade the prediction performance. Therefore, the gait phase percentage in the Cartesian coordinate system (i.e., 0&#x02013;100%) was converted into that in the polar coordinate system (Kang et al., <xref ref-type="bibr" rid="B10">2019</xref>) as follows:</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M30"><mml:mtable class="eqnarray" columnalign="center"><mml:mtr><mml:mtd><mml:mi>&#x003B8;</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>100</mml:mn></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo class="qopname">cos</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo class="qopname">sin</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>p</italic><sub><italic>c</italic></sub> denotes the gait phase percentage in the Cartesian coordinate system, and <italic>p</italic><sub><italic>x</italic></sub> and <italic>p</italic><sub><italic>y</italic></sub> denote those in the polar coordinate system. This gait phase percentage is used as the output of the DNN. Thus, additionally, scaling was applied to the gait phase percentage in the polar coordinate system to normalize the range of the values as follows:</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M32"><mml:mtable class="eqnarray" columnalign="center"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>10</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>p</italic><sub><italic>i</italic></sub> and <inline-formula><mml:math id="M33"><mml:msubsup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> denote the gait phase percentage in the polar coordinate system and its scaled value in the DNN output configuration, respectively. This normalization processing (i.e., Equation 4) may not be necessary. The reason for this scaling is described in Section 4.</p></sec>
<sec>
<title>2.4.3. A deep neural network</title>
<p>The structure of the proposed DNN is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. The input for the network is the 250 ms history of the vertical load, thigh, knee, and ankle angles. The network outputs are the gait phase percentages in the polar coordinate system (i.e., <inline-formula><mml:math id="M34"><mml:msubsup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M35"><mml:msubsup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>).</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Structure of the proposed network. The gait phase percentage in the polar coordinate system was predicted from a 250 ms history of the vertical load (a black line), and thigh (a green line), knee (a red line), and ankle (a blue line) angles. The numbers in the brackets of the layers represent the shape of each layer. For example, LSTM (<italic>N</italic>) represents the LSTM layer with <italic>N</italic> units.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0002.tif"/>
</fig>
<p>The 1-D convolutional neural network, which leans 32 filters through a kernel size of 8, strides of 1, and the same padding, is connected to the input layer, which is used to capture spatial information from the sensor data. Subsequently, a LSTM layer of 20 units, followed by fully-connected dense layers, is connected to extract temporal information. The network has a total of 6,258 trainable parameters.</p>
<p>The network was trained for 15 epochs with a batch size of 256, the ADAM with a learning rate of 0.001, and the mean squared error as the loss function. At each epoch, the data were shuffled and split into training and validation data in a ratio of 7:3. All the trainable layers had a sigmoid activation function.</p>
<p>The model was trained using TensorFlow (v. 2.7.0, Google) in Python 3.8 on a laptop (Nitro 5 AN517-54-79L1, Acer) with NVIDIA GeForce RTX 3050Ti Laptop GPU and 32 GB DDR4 RAM. The training time for the model trained on <italic>Alldata</italic> (see <xref ref-type="table" rid="T1">Table 1</xref>) was approximately 210 min.</p>
</sec></sec>
<sec>
<title>2.5. Data analysis</title>
<p>All nine models were trained using the benchmark datasets; their data configurations are presented in <xref ref-type="table" rid="T1">Table 1</xref>. The first eight models were trained using eight distinct sub-divided datasets (see Section 2.1). The last model was trained using all benchmark datasets. Each dataset was evaluated using the nine models. Then, gait data from four patients with transfemoral amputation were evaluated using the last model. Any additional processes, such as model tuning, were not performed.</p>
<p>The correlations between datasets were assessed using the Pearson correlation coefficient between the median gait trajectories. The prediction performance was evaluated using the coefficient of determination (<italic>R</italic><sup>2</sup>) in the polar coordinate system (i.e., <inline-formula><mml:math id="M36"><mml:msubsup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M37"><mml:msubsup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>) and phase prediction error for the difference between the actual and predicted gait phases.</p></sec></sec>
<sec sec-type="results" id="s3">
<title>3. Results</title>
<sec>
<title>3.1. Evaluation of benchmark datasets</title>
<p><xref ref-type="fig" rid="F3">Figure 3</xref> shows <italic>R</italic><sup>2</sup> for each dataset using each model. Since LGW and SA have different gait trajectories, they showed low performance when predicting each other (i.e., inter-mode prediction). However, the model trained on all benchmark datasets (i.e., the last row) showed consistent performance; the average <italic>R</italic><sup>2</sup> of 0.97 was obtained.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Coefficients of determination (<italic>R</italic><sup>2</sup>) for the difference between the actual and predicted gait phases. Intra-mode prediction showed higher <italic>R</italic><sup>2</sup>; on the other hand, inter-mode prediction (e.g., prediction of SA datasets using a model trained on an LGW dataset) showed poor performance owing to the different gait characteristics. The model trained on all datasets (i.e., the last row) showed consistent performance with an average <italic>R</italic><sup>2</sup> of 0.97 across all sub-divided datasets.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0003.tif"/>
</fig>
<p>The gait phase prediction error showed a similar trend (<xref ref-type="fig" rid="F4">Figure 4</xref>). Intra-mode predictions had lower errors than inter-mode predictions. In particular, the models trained on SA datasets (i.e., <inline-formula><mml:math id="M38"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M39"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="M40"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>) showed errors of more than 10% on the LGW datasets. On the other hand, the model trained on all benchmark datasets showed average prediction errors of 1.27% and 2.07% for LGW and SA, respectively.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Gait phase prediction error. The blue and red bars indicate errors for five LGW and three SA datasets, respectively. Inter-mode prediction errors were higher than intra-mode prediction errors. The model trained using all datasets showed average prediction errors of 1.27% and 2.07% for LGW and SA, respectively; the average error of 1.28% across all ambulation modes was obtained.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0004.tif"/>
</fig>
<p>In the case of dataset A, although motion capture and goniometer data (e.g., <inline-formula><mml:math id="M41"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M42"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>) were recorded simultaneously, the joint angles differed significantly (<xref ref-type="fig" rid="F5">Figure 5</xref>). These differences in sensor configurations may have caused the differences in prediction performance. In particular, the goniometer data-based model was more robust than the motion capture data-based model (see second and third rows in <xref ref-type="fig" rid="F3">Figure 3</xref>).</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Gait trajectory from benchmark datasets. <bold>(A)</bold> The black, green, red, blue, and cyan lines indicate <inline-formula><mml:math id="M43"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M44"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M45"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M46"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="M47"><mml:mi>B</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, respectively. <bold>(B)</bold> The black, green, and red lines indicate <inline-formula><mml:math id="M48"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula><mml:math id="M49"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="M50"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, respectively. Although motion capture data and goniometer data (e.g., <inline-formula><mml:math id="M51"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M52"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>) were measured simultaneously, a significant difference in joint angles was observed: The root mean square differences for the thigh, knee, and ankle angles were 6.2&#x000B0;, 4.3&#x000B0;, and 3.7&#x000B0; for LGW, and 4.3&#x000B0;, 8.3&#x000B0;, and 1.9&#x000B0; for SA, respectively. All plots show the 75th and 25th percentiles in lighter bands.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0005.tif"/>
</fig>
</sec>
<sec>
<title>3.2. Evaluation of OSL data</title>
<p><xref ref-type="fig" rid="F6">Figure 6</xref> shows the gait trajectories of a state machine-controlled OSL from all four transfemoral amputee users. In the case of the LGW, the Pearson correlations with the vertical load, thigh, knee, and ankle angles in the benchmark datasets were 0.94, 0.94, 0.93, and 0.92, respectively. However, in the case of the SA, the correlations were 0.83, 0.96, 0.96, and 0.24, respectively; ankle angles showed a significantly low correlation.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Gait trajectory for LGW <bold>(A)</bold> and SA <bold>(B)</bold> from four transfemoral amputee users. The black, green, red, and blue lines indicate the vertical load and thigh, knee, and ankle angles, respectively. The ankle trajectories for SA showed a significantly low correlation with the benchmark datasets (<xref ref-type="fig" rid="F5">Figure 5</xref>). All plots show the 75th and 25th percentiles in lighter bands.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0006.tif"/>
</fig>
<p>The phase prediction performance (<xref ref-type="fig" rid="F7">Figures 7</xref>, <xref ref-type="fig" rid="F8">8</xref>) varies from user to user; the average <italic>R</italic><sup>2</sup> for all users across all ambulation modes was 0.72, and differences were generally observed in the late stance phase. The gait phase error of SA (8.06%) was higher than that of LGW (4.82%); the average error across all ambulation modes was 5.70%.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Actual (gray lines) and predicted (blue lines) phases for LGW <bold>(A)</bold> and SA <bold>(B)</bold> in the polar coordinate system. The average <italic>R</italic><sup>2</sup> for all users was 0.72. Although the prediction performance varies from user to user, most errors were observed in the late stance phase. All plots show the 75th and 25th percentiles in lighter bands.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0007.tif"/>
</fig>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Gait phase prediction error. The blue and red bars indicate errors for LGW and SA, respectively. The average errors for LGW and SA were 4.82% and 8.06%, respectively. Error bar represents 25th and 75th percentiles.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1064313-g0008.tif"/>
</fig></sec></sec>
<sec sec-type="discussion" id="s4">
<title>4. Discussion</title>
<p>The proposed method can learn the continuous gait phase from sensor data (i.e., the vertical load and lower limb joint angles) commonly available in powered lower-limb assistive devices. The model was trained using benchmark datasets and applied to a powered prosthetic leg with a different sensor configuration without tuning. Sensor data, such as vertical loads and joint angles, may depend on sensor characteristics. Therefore, a model trained on a specific sensor dataset may have poor prediction performance when testing the model on a different sensor dataset. For example, in the case of dataset A, the joint angles were simultaneously collected using a motion capture system and goniometers. However, the joint trajectories (<xref ref-type="fig" rid="F5">Figure 5</xref>) and the performance of the models (<xref ref-type="fig" rid="F3">Figures 3</xref>, <xref ref-type="fig" rid="F4">4</xref>) based on them differed. These results demonstrate that a gait phase prediction model trained using a specific system may not be easily adapted to other systems. These limitations suggest that a device-agnostic approach is needed. The end-to-end capabilities of a deep neural network enable the integration of data from different datasets and the development of a unified device-agnostic model. As demonstrated in this work, applying a model trained from benchmark datasets to powered lower-limb assistive devices without additional tuning will help to validate hardware or software easily.</p>
<p>Eliminating discontinuity is a crucial factor in the DNN-based gait phase prediction. We tried to use the 1-D variables in the Cartesian coordinate system rather than the 2-D variables in the polar coordinate system as the output of the network. However, it degraded prediction performance compared to the 2-D variables with most errors made around 0% or 100%. An example case is described in the <xref ref-type="supplementary-material" rid="SM3">Supplementary Document S1</xref>.</p>
<p>Prediction performance may depend on the configuration of the DNN. In this study, 250 ms of sensor data history were used to formulate predictions. This parameter was chosen based on our previous work (Kim and Hargrove, <xref ref-type="bibr" rid="B12">2022</xref>), in which 250 ms of vertical load and thigh angle history was best to predict desired impedance parameters.</p>
<p>We scaled input and output data for the proposed DNN using Equations (2) and (4). This scaling is not mandatory and there may be better scaling methods. The reason for the scaling is that the OSL, which is the prosthetic leg we use, transmits and receives data in the scaled values. We wanted to minimize additional process for data conversion by following the data scaling of the OSL for our future work, real-time evaluation gait phase and updating controllers.</p>
<p>In this study, we heuristically determined the network architecture hyperparameters including the number the layers, number of units in the layers, and activation functions. We adapted the number of units in dense layers from our previous work for controlling prosthetic legs using DNN (Kim and Hargrove, <xref ref-type="bibr" rid="B12">2022</xref>). In the case of the activation function, sigmoid was better than other activation functions, such as tanh and ReLU. We speculate that the sigmoid function is suitable for our small range near 0.5 of input and output to the DNN. In addition, additional layers may improve the performance; however, execution time for prediction will be increased as a trade-off.</p>
<p>The LGW and SA models showed poor inter-mode prediction performance due to differences in gait trajectories. However, the LGW models showed slightly better inter-mode prediction performance than the SA models. This difference in performance may be a result of the amount of training data, as LGW datasets have more data than SA datasets; the models based on SA datasets had fewer variations and may have overfitted. This speculation is also supported by the fact that dataset A showed better performance than dataset B; dataset A has nearly 20 times more data than dataset B (see <xref ref-type="table" rid="T1">Table 1</xref>).</p>
<p>In addition, one noticeable prediction result is that the models trained using <inline-formula><mml:math id="M53"><mml:mi>A</mml:mi><mml:msubsup><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>G</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> showed better performance on SA datasets than other LGW datasets. We speculated that the large variation in the joint angles from the goniometers improved the robustness of the model. Thus, model training using a variety of datasets and different sensor configurations may improve the overall performance of gait phase prediction for untrained modes.</p>
<p>In general, the state machine parameters for the stance phase should be tuned to generate a more natural gait similar to non-disabled individuals. Specifically, the ankle parameters for SA should be improved. In details, the ankle trajectory (blue line, <xref ref-type="fig" rid="F6">Figure 6B</xref>) is too flat compared to the non-amputee trajectory (<xref ref-type="fig" rid="F5">Figure 5B</xref>). A controller should provide more dynamic movement in the mid-to-late stance phase. In conclusion, the model provided information on how to improve the controller in addition to the similarity between gait data from the benchmark datasets.</p>
<p>The proposed method has several limitations. First, it was limited to level-ground walking and ascending stairs. Additional ambulation modes should be considered, including turning and descending stairs and ramps. We believe use of additional benchmark data can overcome this limitation. For example, dataset A contains data for turning on the ground. Training with these data will prove the robustness of the phase prediction model. Furthermore, to ensure that the method can be applied in practice, the model must be able to correctly identify the ambulation mode from the sensor data (i.e., ambulation mode classification). Second, although improving the performance of the controller for a powered prosthetic leg may be possible, the focus of this study was on evaluating the pre-developed controller. For instance, control parameters can be updated in real-time to reduce differences in gait phase and trajectory. However, updating the controller is beyond the scope of this study and will be performed in future work.</p>
<p>Real-time gait phase prediction may significantly improve the gait by incorporating various control methods. For example, walking at various speeds and slopes was facilitated using virtual constraints based on a human-inspired phase variable (Quintero et al., <xref ref-type="bibr" rid="B20">2018</xref>) for controlling a prosthetic leg.</p>
<p>To investigate feasibility, we deployed the proposed model on a smartphone running Android 12 (Galaxy Z Flip 3, Samsung). The Android parsed sensor data every 5 ms from the OSL. Execution time for the deployed network was approximately 1.2 ms. In conclusion, model predicted the gait phase using a 250 ms history of sensor data at intervals of 5 ms, and this prediction took approximately 1.2 ms. This indicates that the model has the potential to predict in real-time. The <xref ref-type="supplementary-material" rid="SM2">Supplementary Video S2</xref> contains real-time gait prediction based on the sensor data from the OSL, for which an intact limb user performed LGW on the OSL using a bypass adaptor. Performance was reasonable, but a significant error was observed when the user turned in place to change the body direction, as turning was not in the training datasets. This result shows the limitation of the proposed method: poor performance when an untrained mode was performed. In future work, we will continue to improve the robustness of untrained ambulation modes on various terrains. Then, the model will be used in the real-time update of control parameters to generate a normal gait similar to that in training datasets.</p>
<p>The proposed DNN model outperformed general machine learning-based algorithms (see the <xref ref-type="supplementary-material" rid="SM4">Supplementary Document S2</xref>). However, obviously, the performance of machine learning algorithms depends on model parameters as DNN models do; a state-of-the-art machine learning method may outperform the proposed DNN model. Despite this limitation, this work demonstrated the feasibility of device-agnostic gait phase prediction and evaluation could be possible by analyzing the history of the sensor data commonly available on powered lower-limb assistive devices.</p></sec>
<sec sec-type="conclusions" id="s5">
<title>5. Conclusion</title>
<p>In this study, we propose a gait phase prediction method using a DNN. The predictions are based on a set of sensor data commonly available on powered lower-limb assistive devices. The model was trained using benchmark datasets containing gait data of intact-limb individuals and applied to evaluate the performance of a powered prosthetic leg. The model successfully predicted the gait phase of individuals with transfemoral amputation using a powered lower-limb prosthesis and provided information on the differences between intact limb individuals from the benchmark datasets.</p>
<p>Hypothesis (i) was partially confirmed because performance may depend on the characteristics of the sensors and the amount of data used for training. In addition, the proposed model did not require tuning to evaluate the gait of transfemoral amputee patients wearing a powered prosthetic leg. Furthermore, it provided information on the differences between the actual gait and testing data, confirming Hypothesis (ii).</p></sec>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="supplementary-material" rid="s11">Supplementary material</xref>, further inquiries can be directed to the corresponding author/s.</p></sec>
<sec sec-type="ethics-statement" id="s7">
<title>Ethics statement</title>
<p>The studies involving human participants were reviewed and approved by Northwestern University Institutional Review Board. The patients/participants provided their written informed consent to participate in this study.</p></sec>
<sec sec-type="author-contributions" id="s8">
<title>Author contributions</title>
<p>MK designed the study, performed data collection, analyzed data, and wrote the first draft. LH supervised and administered the project and revised the manuscript. Both authors contributed to the article and approved the submitted version.</p></sec>
</body>
<back>
<sec sec-type="funding-information" id="s9">
<title>Funding</title>
<p>This work was supported by the National Institutes of Health (2R01HD079428-05) and the MSL Renewed Hope Foundation.</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="s10">
<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>
<sec sec-type="supplementary-material" id="s11">
<title>Supplementary material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fnbot.2022.1064313/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fnbot.2022.1064313/full#supplementary-material</ext-link></p>
<supplementary-material xlink:href="Video_1.MP4" id="SM1" mimetype="video/mp4" xmlns:xlink="http://www.w3.org/1999/xlink">
<label>Supplementary Video 1</label>
<caption><p>S2 Gait phase extraction.</p></caption> </supplementary-material>
<supplementary-material xlink:href="Video_2.MP4" id="SM2" mimetype="video/mp4" xmlns:xlink="http://www.w3.org/1999/xlink">
<label>Supplementary Video 2</label>
<caption><p>S3 Real-time gait phase prediction.</p></caption> </supplementary-material>
<supplementary-material xlink:href="Data_Sheet_1.PDF" id="SM3" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink">
<label>Supplementary Document 1</label>
<caption><p>S1 Performance comparison between prediction of 1-D and 2-D gait phase variables.</p></caption> </supplementary-material>
<supplementary-material xlink:href="Data_Sheet_2.pdf" id="SM4" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink">
<label>Supplementary Document 2</label>
<caption><p>S4 Performance comparison with general machine learning methods.</p></caption> </supplementary-material></sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Agostini</surname> <given-names>V.</given-names></name> <name><surname>Balestra</surname> <given-names>G.</given-names></name> <name><surname>Knaflitz</surname> <given-names>M.</given-names></name></person-group> (<year>2013</year>). <article-title>Segmentation and classification of gait cycles</article-title>. <source>IEEE Trans. Neural Syst. Rehabil. Eng.</source> <volume>22</volume>, <fpage>946</fpage>&#x02013;<lpage>952</lpage>. <pub-id pub-id-type="doi">10.1109/TNSRE.2013.2291907</pub-id><pub-id pub-id-type="pmid">24760911</pub-id></citation></ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Azocar</surname> <given-names>A. F.</given-names></name> <name><surname>Mooney</surname> <given-names>L. M.</given-names></name> <name><surname>Duval</surname> <given-names>J.-F.</given-names></name> <name><surname>Simon</surname> <given-names>A. M.</given-names></name> <name><surname>Hargrove</surname> <given-names>L. J.</given-names></name> <name><surname>Rouse</surname> <given-names>E. J.</given-names></name></person-group> (<year>2020</year>). <article-title>Design and clinical implementation of an open-source bionic leg</article-title>. <source>Nat. Biomed. Eng.</source> <volume>4</volume>, <fpage>941</fpage>&#x02013;<lpage>953</lpage>. <pub-id pub-id-type="doi">10.1038/s41551-020-00619-3</pub-id><pub-id pub-id-type="pmid">33020601</pub-id></citation></ref>
<ref id="B3">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Brakel</surname> <given-names>J. v.</given-names></name></person-group> (<year>2014</year>). <source>Robust Peak Detection Algorithm using z-Scores</source>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://stackoverflow.com/questions/22583391/peak-signal-detection-in-realtime-timeseries-data/22640362&#x00023;22640362">https://stackoverflow.com/questions/22583391/peak-signal-detection-in-realtime-timeseries-data/22640362&#x00023;22640362</ext-link> (accessed October 07, 2022).<pub-id pub-id-type="pmid">32003771</pub-id></citation></ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Camargo</surname> <given-names>J.</given-names></name> <name><surname>Ramanathan</surname> <given-names>A.</given-names></name> <name><surname>Flanagan</surname> <given-names>W.</given-names></name> <name><surname>Young</surname> <given-names>A.</given-names></name></person-group> (<year>2021</year>). <article-title>A comprehensive, open-source dataset of lower limb biomechanics in multiple conditions of stairs, ramps, and level-ground ambulation and transitions</article-title>. <source>J. Biomech.</source> <volume>119</volume>:<fpage>110320</fpage>. <pub-id pub-id-type="doi">10.1016/j.jbiomech.2021.110320</pub-id><pub-id pub-id-type="pmid">33677231</pub-id></citation></ref>
<ref id="B5">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>Y.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Su</surname> <given-names>H.</given-names></name> <name><surname>Zhang</surname> <given-names>D.</given-names></name> <name><surname>Yu</surname> <given-names>H.</given-names></name></person-group> (<year>2022</year>). <article-title>Design of a bio-inspired gait phase decoder based on temporal convolution network architecture with contralateral surface electromyography toward hip prosthesis control</article-title>. <source>Front. Neurorobot.</source> <volume>16</volume>:<fpage>791169</fpage>. <pub-id pub-id-type="doi">10.3389/fnbot.2022.791169</pub-id><pub-id pub-id-type="pmid">35615341</pub-id></citation></ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fluit</surname> <given-names>R.</given-names></name> <name><surname>Prinsen</surname> <given-names>E. C.</given-names></name> <name><surname>Wang</surname> <given-names>S.</given-names></name> <name><surname>Van Der Kooij</surname> <given-names>H.</given-names></name></person-group> (<year>2019</year>). <article-title>A comparison of control strategies in commercial and research knee prostheses</article-title>. <source>IEEE Trans. Biomed. Eng.</source> <volume>67</volume>, <fpage>277</fpage>&#x02013;<lpage>290</lpage>. <pub-id pub-id-type="doi">10.1109/TBME.2019.2912466</pub-id><pub-id pub-id-type="pmid">31021749</pub-id></citation></ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Galle</surname> <given-names>S.</given-names></name> <name><surname>Malcolm</surname> <given-names>P.</given-names></name> <name><surname>Collins</surname> <given-names>S. H.</given-names></name> <name><surname>De Clercq</surname> <given-names>D.</given-names></name></person-group> (<year>2017</year>). <article-title>Reducing the metabolic cost of walking with an ankle exoskeleton: interaction between actuation timing and power</article-title>. <source>J. Neuroeng. Rehabil.</source> <volume>14</volume>:<fpage>35</fpage>. <pub-id pub-id-type="doi">10.1186/s12984-017-0235-0</pub-id><pub-id pub-id-type="pmid">28449684</pub-id></citation></ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Han</surname> <given-names>Y. C.</given-names></name> <name><surname>Wong</surname> <given-names>K. I.</given-names></name> <name><surname>Murray</surname> <given-names>I.</given-names></name></person-group> (<year>2019</year>). <article-title>Gait phase detection for normal and abnormal gaits using IMU</article-title>. <source>IEEE Sens. J.</source> <volume>19</volume>, <fpage>3439</fpage>&#x02013;<lpage>3448</lpage>. <pub-id pub-id-type="doi">10.1109/JSEN.2019.2894143</pub-id><pub-id pub-id-type="pmid">31752136</pub-id></citation></ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hargrove</surname> <given-names>L. J.</given-names></name> <name><surname>Young</surname> <given-names>A. J.</given-names></name> <name><surname>Simon</surname> <given-names>A. M.</given-names></name> <name><surname>Fey</surname> <given-names>N. P.</given-names></name> <name><surname>Lipschutz</surname> <given-names>R. D.</given-names></name> <name><surname>Finucane</surname> <given-names>S. B.</given-names></name> <etal/></person-group>. (<year>2015</year>). <article-title>Intuitive control of a powered prosthetic leg during ambulation: a randomized clinical trial</article-title>. <source>JAMA</source> <volume>313</volume>, <fpage>2244</fpage>&#x02013;<lpage>2252</lpage>. <pub-id pub-id-type="doi">10.1001/jama.2015.4527</pub-id><pub-id pub-id-type="pmid">26057285</pub-id></citation></ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kang</surname> <given-names>I.</given-names></name> <name><surname>Kunapuli</surname> <given-names>P.</given-names></name> <name><surname>Young</surname> <given-names>A. J.</given-names></name></person-group> (<year>2019</year>). <article-title>Real-time neural network-based gait phase estimation using a robotic hip exoskeleton</article-title>. <source>IEEE Trans. Med. Robot. Bion.</source> <volume>2</volume>, <fpage>28</fpage>&#x02013;<lpage>37</lpage>. <pub-id pub-id-type="doi">10.1109/TMRB.2019.2961749</pub-id><pub-id pub-id-type="pmid">34616899</pub-id></citation></ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kang</surname> <given-names>I.</given-names></name> <name><surname>Molinaro</surname> <given-names>D. D.</given-names></name> <name><surname>Duggal</surname> <given-names>S.</given-names></name> <name><surname>Chen</surname> <given-names>Y.</given-names></name> <name><surname>Kunapuli</surname> <given-names>P.</given-names></name> <name><surname>Young</surname> <given-names>A. J.</given-names></name></person-group> (<year>2021</year>). <article-title>Real-time gait phase estimation for robotic hip exoskeleton control during multimodal locomotion</article-title>. <source>IEEE Robot. Automat. Lett.</source> <volume>6</volume>, <fpage>3491</fpage>&#x02013;<lpage>3497</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2021.3062562</pub-id><pub-id pub-id-type="pmid">34616899</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>M.</given-names></name> <name><surname>Hargrove</surname> <given-names>L. J.</given-names></name></person-group> (<year>2022</year>). <article-title>Deep-learning to map a benchmark dataset of non-amputee ambulation for controlling an open source bionic leg</article-title>. <source>IEEE Robot. Automat. Lett.</source> <volume>7</volume>, <fpage>10597</fpage>&#x02013;<lpage>10604</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2022.3194323</pub-id></citation>
</ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>M.</given-names></name> <name><surname>Simon</surname> <given-names>A. M.</given-names></name> <name><surname>Hargrove</surname> <given-names>L. J.</given-names></name></person-group> (<year>2022</year>). <article-title>Seamless and intuitive control of a powered prosthetic leg using deep neural network for transfemoral amputees</article-title>. <source>Wear. Technol.</source> <volume>3</volume>:<fpage>e24</fpage>. <pub-id pub-id-type="doi">10.1017/wtc.2022.19</pub-id></citation>
</ref>
<ref id="B14">
<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>H. J.</given-names></name> <name><surname>Veltink</surname> <given-names>P. H.</given-names></name></person-group> (<year>2010</year>). <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> <volume>32</volume>, <fpage>287</fpage>&#x02013;<lpage>297</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="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lawson</surname> <given-names>B. E.</given-names></name> <name><surname>Mitchell</surname> <given-names>J.</given-names></name> <name><surname>Truex</surname> <given-names>D.</given-names></name> <name><surname>Shultz</surname> <given-names>A.</given-names></name> <name><surname>Ledoux</surname> <given-names>E.</given-names></name> <name><surname>Goldfarb</surname> <given-names>M.</given-names></name></person-group> (<year>2014</year>). <article-title>A robotic leg prosthesis: design, control, and implementation</article-title>. <source>IEEE Robot. Automat. Mag.</source> <volume>21</volume>, <fpage>70</fpage>&#x02013;<lpage>81</lpage>. <pub-id pub-id-type="doi">10.1109/MRA.2014.2360303</pub-id></citation>
</ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>J.</given-names></name> <name><surname>Hong</surname> <given-names>W.</given-names></name> <name><surname>Hur</surname> <given-names>P.</given-names></name></person-group> (<year>2021</year>). <article-title>Continuous gait phase estimation using LSTM for robotic transfemoral prosthesis across walking speeds</article-title>. <source>IEEE Trans. Neural Syst. Rehabil. Eng.</source> <volume>29</volume>, <fpage>1470</fpage>&#x02013;<lpage>1477</lpage>. <pub-id pub-id-type="doi">10.1109/TNSRE.2021.3098689</pub-id><pub-id pub-id-type="pmid">34283718</pub-id></citation></ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Livolsi</surname> <given-names>C.</given-names></name> <name><surname>Conti</surname> <given-names>R.</given-names></name> <name><surname>Giovacchini</surname> <given-names>F.</given-names></name> <name><surname>Vitiello</surname> <given-names>N.</given-names></name> <name><surname>Crea</surname> <given-names>S.</given-names></name></person-group> (<year>2021</year>). <article-title>A novel wavelet-based gait segmentation method for a portable hip exoskeleton</article-title>. <source>IEEE Trans. Robot.</source> <volume>38</volume>, <fpage>1503</fpage>&#x02013;<lpage>1517</lpage>. <pub-id pub-id-type="doi">10.1109/TRO.2021.3122975</pub-id></citation>
</ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Maqbool</surname> <given-names>H. F.</given-names></name> <name><surname>Husman</surname> <given-names>M. A. B.</given-names></name> <name><surname>Awad</surname> <given-names>M. I.</given-names></name> <name><surname>Abouhossein</surname> <given-names>A.</given-names></name> <name><surname>Iqbal</surname> <given-names>N.</given-names></name> <name><surname>Dehghani-Sanij</surname> <given-names>A. A.</given-names></name></person-group> (<year>2016</year>). <article-title>A real-time gait event detection for lower limb prosthesis control and evaluation</article-title>. <source>IEEE Trans. Neural Syst. Rehabil. Eng.</source> <volume>25</volume>, <fpage>1500</fpage>&#x02013;<lpage>1509</lpage>. <pub-id pub-id-type="doi">10.1109/TNSRE.2016.2636367</pub-id><pub-id pub-id-type="pmid">28114026</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Quintero</surname> <given-names>D.</given-names></name> <name><surname>Lambert</surname> <given-names>D. J.</given-names></name> <name><surname>Villarreal</surname> <given-names>D. J.</given-names></name> <name><surname>Gregg</surname> <given-names>R. D.</given-names></name></person-group> (<year>2017</year>). <article-title>&#x0201C;Real-time continuous gait phase and speed estimation from a single sensor,&#x0201D;</article-title> in <source>2017 IEEE Conference on Control Technology and Applications (CCTA)</source> (<publisher-loc>Kohala Coast</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>847</fpage>&#x02013;<lpage>852</lpage>.<pub-id pub-id-type="pmid">30148285</pub-id></citation></ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Quintero</surname> <given-names>D.</given-names></name> <name><surname>Villarreal</surname> <given-names>D. J.</given-names></name> <name><surname>Lambert</surname> <given-names>D. J.</given-names></name> <name><surname>Kapp</surname> <given-names>S.</given-names></name> <name><surname>Gregg</surname> <given-names>R. D.</given-names></name></person-group> (<year>2018</year>). <article-title>Continuous-phase control of a powered knee&#x02013;ankle prosthesis: amputee experiments across speeds and inclines</article-title>. <source>IIEEE Trans. Robot.</source> <volume>34</volume>, <fpage>686</fpage>&#x02013;<lpage>701</lpage>. <pub-id pub-id-type="doi">10.1109/TRO.2018.2794536</pub-id><pub-id pub-id-type="pmid">30008623</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Reznick</surname> <given-names>E.</given-names></name> <name><surname>Embry</surname> <given-names>K. R.</given-names></name> <name><surname>Neuman</surname> <given-names>R.</given-names></name> <name><surname>Bol&#x000ED;var-Nieto</surname> <given-names>E.</given-names></name> <name><surname>Fey</surname> <given-names>N. P.</given-names></name> <name><surname>Gregg</surname> <given-names>R. D.</given-names></name></person-group> (<year>2021</year>). <article-title>Lower-limb kinematics and kinetics during continuously varying human locomotion</article-title>. <source>Sci. Data</source> <volume>8</volume>, <fpage>1</fpage>&#x02013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.1038/s41597-021-01057-9</pub-id><pub-id pub-id-type="pmid">34711856</pub-id></citation></ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Seo</surname> <given-names>K.</given-names></name> <name><surname>Park</surname> <given-names>Y. J.</given-names></name> <name><surname>Lee</surname> <given-names>J.</given-names></name> <name><surname>Hyung</surname> <given-names>S.</given-names></name> <name><surname>Lee</surname> <given-names>M.</given-names></name> <name><surname>Kim</surname> <given-names>J.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>&#x0201C;RNN-based on-line continuous gait phase estimation from shank-mounted IMUS to control ankle exoskeletons,&#x0201D;</article-title> in <source>2019 IEEE 16th International Conference on Rehabilitation Robotics (ICORR)</source> (<publisher-loc>Toronto, ON</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>809</fpage>&#x02013;<lpage>815</lpage>. <pub-id pub-id-type="doi">10.1109/ICORR.2019.8779554</pub-id><pub-id pub-id-type="pmid">31374730</pub-id></citation></ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Simon</surname> <given-names>A. M.</given-names></name> <name><surname>Ingraham</surname> <given-names>K. A.</given-names></name> <name><surname>Fey</surname> <given-names>N. P.</given-names></name> <name><surname>Finucane</surname> <given-names>S. B.</given-names></name> <name><surname>Lipschutz</surname> <given-names>R. D.</given-names></name> <name><surname>Young</surname> <given-names>A. J.</given-names></name> <etal/></person-group>. (<year>2014</year>). <article-title>Configuring a powered knee and ankle prosthesis for transfemoral amputees within five specific ambulation modes</article-title>. <source>PLoS ONE</source> <volume>9</volume>:<fpage>e99387</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0099387</pub-id><pub-id pub-id-type="pmid">24914674</pub-id></citation></ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Weigand</surname> <given-names>F.</given-names></name> <name><surname>Zeiss</surname> <given-names>J.</given-names></name> <name><surname>Grimmer</surname> <given-names>M.</given-names></name> <name><surname>Konigorski</surname> <given-names>U.</given-names></name></person-group> (<year>2020</year>). <article-title>A novel approach for gait phase estimation for different locomotion modes using kinematic shank information</article-title>. <source>IFAC PapersOnLine</source> <volume>53</volume>, <fpage>8697</fpage>&#x02013;<lpage>8703</lpage>. <pub-id pub-id-type="doi">10.1016/j.ifacol.2020.12.287</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yao</surname> <given-names>T.</given-names></name> <name><surname>Gao</surname> <given-names>F.</given-names></name> <name><surname>Zhang</surname> <given-names>Q.</given-names></name> <name><surname>Ma</surname> <given-names>Y.</given-names></name></person-group> (<year>2021</year>). <article-title>Multi-feature gait recognition with DNN based on sEMG signals</article-title>. <source>Math. Biosci. Eng.</source> <volume>18</volume>, <fpage>3521</fpage>&#x02013;<lpage>3542</lpage>. <pub-id pub-id-type="doi">10.3934/mbe.2021177</pub-id><pub-id pub-id-type="pmid">34198399</pub-id></citation></ref>
</ref-list> 
</back>
</article>