<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Bioeng. Biotechnol.</journal-id>
<journal-title>Frontiers in Bioengineering and Biotechnology</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Bioeng. Biotechnol.</abbrev-journal-title>
<issn pub-type="epub">2296-4185</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1244550</article-id>
<article-id pub-id-type="doi">10.3389/fbioe.2023.1244550</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Bioengineering and Biotechnology</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A rehabilitation robot control framework with adaptation of training tasks and robotic assistance</article-title>
<alt-title alt-title-type="left-running-head">Xu et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fbioe.2023.1244550">10.3389/fbioe.2023.1244550</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Xu</surname>
<given-names>Jiajun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2328083/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Huang</surname>
<given-names>Kaizhen</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhang</surname>
<given-names>Tianyi</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Cao</surname>
<given-names>Kai</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ji</surname>
<given-names>Aihong</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/663667/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Xu</surname>
<given-names>Linsen</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Youfu</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>College of Mechanical and Electrical Engineering</institution>, <institution>Nanjing University of Aeronautics and Astronautics</institution>, <addr-line>Nanjing</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>College of Mechanical and Electrical Engineering</institution>, <institution>Hohai University</institution>, <addr-line>Changzhou</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Department of Mechanical Engineering</institution>, <institution>City University of Hong Kong</institution>, <addr-line>Kowloon</addr-line>, <country>Hong Kong SAR, China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2095893/overview">Tianzhe Bao</ext-link>, University of Health and Rehabilitation Sciences, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1517219/overview">Guozheng Xu</ext-link>, Nanjing University of Posts and Telecommunications, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1036096/overview">Dong Hyun Kim</ext-link>, Samsung Research, Republic of Korea</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Jiajun Xu, <email>xujiajun@nuaa.edu.cn</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>02</day>
<month>10</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1244550</elocation-id>
<history>
<date date-type="received">
<day>22</day>
<month>06</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>29</day>
<month>08</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Xu, Huang, Zhang, Cao, Ji, Xu and Li.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Xu, Huang, Zhang, Cao, Ji, Xu and Li</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>Robot-assisted rehabilitation has exhibited great potential to enhance the motor function of physically and neurologically impaired patients. State-of-the-art control strategies usually allow the rehabilitation robot to track the training task trajectory along with the impaired limb, and the robotic motion can be regulated through physical human-robot interaction for comfortable support and appropriate assistance level. However, it is hardly possible, especially for patients with severe motor disabilities, to continuously exert force to guide the robot to complete the prescribed training task. Conversely, reduced task difficulty cannot facilitate stimulating patients&#x2019; potential movement capabilities. Moreover, challenging more difficult tasks with minimal robotic assistance is usually ignored when subjects show improved performance. In this paper, a control framework is proposed to simultaneously adjust both the training task and robotic assistance according to the subjects&#x2019; performance, which can be estimated from the users&#x2019; electromyography signals. Concretely, a trajectory deformation algorithm is developed to generate smooth and compliant task motion while responding to pHRI. An assist-as-needed (ANN) controller along with a feedback gain modification algorithm is designed to promote patients&#x2019; active participation according to individual performance variance on completing the training task. The proposed control framework is validated using a lower extremity rehabilitation robot through experiments. The experimental results demonstrate that the control scheme can optimize the robotic assistance to complete the subject-adaptation training task with high efficiency.</p>
</abstract>
<kwd-group>
<kwd>rehabilitation robotics</kwd>
<kwd>human-robot interaction</kwd>
<kwd>biological signal</kwd>
<kwd>trajectory deformation</kwd>
<kwd>assist-as-needed control</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content>
</contract-sponsor>
<contract-sponsor id="cn002">Natural Science Foundation of Jiangsu Province<named-content content-type="fundref-id">10.13039/501100004608</named-content>
</contract-sponsor>
<contract-sponsor id="cn003">Fundamental Research Funds for the Central Universities<named-content content-type="fundref-id">10.13039/501100012226</named-content>
</contract-sponsor>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Biosensors and Biomolecular Electronics</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1 Introduction</title>
<p>Due to the rapidly increasing number of physically and neurologically impaired patients around the world, rehabilitation robots have been developed to assist in the therapeutic training of impaired limbs, which improves rehabilitation efficiency and saves human labor through highly autonomous assistance (<xref ref-type="bibr" rid="B23">Xu et al., 2020a</xref>; <xref ref-type="bibr" rid="B22">Xu et al., 2020b</xref>). The control strategy of a rehabilitation robot significantly influences rehabilitation efficacy. Most clinical cases enable physiotherapists to feed the task trajectories into the robot controller before rehabilitation starts. However, patients can only modify the robot&#x2019;s current trajectory through physical human-robot interaction (pHRI) without affecting the future task trajectory. Particularly for patients with severe impairment, it is hardly possible to continuously exert adequate force to change the robot&#x2019;s movement trajectory for a period, and their recovery, comfort, and safety cannot be guaranteed accordingly. Therefore, online adaptation of desired trajectories to patients&#x2019; performance is indeed necessary. Dynamic movement primitive (DMP) (<xref ref-type="bibr" rid="B14">Schaal, 2006</xref>) and central pattern generator (CPG) (<xref ref-type="bibr" rid="B17">Sproewitz et al., 2008</xref>) are two common tools for trajectory generation, and they have been applied in rehabilitation robotics research (<xref ref-type="bibr" rid="B10">Luo et al., 2018</xref>; <xref ref-type="bibr" rid="B25">Yuan et al., 2020</xref>). In (<xref ref-type="bibr" rid="B21">Xu et al., 2023</xref>), coupled cooperative primitives are formulated, where pHRI is expressed as a first-order impedance model and assumed as a modulation term in DMP. The problems existing in tuning the impedance model parameters have been explained above. The human-robot interaction energy is combined with adaptive CPG dynamics to plan gaits for exoskeletons (<xref ref-type="bibr" rid="B15">Sharifi et al., 2021</xref>); however, this introduces many uncertain parameters, the resolution of which is time-consuming. In addition, it is found that the robot&#x2019;s desired trajectory can be deformed in response to subject actions (<xref ref-type="bibr" rid="B6">Lasota and Shah, 2015</xref>), but it is unclear which deformed trajectory is optimal. The robot&#x2019;s future desired trajectory can be modified, and the optimal solution of the trajectory deformation is derived by detecting the human-robot interaction force (<xref ref-type="bibr" rid="B9">Losey and O&#x2019;Malley, 2018</xref>). Similarly, trajectory deformation is applied to robotic rehabilitation, where a position controller is adopted to track the deformed trajectory, ignoring the rehabilitation effectiveness of the AAN training (<xref ref-type="bibr" rid="B26">Zhou et al., 2021</xref>). Apart from movement trajectory planning, users&#x2019; voluntary participation should be stimulated by adjusting the robotic assistance.</p>
<p>Additionally, passive control is usually employed to drive impaired limbs to move along the predefined task trajectory, where the active participation of patients cannot be encouraged to stimulate motor function recovery (<xref ref-type="bibr" rid="B3">Hogan et al., 2006</xref>). To overcome this problem, the assist-as-needed (AAN) control strategy is introduced to adapt the robotic assistance to the patients&#x2019; performance (<xref ref-type="bibr" rid="B11">Marchal-Crespo and Reinkensmeyer, 2009</xref>). An impedance/admittance control scheme is a common solution for addressing the physical relationship between humans and robots. An impedance controller based on a virtual tunnel regulates the robotic assistance while responding to the tracking error between the current trajectory and the desired trajectory (<xref ref-type="bibr" rid="B5">Krebs et al., 2003</xref>). A torque tracking impedance controller is proposed for lower limb rehabilitation robotics to generate assistance while ensuring acceptable trajectory deviation (<xref ref-type="bibr" rid="B16">Shen et al., 2018</xref>). An admittance control incorporating electromyography (EMG) signals is developed to improve human-robot synchronization (<xref ref-type="bibr" rid="B27">Zhuang et al., 2019</xref>). Both impedance and admittance control can regulate the relationship between the trajectory deviation and interaction effect by tuning the inertia-damping-stiffness parameters. In fact, different patients or even the same patient at different rehabilitation stages can exhibit varying motor capabilities; so, accurate determination of these parameters is essential to realize AAN training for different subjects and tasks. Furthermore, as for practical application in rehabilitation, dynamic human force and uncertain external disturbances often occur and cannot be measured intuitively and accurately. Both inappropriate impedance/admittance parameters and unknown dynamic interactive environments can lead to unstable and oscillating robot behaviors, which may decrease motion smoothness and even threaten human safety (<xref ref-type="bibr" rid="B2">Ferraguti et al., 2019</xref>). Furthermore, current AAN controllers are designed to provide only the necessary robotic assistance to complete the prescribed training task, which is not suitable for encouraging patients to challenge themselves with more difficult tasks and stimulate their potential motor capabilities for improved rehabilitation efficacy.</p>
<p>In this article, a control framework is proposed for the simultaneous adaptation of training tasks and robotic assistance according to patient performance. The main contributions of this article are listed as follows.<list list-type="simple">
<list-item>
<p>(1) A trajectory deformation algorithm is developed to plan the robot&#x2019;s desired trajectory as the high-level controller, where the continuity, smoothness, and compliance of the robotic motion are achieved in response to the subject&#x2019;s biological performance.</p>
</list-item>
<list-item>
<p>(2) An AAN control strategy with a feedback gain modification algorithm is employed to regulate the robotic assistance as the low-level controller. The controller is designed to encourage active participation by learning the patient&#x2019;s residual motor capabilities and accurately tracking the deformed trajectory.</p>
</list-item>
<list-item>
<p>(3) Both the training task and robotic assistance adaptation algorithms are integrated into a framework to realize human-in-the-loop optimization, and this control framework is validated using a lower extremity rehabilitation robot.</p>
</list-item>
</list>
</p>
<p>The remainder of the article is organized as follows. The biological signal processing is described in <xref ref-type="sec" rid="s2">Section 2</xref>. The trajectory generation is presented in <xref ref-type="sec" rid="s3">Section 3</xref>, and the subject-adaptive AAN controller is explained in <xref ref-type="sec" rid="s4">Section 4</xref>. The proposed control framework is verified through experiments in <xref ref-type="sec" rid="s5">Section 5</xref>. Finally, this study is concluded in <xref ref-type="sec" rid="s6">Section 6</xref>.</p>
<p>The schematic view of the proposed control framework is presented in <xref ref-type="fig" rid="F1">Figure 1</xref>, and the detailed explanation is elaborated in the following sections.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Control framework of simultaneous adaptation of training tasks and robotic assistance.</p>
</caption>
<graphic xlink:href="fbioe-11-1244550-g001.tif"/>
</fig>
</sec>
<sec id="s2">
<title>2 Biological signal processing</title>
<p>For rehabilitation, robotic motions should be regulated by adapting to the user&#x2019;s muscle strength, which can be derived from the human skin surface EMG signals. In this section, the EMG-driven musculoskeletal model for torque estimation is presented. EMG sensors (ETS FreeEMG300) are used to measure EMG signals, and the electrodes are attached to the relevant skin surface. Specifically, in the application of lower extremity rehabilitation, six electrodes are attached to gluteus maximus, semimembranosus, biceps femoris iliopsoas, sartorius, and rectus femoris for hip flexion/extension; six electrodes are attached to rectus femoris, vastus medialis, vastus lateralis, biceps femoris, semimembranosus, and semitendinosus for knee flexion/extension. The raw EMG signals are sampled at 1,024&#xa0;Hz, bandpass filtered from 10&#xa0;Hz to 500&#xa0;Hz, and then notch filtered at 50&#xa0;Hz to remove noise. The muscle activation is calculated by the neural activation function as<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>u</mml:mi>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mi>A</mml:mi>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the post-processed EMG value, <italic>R</italic> is the maximum voluntary isometric contraction, and <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is a nonlinear shape factor, defining the curvature of the function.</p>
<p>Subsequently, a Hill-typed muscle model is constructed to describe the relationship between muscle activation and muscle force (<xref ref-type="bibr" rid="B24">Yao et al., 2018</xref>). The force produced by the muscle-tendon unit <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is given by the following set of equations:<disp-formula id="e2">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mi mathvariant="italic">cos</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x2205;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi mathvariant="italic">cos</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x2205;</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
<disp-formula id="e3">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mi mathvariant="italic">cos</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x2205;</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>where <inline-formula id="inf4">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf5">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>m</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf6">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf7">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represent the force generated by the muscle-tendon unit, the tendon force, contractile element, and passive element, respectively; <inline-formula id="inf8">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the length of the muscle tendon; <inline-formula id="inf9">
<mml:math id="m12">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a scaling factor; <inline-formula id="inf10">
<mml:math id="m13">
<mml:mrow>
<mml:mo>&#x2205;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is the pinnation angle that is given by<disp-formula id="e4">
<mml:math id="m14">
<mml:mrow>
<mml:mo>&#x2205;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>arcsin</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>sin</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mo>&#x2061;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2205;</mml:mo>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>where <inline-formula id="inf11">
<mml:math id="m15">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2205;</mml:mo>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the optimal pinnation angle and <inline-formula id="inf12">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the optimal length of muscle fiber. The scale factor <inline-formula id="inf13">
<mml:math id="m17">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> will be used in the optimization process. The human joint torque was produced by the coupling function of both the agonistic and antagonistic muscles, that is,<disp-formula id="e5">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>J</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>L</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>where <inline-formula id="inf14">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf15">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> denote the torques exerted by the agonistic and antagonistic muscles, respectively. <inline-formula id="inf16">
<mml:math id="m21">
<mml:mrow>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf17">
<mml:math id="m22">
<mml:mrow>
<mml:msubsup>
<mml:mi>F</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the muscle-tendon forces, <inline-formula id="inf18">
<mml:math id="m23">
<mml:mrow>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf19">
<mml:math id="m24">
<mml:mrow>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mi>j</mml:mi>
<mml:mi>m</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are the muscle moment arms of the muscle-tendon unit and can be estimated by determining the muscle-tendon length <inline-formula id="inf20">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and joint angle <italic>q</italic>; that is, <inline-formula id="inf21">
<mml:math id="m26">
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mi>m</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula>. The parameters <italic>J</italic> and <italic>L</italic> denote the number of agonistic and antagonistic muscles acting on the joint, respectively.</p>
<p>In the proposed EMG-driven musculoskeletal model, it is essential to determine the model parameters, i.e., the shape factor <inline-formula id="inf22">
<mml:math id="m27">
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and scaling factor <inline-formula id="inf23">
<mml:math id="m28">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. Furthermore, the human joint torque during the exercise could be directly detected via AnyBody Modeling System (AMS) (<xref ref-type="bibr" rid="B1">Damsgaard et al., 2006</xref>). However, the torque generated by AMS is not continuous and realistic. The real joint torque can be measured through calibration experiments with EMG signals, which are quite complex and time-consuming. Therefore, it is proposed that the optimization is undertaken to adjust the EMG-driven musculoskeletal model parameters to minimize the difference between the torque estimated by the EMG signals <inline-formula id="inf24">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the torque detected via AMS <inline-formula id="inf25">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The optimization procedure is illustrated in <xref ref-type="fig" rid="F2">Figure 2</xref>. The processed EMG signals are converted to muscle activation using <xref ref-type="disp-formula" rid="e2">(2)</xref> including the uncertain shape factor <italic>A</italic>. Then the muscle contraction model (<xref ref-type="bibr" rid="B24">Yao et al., 2018</xref>) is established to calculate the muscle-tendon force and the muscle torque through Equations <xref ref-type="disp-formula" rid="e2">2</xref>&#x2013;<xref ref-type="disp-formula" rid="e5">5</xref>, where the muscle-tendon length <inline-formula id="inf26">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the moment arm <inline-formula id="inf27">
<mml:math id="m32">
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mi>m</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> can be obtained from AMS. On the other hand, certain driving motion is loaded to AMS and the human joint torque <inline-formula id="inf28">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be achieved. The optimization aims to shrink the difference between <inline-formula id="inf29">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf30">
<mml:math id="m35">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Select the parameters to be optimized as <inline-formula id="inf31">
<mml:math id="m36">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mi>A</mml:mi>
</mml:mtd>
<mml:mtd>
<mml:mi>&#x3b1;</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. The optimization problem is defined as (6).<disp-formula id="e6">
<mml:math id="m37">
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>where <italic>N</italic> is the number of samples. The Broyden&#x2013;Fletcher&#x2013;Goldfarb&#x2013;Shanno algorithm (<xref ref-type="bibr" rid="B13">Pe&#xf1;a et al., 2019</xref>), together with a penalty barrier algorithm, is employed to find the optimal parameters.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Optimization procedure of pHRI estimated from biological signals.</p>
</caption>
<graphic xlink:href="fbioe-11-1244550-g002.tif"/>
</fig>
</sec>
<sec id="s3">
<title>3 Trajectory adaptation</title>
<p>Prior to operating the rehabilitation robot, the training task needs to be predetermined by feeding the reference trajectory (task trajectory) into the robot controller, which is usually the natural gait trajectory of healthy subjects. The patient is then encouraged to complete the task with robotic assistance. Once the reference trajectory is preset and fed into the robot controller, however, it is not reasonable to maintain the task difficulty invariant throughout the rehabilitation procedure. In order to ensure the smoothness and compliance of the robotic motion, the robot&#x2019;s desired trajectory should be modified intuitively and continuously in response to the human force (<xref ref-type="bibr" rid="B9">Losey and O&#x2019;Malley, 2018</xref>). In this regard, the physical human-robot interaction (pHRI) should alter not only the robot&#x2019;s current state but also its future behavior. In this section, a trajectory deformation algorithm is studied to explore the pHRI influence on the training task, and the modification is made on the original reference trajectory, generating the desired trajectory for the further controller design.</p>
<p>The reference trajectory (predetermined before the training) is defined as <inline-formula id="inf32">
<mml:math id="m38">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, and the desired trajectory (altered during the training) is defined as <inline-formula id="inf33">
<mml:math id="m39">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. When the human-robot interaction torque <inline-formula id="inf34">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is exerted on the robotic joints at time <inline-formula id="inf35">
<mml:math id="m41">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the original desired trajectory <inline-formula id="inf36">
<mml:math id="m42">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> starts to deform; such trajectory deformation ends at time <inline-formula id="inf37">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and accordingly, the duration of the trajectory deformation is <inline-formula id="inf38">
<mml:math id="m44">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Moreover, the deformed trajectory between <inline-formula id="inf39">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf40">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be evenly divided into an arbitrary number of waypoints, and the time interval between the consecutive waypoints is <inline-formula id="inf41">
<mml:math id="m47">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. Concisely, the deformation process can be expressed as <inline-formula id="inf42">
<mml:math id="m48">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf43">
<mml:math id="m49">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and a diagram of the trajectory deformation is presented as <xref ref-type="fig" rid="F3">Figure 3</xref>. It can be seen that both the magnitude and direction of the human-robot interaction torque influence the shape of the deformed trajectory. The larger the force exerted on the robot, the greater the deviation between the original and deformed trajectories; conversely, smaller human force results in smaller trajectory change. Besides, human force with opposite direction can lead to alteration in the deformation direction. So, both the amplitude and direction of the trajectory deformation should be taken into consideration while proposing the trajectory adaptation method.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Diagram of the trajectory deformation.</p>
</caption>
<graphic xlink:href="fbioe-11-1244550-g003.tif"/>
</fig>
<p>Apparently, deformed from the reference trajectory may follow different curves to shape <inline-formula id="inf45">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and there are many possible trajectory deformations. Constrained over the time interval <inline-formula id="inf46">
<mml:math id="m52">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf47">
<mml:math id="m53">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is defined as the deformation curve function, in which <inline-formula id="inf48">
<mml:math id="m54">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the deformation factor, and changing the value of <inline-formula id="inf49">
<mml:math id="m55">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> can derive different shapes of trajectories. When <inline-formula id="inf50">
<mml:math id="m56">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, the segment of the desired trajectory between times <inline-formula id="inf51">
<mml:math id="m57">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf52">
<mml:math id="m58">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is represented as<disp-formula id="equ1">
<mml:math id="m59">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>0</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m60">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>where <inline-formula id="inf53">
<mml:math id="m61">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> when <inline-formula id="inf54">
<mml:math id="m62">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf55">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is not defined outside this time interval. All other values of <inline-formula id="inf56">
<mml:math id="m64">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> refer to deformations of <inline-formula id="inf57">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. As shown in <xref ref-type="fig" rid="F3">Figure 3</xref>, in the time interval <inline-formula id="inf58">
<mml:math id="m66">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula>, the original trajectory <inline-formula id="inf59">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can be deformed to <inline-formula id="inf60">
<mml:math id="m68">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf61">
<mml:math id="m69">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>When the subject starts to exert force at time <inline-formula id="inf62">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the robot&#x2019;s desired trajectory is changed from <inline-formula id="inf63">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf64">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> when <inline-formula id="inf65">
<mml:math id="m73">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, which is defined as<disp-formula id="equ2">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="e8">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>Once <inline-formula id="inf66">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is determined, the robot&#x2019;s desired trajectory is updated as <inline-formula id="inf67">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. After time <inline-formula id="inf68">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the robot follows its reference trajectory <inline-formula id="inf69">
<mml:math id="m79">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> again.</p>
<p>Comparing (7) with <xref ref-type="disp-formula" rid="e8">(8)</xref>, the vital factor that causes the trajectory deformation can be formulated as a vector field function <inline-formula id="inf70">
<mml:math id="m80">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, which linearizes the dependency of <inline-formula id="inf71">
<mml:math id="m81">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> on the deformation factor <inline-formula id="inf72">
<mml:math id="m82">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, i.e.,<disp-formula id="e9">
<mml:math id="m83">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>The vector field function <inline-formula id="inf73">
<mml:math id="m84">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is distributed along <inline-formula id="inf74">
<mml:math id="m85">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and yields that <inline-formula id="inf75">
<mml:math id="m86">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>s</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>0</mml:mn>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf76">
<mml:math id="m87">
<mml:mrow>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, in particular, when <inline-formula id="inf77">
<mml:math id="m88">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf78">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. The determination of <inline-formula id="inf79">
<mml:math id="m90">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> should ensure the continuity, smoothness, and compliance of the deformed trajectory. Specifically, the transition from <inline-formula id="inf80">
<mml:math id="m91">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf81">
<mml:math id="m92">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and from <inline-formula id="inf82">
<mml:math id="m93">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf83">
<mml:math id="m94">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> should be as continuous as possible. Also, a minimum-jerk model (<xref ref-type="bibr" rid="B8">Li et al., 2017</xref>) is utilized to generate a smooth trajectory profile to guarantee patients&#x2019; comfort and security. The vector field function <inline-formula id="inf84">
<mml:math id="m95">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is highly correlated to the human-robot interaction torque <inline-formula id="inf85">
<mml:math id="m96">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and a cost function is designed and minimized to optimize the deformed trajectory for high compliance. The detailed explanation of determining the vector field function is presented in <xref ref-type="app" rid="app1">Appendix 1</xref>, and the resultant formulation of the vector field function is obtained as<disp-formula id="e10">
<mml:math id="m97">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>where<disp-formula id="e11">
<mml:math id="m98">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
<disp-formula id="e12">
<mml:math id="m99">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>The parameter <inline-formula id="inf86">
<mml:math id="m100">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e12">(12)</xref> is an identity matrix, where <inline-formula id="inf87">
<mml:math id="m101">
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the number of waypoints. The determination of the matrix <inline-formula id="inf88">
<mml:math id="m102">
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf89">
<mml:math id="m103">
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is introduced in <xref ref-type="app" rid="app1">Appendix 1</xref>. The parameter <inline-formula id="inf90">
<mml:math id="m104">
<mml:mrow>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> influences the shape of <inline-formula id="inf91">
<mml:math id="m105">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and it is formulated in <xref ref-type="disp-formula" rid="e11">(11)</xref>. The parameter <inline-formula id="inf92">
<mml:math id="m106">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e10">(10)</xref> is the prediction vector of the interaction torque, i.e., the future interaction torque can be formulated as <inline-formula id="inf93">
<mml:math id="m107">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, with <inline-formula id="inf94">
<mml:math id="m108">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> being the interaction torque applied at time <inline-formula id="inf95">
<mml:math id="m109">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The direction of the interaction torque is included in the prediction vector so that the proposed algorithm can address the magnitude and direction of the trajectory deformation well. Even so, when the human force direction is altered, the deformed trajectory is suggested to be recalculated with the updated prediction vector for delicate modulation of the training task. Besides, in robotics-assisted rehabilitation, the duration of pHRI is relatively long because the patient mostly tries to participate actively to guide the robot, which is different from the statement in (<xref ref-type="bibr" rid="B9">Losey and O&#x2019;Malley, 2018</xref>). The parameter <inline-formula id="inf96">
<mml:math id="m110">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e10">(10)</xref> denotes the assistance level, and it can be tuned to arbitrate between human and robot. When <inline-formula id="inf97">
<mml:math id="m111">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> increases, the induced trajectory deformations arbitrate toward the human, which means smaller input forces cause larger deformations; and <italic>vice versa</italic>. Herein, the assistance level is formulated as <inline-formula id="inf98">
<mml:math id="m112">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf99">
<mml:math id="m113">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the expected human joint torque to complete the task trajectory in the absence of robotic assistance, and it can be obtained from <xref ref-type="sec" rid="s2">Section 2</xref>.</p>
<p>Combining (9), (10), (11), and (12), the relationship between the vector field function and the interaction torque is clarified, and the deformed trajectory is thus obtained as<disp-formula id="e13">
<mml:math id="m114">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>After <inline-formula id="inf100">
<mml:math id="m115">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is derived from <xref ref-type="disp-formula" rid="e13">(13)</xref>, <inline-formula id="inf101">
<mml:math id="m116">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is updated to include <inline-formula id="inf102">
<mml:math id="m117">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the process iterates at the next trajectory deformation when pHRI occurs again.</p>
</sec>
<sec id="s4">
<title>4 Assist-as-needed controller</title>
<p>Based on the abovementioned trajectory generation scheme, an actuation controller needs to be designed to track the desired trajectory. More importantly, in response to various motor capabilities of different patients, a subject-adaptive controller is required to realize AAN training. In this section, an AAN control strategy along with a feedback gain modification algorithm is proposed to complete the training task motion and provide the minimum required assistance to encourage patients&#x2019; active engagement.</p>
<p>The robot dynamics in joint space can be presented as follows whilst considering pHRI.<disp-formula id="e14">
<mml:math id="m118">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>where <inline-formula id="inf103">
<mml:math id="m119">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> (<inline-formula id="inf104">
<mml:math id="m120">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the number of the robotic joints) is the position coordination of the robotic joints, and accordingly, <inline-formula id="inf105">
<mml:math id="m121">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf106">
<mml:math id="m122">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> denote the joint velocity and acceleration, respectively. The parameter <inline-formula id="inf107">
<mml:math id="m123">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the inertia matrix, <inline-formula id="inf108">
<mml:math id="m124">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the centripetal and Coriolis matrix, <inline-formula id="inf109">
<mml:math id="m125">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the gravity torque, <inline-formula id="inf110">
<mml:math id="m126">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the friction, <inline-formula id="inf111">
<mml:math id="m127">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the external disturbance, <inline-formula id="inf112">
<mml:math id="m128">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the robotic joint torque generated by the actuators, and <inline-formula id="inf113">
<mml:math id="m129">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the human-robot interaction torque.</p>
<p>Although the robot dynamics have been modeled as (14), it is impossible to accurately formulate disturbances that may decrease the compliance of robotic motion and the safety of pHRI. The total disturbances <inline-formula id="inf114">
<mml:math id="m130">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> include the estimation error of the human force (<inline-formula id="inf115">
<mml:math id="m131">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>), external disturbance (<inline-formula id="inf116">
<mml:math id="m132">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>) and unmodeled dynamics. So, the dynamics (14) can be rewritten as <disp-formula id="e15">
<mml:math id="m133">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#xa8;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>G</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>where <inline-formula id="inf117">
<mml:math id="m134">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf118">
<mml:math id="m135">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf119">
<mml:math id="m136">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>G</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf120">
<mml:math id="m137">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are the estimation of <inline-formula id="inf121">
<mml:math id="m138">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf122">
<mml:math id="m139">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf123">
<mml:math id="m140">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf124">
<mml:math id="m141">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, respectively; <inline-formula id="inf125">
<mml:math id="m142">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>n</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> denotes the total disturbances. The position tracking error is defined with respect to the desired trajectory as <inline-formula id="inf126">
<mml:math id="m143">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>q</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the sliding variables are defined as<disp-formula id="e16">
<mml:math id="m144">
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="normal">&#x39b;</mml:mi>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>where <inline-formula id="inf127">
<mml:math id="m145">
<mml:mrow>
<mml:mi mathvariant="normal">&#x39b;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a constant. In order to help subjects complete the desired tasks while providing the minimum required assistance, the AAN controller for the robotic actuation can be presented as<disp-formula id="e17">
<mml:math id="m146">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>e</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>G</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>where <inline-formula id="inf128">
<mml:math id="m147">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf129">
<mml:math id="m148">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf130">
<mml:math id="m149">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>G</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf131">
<mml:math id="m150">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>f</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> are the estimation of <inline-formula id="inf132">
<mml:math id="m151">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf133">
<mml:math id="m152">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf134">
<mml:math id="m153">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf135">
<mml:math id="m154">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, respectively, and <inline-formula id="inf136">
<mml:math id="m155">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is a positive-definite feedback gain. The selection of the parameter <inline-formula id="inf137">
<mml:math id="m156">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> will be elaborated in the subsequent feedback gain modification algorithm.</p>
<p>Through the stability analysis in <xref ref-type="app" rid="app1">Appendix 1</xref>, we can conclude that the proposed control system yields a tracking error with uniformly ultimately bounded stability. The ultimate bound on the tracking error <inline-formula id="inf138">
<mml:math id="m157">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> can be expressed as <inline-formula id="inf139">
<mml:math id="m158">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and its formulation is given in <xref ref-type="app" rid="app1">Appendix 1</xref>. Should <inline-formula id="inf140">
<mml:math id="m159">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x2192;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf141">
<mml:math id="m160">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x2192;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf142">
<mml:math id="m161">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2192;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, the appended analysis demonstrates that <inline-formula id="inf143">
<mml:math id="m162">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2192;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, and the system proves globally asymptotically stable. The inequality (39) concludes that the trajectory tracking error <inline-formula id="inf144">
<mml:math id="m163">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is uniformly bounded, and, more importantly, this bound can be explicitly calculated in the following. The Lyapunov function can be basically bounded as <inline-formula id="inf145">
<mml:math id="m164">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf146">
<mml:math id="m165">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2219;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf147">
<mml:math id="m166">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2219;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are certain functions and will be defined later. Then, the ultimate bound <inline-formula id="inf148">
<mml:math id="m167">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> on the tracking error <inline-formula id="inf149">
<mml:math id="m168">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> can be defined as<disp-formula id="e18">
<mml:math id="m169">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>where <inline-formula id="inf150">
<mml:math id="m170">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the limiting term that satisfies <inline-formula id="inf151">
<mml:math id="m171">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>&#x2200;</mml:mo>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Since the inertia matrix <inline-formula id="inf152">
<mml:math id="m172">
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is positive-definite and bounded, the subsequent inequality can be derived as<disp-formula id="e19">
<mml:math id="m173">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munder accentunder="true">
<mml:mi>M</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>where <inline-formula id="inf153">
<mml:math id="m174">
<mml:mrow>
<mml:munder accentunder="true">
<mml:mi>M</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf154">
<mml:math id="m175">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> are the minimal and maximal eigenvalues of the inertia matrix <inline-formula id="inf155">
<mml:math id="m176">
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. It should be noticed that the left and right sides of (40) correspond to <inline-formula id="inf156">
<mml:math id="m177">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf157">
<mml:math id="m178">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. By adopting the right side of (39) as the limiting term <inline-formula id="inf158">
<mml:math id="m179">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>l</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and substituting the inequality (42) into (41), the bound on the tracking error can be calculated as<disp-formula id="e20">
<mml:math id="m180">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>e</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:munder accentunder="true">
<mml:mi>M</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:msup>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msubsup>
<mml:munder accentunder="true">
<mml:mi>K</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:mi>D</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>Noticeably, the feedback gain <inline-formula id="inf159">
<mml:math id="m181">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is included in the formulation of the bound <inline-formula id="inf160">
<mml:math id="m182">
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which means that the bound on the allowable trajectory tracking error can be manipulated by directly varying the value of <inline-formula id="inf161">
<mml:math id="m183">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the amount of robotic assistance can be consequently adjusted. Although adequately large values of <inline-formula id="inf162">
<mml:math id="m184">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> results in minimal bound on tracking error, perfect tracking effect is not desirable to stimulate patients&#x2019; potential motor capabilities (<xref ref-type="bibr" rid="B12">Pehlivan et al., 2015</xref>). Appropriate allowable tracking error can facilitate improved rehabilitation efficacy, especially aiming to promote the patient&#x2019;s active participation. The increased or decreased value of <inline-formula id="inf163">
<mml:math id="m185">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is suitable in the following practical situations.</p>
<p>
<bold>
<italic>Situation 1:</italic>
</bold> When the patient with severe motor disability has difficulty in completing the training task or learning a motion, increasing the value of <inline-formula id="inf164">
<mml:math id="m186">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> leads to reduced allowable tracking error, and larger robotic actuation is provided for assistance.</p>
<p>
<bold>
<italic>Situation 2:</italic>
</bold> When the patient attempts to stimulate muscle strength to challenge themselves with more difficult tasks, decreasing the value of <inline-formula id="inf165">
<mml:math id="m187">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> leads to increased allowable tracking error, and smaller robotic actuation is provided to spare more space for the patient&#x2019;s effort.</p>
<p>Therefore, the selection of the feedback gain <inline-formula id="inf166">
<mml:math id="m188">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> plays an important role in addressing the trade-off between accurate trajectory tracking and sufficient participation encouragement. To solve this problem, a feedback gain modification algorithm is put forward to render patients complete and even challenge the task according to their residual motor capabilities and motion intention.</p>
<p>A parameter <inline-formula id="inf167">
<mml:math id="m189">
<mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is introduced to define the maximum allowable trajectory tracking error. The average tracking error in a certain task is recorded as <inline-formula id="inf168">
<mml:math id="m190">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> with the feedback gain <inline-formula id="inf169">
<mml:math id="m191">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which will be updated as <inline-formula id="inf170">
<mml:math id="m192">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in the next task based on the patient&#x2019;s performance. The performance metric is the human-robot interaction torque to evaluate voluntary movement ability. The muscle activation in the current task can be normalized as <inline-formula id="inf171">
<mml:math id="m193">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf172">
<mml:math id="m194">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the average interaction torque in the current task, and <inline-formula id="inf173">
<mml:math id="m195">
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> denotes the human&#x2019;s joint torque to complete the task in the absence of robotic assistance. Similarly, the human&#x2019;s performance in the prior task can be expressed as <inline-formula id="inf174">
<mml:math id="m196">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Comparison of the human&#x2019;s performance in the current task to the previous task is considered the variance tendency of the subject&#x2019;s motor capability. Concretely, if <inline-formula id="inf175">
<mml:math id="m197">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the patient shows a downward tendency in muscle strength stimulation, the future feedback gain <inline-formula id="inf176">
<mml:math id="m198">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> should be increased to meet <bold>
<italic>Situation 1</italic>
</bold>; otherwise, if <inline-formula id="inf177">
<mml:math id="m199">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the patient shows an upward tendency in rehabilitation efficacy, and the future feedback gain <inline-formula id="inf178">
<mml:math id="m200">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> should be decreased to meet <bold>
<italic>Situation 2</italic>
</bold>. The updating of the feedback gain occurs at the end of each task trajectory, and it conforms to the following law<disp-formula id="e21">
<mml:math id="m201">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>where <inline-formula id="inf179">
<mml:math id="m202">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the change rate and satisfies <inline-formula id="inf180">
<mml:math id="m203">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Specifically, <inline-formula id="inf181">
<mml:math id="m204">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1,0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> means decreasing the future feedback gain with respect to the current one, whereas <inline-formula id="inf182">
<mml:math id="m205">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> means increasing the tendency. The formulation of the change rate is defined as<disp-formula id="e22">
<mml:math id="m206">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msubsup>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mi>exp</mml:mi>
</mml:msubsup>
</mml:mfrac>
<mml:mo>&#x2219;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>n</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>where <inline-formula id="inf183">
<mml:math id="m207">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the nominal change rate and is predetermined as a constant to limit the maximal tracking error to less than <inline-formula id="inf184">
<mml:math id="m208">
<mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. The sign of <inline-formula id="inf185">
<mml:math id="m209">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> depends on the variance tendency of the subject&#x2019;s motor capability. For instance, if <inline-formula id="inf186">
<mml:math id="m210">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is larger than <inline-formula id="inf187">
<mml:math id="m211">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf188">
<mml:math id="m212">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1,0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the algorithm dictates that the subject has the potential to exhibit better performance in the next task, and the feedback gain decreases for larger error bound. Conversely, if <inline-formula id="inf189">
<mml:math id="m213">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is larger than <inline-formula id="inf190">
<mml:math id="m214">
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf191">
<mml:math id="m215">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the algorithm dictates that the subject fails to complete the current task with improved voluntary muscle strength, and the feedback gain increases for more assistance in the next task. The magnitude of <inline-formula id="inf192">
<mml:math id="m216">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is decided by both the maximum tracking error and the performance variance. </p>
<p>Combining the AAN controller (17) with the feedback gain modification algorithm (21) and (22), the control framework can provide a highly efficient and autonomous training strategy for robot-assisted rehabilitation.</p>
</sec>
<sec id="s5">
<title>5 Experiments</title>
<p>In order to validate the proposed control framework, the lower extremity rehabilitation robot mentioned in <xref ref-type="bibr" rid="B19">Xu et al. (2019)</xref>, <xref ref-type="bibr" rid="B20">Xu et al. (2021)</xref> was utilized to conduct a series of experiments. The experiments were carried out on three healthy subjects. All subjects were informed of the detailed operation procedures and potential risks and signed consent forms before participation. The experiments were approved by the ethics committee of Hefei Institutes of Physical Science, Chinese Academy of Sciences (approval number: IRB-2019-0018). Two DOFs of the robot, including hip flexion/extension and knee flexion/extension, were involved in the training. Before operation, the reference trajectories were prescribed by physiotherapists to ensure rhythmic and comfortable training motion, and they were then fed into the robot controller. During the training, the subjects were asked to track the reference trajectories with the assistance of the rehabilitation robot actuation. Once the interaction force exerted by the subjects was detected by sensors, the reference trajectory was deformed to generate another optimal desired trajectory, and the robot was controlled to cooperate with the subject to complete the modified task motion. It should be noted that the subjects were not allowed to voluntarily move in the opposite direction from the task trajectory for accurate calculation of the deformed trajectory and safety guarantee.</p>
<p>Three groups of experiments were performed for the three subjects, and three different reference trajectories were configured. The time interval between the consecutive waypoints was set at <inline-formula id="inf193">
<mml:math id="m217">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.01</mml:mn>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and the prediction vector of the interaction torque was set at <inline-formula id="inf194">
<mml:math id="m218">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mn>1</mml:mn>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>. The vector field function was updated four times for hip flexion, hip extension, knee flexion, and knee extension in one walking cycle, where the computation efficiency was adequate to ensure instantaneous and accurate trajectory deformation. The amount and variance of pHRI differed across the three subjects due to their individual motor capabilities and motion intentions. The experimental results are shown in <xref ref-type="fig" rid="F4">Figures 4</xref>&#x2013;<xref ref-type="fig" rid="F6">6</xref>. The subfigures A and B demonstrate the trajectory deformation and tracking of the hip and knee joint, respectively. The variance of the interaction torque at the hip and knee joints is illustrated in subfigure C, and the robotic actuation torque is presented in subfigure D. The experimental results indicate that the proposed trajectory generator can continuously produce a smooth and optimal desired trajectory once the subject exerts force on the robot. When the interaction torque disappears, the desired trajectory gradually converges back to the predetermined reference trajectory. In this regard, the shared control between the robot&#x2019;s desired trajectory and the human&#x2019;s voluntary effort is realized. Additionally, based on the proposed AAN controller, the actual trajectory output from the robot actuation can track the desired trajectory well.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Experimental results of subject 1. <bold>(A)</bold> Trajectory deformation and tracking of the hip joint. <bold>(B)</bold> Trajectory deformation and tracking of the knee joint. <bold>(C)</bold> Interaction torque at the hip and knee joints. <bold>(D)</bold> Actuation torque at the hip and knee joints.</p>
</caption>
<graphic xlink:href="fbioe-11-1244550-g004.tif"/>
</fig>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Experimental results of subject 2. <bold>(A)</bold> Trajectory deformation and tracking of the hip joint. <bold>(B)</bold> Trajectory deformation and tracking of the knee joint. <bold>(C)</bold> Interaction torque at the hip and knee joints. <bold>(D)</bold> Actuation torque at the hip and knee joints.</p>
</caption>
<graphic xlink:href="fbioe-11-1244550-g005.tif"/>
</fig>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Experimental results of subject 3. <bold>(A)</bold> Trajectory deformation and tracking of the hip joint. <bold>(B)</bold> Trajectory deformation and tracking of the knee joint. <bold>(C)</bold> Interaction torque at the hip and knee joints. <bold>(D)</bold> Actuation torque at the hip and knee joints.</p>
</caption>
<graphic xlink:href="fbioe-11-1244550-g006.tif"/>
</fig>
<p>In order to exhibit the control performance more intuitively, quantitative evaluation with three metrics was conducted. In terms of trajectory smoothness, the dimensionless squared jerk (<xref ref-type="bibr" rid="B4">Hogan and Sternad, 2009</xref>) was adopted, and its definition is presented in <xref ref-type="disp-formula" rid="e23">(23)</xref>. A smaller DSJ value indicates a smoother movement trajectory. As for the compliance assessment, the energy per unit distance (EPUD) (<xref ref-type="bibr" rid="B7">Lee et al., 2018</xref>) was selected as (24). When improved compliance was shown, the subject could drive the robot with less interaction torque. A smaller EPUD value indicates higher robot compliance. The root mean square error (RMSE) defined in <xref ref-type="disp-formula" rid="e25">(25)</xref> was utilized to reveal the position error between the desired trajectory and actual trajectory. A smaller value of RMSE indicates better tracking effect. The three metrics are formulated as follows.<disp-formula id="e23">
<mml:math id="m219">
<mml:mrow>
<mml:mtext>DSJ</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2026;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>5</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi mathvariant="italic">max</mml:mi>
<mml:mn>2</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
<disp-formula id="e24">
<mml:math id="m220">
<mml:mrow>
<mml:mtext>EPUD</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
<disp-formula id="e25">
<mml:math id="m221">
<mml:mrow>
<mml:mtext>RMSE</mml:mtext>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>In <xref ref-type="disp-formula" rid="e23">(23)</xref>, the parameters <inline-formula id="inf195">
<mml:math id="m222">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf196">
<mml:math id="m223">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>b</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the start and end time of the trajectory, <inline-formula id="inf197">
<mml:math id="m224">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the maximum amplitude of the trajectory, and <inline-formula id="inf198">
<mml:math id="m225">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>q</mml:mi>
<mml:mo>&#x2026;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the third time-derivative of the trajectory. In <xref ref-type="disp-formula" rid="e24">(24)</xref>, <inline-formula id="inf199">
<mml:math id="m226">
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the sample number, <inline-formula id="inf200">
<mml:math id="m227">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the human-robot interaction torque at the time <inline-formula id="inf201">
<mml:math id="m228">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf202">
<mml:math id="m229">
<mml:mrow>
<mml:mo>&#x2206;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the deviation between the reference trajectory and desired trajectory at the time <inline-formula id="inf203">
<mml:math id="m230">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In <xref ref-type="disp-formula" rid="e25">(25)</xref>, <inline-formula id="inf204">
<mml:math id="m231">
<mml:mrow>
<mml:mi>q</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf205">
<mml:math id="m232">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> are actual and desired trajectory at the time <inline-formula id="inf206">
<mml:math id="m233">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, respectively.</p>
<p>Additionally, to better manifest the advantage of the proposed control framework, comparison experiments were performed with an admittance control without trajectory deformation and feedback gain modification algorithms (<xref ref-type="bibr" rid="B8">Li et al., 2017</xref>). The admittance control was implemented with the same robot and subject. The admittance parameters were regulated while responding to the subjects&#x2019; biological actions. The trajectory deformation and tracking performance of both control systems were evaluated with the abovementioned three metrics. Additionally, in order to evaluate rehabilitation efficacy, muscle activation improvement was normalized and recorded, and the Fugl-Meyer assessment (FMA) was also deployed for clinical evaluation. Higher normalized EMG value and FMA score indicate rehabilitation improvement. Each trial was conducted three times for accuracy, and the mean values of these metrics are recorded in <xref ref-type="table" rid="T1">Table 1</xref>. The robot motion compliance and movement smoothness of the hip and knee joint trajectories generated by the deformation trajectory algorithm are much better than those with the admittance control. Furthermore, the tracking performance under the feedback gain algorithm proved more satisfactory compared to the admittance control. The enhancement of the muscle strength and clinical assessment scores is evident compared with the performance without the proposed control framework. Overall, the comparison results prove that the control framework can effectively help the patient learn to move in the proper trajectory, and the training becomes more challenging and brings better rehabilitation efficacy.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Comparison results.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="4" align="center">Control strategy</th>
<th colspan="4" align="center">Trajectory</th>
<th rowspan="2" colspan="2" align="center">Trajectory tracking</th>
<th rowspan="2" colspan="2" align="center">Muscle activation</th>
<th rowspan="2" align="center">Clinical assessment</th>
</tr>
<tr>
<th colspan="4" align="center">Deformation</th>
</tr>
<tr>
<th colspan="2" align="center">DSJ</th>
<th colspan="2" align="center">EPUD</th>
<th colspan="2" align="center">RMSE (rad)</th>
<th colspan="2" align="center">Normalized EMG values</th>
<th rowspan="2" align="center">FMA</th>
</tr>
<tr>
<th align="center">Hip</th>
<th align="center">Knee</th>
<th align="center">Hip</th>
<th align="center">Knee</th>
<th align="center">Hip</th>
<th align="center">Knee</th>
<th align="center">Hip</th>
<th align="center">Knee</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="2" align="center">Proposed Control</td>
<td rowspan="2" align="center">7.66 <inline-formula id="inf207">
<mml:math id="m234">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> 10<sup>8</sup>
</td>
<td align="center">3.1 <inline-formula id="inf208">
<mml:math id="m235">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td rowspan="2" align="center">13.24</td>
<td rowspan="2" align="center">13.58</td>
<td rowspan="2" align="center">0.07</td>
<td rowspan="2" align="center">0.05</td>
<td rowspan="2" align="center">0.87</td>
<td rowspan="2" align="center">0.91</td>
<td rowspan="2" align="center">30.4</td>
</tr>
<tr>
<td align="center">10<sup>8</sup>
</td>
</tr>
<tr>
<td rowspan="2" align="center">Admittance Control</td>
<td rowspan="2" align="center">3.78 <inline-formula id="inf209">
<mml:math id="m236">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> 10<sup>12</sup>
</td>
<td align="center">1.24 <inline-formula id="inf210">
<mml:math id="m237">
<mml:mrow>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td rowspan="2" align="center">16.37</td>
<td rowspan="2" align="center">16.61</td>
<td rowspan="2" align="center">0.19</td>
<td rowspan="2" align="center">0.16</td>
<td rowspan="2" align="center">0.48</td>
<td rowspan="2" align="center">0.53</td>
<td rowspan="2" align="center">18.8</td>
</tr>
<tr>
<td align="center">10<sup>12</sup>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Next, the feedback gain modification algorithm for the AAN controller was experimentally examined during the optimized training task. The subjects were required to voluntarily exert forces on the robot, and the feedback gain <inline-formula id="inf211">
<mml:math id="m238">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> was adapted according to the subjects&#x2019; performance, producing subject-adaptive robotic assistance. At the end of each training task, questionaries were set and filled in to identify whether the current task was easier or more difficult compared to the previous task. The questionnaire responses only helped assessments of the pilots&#x2019; subjective intention without affecting the robot controller. After that, the subsequent training task was operated immediately. The tracking performance of the AAN controller, variance of the feedback gain <inline-formula id="inf212">
<mml:math id="m239">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and the human-robot interaction torque were measured in real time and are depicted in <xref ref-type="fig" rid="F7">Figure 7</xref>. It can be seen from the figure that the feedback gain and tracking error are functions of the interaction torque. The experimental results demonstrate that the feedback gain <inline-formula id="inf213">
<mml:math id="m240">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can respond correctly to the subjects&#x2019; motor capabilities. When subjects complete the task with more active involvement, <inline-formula id="inf214">
<mml:math id="m241">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> decreases and the allowable trajectory tracking error increases, and the magnitude of robotic assistance decreases for further encouragement, and <italic>vice versa</italic>. The variance tendency of <inline-formula id="inf215">
<mml:math id="m242">
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is consistent with the questionnaire results. Furthermore, no matter how the tracking error varies, the user-selected maximum allowable trajectory tracking error <inline-formula id="inf216">
<mml:math id="m243">
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is always larger than or equal to the error in each task. Therefore, it can be concluded that the feedback gain modification algorithm can effectively adjust the robotic assistance according to the subjects&#x2019; changing performance, hopefully encouraging impaired patients&#x2019; active participation and facilitating rehabilitation efficacy.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Experimental results of the Feedback gain modification algorithm.</p>
</caption>
<graphic xlink:href="fbioe-11-1244550-g007.tif"/>
</fig>
</sec>
<sec sec-type="conclusion" id="s6">
<title>6 Conclusion</title>
<p>In this paper, a control framework is proposed for the simultaneous adaptation of training tasks and robotic assistance for robot-assisted rehabilitation. Specifically, a trajectory deformation algorithm is developed to enable pHRI to regulate the task difficulty in real time, generating a smooth and compliant desired trajectory. Furthermore, an AAN controller, along with a feedback gain modification algorithm, is designed to motivate patients&#x2019; active participation, where the robotic assistance is adjusted by evaluating the patients&#x2019; performance variance and determining the trajectory tracking error bound. Appropriate training difficulty and assistance level are two important issues in robot-assisted rehabilitation. In this study, the appropriate training difficulty is expressed in the form of making a proper trajectory, which is realized with the proposed trajectory deformation algorithm; and the appropriate assistance level is expressed in the form of increasing the user&#x2019;s EMG level, which is realized with the proposed AAN controller with the feedback gain modification algorithm. The balance between these two issues is essential for better rehabilitation efficacy, and the proposed control framework can address this balance well. A lower extremity rehabilitation robot with MR actuators is then employed to validate the effectiveness of the proposed control framework. Experimental results demonstrate that the training task difficulty and robotic assistance level can be regulated appropriately according to subjects&#x2019; changing motor capabilities.</p>
<p>In future work, more novel methods will be explored to estimate human motor capabilities and improve pHRI control strategies. More diverse training tasks will be involved to meet the rehabilitation requirements of different degrees and types of impairments. Machine learning may be adopted to ensure better time efficiency and greater adaptability of robotic assistance modification. Furthermore, more clinical trials will be carried out to expand the proposed control framework into clinical application.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s8">
<title>Ethics statement</title>
<p>All subjects have been informed of the detailed operation procedures and potential risks with signing the consents before participation. The experiments have been approved by the ethics committee of Hefei Institutes of Physical Science, Chinese Academy of Sciences (approval number: IRB-2019-0018).</p>
</sec>
<sec id="s9">
<title>Author contributions</title>
<p>JX and KH: Methodology, Investigation, Formal Analysis, Writing-original draft. TZ and KC: Data curation, Validation, Writing-review and editing. AJ, LX, and YL: Supervision, Writing-review and editing. All authors contributed to the article and approved the submitted version.</p>
</sec>
<sec id="s10">
<title>Funding</title>
<p>This research is supported by the National Natural Science Foundation of China (52205018), Natural Science Foundation of Jiangsu Province (BK20220894), State Key Laboratory of Robotics and Systems (HIT) (SKLRS-2023-KF-25), Fundamental Research Funds for the Central Universities (NS2022048), Nanjing Overseas Scholars Science and Technology Innovation Project (YQR22044), Scientific Research Foundation of Nanjing University of Aeronauticsand Astronautics (YAH21004), and Jiangsu Provincial Double Innovation Doctor Program (JSSCBS20220232).</p>
</sec>
<sec sec-type="COI-statement" id="s11">
<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="s12">
<title>Publisher&#x2019;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>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Damsgaard</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Rasmussen</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Christensen</surname>
<given-names>S. T.</given-names>
</name>
<name>
<surname>Surma</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>de Zee</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2006</year>). <article-title>Analysis of musculoskeletal systems in the anybody modeling system</article-title>. <source>Simul. Model. Pract. Theory</source> <volume>14</volume> (<issue>8</issue>), <fpage>1100</fpage>&#x2013;<lpage>1111</lpage>. <pub-id pub-id-type="doi">10.1016/j.simpat.2006.09.001</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ferraguti</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Landi</surname>
<given-names>C. T.</given-names>
</name>
<name>
<surname>Sabattini</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Bonf&#xe8;</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Fantuzzi</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Secchi</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A variable admittance control strategy for stable physical human-robot interaction</article-title>. <source>Int. J. Robotics Res.</source> <volume>38</volume> (<issue>6</issue>), <fpage>747</fpage>&#x2013;<lpage>765</lpage>. <pub-id pub-id-type="doi">10.1177/0278364919840415</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hogan</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Krebs</surname>
<given-names>H. I.</given-names>
</name>
<name>
<surname>Rohrer</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Palazzolo</surname>
<given-names>J. J.</given-names>
</name>
<name>
<surname>Dipietro</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Fasoli</surname>
<given-names>S. E.</given-names>
</name>
<etal/>
</person-group> (<year>2006</year>). <article-title>Motions or muscles? Some behavioral factors underlying robotic assistance of motor recovery</article-title>. <source>J. Rehabilitation Res. Dev.</source> <volume>43</volume> (<issue>5</issue>), <fpage>605</fpage>&#x2013;<lpage>618</lpage>. <pub-id pub-id-type="doi">10.1682/jrrd.2005.06.0103</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hogan</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Sternad</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Sensitivity of smoothness measures to movement duration, amplitude, and arrests</article-title>. <source>J. Mot. Behav.</source> <volume>41</volume> (<issue>6</issue>), <fpage>529</fpage>&#x2013;<lpage>534</lpage>. <pub-id pub-id-type="doi">10.3200/35-09-004-rc</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Krebs</surname>
<given-names>H. I.</given-names>
</name>
<name>
<surname>Palazzolo</surname>
<given-names>J. J.</given-names>
</name>
<name>
<surname>Dipietro</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ferraro</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Krol</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Rannekleiv</surname>
<given-names>K.</given-names>
</name>
<etal/>
</person-group> (<year>2003</year>). <article-title>Rehabilitation robotics: performance-based progressive robot-assisted therapy</article-title>. <source>Aut. Robots</source> <volume>15</volume> (<issue>1</issue>), <fpage>7</fpage>&#x2013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1023/a:1024494031121</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lasota</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Shah</surname>
<given-names>J. A.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Analyzing the effects of human-aware motion planning on close-proximity human-robot collaboration</article-title>. <source>Hum. Factors</source> <volume>57</volume> (<issue>1</issue>), <fpage>21</fpage>&#x2013;<lpage>33</lpage>. <pub-id pub-id-type="doi">10.1177/0018720814565188</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>K. H.</given-names>
</name>
<name>
<surname>Baek</surname>
<given-names>S. G.</given-names>
</name>
<name>
<surname>Choi</surname>
<given-names>H. R.</given-names>
</name>
<name>
<surname>Moon</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Koo</surname>
<given-names>J. C.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Enhanced transparency for physical human-robot interaction using human hand impedance compensation</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>23</volume> (<issue>6</issue>), <fpage>2662</fpage>&#x2013;<lpage>2670</lpage>. <pub-id pub-id-type="doi">10.1109/tmech.2018.2875690</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>C-Y.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Adaptive impedance control for an upper limb robotic exoskeleton using biological signals</article-title>. <source>IEEE Trans. Industrial Electron.</source> <volume>64</volume> (<issue>2</issue>), <fpage>1664</fpage>&#x2013;<lpage>1674</lpage>. <pub-id pub-id-type="doi">10.1109/tie.2016.2538741</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Losey</surname>
<given-names>D. P.</given-names>
</name>
<name>
<surname>O&#x2019;Malley</surname>
<given-names>M. K.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Trajectory deformations from physical human-robot interaction</article-title>. <source>IEEE Trans. Robotics</source> <volume>34</volume> (<issue>1</issue>), <fpage>126</fpage>&#x2013;<lpage>138</lpage>. <pub-id pub-id-type="doi">10.1109/tro.2017.2765335</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Luo</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Adaptive CPG-based impedance control for assistive lower limb exoskeleton</article-title>,&#x201d; in <source>Proceedings of IEEE international conference on robotics and biomimetics</source>, <fpage>685</fpage>&#x2013;<lpage>690</lpage>.</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Marchal-Crespo</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Reinkensmeyer</surname>
<given-names>D. J.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Review of control strategies for robotic movement training after neurologic injury</article-title>. <source>J. NeuroEngineering Rehabilitation</source> <volume>6</volume> (<issue>1</issue>), <fpage>20</fpage>. <pub-id pub-id-type="doi">10.1186/1743-0003-6-20</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pehlivan</surname>
<given-names>A. U.</given-names>
</name>
<name>
<surname>Sergi</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>O&#x2019;Malley</surname>
<given-names>M. K.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>A subject-adaptive controller for wrist robotic rehabilitation</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>20</volume> (<issue>3</issue>), <fpage>1338</fpage>&#x2013;<lpage>1350</lpage>. <pub-id pub-id-type="doi">10.1109/tmech.2014.2340697</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pe&#xf1;a</surname>
<given-names>G. G.</given-names>
</name>
<name>
<surname>Consoni</surname>
<given-names>L. J.</given-names>
</name>
<name>
<surname>dos Santos</surname>
<given-names>W. M.</given-names>
</name>
<name>
<surname>Siqueira</surname>
<given-names>A. A. G.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Feasibility of an optimal EMG-driven adaptive impedance control applied to an active knee orthosis</article-title>. <source>Robotics Aut. Syst.</source> <volume>112</volume>, <fpage>98</fpage>&#x2013;<lpage>108</lpage>. <pub-id pub-id-type="doi">10.1016/j.robot.2018.11.011</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Schaal</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2006</year>). &#x201c;<article-title>Dynamic movement primitives-A framework for motor control in humans and humanoid robotics</article-title>,&#x201d; in <source>Adaptive motion of animals and machines</source> (<publisher-loc>Tokyo, Japan</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>261</fpage>&#x2013;<lpage>280</lpage>.</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sharifi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Mehr</surname>
<given-names>J. K.</given-names>
</name>
<name>
<surname>Mushahwar</surname>
<given-names>V. K.</given-names>
</name>
<name>
<surname>Tavakoli</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Adaptive CPG-based gait planning with learning-based torque estimation and control for exoskeletons</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>6</volume> (<issue>4</issue>), <fpage>8261</fpage>&#x2013;<lpage>8268</lpage>. <pub-id pub-id-type="doi">10.1109/lra.2021.3105996</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Shen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Torque tracking impedance control for a 3DOF lower limb rehabilitation robot</article-title>,&#x201d; in <source>Proceedings of IEEE international conference on advanced robotics and mechatronics</source>, <fpage>294</fpage>&#x2013;<lpage>299</lpage>.</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sproewitz</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Moeckel</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Maye</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ijspeert</surname>
<given-names>A. J.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Learning to move in modular robots using central pattern generators and online optimization</article-title>. <source>Int. J. Robotics Res.</source> <volume>27</volume> (<issue>3&#x2013;4</issue>), <fpage>423</fpage>&#x2013;<lpage>443</lpage>. <pub-id pub-id-type="doi">10.1177/0278364907088401</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Kan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Reference trajectory reshaping optimization and control of robotic exoskeletons for human-robot co-manipulation</article-title>. <source>IEEE Trans. Cybern.</source> <volume>50</volume> (<issue>8</issue>), <fpage>3740</fpage>&#x2013;<lpage>3751</lpage>. <pub-id pub-id-type="doi">10.1109/tcyb.2019.2933019</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Peng</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>A multi-mode rehabilitation robot with magnetorheological actuators based on human motion intention estimation</article-title>. <source>IEEE Trans. Neural Syst. Rehabilitation Eng.</source> <volume>27</volume> (<issue>10</issue>), <fpage>2216</fpage>&#x2013;<lpage>2228</lpage>. <pub-id pub-id-type="doi">10.1109/tnsre.2019.2937000</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>X.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>A robotic system with reinforcement learning for lower extremity hemiparesis rehabilitation</article-title>. <source>Industrial Robot Int. J. robotics Res. Appl.</source> <volume>38</volume> (<issue>3</issue>), <fpage>388</fpage>&#x2013;<lpage>400</lpage>. <pub-id pub-id-type="doi">10.1108/ir-10-2020-0230</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Learning robotic motion with mirror therapy framework for hemiparesis rehabilitation</article-title>. <source>Inf. Process. Manag.</source> <volume>60</volume>, <fpage>103244</fpage>. <pub-id pub-id-type="doi">10.1016/j.ipm.2022.103244</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2020b</year>). <article-title>A DMP-based motion generation scheme for robotic mirror therapy</article-title>. <source>IEEE/ASME Trans. Mechatronics</source>, <fpage>1</fpage>&#x2013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2023.3255218</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2020a</year>). <article-title>A multi-channel reinforcement learning framework for robotic mirror therapy</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>5</volume> (<issue>4</issue>), <fpage>5385</fpage>&#x2013;<lpage>5392</lpage>. <pub-id pub-id-type="doi">10.1109/lra.2020.3007408</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yao</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhuang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Adaptive admittance control for an ankle exoskeleton using an EMG-driven musculoskeletal model</article-title>. <source>Front. Neurorobotics</source> <volume>12</volume> (<issue>16</issue>), <fpage>16</fpage>&#x2013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.3389/fnbot.2018.00016</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yuan</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Gan</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>DMP-based motion generation for a walking exoskeleton robot using reinforcement learning</article-title>. <source>IEEE Trans. Industrial Electron.</source> <volume>67</volume> (<issue>5</issue>), <fpage>3830</fpage>&#x2013;<lpage>3839</lpage>. <pub-id pub-id-type="doi">10.1109/tie.2019.2916396</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Human-robot cooperation control based on trajectory deformation algorithm for a lower limb rehabilitation robot</article-title>. <source>IEEE/ASME Trans. Mechatronics</source> <volume>26</volume> (<issue>6</issue>), <fpage>3128</fpage>&#x2013;<lpage>3138</lpage>. <pub-id pub-id-type="doi">10.1109/tmech.2021.3053562</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhuang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Admittance control based on EMG-driven musculoskeletal model improves the human-robot synchronization</article-title>. <source>IEEE Trans. Industrial Electron.</source> <volume>15</volume> (<issue>2</issue>), <fpage>1211</fpage>&#x2013;<lpage>1218</lpage>. <pub-id pub-id-type="doi">10.1109/tii.2018.2875729</pub-id>
</citation>
</ref>
</ref-list>
<app-group>
<app id="app1">
<title>Appendix</title>
<sec id="s13">
<title>AppendixDetermination of Vector Field Function</title>
<p>As presented in <xref ref-type="disp-formula" rid="e9">(9)</xref>, the vector field function <inline-formula id="inf217">
<mml:math id="m244">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is applied to shape the deformed trajectory, and its determination should follow the subsequent rules.</p>
<p>
<bold>
<italic>Rule 1:</italic> Continuity.</bold> Once the human force <inline-formula id="inf218">
<mml:math id="m245">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is exerted at <inline-formula id="inf219">
<mml:math id="m246">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the predefined reference trajectory <inline-formula id="inf220">
<mml:math id="m247">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> starts to be deformed to <inline-formula id="inf221">
<mml:math id="m248">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; after time <inline-formula id="inf222">
<mml:math id="m249">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the robot again follows its reference trajectory <inline-formula id="inf223">
<mml:math id="m250">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. Hence, in order to ensure the continuous transitioning between the original and deformed trajectories, the field vector function <inline-formula id="inf224">
<mml:math id="m251">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and its time-differential <inline-formula id="inf225">
<mml:math id="m252">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is constrained as<disp-formula id="equ3">
<mml:math id="m253">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="e26">
<mml:math id="m254">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
<p>Then, the trajectory configuration on the boundary condition can be satisfied, i.e., <inline-formula id="inf226">
<mml:math id="m255">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf227">
<mml:math id="m256">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> at both the start <inline-formula id="inf228">
<mml:math id="m257">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the end <inline-formula id="inf229">
<mml:math id="m258">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Specifically, the deformed trajectory between <inline-formula id="inf230">
<mml:math id="m259">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf231">
<mml:math id="m260">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be evenly divided into an arbitrary number of waypoints. We define the number of waypoints as <inline-formula id="inf232">
<mml:math id="m261">
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and the time interval between consecutive waypoints as <inline-formula id="inf233">
<mml:math id="m262">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. As introduced before, the time duration of pHRI is <inline-formula id="inf234">
<mml:math id="m263">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, such that the number of waypoints along <inline-formula id="inf235">
<mml:math id="m264">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf236">
<mml:math id="m265">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> can be calculated as <inline-formula id="inf237">
<mml:math id="m266">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Consequently, the original and deformed desired trajectory within the time interval <inline-formula id="inf238">
<mml:math id="m267">
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</inline-formula> can be written as<disp-formula id="equ4">
<mml:math id="m268">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:mtext>&#x2009;</mml:mtext>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="equ5">
<mml:math id="m269">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2026;</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>Applying this waypoint parameterization, the continuity statement (26) can be rewritten as<disp-formula id="equ6">
<mml:math id="m270">
<mml:mrow>
<mml:mfenced open="{" close="" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="normal">&#x393;</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>s</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>The above equation can be further rewritten as<disp-formula id="e27">
<mml:math id="m271">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>where<disp-formula id="equ7">
<mml:math id="m272">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ef;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>
<bold>
<italic>Rule 2:</italic> Smoothness.</bold> Although the reference trajectory <inline-formula id="inf239">
<mml:math id="m273">
<mml:mrow>
<mml:msubsup>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> has been set to be as smooth as possible through modeling from the healthy subject gait database, the naturality of the deformed desired trajectory <inline-formula id="inf240">
<mml:math id="m274">
<mml:mrow>
<mml:msub>
<mml:mi>q</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> should also be maintained to guarantee the patient&#x2019;s comfort and security. Numerous observations have demonstrated that the healthy human&#x2019;s movement complies well with the minimum-jerk model (<xref ref-type="bibr" rid="B8">Li et al., 2017</xref>). Similarly, the minimum-jerk deformed trajectory can be derived by satisfying the vector field function as<disp-formula id="e28">
<mml:math id="m275">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x2026;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>&#x3b4;</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2219;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>where<disp-formula id="equ8">
<mml:math id="m276">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="&#x7c;">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>3</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>3</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>3</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn>3</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo>&#x2026;</mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
<p>
<bold>
<italic>Rule 3:</italic> Compliance.</bold> It is pHRI that initiates the trajectory deformation and decides the deformed trajectory shape; the vector field function <inline-formula id="inf241">
<mml:math id="m277">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is highly correlated with the interaction torque <inline-formula id="inf242">
<mml:math id="m278">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Analogous to (<xref ref-type="bibr" rid="B9">Losey and O&#x2019;Malley, 2018</xref>), a cost function is formulated to reveal the variation of the trajectory deformation energy as<disp-formula id="e29">
<mml:math id="m279">
<mml:mrow>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>where <inline-formula id="inf243">
<mml:math id="m280">
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a positive constant and <inline-formula id="inf244">
<mml:math id="m281">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>h</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the prediction of the human-robot interaction torque. It should be noticed that the trajectory deformation occurs at the current time <inline-formula id="inf245">
<mml:math id="m282">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> when the human first interacts with the robot and results in the interaction torque <inline-formula id="inf246">
<mml:math id="m283">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. Since the future interaction torque values are required to compute the energy of the trajectory deformation but remain unknown, an online prediction of the future interaction torque is developed as <inline-formula id="inf247">
<mml:math id="m284">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf248">
<mml:math id="m285">
<mml:mrow>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>N</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the prediction vector.</p>
<p>The proposed cost function (29) contains two terms: the first term means the work done by the trajectory deformation to the human; and the second term is the squared norm of <inline-formula id="inf249">
<mml:math id="m286">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> with respect to the finite differencing matrix <inline-formula id="inf250">
<mml:math id="m287">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (<italic>A</italic> is mentioned in <xref ref-type="disp-formula" rid="e28">(28)</xref>) to ensure the smoothness and naturality of the deformed trajectory.</p>
<p>In order to ensure the compliance of the deformed trajectory, the cost function (29) should be minimized under the constraint (27) to optimize the value of the field vector function <inline-formula id="inf251">
<mml:math id="m288">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. The optimization problem can be formulated as<disp-formula id="equ9">
<mml:math id="m289">
<mml:mrow>
<mml:mtext>minimize&#x2002;</mml:mtext>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="e30">
<mml:math id="m290">
<mml:mrow>
<mml:mtext>subject&#x2009;to&#x2009;</mml:mtext>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>
</p>
<p>A Lagrangian function is defined as follows to solve the above optimization problem.<disp-formula id="e31">
<mml:math id="m291">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>where <inline-formula id="inf252">
<mml:math id="m292">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mn>4</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is a vector of Lagrange multipliers. By calculating the partial derivative of <xref ref-type="disp-formula" rid="e31">(31)</xref>, we have<disp-formula id="equ10">
<mml:math id="m293">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</disp-formula>
<disp-formula id="e32">
<mml:math id="m294">
<mml:mrow>
<mml:msub>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:msub>
<mml:mi>L</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>&#x3b3;</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>
</p>
<p>Through further computation after (32), the subsequent equation <xref ref-type="disp-formula" rid="e33">(33)</xref> can be obtained to reveal the relationship between the field vector function and the interaction torque. In addition to Lagrange multipliers, the reader can refer to (<xref ref-type="bibr" rid="B18">Wu et al., 2020</xref>) to find another solver, i.e., linear variational inequality-based primal-dual neural network.<disp-formula id="e33">
<mml:math id="m295">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>G</mml:mi>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>where<disp-formula id="e34">
<mml:math id="m296">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mi>B</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>B</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msup>
<mml:mi>A</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(34)</label>
</disp-formula>where <inline-formula id="inf253">
<mml:math id="m297">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is an identity matrix.</p>
<p>The determination of the parameter <inline-formula id="inf254">
<mml:math id="m298">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> in <xref ref-type="disp-formula" rid="e33">(33)</xref> has significant impacts on the shape of <inline-formula id="inf255">
<mml:math id="m299">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. In robotics-assisted rehabilitation, the duration time of the human-robot interaction is relatively long because the patient mostly tries to participate actively to guide the robot, which is different from the statement in (<xref ref-type="bibr" rid="B1">Damsgaard et al., 2006</xref>). Considering the above factors, the parameter <inline-formula id="inf256">
<mml:math id="m300">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is defined as<disp-formula id="e35">
<mml:math id="m301">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>&#x3b4;</mml:mi>
<mml:mfrac>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(35)</label>
</disp-formula>where <inline-formula id="inf257">
<mml:math id="m302">
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the level of assistance, which regulates whether it is the robot or human that the trajectory deformation arbitrates toward.</p>
<p>Therefore, following the rule of continuity, smoothness, and compliance, the ultimate expression of the vector field function is clarified as<disp-formula id="e36">
<mml:math id="m303">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>&#x3b4;</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>&#x3b2;</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>h</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(36)</label>
</disp-formula>where<disp-formula id="equ11">
<mml:math id="m304">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</disp-formula>
</p>
</sec>
<sec id="s14">
<title>7.2 Stability Analysis of AAN Controller</title>
<p>Combining the modified robot dynamics (15), error dynamics (16), and AAN controller (17), the following equation can be yielded.<disp-formula id="e37">
<mml:math id="m305">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>e</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mi>e</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(37)</label>
</disp-formula>
</p>
<p>For stability analysis, consider a Lyapunov candidate function as<disp-formula id="e38">
<mml:math id="m306">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>M</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:math>
<label>(38)</label>
</disp-formula>
</p>
<p>Then, the time-derivative of the Lyapunov function is<disp-formula id="e39">
<mml:math id="m307">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:mi>e</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>e</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(39)</label>
</disp-formula>
</p>
<p>Let us introduce a constant <inline-formula id="inf258">
<mml:math id="m308">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>; the time-derivative of the Lyapunov function can be further written as<disp-formula id="e40">
<mml:math id="m309">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:munder accentunder="true">
<mml:mi>K</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2219;</mml:mo>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>e</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:munder accentunder="true">
<mml:mi>K</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
<mml:msub>
<mml:munder accentunder="true">
<mml:mi>K</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2219;</mml:mo>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>e</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(40)</label>
</disp-formula>
</p>
<p>Hence, if the following inequality is satisfied,<disp-formula id="e41">
<mml:math id="m310">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>e</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>C</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>e</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
<mml:msub>
<mml:munder accentunder="true">
<mml:mi>K</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:mi>D</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(41)</label>
</disp-formula>
</p>
<p>The time-derivative of the Lyapunov function satisfies<disp-formula id="e42">
<mml:math id="m311">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x2264;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="&#x7c;">
<mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:munder accentunder="true">
<mml:mi>K</mml:mi>
<mml:mo>_</mml:mo>
</mml:munder>
<mml:mi>D</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="&#x2016;" close="&#x2016;" separators="&#x7c;">
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
<label>(42)</label>
</disp-formula>
</p>
<p>Through the stability analysis, the Lyapunov candidate <inline-formula id="inf259">
<mml:math id="m312">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and its time-derivative <inline-formula id="inf260">
<mml:math id="m313">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>&#x2d9;</mml:mo>
</mml:mover>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> are ensured, and it can be concluded that the proposed control system yields a tracking error with uniformly ultimately bounded stability.</p>
</sec>
</app>
</app-group>
</back>
</article>