<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2018.00005</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Learning by Demonstration for Motion Planning of Upper-Limb Exoskeletons</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Lauretti</surname> <given-names>Clemente</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="cor1">&#x0002A;</xref>
<uri xlink:href="http://frontiersin.org/people/u/440806"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Cordella</surname> <given-names>Francesca</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/290341"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Ciancio</surname> <given-names>Anna Lisa</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/211121"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Trigili</surname> <given-names>Emilio</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/463782"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Catalan</surname> <given-names>Jose Maria</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/463758"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Badesa</surname> <given-names>Francisco Javier</given-names></name>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/430553"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Crea</surname> <given-names>Simona</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/373454"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Pagliara</surname> <given-names>Silvio Marcello</given-names></name>
<xref ref-type="aff" rid="aff5"><sup>5</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/463756"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Sterzi</surname> <given-names>Silvia</given-names></name>
<xref ref-type="aff" rid="aff6"><sup>6</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Vitiello</surname> <given-names>Nicola</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff7"><sup>7</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/421466"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Garcia Aracil</surname> <given-names>Nicolas</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/324347"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Zollo</surname> <given-names>Loredana</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://frontiersin.org/people/u/438788"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Research Unit of Biomedical Robotics and Biomicrosystems, Universit&#x000E0; Campus Bio-Medico</institution>, <addr-line>Rome</addr-line>, <country>Italy</country></aff>
<aff id="aff2"><sup>2</sup><institution>The BioRobotics Institute, Scuola Superiore Sant&#x02019;Anna</institution>, <addr-line>Pisa</addr-line>, <country>Italy</country></aff>
<aff id="aff3"><sup>3</sup><institution>Biomedical Neuroengineering Research Group, Miguel Hernandez University</institution>, <addr-line>Elche</addr-line>, <country>Spain</country></aff>
<aff id="aff4"><sup>4</sup><institution>Departamento de Ingenier&#x000ED;a en Autom&#x000E1;tica, Electr&#x000F3;nica, Arquitectura y Redes de Computadores, Universidad de C&#x000E1;diz</institution>, <addr-line>C&#x000E1;diz</addr-line>, <country>Spain</country></aff>
<aff id="aff5"><sup>5</sup><institution>GLIC&#x02014;Italian Network of Assistive Technology Centers</institution>, <addr-line>Bologna</addr-line>, <country>Italy</country></aff>
<aff id="aff6"><sup>6</sup><institution>Unit of Physical and Rehabilitation Medicine, Universit&#x000E0; Campus Bio-Medico</institution>, <addr-line>Rome</addr-line>, <country>Italy</country></aff>
<aff id="aff7"><sup>7</sup><institution>Fondazione Don Carlo Gnocchi</institution>, <addr-line>Firenze</addr-line>, <country>Italy</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Shuai Li, Hong Kong Polytechnic University, Hong Kong</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Yuqing Lin, Beijing Institute of Technology, China; Leslie Samuel Smith, University of Stirling, United Kingdom; Long Jin, Lanzhou University, China</p></fn>
<corresp content-type="corresp" id="cor1">&#x0002A;Correspondence: Clemente Lauretti, <email>c.lauretti&#x00040;unicampus.it</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to the journal Frontiers in Neurorobotics.</p></fn>
</author-notes>
<pub-date pub-type="epub">
<day>23</day>
<month>02</month>
<year>2018</year>
</pub-date>
<pub-date pub-type="collection">
<year>2018</year>
</pub-date>
<volume>12</volume>
<elocation-id>5</elocation-id>
<history>
<date date-type="received">
<day>27</day>
<month>07</month>
<year>2017</year>
</date>
<date date-type="accepted">
<day>31</day>
<month>01</month>
<year>2018</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2018 Lauretti, Cordella, Ciancio, Trigili, Catalan, Badesa, Crea, Pagliara, Sterzi, Vitiello, Garcia Aracil and Zollo.</copyright-statement>
<copyright-year>2018</copyright-year>
<copyright-holder>Lauretti, Cordella, Ciancio, Trigili, Catalan, Badesa, Crea, Pagliara, Sterzi, Vitiello, Garcia Aracil and Zollo</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 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>The reference joint position of upper-limb exoskeletons is typically obtained by means of Cartesian motion planners and inverse kinematics algorithms with the inverse Jacobian; this approach allows exploiting the available Degrees of Freedom (i.e. DoFs) of the robot kinematic chain to achieve the desired end-effector pose; however, if used to operate non-redundant exoskeletons, it does not ensure that anthropomorphic criteria are satisfied in the whole human-robot workspace. This paper proposes a motion planning system, based on Learning by Demonstration, for upper-limb exoskeletons that allow successfully assisting patients during Activities of Daily Living (ADLs) in unstructured environment, while ensuring that anthropomorphic criteria are satisfied in the whole human-robot workspace. The motion planning system combines Learning by Demonstration with the computation of Dynamic Motion Primitives and machine learning techniques to construct task- and patient-specific joint trajectories based on the learnt trajectories. System validation was carried out in simulation and in a real setting with a 4-DoF upper-limb exoskeleton, a 5-DoF wrist-hand exoskeleton and four patients with Limb Girdle Muscular Dystrophy. Validation was addressed to (i) compare the performance of the proposed motion planning with traditional methods; (ii) assess the generalization capabilities of the proposed method with respect to the environment variability. Three ADLs were chosen to validate the system: drinking, pouring and lifting a light sphere. The achieved results showed a 100% success rate in the task fulfillment, with a high level of generalization with respect to the environment variability. Moreover, an anthropomorphic configuration of the exoskeleton is always ensured.</p>
</abstract>
<kwd-group>
<kwd>motion planning</kwd>
<kwd>machine learning</kwd>
<kwd>learning by demonstration</kwd>
<kwd>dynamics movement primitives</kwd>
<kwd>assistive robotics</kwd>
</kwd-group>
<counts>
<fig-count count="11"/>
<table-count count="2"/>
<equation-count count="36"/>
<ref-count count="23"/>
<page-count count="14"/>
<word-count count="8376"/>
</counts>
</article-meta>
</front>
<body>
<sec id="S1" sec-type="introduction">
<label>1</label> <title>Introduction</title>
<p>Understanding trajectory planning in human movements plays a paramount role in upper-limb exoskeletons for rehabilitation and assistive purposes because of the tight physical human-robot interaction. A typical strategy for determining the desired trajectory to be tracked by the exoskeleton in complex tasks, such as the Activities of Daily Living (ADLs), is to replicate human movements (An et al., <xref ref-type="bibr" rid="B1">1988</xref>). Joint trajectories from unimpaired volunteers, caregivers, or therapists can be pre-recorded and later executed by the robotic system throughout specific mapping methods, i.e., spline decomposition (Jiang et al., <xref ref-type="bibr" rid="B5">2013</xref>), or else optimization of <italic>ad hoc</italic> developed objective functions (Provenzale et al., <xref ref-type="bibr" rid="B20">2014</xref>). However, these methods are successful in structured environments, since they cannot manage variability in the environment and external perturbations.</p>
<p>For ADLs in unstructured environment, a Cartesian motion planner can be conveniently adopted (Marchal-Crespo and Reinkensmeyer, <xref ref-type="bibr" rid="B13">2009</xref>) and a purposely developed mathematical model of human motor behavior should be formulated in order to plan the desired trajectories in a way similar to humans. This is the case, for example, of the minimum jerk criterion (Flash and Hogan, <xref ref-type="bibr" rid="B3">1985</xref>) or the minimum torque model (Svinin et al., <xref ref-type="bibr" rid="B23">2010</xref>) for point-to-point reaching tasks.</p>
<p>For the exoskeletons, the approach based on Cartesian motion planning requires that inverse kinematics (IK) (Kim et al., <xref ref-type="bibr" rid="B8">2012</xref>) is applied for computing joint motion, with the consequent increase of the computational burden. Moreover, the traditional IK algorithm with inverse Jacobian allows exploiting the available DoFs of the robot kinematic chain to achieve the desired end-effector pose; however, it does not guarantee that anthropomorphic criteria in the whole human-robot workspace are satisfied, especially in non-redundant structures. Alternative methods that account for anthropomorphic configurations in the joint space are based on the computation of the swivel angle. It can be estimated by means of geometric methods (Mihelj, <xref ref-type="bibr" rid="B15">2006</xref>) or analytical methods based on the augmented Jacobian (Papaleo et al., <xref ref-type="bibr" rid="B18">2015</xref>); however, in the case of non-redundant exoskeletons (as most of the commercially available ones (Marchal-Crespo and Reinkensmeyer, <xref ref-type="bibr" rid="B13">2009</xref>)), the computation of the swivel angle causes the reduction of the number of Cartesian DoFs to be controlled, since the swivel angle is computed in lieu of one of the controlled Cartesian coordinates; as a consequence, this entails a reduction of the success rate in the fulfilment of the ADLs. Other approaches are based on hybrid Cartesian joint motion planners (Pattacini et al., <xref ref-type="bibr" rid="B19">2010</xref>); nevertheless, as for the methods based on the computation of the swivel angle, they cannot be adopted in non-redundant exoskeletons without reducing the Cartesian DoFs to be controlled.</p>
<p>An alternative approach is represented by Learning By Demonstration (LbD), where the human subject is observed during the task execution and the robotic system replicates the learnt movement. It allows avoiding motion planning in the Cartesian space and inverse kinematics, but it requires to learn the target joint configuration to be reached through supervised learning. In literature, supervised learning methods, based on NNs, are widely used by researchers to learn the IK of redundant and non-redundant robots as in Oyama et al. (<xref ref-type="bibr" rid="B17">2001</xref>). Due to their adaptability to several contexts, NNs are employed in several robotic applications. In Li et al. (<xref ref-type="bibr" rid="B11">2017</xref>), they are used for redundancy resolution in presence of noise; in Jin and Li (<xref ref-type="bibr" rid="B6">2016</xref>) and Jin et al. (<xref ref-type="bibr" rid="B7">2017</xref>), NNs are adopted for motion control of multiple cooperating redundant manipulators; and in Noda et al. (<xref ref-type="bibr" rid="B16">2014</xref>), they are used for robot motion generation based on data from multimodal sensory systems. Nevertheless, to the best of our knowledge, how learning methods based on NNs can improve performance of LbD approaches during the learning of motion features and robot IK is not fairly explored.</p>
<p>This work proposes a motion planning system grounded on LbD for generating reference trajectories in the joint space for upper-limb exoskeletons, starting from the observation of the human motion during the execution of ADLs. The paper contribution is mainly addressed to extend the LbD approach in Ijspeert et al. (<xref ref-type="bibr" rid="B4">2013</xref>) for the control of upper-limb exoskeletons and to significantly improve it by introducing a Neural Network (NN), that learns the motion features and the robot inverse kinematics. The proposed method offers the following three main advantages with respect to the available techniques used in literature to plan the motion of upper-limb exoskeletons (i.e., motion planning in the Cartesian space and inverse kinematics): (i) it does not require the formulation of mathematical models of human motor behavior in order to accomplish the task in a way similar to humans; (ii) it allows performing the task also in unstructured environments (where a variability can be caused, for example, by the object position changes and subject different anthropometries); (iii) it guarantees the task accomplishment in the feasible workspace by preserving anthropomorphic configurations of the assisted human arm.</p>
<p>The proposed motion planner is based on Dynamic Movement Primitives (DMPs), with a well-defined landscape attractor (Ijspeert et al., <xref ref-type="bibr" rid="B4">2013</xref>). This attractor allows replicating the recorded trajectory by means of a weighted sum of optimally spaced Gaussian Kernels; weight parameters (DMP parameters) are extracted from demonstrated movements with a Locally Weighted Regression (LWR) algorithm and are used to train a neural network through supervised learning. The neural network has the aim to define DMP parameters and joint target position and receives in input context factors (such as object position or task type). The DMP parameters are then processed by the DMP computation module that provides the exoskeleton reference joint trajectories.</p>
<p>The proposed motion planner was tested on an upper-limb exoskeleton during ADLs tasks. The exoskeleton was made of a 4-DoF shoulder-elbow exoskeleton (i.e., NeuroExos Shoulder-Elbow Module (NESM) (Crea et al., <xref ref-type="bibr" rid="B2">2016</xref>)) for reaching movements, and a 5-DoF wrist-hand exoskeleton responsible for the grasping phase. The system was experimentally validated on four patients with Limb Girdle Muscular Dystrophy (LGMDs). They were asked to perform one ADL (i.e., the drinking task) and two activities belonging to the Southampton Hand Assessment Procedure (SHAP) clinical test (i.e., pouring and lifting a light sphere, consisting in reach-grasp-move-release a spherical object). The position of the object to be grasped was acquired by means of an external camera (Optitrack).</p>
<p>A comparative analysis with the traditional approach based on path planning and IK for upper-limb exoskeletons was carried out. Moreover, the data acquired during the experimental session were used to assess the generalization capability of the proposed motion planning system with respect to the different anthropometry of the patients and the different object positions. Performance of the proposed motion planning system was measured through a set of performance indicators, consisting of success rate, distance from target position, distance from the physiological behavior, and computational burden.</p>
<p>The paper is organized as follows: in Section <xref ref-type="sec" rid="S2">2</xref>, the exoskeleton, the proposed motion planner, and the experimental setup and protocol are presented. Experimental results are illustrated and discussed in Section <xref ref-type="sec" rid="S3">3</xref> and Section <xref ref-type="sec" rid="S4">4</xref>, respectively. Finally, conclusion and future works are reported in Section <xref ref-type="sec" rid="S5">5</xref>.</p>
</sec>
<sec id="S2" sec-type="materials|methods">
<label>2</label> <title>Materials and Methods</title>
<sec id="S2-1">
<label>2.1</label> <title>Exoskeletons</title>
<p>The upper-limb exoskeleton used to validate the proposed motion planning system is shown in Figure <xref ref-type="fig" rid="F1">1</xref>. It consists of the NESM 4-DoF exoskeleton and a 5-DoF Wrist-hand exoskeleton, described in the following.</p>
<fig position="float" id="F1">
<label>Figure 1</label>
<caption><p>NESM upper-limb exoskeleton with the wrist-hand exoskeleton.</p></caption>
<graphic xlink:href="fnbot-12-00005-g001.tif"/>
</fig>
<sec id="S2-1-1">
<label>2.1.1</label> <title>NESM</title>
<p>NESM is an upper-limb exoskeleton consisting of four active DoFs addressing the shoulder abduction/adduction (sA/A), flexion/extension (sF/E) and internal/external rotation (sI/E), as well as the elbow flexion/extension (eF/E) movements (Crea et al., <xref ref-type="bibr" rid="B2">2016</xref>). Additional passive degrees of freedom and size regulations are included within the kinematic chain to improve the safety and wear ability of the device: this system automatically compensates for joint misalignments of the elbow and shoulder complex and allows users with different anthropometries wearing the device.</p>
<p>Each actuation unit has a series-elastic actuator (SEA), comprising a DC motor and reduction gear in series with a custom spring. Two absolute encoders placed at both sides of the spring allow sensing the joint torque by measuring the spring deformation, and at the same time, the encoder mounted more proximally to the human joint provides the joint angular value. By virtue of the SEA architecture, both position and torque control strategies have been implemented.</p>
<p>The sA/A and sF/E actuation units are identical and are able to withstand peak torques up to 60&#x02009;<italic>Nm</italic>. Similarly, the sI/E and eF/E actuation units can deliver up to 30&#x02009;<italic>Nm</italic> of peak torques. These features make the exoskeleton suitable to assist users having highly reduced or null residual motion capabilities of their upper arm. Notably, in this study, the position control modality is employed to perform completely passive mobilization of the user&#x02019;s arm.</p>
<p>Each joint can move within the following range of motion (the zero configuration is with the arm parallel to the trunk): 0&#x000B0; to &#x02212;90&#x000B0; for sA/A and sF/E, &#x02212;75&#x000B0; to 25&#x000B0; for sI/E and 0&#x000B0; to 120&#x000B0; for eF/E.</p>
</sec>
<sec id="S2-1-2">
<label>2.1.2</label> <title>Wrist-Hand Exoskeleton</title>
<p>The wrist-hand exoskeleton is composed of two modules, the hand and the wrist, that can be used separately or in combination. The wrist exoskeleton guarantees the activation of the prono/supination movements. It consists of a DC motor with a reduction stage, which drives a geared ring guide. The guide is attached to an orthosis that aligns the forearm with the guide axis. Joint limits are mechanically provided, but, if necessary they can be reduced via software for increasing the safety in the human-robot interaction.</p>
<p>The hand exoskeleton has 4 active DoFs: F/E of the index finger Metacarpophalangeal (MCP) joint, F/E of the middle finger MCP joint, F/E of the ring and little finger MCP joints, and F/E of the thumb MCP joint. A linkage mechanism between the M regulator as well. When a reference MCP and the Proximalinterphalangeal (PIP) joint is adopted on each finger and is driven by a linear actuator, for moving both PIP and MCP joints. A unique linear actuator is used for driving the PIP and MCP joints of both the third and the fourth fingers. The thumb A/A is fixed in a suitable position.</p>
<p>The wrist exoskeleton can be easily connected to the shoulder-elbow exoskeleton. In fact, by simply removing the forearm cuff from the NESM, the cuff integrated to the wrist exoskeleton can be attached to the output frame of the elbow actuation unit. The resulting device is a full-arm robotic exoskeleton.</p>
</sec>
</sec>
<sec id="S2-2">
<label>2.2</label> <title>Low Level Control (LLC)</title>
<p>The control system used to operate the NESM implements two control strategies: joint position and joint torque control modes. When controlled in position, each actuation unit drives the joint position along a reference value or trajectory. The controller is based on a proportional-integral-derivative (PID) regulator, which operates on the difference between the reference joint angle and the measured one. The output is a current commanded to the driver of the SEA actuation unit to provide the torque necessary to achieve the movement with null steady-state error.</p>
<p>In the torque control mode, each motor is controlled to provide a certain amount of torque. The closed-loop torque controller output is dependent on the difference between the desired joint torque and the measured one, and it is built on a PID regulator as well. When a reference torque of 0&#x02009;<italic>Nm</italic> is commanded on each joint, the device can be used in transparent mode, allowing the user to freely move the arm. Conversely, the wrist module and the hand exoskeleton could be controlled only in position; the controller used to operate these devices is based on a PID regulator, which operates on the difference between the reference joint angle and the measured one.</p>
</sec>
<sec id="S2-3">
<label>2.3</label> <title>Motion Planning Based on LbD for Upper-Limb Exoskeletons</title>
<p>The proposed motion planning for upper-limb exoskeletons is shown in Figure <xref ref-type="fig" rid="F2">2</xref>. A variation of LbD method used in Ijspeert et al. (<xref ref-type="bibr" rid="B4">2013</xref>) is presented. In particular, in this work, differently from Ijspeert et al. (<xref ref-type="bibr" rid="B4">2013</xref>), a combination of DMP and supervised learning is adopted with the aim of avoiding motion planning in the Cartesian space and inverse kinematics. The proposed motion planning consists of two main stages, named off-line neural network training and DMP computation. In the off-line neural network training, the trajectories executed by a healthy human subject, e.g., the therapist or the caregiver, are recorded by means of motion tracking devices such as magneto inertial sensors or the robot itself when backdriven, and distinctive features, named DMP parameters, are subsequently extracted using a LWR algorithm (&#x0201C;Motion recording and DMP parameters extraction&#x0201D; block in Figure <xref ref-type="fig" rid="F2">2</xref>). Hence, a neural network is trained through the Levenberg-Marquardt (LM) supervised learning algorithm in order to associate DMP parameters and robot joint target position to context factors taken in input (i.e., object position and task to be performed).</p>
<fig position="float" id="F2">
<label>Figure 2</label>
<caption><p>Block scheme of the proposed motion planning system.</p></caption>
<graphic xlink:href="fnbot-12-00005-g002.tif"/>
</fig>
<p>In the DMP computation, the patient can perform an ADL task with the assistance of the exoskeleton. Depending on the task and object position, the trained neural network provides the proper set of DMP parameters and robot joint target positions for computing the set of DMPs that best fit the desired task (&#x0201C;DMP computation&#x0201D; block).</p>
<sec id="S2-3-3">
<label>2.3.1</label> <title>DMP Computation</title>
<p>The computation of the DMPs is obtained through the resolution of a non-linear second order system, expressed as
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mn>&#x003C4;</mml:mn><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mo>&#x0003D;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mi>g</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:mfenced><mml:mo>&#x02212;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:mo>&#x0002B;</mml:mo><mml:mi>f</mml:mi></mml:math></disp-formula>
where <italic>&#x003C4;</italic> is a time constant, <italic>&#x003B1;<sub>q</sub></italic> and <italic>&#x003B2;<sub>q</sub></italic> are positive constants, <italic>q</italic><sub>0</sub> and <italic>g</italic> are the initial and final points of the trajectory, respectively, and <italic>f</italic> is a forcing term that implements the landscape attractor of the system. In equation (<xref ref-type="disp-formula" rid="E1">1</xref>), <italic>q</italic> refers to a generic joint position of the robot that needs to be computed for each joint of the exoskeleton (i.e., <italic>q</italic><sub>1</sub>, <italic>q</italic><sub>2</sub>&#x02009;&#x02026;&#x02009;<italic>q</italic><sub>5</sub>).</p>
<p>A possible formulation of the forcing term, namely the landscape attractor (Ijspeert et al., <xref ref-type="bibr" rid="B4">2013</xref>), is
<disp-formula id="E2"><label>(2)</label><mml:math id="M2"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msubsup><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mn>&#x003A8;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mn>&#x003C9;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msubsup><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mn>&#x003A8;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mi>x</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>
where <italic>&#x003C9;<sub>i</sub></italic> is the DMP parameters, namely the weight parameters adopted to reconstruct the recorded motion, while <italic>x</italic> is the state variable of the system that makes equation (<xref ref-type="disp-formula" rid="E1">1</xref>) a time-independent system. It is defined as
<disp-formula id="E3"><label>(3)</label><mml:math id="M3"><mml:mn>&#x003C4;</mml:mn><mml:mi>&#x01E8B;</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mi>x</mml:mi></mml:math></disp-formula>
where <italic>&#x003B1;<sub>x</sub></italic> is a positive constant. On the other hand, &#x003A8;<italic><sub>i</sub></italic>(<italic>x</italic>) is Gaussian kernels expressed as
<disp-formula id="E4"><label>(4)</label><mml:math id="M4"><mml:msub><mml:mrow><mml:mn>&#x003A8;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:mi mathvariant="italic">exp</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:msubsup><mml:mrow><mml:mn>&#x003C3;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfenced></mml:math></disp-formula>
where <italic>&#x003C3;<sub>i</sub></italic>, <italic>c<sub>i</sub></italic>, and <italic>N</italic> are the width, the centers, and the number of Gaussian functions, respectively. The state variable <italic>x</italic> as well as centers <italic>c<sub>i</sub></italic> range between 0 and 1.</p>
<p>As in our previous work (Lauretti et al., <xref ref-type="bibr" rid="B9">2017a</xref>), an optimized spatial allocation of the Gaussian kernels is adopted, depending on the complexity of the recorded trajectory. Hence, <italic>c<sub>i</sub></italic> and <italic>&#x003C3;<sub>i</sub></italic> are defined as
<disp-formula id="E5"><label>(5)</label><mml:math id="M5"><mml:mi>c</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msubsup><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace width="0.2em"/><mml:mi mathvariant="italic">dz</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0007C;&#x0007C;</mml:mo><mml:msubsup><mml:mrow><mml:mo>&#x0222B;</mml:mo></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace width="0.2em"/><mml:mi mathvariant="italic">dz</mml:mi><mml:mo>&#x0007C;&#x0007C;</mml:mo></mml:mrow></mml:mfrac></mml:math></disp-formula>
<disp-formula id="E6"><label>(6)</label><mml:math id="M6"><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle='true'><mml:munderover><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mspace width="0.2em"/><mml:mi mathvariant="italic">exp</mml:mi><mml:mspace width="0.2em"/><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mi>z</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:math></disp-formula>
<disp-formula id="E7"><label>(7)</label><mml:math id="M7"><mml:mn>&#x003C3;</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B3;</mml:mn></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula>
<disp-formula id="E8"><label>(8)</label><mml:math id="M8"><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>c</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
<disp-formula id="E9"><label>(9)</label><mml:math id="M9"><mml:msub><mml:mrow><mml:mn>&#x003C3;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>&#x003C3;</mml:mn><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
where <italic>&#x003B1;<sub>z</sub></italic>, <italic>&#x003B2;<sub>z</sub></italic>, <italic>&#x003B3;<sub>z</sub></italic>, and <italic>&#x003B4;<sub>z</sub></italic> are positive constants, <italic>P</italic> is the number of critical points of the recorded trajectory, and <italic>z<sub>k</sub></italic> is the normalized time instant of each critical point. A graphical representation of <italic>c</italic> and <italic>&#x003C3;</italic> functions is provided in Figure <xref ref-type="fig" rid="F3">3</xref>.</p>
<fig position="float" id="F3">
<label>Figure 3</label>
<caption><p><italic>c</italic> and <italic>&#x003C3;</italic> functions for the optimal allocation of the Gaussian Kernels. X&#x0002A; and T&#x0002A; are the state value and time instant corresponding to the critical point (Lauretti et al., <xref ref-type="bibr" rid="B9">2017a</xref>).</p></caption>
<graphic xlink:href="fnbot-12-00005-g003.tif"/>
</fig>
</sec>
<sec id="S2-3-4">
<label>2.3.2</label> <title>Off-Line Neural Network Training</title>
<sec id="S2-3-4-1">
<label>2.3.2.1</label> <title>DMP Parameters Extraction</title>
<p>DMP parameters <italic>&#x003C9;<sub>i</sub></italic> are extracted through a LWR algorithm (Schaal and Atkeson, <xref ref-type="bibr" rid="B21">1998</xref>). The recorded motion and derivatives, i.e., <italic>q<sub>d</sub></italic>, <inline-formula><mml:math id="M10"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and <inline-formula><mml:math id="M11"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are inserted in the forcing term in equation (<xref ref-type="disp-formula" rid="E2">2</xref>) as follows
<disp-formula id="E10"><label>(10)</label><mml:math id="M12"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>&#x003C4;</mml:mn><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mi>g</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:math></disp-formula>
and a function approximation problem is formulated. Hence, a locally weighted quadratic error is minimized by means of the following cost function
<disp-formula id="E11"><label>(11)</label><mml:math id="M13"><mml:msub><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mn>&#x003A8;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003C9;</mml:mn></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mn>&#x003F5;</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></disp-formula>
<disp-formula id="E12"><label>(12)</label><mml:math id="M14"><mml:mn>&#x003F5;</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mi>g</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:math></disp-formula>
and <italic>&#x003C9;<sub>i</sub></italic> parameters that make <italic>f<sub>t</sub></italic> as close as possible to <italic>f</italic> are found, for each kernel function &#x003A8;<sub>i</sub>(<italic>t</italic>), in order to reconstruct the trajectory <italic>q<sub>d</sub></italic>, <inline-formula><mml:math id="M15"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>	</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and <inline-formula><mml:math id="M16"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, through <italic>q</italic>, <inline-formula><mml:math id="M17"><mml:mover accent='true'><mml:mi>q</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:math></inline-formula>, and <inline-formula><mml:math id="M18"><mml:mover accent='true'><mml:mi>q</mml:mi><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:math></inline-formula>, respectively. In equation (<xref ref-type="disp-formula" rid="E12">12</xref>), &#x003F5; is the error between the target joint position to be reached <italic>g</italic> and the initial joint position of the exoskeleton <italic>q</italic><sub>0</sub>.</p>
</sec>
<sec id="S2-3-4-2">
<label>2.3.2.2</label> <title>Neural Network</title>
<p>A Levenberg-Marquardt algorithm (LM) has been adopted for the off-line neural network training (Lourakis, <xref ref-type="bibr" rid="B12">2005</xref>). Given a parameter vector <inline-formula><mml:math id="M19"><mml:mi mathvariant="bold-italic">p</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mi mathvariant="fraktur">R</mml:mi><mml:mi>n</mml:mi></mml:msup></mml:math></inline-formula> and a measurement vector <bold><italic>x</italic></bold> &#x02208; &#x0211C;<italic><sup>m</sup></italic>, the LM algorithm finds the functional relation (<italic>f</italic>) that maps the parameter vector <bold><italic>p</italic></bold> into an estimated measurement <bold><italic>x</italic></bold>&#x0005E; (<inline-formula><mml:math id="M20"><mml:mover accent="true"><mml:mrow><mml:mtext mathvariant="bold-italic">x</mml:mtext></mml:mrow><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>). A linear approximation of <italic>f</italic> in the neighborhood of <italic><bold>p</bold></italic> is provided by a Taylor series expansion
<disp-formula id="E13"><label>(13)</label><mml:math id="M21"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mtext mathvariant="bold-italic">J</mml:mtext><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>o</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>Neglecting the higher order terms <italic>o</italic>(<bold><italic>p</italic></bold>), equation (<xref ref-type="disp-formula" rid="E12">12</xref>) could be approximated as
<disp-formula id="E14"><label>(14)</label><mml:math id="M22"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02248;</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mtext mathvariant="bold-italic">J</mml:mtext><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula>
where <bold><italic>J</italic></bold> is the Jacobian matrix <inline-formula><mml:math id="M23"><mml:mfrac><mml:mrow><mml:mn>&#x003B4;</mml:mn><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">P</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>&#x003B4;</mml:mn><mml:mtext mathvariant="bold-italic">P</mml:mtext></mml:mrow></mml:mfrac></mml:math></inline-formula>.</p>
<p>At each step of the iterative process, LM looks for the <italic>&#x003B4;<sub>p</sub></italic> that minimizes the error defined as <inline-formula><mml:math id="M24"><mml:mo>&#x02225;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02225;</mml:mo><mml:mo>=</mml:mo><mml:mo>&#x02225;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">p</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mtext mathvariant="bold-italic">J</mml:mtext><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo><mml:mspace width="0.2em"/><mml:mo>=</mml:mo><mml:mo>&#x02225;</mml:mo><mml:mn>&#x003F5;</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mtext mathvariant="bold-italic">J</mml:mtext><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo></mml:math></inline-formula>. The error is minimized when <bold><italic>J</italic></bold><italic>&#x003B4;<sub>p</sub></italic>&#x02013;&#x003F5; is orthogonal to the column space of <bold><italic>J</italic></bold>, namely when the following condition holds
<disp-formula id="E15"><label>(15)</label><mml:math id="M25"><mml:msup><mml:mrow><mml:mtext mathvariant="bold-italic">J</mml:mtext></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">J</mml:mtext><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mn>&#x003F5;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></disp-formula>
<disp-formula id="E16"><label>(16)</label><mml:math id="M26"><mml:msup><mml:mrow><mml:mtext mathvariant="bold-italic">J</mml:mtext></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mtext mathvariant="bold-italic">J</mml:mtext><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mtext mathvariant="bold-italic">J</mml:mtext></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mn>&#x003F5;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:math></disp-formula></p>
<p>In the LM method, equation (<xref ref-type="disp-formula" rid="E16">16</xref>), called <italic>normal equation</italic>, is written as
<disp-formula id="E17"><label>(17)</label><mml:math id="M27"><mml:mtext mathvariant="bold-italic">N</mml:mtext><mml:msub><mml:mrow><mml:mn>&#x003B4;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mtext mathvariant="bold-italic">J</mml:mtext></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mn>&#x003F5;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula>
<disp-formula id="E18"><label>(18)</label><mml:math id="M28"><mml:mtext mathvariant="bold-italic">N</mml:mtext><mml:mo>=</mml:mo><mml:mn>&#x003BC;</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mtext mathvariant="bold-italic">J</mml:mtext></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mtext mathvariant="bold-italic">J</mml:mtext></mml:math></disp-formula>
where <bold><italic>J</italic></bold><italic><sup>T</sup></italic><bold><italic>J</italic></bold> and <italic>&#x003BC;</italic> are called damping and damping term, respectively. One iteration of LM algorithm consists of finding an acceptable value of the damping term that reduces the error <italic>&#x003F5;<sub>p</sub></italic>. In other words, if <italic>&#x003B4;<sub>p</sub></italic> computed from equation (<xref ref-type="disp-formula" rid="E17">17</xref>), leads to a reduction of the error <italic>&#x003F5;<sub>p</sub></italic>, the damping term is decreased and the following iteration is processed; otherwise, the damping term is increased and equation (<xref ref-type="disp-formula" rid="E17">17</xref>) is solved again. The LM algorithm stops running when, at least, (i) <inline-formula><mml:math id="M29"><mml:msup><mml:mrow><mml:mtext mathvariant="bold-italic">J</mml:mtext></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mn>&#x003F5;</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> of equation (<xref ref-type="disp-formula" rid="E17">17</xref>) is lower than a preset threshold &#x003F5;<sub>1</sub> or (ii) <italic>&#x003B4;<sub>p</sub></italic> is lower than a threshold &#x003F5;<sub>2</sub> or (iii) a maximum number of iteration <italic>N<sub>MAX</sub></italic> is reached. For the sake of brevity, the complete LM algorithm is not shown; further theoretical details about the implemented method could be found in Lourakis (<xref ref-type="bibr" rid="B12">2005</xref>).</p>
<p>The structure of the adopted neural network is reported in Figure <xref ref-type="fig" rid="F4">4</xref>. A two layer feed-forward network with <italic>M</italic> sigmoid hidden neurons and <italic>N</italic> &#x0002B;&#x02009;1 linear output neurons is used for each joint and for each task the user wants to perform. The inputs of each network are the Cartesian target positions to be reached, <italic>P<sub>x</sub></italic>, <italic>P<sub>y</sub></italic>, and <italic>P<sub>z</sub></italic> (e.g., object position); on the other hand, the outputs of each network are the DMP parameters, <italic>&#x003C9;</italic><sub>1</sub>, <italic>&#x003C9;</italic><sub>2</sub>&#x02026;<italic>&#x003C9;<sub>N</sub></italic>, and the target joint angles, <italic>Q<sub>i</sub></italic> (N is the number of DMP parameters computed for the i-th joint).</p>
<fig position="float" id="F4">
<label>Figure 4</label>
<caption><p>Structure of the adopted neural network.</p></caption>
<graphic xlink:href="fnbot-12-00005-g004.tif"/>
</fig>
</sec>
<sec id="S2-3-4-3">
<label>2.3.2.3</label> <title>Adapting NN Outputs to Different Subject Anthropometries</title>
<p>In order to adapt the proposed method to different human bodies, a recursive method that adjusts the NN outputs for distinct subject anthropometries was used. Its functioning principle is shown in Figure <xref ref-type="fig" rid="F5">5</xref>.</p>
<fig position="float" id="F5">
<label>Figure 5</label>
<caption><p>Block scheme of the recursive method used to adjust the NN outputs for different subject anthropometries.</p></caption>
<graphic xlink:href="fnbot-12-00005-g005.tif"/>
</fig>
<p>In the block scheme, <italic>P<sub>d</sub></italic> is the Cartesian target position to be reached, <italic>Q</italic> is the output configuration of the robot joints, subject 1 is the person involved in the NN training phase while subject 2 is the assisted person, who wants to perform an ADL thanks to the exoskeleton assistance. It is worth noting that, with the aforementioned exoskeletons and the described tasks, two loops of the recursive algorithm are suitable to obtain an acceptable error in reaching the target position (less than 10&#x02009;mm).</p>
</sec>
</sec>
</sec>
<sec id="S2-4">
<label>2.4</label> <title>Traditional Path Planning and IK</title>
<p>A simple path planning, based on a third-order polynomial function, was implemented in order to generate Cartesian trajectories with null velocity at the beginning and at the end of the movement. It can be written as
<disp-formula id="E19"><label>(19)</label><mml:math id="M30"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mn>2</mml:mn><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mn>3</mml:mn><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></disp-formula>
where <italic>z</italic> is the desired exoskeleton Cartesian pose, z<italic><sub>f</sub></italic> and <italic>z<sub>i</sub></italic> are the final and initial desired Cartesian pose, respectively, and <italic>D</italic> is the motion duration.</p>
<p>Hence, two IK methods were adopted to generate the reference joint position for the exoskeleton. They are IK based on the computation of the swivel angle (named in the following <italic>IK with swivel angle</italic>) and IK with the inverse Jacobian (named in the following <italic>IK Inverse Jacobian</italic>).</p>
<sec id="S2-4-5">
<label>2.4.1</label> <title>IK with Swivel Angle</title>
<p>The IK algorithm with swivel angle was <italic>ad hoc</italic> developed for a 4-DoF spherical-revolute (S-R) manipulator (i.e., the shoulder-elbow exoskeleton), based on geometrical considerations. An additional constraint was imposed to calculate the analytical solution for the last revolute DoF of the upper-limb exoskeleton (i.e., the wrist prono-supination). For the sake of clarity, the Denavit-Hartenberg model and parameters of the upper-limb exoskeleton are reported in Figure <xref ref-type="fig" rid="F6">6</xref>.</p>
<fig position="float" id="F6">
<label>Figure 6</label>
<caption><p>NESM reference frames positioning according to the Denavit&#x02013;Hartenberg (D&#x02013;H) convention.</p></caption>
<graphic xlink:href="fnbot-12-00005-g006.tif"/>
</fig>
<p>The IK algorithm for the shoulder-elbow exoskeleton manages three Cartesian coordinates and one orientation coordinate and consists of the following steps:
<list list-type="bullet">
<list-item><p>Being the target position known (vector <inline-formula><mml:math id="M31"><mml:mover accent="true"><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:math></inline-formula>), the solution for the elbow angle is derived geometrically:
<disp-formula id="E20"><label>(20)</label><mml:math id="M32"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>&#x003C0;</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi mathvariant="italic">acos</mml:mi><mml:mspace width="0.1em"/><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mrow><mml:mfenced separators="" open="|" close="|"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula></p></list-item>
<list-item><p>The orientation coordinate is a free parameter, (<italic>&#x003B3;</italic>), introduced for guaranteeing anthropomorphic criteria and is defined as the angle, on the frontal plane (<italic>x</italic><sub>0</sub>&#x02013;<italic>y</italic><sub>0</sub> in Figure <xref ref-type="fig" rid="F6">6</xref>), between the plane containing the upper arm and forearm and the frontal plane. Once <italic>&#x003B3;</italic> is chosen, two possible configurations of the elbow (i.e., left or right) allow the arm lying in the chosen plane: the solution with the four angles in the physiological range is selected.</p></list-item>
<list-item><p>Then, the shoulder joint angles can be derived from forward kinematics:
<disp-formula id="E21"><label>(21)</label><mml:math id="M33"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">atan</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
<disp-formula id="E22"><label>(22)</label><mml:math id="M34"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">acos</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
<disp-formula id="E23"><label>(23)</label><mml:math id="M35"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mtext>arccos</mml:mtext><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula></p></list-item>
<list-item><p>The wrist prono-supination angle is calculated, by imposing a constraint on the hand orientation. For the addressed tasks (i.e., drinking, pouring, reaching-grasping-moving-releasing of the sphere), two configurations were considered:
<list list-type="simple">
<list-item><label>(1)</label> <p>Palm of the hand pointing downward (for pouring and sphere reaching-moving):
<disp-formula id="E24"><label>(24)</label><mml:math id="M36"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mtext>arctan</mml:mtext><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mn>&#x003D1;</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula></p></list-item>
<list-item><label>(2)</label> <p>Palm of the hand pointing left (for drinking):
<disp-formula id="E25"><label>(25)</label><mml:math id="M37"><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>5</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mtext>arctan</mml:mtext><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mo>&#x0002B;</mml:mo><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>cos</mml:mtext><mml:mspace width="0.2em"/><mml:mi>q</mml:mi><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.2em"/><mml:mtext>sin</mml:mtext><mml:mspace width="0.2em"/><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula></p></list-item></list>
</p></list-item></list></p>
</sec>
<sec id="S2-4-6">
<label>2.4.2</label> <title>IK with Inverse Jacobian</title>
<p>The IK algorithm with inverse Jacobian is well-described by the following equation (Siciliano et al., <xref ref-type="bibr" rid="B22">2010</xref>),
<disp-formula id="E26"><label>(26)</label><mml:math id="M38"><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi mathvariant="italic">Ke</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>
where <inline-formula><mml:math id="M39"><mml:msubsup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is the analytical inverse Jacobian computed on the kinematic chain of Figure <xref ref-type="fig" rid="F6">6</xref>, <italic>q</italic> and <inline-formula><mml:math id="M40"><mml:mover accent='true'><mml:mi>q</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:math></inline-formula> are the joint angle and its derivative, respectively, <inline-formula><mml:math id="M41"><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the desired velocity in the Cartesian space, K is a positive definite matrix (usually diagonal), and <italic>e</italic> is the <italic>operational space error</italic> defined as <italic>e</italic>&#x02009;&#x0003D;&#x02009;<italic>x<sub>d</sub></italic>&#x02013;<italic>x<sub>e</sub></italic>. The desired joint configuration <italic>q</italic> is obtained by numerically integrating equation (<xref ref-type="disp-formula" rid="E26">26</xref>) through the Euler method.</p>
</sec>
</sec>
<sec id="S2-5">
<label>2.5</label> <title>Experimental Setup</title>
<p>The experimental platform for the validation of the proposed motion planning system based on LbD is shown in Figure <xref ref-type="fig" rid="F7">7</xref>.</p>
<fig position="float" id="F7">
<label>Figure 7</label>
<caption><p>Block scheme of the platform.</p></caption>
<graphic xlink:href="fnbot-12-00005-g007.tif"/>
</fig>
<p>A user graphical interface is used to show the action to perform to the subject. The control system architecture consisted in a finite-state machine, which divides the main task (i.e., drinking, pouring and reach-grasp-move-release a sphere) into several elementary actions (corresponding to the subtasks listed in Table <xref ref-type="table" rid="T1">1</xref>) that the different devices can accomplish (e.g., waiting for the trigger, reaching the glass, grasping, etc.). Each subtask is triggered by the user by means of the combined M-IMU/EMG interfaces, letting him/her to control the exoskeletons. An abort function was also implemented in the state machine to safely abort the execution of the task at any time.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Tasks description.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left" colspan="2">Task 1: Drinking</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">subtask 1-1</td>
<td valign="top" align="left">reach the glass</td>
</tr>
<tr>
<td valign="top" align="left">subtask 1-2</td>
<td valign="top" align="left">reach the mouth</td>
</tr>
<tr>
<td valign="top" align="left">subtask 1-3</td>
<td valign="top" align="left">reach the table for releasing the glass</td>
</tr>
<tr>
<td valign="top" align="left">subtask 1-4</td>
<td valign="top" align="left">go back to the rest position</td>
</tr>
<tr>
<td valign="top" align="left" colspan="2"><hr/></td>
</tr>
<tr>
<td valign="top" align="left" colspan="2"><bold>Task 2: Pouring</bold></td>
</tr>
<tr>
<td valign="top" align="left" colspan="2"><hr/></td>
</tr>
<tr>
<td valign="top" align="left">subtask 2-1</td>
<td valign="top" align="left">reach the bottle</td>
</tr>
<tr>
<td valign="top" align="left">subtask 2-2</td>
<td valign="top" align="left">pour the water into the glass</td>
</tr>
<tr>
<td valign="top" align="left">subtask 2-3</td>
<td valign="top" align="left">reach the table for releasing the bottle</td>
</tr>
<tr>
<td valign="top" align="left">subtask 2-4</td>
<td valign="top" align="left">go back to the rest position</td>
</tr>
<tr>
<td valign="top" align="left" colspan="2"><hr/></td>
</tr>
<tr>
<td valign="top" align="left" colspan="2"><bold>Task 3: SHAP sphere</bold></td>
</tr>
<tr>
<td valign="top" align="left" colspan="2"><hr/></td>
</tr>
<tr>
<td valign="top" align="left">subtask 3-1</td>
<td valign="top" align="left">reach the sphere</td>
</tr>
<tr>
<td valign="top" align="left">subtask 3-2</td>
<td valign="top" align="left">move the sphere to another position on the table</td>
</tr>
<tr>
<td valign="top" align="left">subtask 3-3</td>
<td valign="top" align="left">go back to the rest position</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The communication within the subsystems composing the platform is managed by the Yet Another Robotic Platform (YARP) messaging system. The motion commands acquired by the user are sent, through the YARP server, to the exoskeletons. All the acquired data are synchronized and saved under YARP.</p>
<p>The platform components are shown in Figure <xref ref-type="fig" rid="F8">8</xref> and are detailed in the following.</p>
<fig position="float" id="F8">
<label>Figure 8</label>
<caption><p>A representative subject performing the task (the subject signed an informed consent document to authorize publication of this picture).</p></caption>
<graphic xlink:href="fnbot-12-00005-g008.tif"/>
</fig>
<sec id="S2-5-7">
<label>2.5.1</label> <title>User Interface</title>
<p>The interface adopted to detect the user movement intention is based on the combined use of 2 push-buttons and 2 M-IMUs (Lauretti et al., <xref ref-type="bibr" rid="B10">2017b</xref>).</p>
<p>The 2 push-buttons were placed on a table in order to be activated by the index and the thumb fingers and to be used as a switch. Moreover, the two M-IMUs (XSens MTw) were placed on the user trunk and head in order to detect his/her neck motion. An Awinda Station was used to record at 100&#x02009;Hz of synchronized wireless data from the two M-IMUs.</p>
<p>By means of the developed interface the user may exploit: (i) the head yaw motion in the negative direction to operate the upper-limb exoskeleton movements and the head yaw motion in the positive direction to abort the task; (ii) the index finger and thumb residual motion to trigger the hand opening and the hand closing.</p>
</sec>
</sec>
<sec id="S2-6">
<label>2.6</label> <title>Experimental Protocol</title>
<sec id="S2-6-8">
<label>2.6.1</label> <title>Off-Line Neural Network Training</title>
<p>The developed neural network was trained off-line on a healthy volunteer subject (with upper arm length <italic>L<sub>Upper Arm</sub></italic>&#x02009;&#x0003D;&#x02009;0.33&#x02009;<italic>m</italic> and forearm length <italic>L<sub>forearm</sub></italic>&#x02009;&#x0003D;&#x02009;0.3&#x02009;<italic>m</italic>). He was asked to perform the drinking task, with 41 different glass positions (Figure <xref ref-type="fig" rid="F9">9</xref>A) and two activities belonging to the SHAP clinical test, i.e., pouring (for 15 different positions of the glass and the bottle as in Figure <xref ref-type="fig" rid="F9">9</xref>B) and reach-grasp-move-release a sphere (for 25 different positions of the sphere as in Figure <xref ref-type="fig" rid="F9">9</xref>C). Each task was performed 5 times per each object position and arm motion was recorded. The shoulder motion, i.e., the sA/A, sF/E, sI/E, and eF/E movements were recorded through the NESM used in transparent mode; conversely, the wrist Prono-Supination wP/S was recorded by means of two M-IMUs placed on the subject forearm and hand.</p>
<fig position="float" id="F9">
<label>Figure 9</label>
<caption><p>The workspace reached during the assistive tasks is delimited by the black line. Object positions during training are indicated by black dots [the glass in the drinking task in <bold>(A)</bold>, the bottle in the pouring task in <bold>(B)</bold> and the initial position of the sphere in the SHAP task in <bold>(C)</bold>]. Conversely, the glass positions during the pouring task and the sphere final positions in the SHAP task are indicated by red dots in <bold>(B, C)</bold>, respectively.</p></caption>
<graphic xlink:href="fnbot-12-00005-g009.tif"/>
</fig>
<p>About 70% of the recorded data was used to train the neural network; the remaining 30% was used to validate and test the neural network in order to avoid over-fitting issues.</p>
</sec>
<sec id="S2-6-9">
<label>2.6.2</label> <title>DMP Computation and Control</title>
<p>The experimental session was aimed to measure performance of the proposed motion planning system, compare with the traditional approach based on inverse kinematics described in Section <xref ref-type="sec" rid="S2-4">2.4</xref> and assess generalization capability. The system was tested during the fulfillment of the same ADLs used for training, i.e., drinking, the pouring, and reach-grasp-move-release a sphere. In the following, they are named task 1, 2, and 3, respectively. Additionally, each task is divided into a number of subtasks listed in Table <xref ref-type="table" rid="T1">1</xref>.</p>
<p>The validation was performed in simulation and in the real setting with patients. Simulation tests allowed evaluating system performance in the whole human-robot workspace (238, 75, and 125 object positions were considered for task 1, 2, and 3, respectively). On the other hand, in the real setting, system performance was assessed on four patients with Limb Girdle Muscular Dystrophy (LGMDs). They, aged 38.5 on average (Standard Deviation 14.6), volunteered to participate in this study. The experimental protocol was approved by the local Ethical committee (Comitato Etico Universit&#x000E0; Campus Biomedico di Roma, reference number: 01/17 PAR ComEt CBM), by the Italian Ministry of Health (Registro&#x02014;classif. DGDMF/I.5.i.m.2/2016/1096) and complied with the Declaration of Helsinki. The subjects were asked to perform three repetitions of the three tasks thanks to the assistance of the 4-DoF upper-limb and 5-DoF wrist-hand exoskeletons (3 object positions for each task were considered in this case).</p>
<sec id="S2-6-9-4">
<label>2.6.2.1</label> <title>Comparative Analysis (CA) with Inverse Kinematics Methods</title>
<p>The CA was aimed to measure performance of the proposed motion planning based on LbD during the control of the exoskeleton and compare the results with the traditional approaches based on path planning and inverse kinematics described in Section <xref ref-type="sec" rid="S2-4">2.4</xref>. The comparative analysis (CA) was carried out in simulation on a subject modeled with 30&#x02009;cm upper arm and forearm lengths and with 238, 75, and 125 different object positions.</p>
</sec>
<sec id="S2-6-9-5">
<label>2.6.2.2</label> <title>Generalization Capability Assessment (GCA)</title>
<p>The GCA was aimed to evaluate the generalization level of the proposed motion planning with respect to the different anthropometries of the patients and the different object positions. First, it was tested in simulation environment (GCA&#x02013;sim) for 238, 75, and 125 object positions (for task 1, 2, and 3 respectively) per 25 different subject anthropometries, i.e., the combination of the following upper arm and forearm lengths: <italic>L<sub>Upper Arm</sub></italic>&#x02009;&#x0003D;&#x02009;30&#x02009;cm, 32&#x02009;cm, 34&#x02009;cm, 36&#x02009;cm, 38&#x02009;cm and <italic>L<sub>forearm</sub></italic>&#x02009;&#x0003D;&#x02009;30&#x02009;cm, 32&#x02009;cm, 34&#x02009;cm, 36&#x02009;cm, 38&#x02009;cm. Subsequently, the proposed motion planning was tested on the four patients (GCA&#x02013;real), with <italic>L<sub>Upper Arm</sub></italic>&#x02009;&#x0003D;&#x02009;33&#x02009;<italic>cm</italic> and <italic>L<sub>forearm</sub></italic>&#x02009;&#x0003D;&#x02009;30&#x02009;cm, 30&#x02009;cm, 35&#x02009;cm, 37&#x02009;cm, for 3 object positions per task.</p>
<p>System performance was measured through three quantitative indicators reported below.</p>
</sec>
<sec id="S2-6-9-6">
<label>2.6.2.3</label> <title>Performance Indices</title>
<p>The proposed performance indicators are: (i) <italic>Position Err1</italic>, <italic>Orientation Err1</italic>, <italic>Position Err2</italic>, <italic>Orientation Err2</italic>, (ii) PhJL (iii) Success Rate and (iv) mean cycle time. They are aimed at evaluating (i) distance from target position, (ii) distance from anthropomorphic configurations, taking into account the physiological joint limits, (iii) the success rate of the task execution, and (iv) the computational burden.</p>
</sec>
<sec id="S2-6-9-7">
<label>2.6.2.4</label> <title>Distance from Target Position</title>
<p>The error was measured during subtasks 1-1, 2-1, 3-1, and 3-2 (Table <xref ref-type="table" rid="T1">1</xref>) as
<disp-formula id="E27"><label>(27)</label><mml:math id="M42"><mml:mi mathvariant="italic">Position Err</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>z</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt></mml:math></disp-formula>
<disp-formula id="E28"><label>(28)</label><mml:math id="M43"><mml:mi mathvariant="italic">Orientation Err</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:mo>&#x02225;</mml:mo></mml:math></disp-formula>
where <italic>x<sub>t</sub></italic>, <italic>y<sub>t</sub></italic>, and <italic>z<sub>t</sub></italic> are the coordinates of the target position and <italic>x</italic>, <italic>y</italic>, and <italic>z</italic> are the coordinates of the actual position reached by the robot end-effector; <italic>&#x003B1;<sub>t</sub></italic> is the desired angle <italic>&#x003B1;</italic> that needs to be 0 for a successful task fulfillment; <italic>&#x003B1;</italic> is illustrated in Figure <xref ref-type="fig" rid="F10">10</xref> and is defined for subtask 1-1 and 2-1 as
<disp-formula id="E29"><label>(29)</label><mml:math id="M44"><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">acos</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo><mml:mspace width="0.5em"/><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula></p>
<fig position="float" id="F10">
<label>Figure 10</label>
<caption><p><bold>(A)</bold> a graphical representation of the end-effector and the base reference frame is shown; <bold>(B)</bold> the <italic>&#x003B1;</italic> angle for task 1-1, 2-1 is shown; <bold>(C)</bold> the <italic>&#x003B1;</italic> angle for task 3 is shown; <bold>(D)</bold> The base reference frame and bottle, end-effector, and glass reference frames are shown; <bold>(E)</bold> the <italic>&#x003B2;</italic> angle for task 2-2 is shown.</p></caption>
<graphic xlink:href="fnbot-12-00005-g010.tif"/>
</fig>
<p>Conversely, for subtask 3-1 and 3-2 <italic>&#x003B1;</italic> is defined as
<disp-formula id="E30"><label>(30)</label><mml:math id="M45"><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">acos</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo><mml:mspace width="0.5em"/><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
where <italic>Y</italic><sub>0</sub>, <italic>X<sub>ee</sub></italic>, and <italic>Z<sub>ee</sub></italic> are defined in the base reference frame [<italic>X<sub>B</sub></italic>, <italic>Y<sub>B</sub></italic>, <italic>Z<sub>B</sub></italic>] as <italic>Y</italic><sub>0</sub>&#x02009;&#x0003D;&#x02009;[0, 1, 0], <inline-formula><mml:math id="M46"><mml:msub><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M47"><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M48"><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the base/end-effector transformation matrix).</p>
<p>For subtask 2-2, the position and orientation error are expressed as
<disp-formula id="E31"><label>(31)</label><mml:math id="M49"><mml:msub><mml:mrow><mml:mi mathvariant="italic">Position Err</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">bottle</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">glass</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">bottle</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">glass</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt></mml:math></disp-formula>
<disp-formula id="E32"><label>(32)</label><mml:math id="M50"><mml:msub><mml:mrow><mml:mi mathvariant="italic">Orientation Err</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:mo>&#x02225;</mml:mo></mml:math></disp-formula>
<disp-formula id="E33"><label>(33)</label><mml:math id="M51"><mml:mfenced separators="" open="[" close="]"><mml:mrow><mml:mtable><mml:mtr><mml:mtd columnalign="center"><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">bottle</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd class="array" columnalign="center"><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">bottle</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd class="array" columnalign="center"><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">bottle</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd class="array" columnalign="center"><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msubsup><mml:mspace width="0.1em"/><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">bottle</mml:mi></mml:mrow></mml:msubsup><mml:mfenced separators="" open="[" close="]"><mml:mrow><mml:mtable><mml:mtr><mml:mtd columnalign="center"><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="center"><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="center"><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="center"><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mfenced></mml:math></disp-formula>
<disp-formula id="E34"><label>(34)</label><mml:math id="M52"><mml:mi>&#x003B2;</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>&#x003C0;</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mi mathvariant="italic">acos</mml:mi><mml:mfenced separators="" open="(" close=")"><mml:mrow><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo><mml:mspace width="0.5em"/><mml:mo>&#x02225;</mml:mo><mml:msub><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02225;</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
where <italic>x<sub>bottle</sub></italic>, <italic>z<sub>bottle</sub></italic>, <italic>x<sub>glass</sub></italic>, and <italic>z<sub>glass</sub></italic> are expressed in the [<italic>X<sub>B</sub></italic>, <italic>Y<sub>B</sub></italic>, <italic>Z<sub>B</sub></italic>] reference frame (Figure <xref ref-type="fig" rid="F10">10</xref>), <inline-formula><mml:math id="M53"><mml:msubsup><mml:mrow><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ee</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">bottle</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is the end-effector/bottle-tip transformation matrix during the whole subtask 2-2 (i.e., when the hand exoskeleton is grasping the bottle) and <italic>&#x003B2;</italic><sub>t</sub> is the desired <italic>&#x003B2;</italic> that needs to range from 0 to <inline-formula><mml:math id="M54"><mml:mfrac><mml:mrow><mml:mn>&#x003C0;</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:mfrac></mml:math></inline-formula> in order to successfully accomplish the pouring task. Thus, defining <italic>&#x003B2;<sub>t</sub></italic>&#x02009;&#x0003D;&#x02009;0, an acceptable value of the orientation error, for a successful task fulfillment, ranges from 0 to <inline-formula><mml:math id="M55"><mml:mfrac><mml:mrow><mml:mn>&#x003C0;</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:mfrac></mml:math></inline-formula>.</p>
</sec>
<sec id="S2-6-9-8">
<label>2.6.2.5</label> <title>Distance from the Physiological Joint Limits</title>
<p>The distance from the physiological joint limits is measured to assess the level of anthropomorphism of the reached configuration during motion. It is expressed as
<disp-formula id="E35"><label>(35)</label><mml:math id="M56"><mml:mi mathvariant="italic">PhJL</mml:mi><mml:mo>=</mml:mo><mml:mfenced separators="" open="&#x02225;" close="&#x02225;"><mml:mrow><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">iM</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">im</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfenced></mml:math></disp-formula>
where <italic>q<sub>i</sub></italic> is the actual position of the i-th joint, <italic>q<sub>iM</sub></italic> and <italic>q<sub>im</sub></italic> are the upper and lower physiological limit of the i-th joint, respectively, and <inline-formula><mml:math id="M57"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000AF;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is the mean value between <italic>q<sub>iM</sub></italic> and <italic>q<sub>im</sub></italic>. An acceptable value of <italic>PhJL</italic> for the considered tasks ranges in between 0 and 1.</p>
</sec>
<sec id="S2-6-9-9">
<label>2.6.2.6</label> <title>Success Rate of the Task Execution</title>
<p>The success rate of the task execution is evaluated as
<disp-formula id="E36"><label>(36)</label><mml:math id="M58"><mml:mi mathvariant="italic">Success rate</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">succ</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">tot</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x022C5;</mml:mo><mml:mn>100</mml:mn></mml:math></disp-formula>
where <italic>N<sub>succ</sub></italic> is the number of trials successfully accomplished and <italic>N<sub>tot</sub></italic> is number of all the performed trials. Trials of tasks 1 and 3 are considered successfully accomplished if all the following conditions are satisfied:
<list list-type="bullet">
<list-item><p><italic>Position Err</italic> &#x02264;&#x02009;15&#x02009;mm,</p></list-item>
<list-item><p><italic>Orientation Err</italic> <inline-formula><mml:math id="M59"><mml:mo>&#x02264;</mml:mo><mml:mfrac><mml:mrow><mml:mn>&#x003C0;</mml:mn></mml:mrow><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:mfrac></mml:math></inline-formula> rad,</p></list-item>
<list-item><p>0&#x02009;&#x02264;&#x02009;<italic>PhJL</italic>&#x02009;&#x02264;&#x02009;1.</p></list-item>
</list></p>
<p>Conversely, trials of Task 2 are considered successfully accomplished if all the following conditions are satisfied:
<list list-type="bullet">
<list-item><p><italic>Position Err</italic><sub>2&#x02212;1</sub>&#x02009;&#x02264;&#x02009;15&#x02009;mm,</p></list-item>
<list-item><p><italic>Orientation Err</italic><sub>2&#x02212;1</sub>&#x02009;<inline-formula><mml:math id="M60"><mml:mo>&#x02264;</mml:mo><mml:mfrac><mml:mrow><mml:mn>&#x003C0;</mml:mn></mml:mrow><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:mfrac></mml:math></inline-formula> rad,</p></list-item>
<list-item><p><italic>Position Err</italic><sub>2&#x02212;2</sub>&#x02009;&#x02264;&#x02009;30&#x02009;mm (i.e. the glass radius),</p></list-item>
<list-item><p>0&#x02009;&#x02264;&#x02009;<italic>Orientation Err</italic><sub>2&#x02212;2</sub> <inline-formula><mml:math id="M61"><mml:mo>&#x02264;</mml:mo><mml:mfrac><mml:mrow><mml:mn>&#x003C0;</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:mfrac><mml:mi mathvariant="italic">rad</mml:mi></mml:math></inline-formula>,</p></list-item>
<list-item><p>0&#x02009;&#x02264;&#x02009;<italic>PhJL</italic>&#x02009;&#x02264;&#x02009;1.</p></list-item>
</list></p>
<p>The aforementioned ranges were experimentally retrieved.</p>
</sec>
<sec id="S2-6-9-10">
<label>2.6.2.7</label> <title>Computational Burden</title>
<p>The computational burden of the three compared methods is evaluated through the mean cycle time; it is the time required to complete one cycle of the algorithm that computes the desired joint trajectory starting from the object position and the task type. The computational time of the 3 methods was evaluated under the same hardware conditions (Processor: Intel(R) Core(TM)2 Duo CPU 3.00&#x02009;GHz) and development environment (MATLAB R2014b).</p>
</sec>
<sec id="S2-6-9-11">
<label>2.6.2.8</label> <title>Statistical Analysis</title>
<p>For motion planner comparative analysis, mean value and SD of the computed performance indices were calculated for each task on the different object positions and subject anthropometries. For the generalization tests, mean value and SD of the computed performance indices were also calculated for all the subjects and the number of repetitions of each task. A statistical analysis based on Wilcoxon paired-sample test was performed for the comparative analysis between the proposed motion planning system and the traditional motion planner based on inverse kinematics. The analysis was carried out on multiple comparisons with Bonferroni correction; hence, significance was achieved for <italic>p-value</italic>&#x02009;&#x0003C;&#x02009;0.05/<italic>n<sub>c</sub></italic>, where <italic>n<sub>c</sub></italic> is the number of multiple comparisons.</p>
</sec>
</sec>
</sec>
</sec>
<sec id="S3">
<label>3</label> <title>Results</title>
<p>The results of the comparative analysis are reported in Figure <xref ref-type="fig" rid="F11">11</xref>. In particular, mean value and standard deviation of the position error, orientation error, and PhJL computed on the 238, 75, and 125 object positions (for task 1, 2, and 3, respectively) are reported.</p>
<fig position="float" id="F11">
<label>Figure 11</label>
<caption><p>Experimental results obtained for CA. The red lines denote the range within which the task is considered successfully accomplished.</p></caption>
<graphic xlink:href="fnbot-12-00005-g011.tif"/>
</fig>
<p>One can observe that the DMP-based control always exceeded the other two algorithms based on inverse kinematics in terms of success rate. The DMP-based control always achieved 100% while the IK inverse Jacobian reached 71.4% and the IK swivel angle reached 84.7%. The differences are statistically significant with <italic>p-value</italic>&#x02009;&#x0003C;&#x02009;0.0083 (for the DMP-based control compared to IK inverse Jacobian <italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0031 and for DMP-based control compared to IK swivel angle <italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0045).</p>
<p>On the other hand, as expected, the DMP-based control suffers from a position error higher than the one achieved with the other two algorithms (this difference is statistically significant with <italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0012 for the DMP-based control compared to IK inverse Jacobian and <italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0008 for DMP-based control compared to IK swivel angle), for all the subtasks except for subtask 2-2.</p>
<p>Indeed, about the position error of the subtask 2-2, the results achieved with the DMP-based control are comparable to the one achieved with IK inverse Jacobian (<italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.09), but are better than the one achieved with IK swivel angle (<italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0033).</p>
<p>Conversely, the orientation error achieved for each task with the DMP-based control is comparable to the one achieved with IK with swivel angle (<italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.12). The difference is statistically significant between the orientation error achieved by the DMP-based control and the one achieved with IK inverse Jacobian, which is lower (<italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0028).</p>
<p>Moreover, the results clearly show that the DMP-based control and IK with swivel angle ensure a more anthropomorphic configuration than IK inverse Jacobian, measured through <italic>PhJL</italic>. The differences are statistically significant, with <italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0024 for the comparison between DMP-based control and IK inverse Jacobian and <italic>p-value</italic>&#x02009;&#x0003D;&#x02009;0.0019 for the comparison between IK swivel angle and IK inverse Jacobian.</p>
<p>Finally, considerations about the computational burden of the three methods have been made; a mean cycle time of 0.4&#x02009;ms, 7.2&#x02009;ms, and 0.1&#x02009;ms for the DMP-based control, IK inverse Jacobian, and IK with swivel angle, respectively, has been estimated. As expected, IK inverse Jacobian has a higher computational burden compared the other two methods, since it is an iterative method. Conversely, it is interesting to note that the proposed DMP-based method, once trained, has a relatively low computational burden (comparable to the geometrical approach based on the swivel angle) since the DMP resolution is not computationally heavy.</p>
<p>The experimental results of the GCA are shown in Table <xref ref-type="table" rid="T2">2</xref>. Mean value and standard deviation of position error, orientation error, and PhJL are reported. They were computed for GCA&#x02013;sim on 238, 75, and 125 object positions (for task 1, 2, and 3, respectively) and 25 different subject anthropometries. Instead, for GCA&#x02013;real they were calculated on the four subjects and 3 object positions for each task. It is interesting to note that performance achieved in the real setting are very close to the simulation results; moreover, the proposed motion planning based on DMP has a high generalization level with respect to the different object positions and subject anthropometries, since the success rate achieved for the 3 task is 100%.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Experimental results obtained for GCA.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="center" colspan="2"/>
<th valign="top" align="center">GCA&#x02013;sim</th>
<th valign="top" align="center">GCA&#x02013;real</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Task 1</td>
<td valign="top" align="left">Position Err [mm]</td>
<td valign="top" align="center">2.7&#x02009;&#x000B1;&#x02009;0.4</td>
<td valign="top" align="center">3.9 &#x000B1;0.5</td>
</tr>
<tr>
<td valign="top" align="left"/>
<td valign="top" align="left">Orientation Err [rad]</td>
<td valign="top" align="center">0.14 &#x000B1;0.01</td>
<td valign="top" align="center">0.164 &#x000B1;0.008</td>
</tr>
<tr>
<td valign="top" align="left"/>
<td valign="top" align="left">PhJL</td>
<td valign="top" align="center">0.51 &#x000B1;0.03</td>
<td valign="top" align="center">0.64 &#x000B1;0.04</td>
</tr>
<tr>
<td valign="top" align="left" colspan="4"><hr/></td>
</tr>
<tr>
<td valign="top" align="left">Task 2-1</td>
<td valign="top" align="left">Position Err1 [mm]</td>
<td valign="top" align="center">3.2 &#x000B1;0.9</td>
<td valign="top" align="center">4.0&#x02009;&#x000B1;&#x02009;3.1</td>
</tr>
<tr>
<td valign="top" align="left"/>
<td valign="top" align="left">Orientation Err1 [rad]</td>
<td valign="top" align="center">0.10 &#x000B1;0.07</td>
<td valign="top" align="center">0.116 &#x000B1;0.05</td>
</tr>
<tr>
<td valign="top" align="left">Task 2-2</td>
<td valign="top" align="left">Position Err2 [mm]</td>
<td valign="top" align="center">19 &#x000B1;6</td>
<td valign="top" align="center">21 &#x000B1;5</td>
</tr>
<tr>
<td valign="top" align="left"/>
<td valign="top" align="left">Orientation Err2 [rad]</td>
<td valign="top" align="center">0.57 &#x000B1;0.07</td>
<td valign="top" align="center">0.5 &#x000B1;0.1</td>
</tr>
<tr>
<td valign="top" align="left">Task 2</td>
<td valign="top" align="left">PhJL</td>
<td valign="top" align="center">0.56 &#x000B1;0.04</td>
<td valign="top" align="center">0.64 &#x000B1;0.05</td>
</tr>
<tr>
<td valign="top" align="left" colspan="4"><hr/></td>
</tr>
<tr>
<td valign="top" align="left">Task 3</td>
<td valign="top" align="left">Position Err [mm]</td>
<td valign="top" align="center">7.3 &#x000B1;1.2</td>
<td valign="top" align="center">9.5 &#x000B1;1.9</td>
</tr>
<tr>
<td valign="top" align="left"/>
<td valign="top" align="left">Orientation Err [rad]</td>
<td valign="top" align="center">0.157 &#x000B1;0.02</td>
<td valign="top" align="center">0.14 &#x000B1;0.02</td>
</tr>
<tr>
<td valign="top" align="left"/>
<td valign="top" align="left">PhJL</td>
<td valign="top" align="center">0.6 &#x000B1;0.4</td>
<td valign="top" align="center">0.5 &#x000B1;0.36</td>
</tr>
<tr>
<td valign="top" align="left"/>
<td valign="top" align="left">Success rate [%]</td>
<td valign="top" align="center">100</td>
<td valign="top" align="center">100</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="S4" sec-type="discussion">
<label>4</label> <title>Discussions</title>
<p>The comparative analysis (Figure <xref ref-type="fig" rid="F11">11</xref>) showed that the IK inverse Jacobian has better performance than the DMP-based control in terms of position and orientation error, but it does not guarantee physiological configuration and always the success of the operation in the whole human-robot workspace. Conversely, the IK with swivel angle reached better results than DMP-based control in terms of position and orientation error for tasks requiring the control of only one orientation parameter (e.g., tasks 1, 2-1 and 3). Instead, it increased in more complex tasks that required the control of more than one orientation parameter (task 2-2).</p>
<p>Nevertheless, it is worth pointing out that the position error obtained with the DMP-based control (even though higher than the traditional approaches) is fully compatible with the considered application domain which does not require very high accuracy. In fact, it is shown in the literature that accuracy of human movements during the execution of ADLs is around 1-2&#x02009;cm (Merlo et al., <xref ref-type="bibr" rid="B14">2013</xref>). The achieved position error is moreover well balanced by the very high success rate and the guarantee of an anthropomorphic configuration (which also entail system reliability and safety during the task fulfilment).</p>
<p>Furthermore, the high generalization level of the proposed approach ensures higher robustness to the environmental changes than the two other traditional methods, especially the one based on the computation of the swivel angle, which needs to be <italic>a priori</italic> specified. A geometrical approach for inverting kinematics (Section <xref ref-type="sec" rid="S2-4">2.4</xref>) has the clear advantage of a low computational burden, but it is not guaranteed that it can be easily applied on all the kinematic chains. Conversely, the proposed DMP based method offers the advantage of being applicable to any kinematic chain, thanks to the offline training, and has a good computational time (which is comparable with the IK swivel angle and significantly lower than the IK algorithm with inverse Jacobian).</p>
</sec>
<sec id="S5">
<label>5</label> <title>Conclusion</title>
<p>A learning by demonstration method for planning motion of upper-limb exoskeletons was presented in this work. It is grounded on the computation of DMPs and machine learning techniques to construct the task- and patient-specific joint trajectories based on the learnt trajectories. Distinctive features, namely the DMP parameters, were firstly extracted from the motion recorded during certain activities performed by a human subject wearing the upper-limb exoskeleton. They were subsequently used, together with the recorded joint angles and Cartesian positions, to train a supervised neural network (a two layer feed-forward network). The neural network provided the more appropriate set of DMP parameters to generate the task- and patient-specific trajectories of the exoskeleton joints.</p>
<p>The proposed motion planning was preliminarily validated in simulation and later experimentally validated on 4 patients with LGMDs, who used the combined M-IMU/EMG interface for controlling the upper-limb exoskeleton. The validation session was aimed to (i) assess performance of the proposed motion planning system by means of quantitative indicators and compare it with traditional methods used to operate upper-limb exoskeletons, which are based on path planning and inverse kinematics (IK inverse Jacobian and IK swivel angle); (ii) investigate the generalization level of the proposed approach with respect to the variability in the experimental scenario, given for example by different anthropometry of the patients and different object positions.</p>
<p>The results achieved for the comparative analysis showed that the DMP-based control guarantees a 100% success rate in the task fulfillment, with an acceptable position and orientation error for the targeted application. Moreover, it also ensures that the exoskeleton always has configurations within the physiological joint limits, differently from methods based on path planning and inverse kinematics. Furthermore, the computational time required by the proposed approach is lower than the one required by the IK algorithm with inverse Jacobian and comparable with the IK with swivel angle.</p>
<p>Finally, the results achieved in simulation as well as in the experimental setting also showed a high generalization level of the DMP based motion planning with respect to the different object positions and subjects anthropometries. A success rate of 100% for all tasks was reported.</p>
<p>Future works will be addressed to extend the study to a higher number of patients and grasping and manipulation tasks, by applying the proposed motion planning approach also to the hand exoskeleton (which in this study was used to perform grasping tasks).</p>
</sec>
<sec id="S6">
<title>Ethics Statement</title>
<p>The experimental protocol was approved by the local Ethical committee (Comitato Etico Universit&#x000E0; Campus Biomedico di Roma, reference number: 01/17 PAR ComEt CBM), by the Italian Ministry of Health (Registro&#x02014;classif. DGDMF/I.5.i.m.2/2016/1096) and complied with the Declaration of Helsinki. All subjects gave written informed consent in accordance with the Declaration of Helsinki.</p>
</sec>
<sec id="S7">
<title>Author Contributions</title>
<p>CL designed the paper, analyzed the literature, designed and developed the proposed motion planner, analyzed the experimental data and wrote the manuscript. FC organized the experimental sessions, acquired the data, analyzed the literature and contributed to the manuscript writing. ALC analyzed the literature and partly contributed to the manuscript writing. ET and SC designed and developed the IK method used as benchmark for the comparative analysis, i.e., IK based on the computation of the swivel angle, and partly contributed to the manuscript writing. JMC and FJB designed and developed the wrist-module and the hand exoskeleton. SMP recruited the patients. SS, NV, NGA contributed to the design of the experiments and discussed the results. LZ contributed to the design of the motion planner and the experiments, discussed the results, wrote the paper and supervised the study. All the authors read and approved the final version of the manuscript.</p>
</sec>
<sec id="S9">
<title>Conflict of Interest Statement</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>
</body>
<back>
<fn-group>
<fn fn-type="financial-disclosure">
<p><bold>Funding.</bold> This work was supported partly by the Italian Institute for Labour Accidents (INAIL) with the PPR 2 (CUP: E58C13000990001), PCR 1/2 (CUP: E57B16000160005), PPR AS 1/3 (CUP: E57B16000160005) and RehabRobo&#x00040;work (CUP: C82F17000040001) projects and partly by the European Project H2020/AIDE: Adaptive Multimodal Interfaces to Assist Disabled People in Daily Activities (CUP: J42I15000030006).</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1"><citation citation-type="book"><person-group person-group-type="author"><name><surname>An</surname> <given-names>C. H.</given-names></name> <name><surname>Atkeson</surname> <given-names>C. G.</given-names></name> <name><surname>Hollerbach</surname> <given-names>J. M.</given-names></name></person-group> (<year>1988</year>). <source>Model-Based Control of a Robot Manipulator</source>. (<publisher-loc>Ann Arbor, MI</publisher-loc>: <publisher-name>MIT Press</publisher-name>).</citation></ref>
<ref id="B2"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Crea</surname> <given-names>S.</given-names></name> <name><surname>Cempini</surname> <given-names>M.</given-names></name> <name><surname>Mois&#x000E8;</surname> <given-names>M.</given-names></name> <name><surname>Baldoni</surname> <given-names>A.</given-names></name> <name><surname>Trigili</surname> <given-names>E.</given-names></name> <name><surname>Marconi</surname> <given-names>D.</given-names></name> <etal/></person-group> (<year>2016</year>). &#x0201C;<article-title>A novel shoulder-elbow exoskeleton with series elastic actuators</article-title>,&#x0201D; in <conf-name>6th IEEE International Conference on Biomedical Robotics and Biomechatronics (BioRob) 2016</conf-name> (<conf-loc>Singapore</conf-loc>: <conf-sponsor>IEEE</conf-sponsor>), <fpage>1248</fpage>&#x02013;<lpage>1253</lpage>.</citation></ref>
<ref id="B3"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Flash</surname> <given-names>T.</given-names></name> <name><surname>Hogan</surname> <given-names>N.</given-names></name></person-group> (<year>1985</year>). <article-title>The coordination of arm movements: an experimentally confirmed mathematical model</article-title>. <source>J. Neurosci.</source> <volume>5</volume>, <fpage>1688</fpage>&#x02013;<lpage>1703</lpage>.<pub-id pub-id-type="pmid">4020415</pub-id></citation></ref>
<ref id="B4"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ijspeert</surname> <given-names>A. J.</given-names></name> <name><surname>Nakanishi</surname> <given-names>J.</given-names></name> <name><surname>Hoffmann</surname> <given-names>H.</given-names></name> <name><surname>Pastor</surname> <given-names>P.</given-names></name> <name><surname>Schaal</surname> <given-names>S.</given-names></name></person-group> (<year>2013</year>). <article-title>Dynamical movement primitives: learning attractor models for motor behaviors</article-title>. <source>Neural Comput.</source> <volume>25</volume>, <fpage>328</fpage>&#x02013;<lpage>373</lpage>. <pub-id pub-id-type="doi">10.1162/NECO_a_00393</pub-id><pub-id pub-id-type="pmid">23148415</pub-id></citation></ref>
<ref id="B5"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Jiang</surname> <given-names>L.</given-names></name> <name><surname>Shisheie</surname> <given-names>R.</given-names></name> <name><surname>Cheng</surname> <given-names>M. H.</given-names></name> <name><surname>Banta</surname> <given-names>L. E.</given-names></name> <name><surname>Guo</surname> <given-names>G.</given-names></name></person-group> (<year>2013</year>). &#x0201C;<article-title>Moving trajectories and controller synthesis for an assistive device for arm rehabilitation</article-title>,&#x0201D; in <conf-name>IEEE International Conference on Automation Science and Engineering (CASE) 2013</conf-name> (<conf-loc>Madison, WI, USA</conf-loc>: <conf-sponsor>IEEE</conf-sponsor>), <fpage>268</fpage>&#x02013;<lpage>273</lpage>.</citation></ref>
<ref id="B6"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jin</surname> <given-names>L.</given-names></name> <name><surname>Li</surname> <given-names>S.</given-names></name></person-group> (<year>2016</year>). <article-title>Distributed task allocation of multiple robots: a control perspective</article-title>. <source>IEEE Trans. Syst. Man Cybern. Syst.</source> PP, <fpage>1</fpage>&#x02013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1109/TSMC.2016.2627579</pub-id></citation></ref>
<ref id="B7"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jin</surname> <given-names>L.</given-names></name> <name><surname>Li</surname> <given-names>S.</given-names></name> <name><surname>Zhou</surname> <given-names>M.</given-names></name> <name><surname>Luo</surname> <given-names>X.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name> <name><surname>Qin</surname> <given-names>B.</given-names></name></person-group> (<year>2017</year>). <article-title>Neural dynamics for cooperative control of redundant robot manipulators</article-title>. <source>IEEE Trans. Ind. Inform.</source> PP, <fpage>1</fpage>&#x02013;<lpage>1</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2018.2789438</pub-id></citation></ref>
<ref id="B8"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>H.</given-names></name> <name><surname>Miller</surname> <given-names>L. M.</given-names></name> <name><surname>Byl</surname> <given-names>N.</given-names></name> <name><surname>Abrams</surname> <given-names>G. M.</given-names></name> <name><surname>Rosen</surname> <given-names>J.</given-names></name></person-group> (<year>2012</year>). <article-title>Redundancy resolution of the human arm and an upper limb exoskeleton</article-title>. <source>IEEE Trans. Biomed. Eng.</source> <volume>59</volume>, <fpage>1770</fpage>&#x02013;<lpage>1779</lpage>. <pub-id pub-id-type="doi">10.1109/TBME.2012.2194489</pub-id><pub-id pub-id-type="pmid">22510944</pub-id></citation></ref>
<ref id="B9"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lauretti</surname> <given-names>C.</given-names></name> <name><surname>Cordella</surname> <given-names>F.</given-names></name> <name><surname>Guglielmelli</surname> <given-names>E.</given-names></name> <name><surname>Zollo</surname> <given-names>L.</given-names></name></person-group> (<year>2017a</year>). <article-title>Learning by demonstration for planning activities of daily living in rehabilitation and assistive robotics</article-title>. <source>IEEE Robot. Autom. Lett.</source> <volume>2</volume>, <fpage>1375</fpage>&#x02013;<lpage>1382</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2017.2669369</pub-id></citation></ref>
<ref id="B10"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Lauretti</surname> <given-names>C.</given-names></name> <name><surname>Cordella</surname> <given-names>F.</given-names></name> <name><surname>Scotto di Luzio</surname> <given-names>F.</given-names></name> <name><surname>Saccucci</surname> <given-names>S.</given-names></name> <name><surname>Sacchetti</surname> <given-names>R.</given-names></name> <name><surname>Davalli</surname> <given-names>A.</given-names></name> <etal/></person-group> (<year>2017b</year>). &#x0201C;<article-title>Comparative performance analysis of M-IMU/EMG and voice user interfaces for assistive robots</article-title>,&#x0201D; in <conf-name>15th International Conference on Rehabilitation Robotics, 2005. ICORR 2017</conf-name> (<conf-loc>London, UK</conf-loc>: <conf-sponsor>IEEE</conf-sponsor>).</citation></ref>
<ref id="B11"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>S.</given-names></name> <name><surname>Zhou</surname> <given-names>M.</given-names></name> <name><surname>Luo</surname> <given-names>X.</given-names></name></person-group> (<year>2017</year>). <article-title>Modified primal-dual neural networks for motion control of redundant manipulators with dynamic rejection of harmonic noises</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst.</source> PP, <fpage>1</fpage>&#x02013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1109/TNNLS.2017.2770172</pub-id></citation></ref>
<ref id="B12"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lourakis</surname> <given-names>M. I.</given-names></name></person-group> (<year>2005</year>). <article-title>A brief description of the Levenberg-Marquardt algorithm implemented by levmar</article-title>. <source>Found. Res. Technol.</source> <volume>4</volume>, <fpage>1</fpage>&#x02013;<lpage>6</lpage>.</citation></ref>
<ref id="B13"><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. Neuroeng. Rehabil.</source> <volume>6</volume>, <fpage>20</fpage>. <pub-id pub-id-type="doi">10.1186/1743-0003-6-20</pub-id><pub-id pub-id-type="pmid">19531254</pub-id></citation></ref>
<ref id="B14"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Merlo</surname> <given-names>A.</given-names></name> <name><surname>Longhi</surname> <given-names>M.</given-names></name> <name><surname>Giannotti</surname> <given-names>E.</given-names></name> <name><surname>Prati</surname> <given-names>P.</given-names></name> <name><surname>Giacobbi</surname> <given-names>M.</given-names></name> <name><surname>Ruscelli</surname> <given-names>E.</given-names></name> <etal/></person-group> (<year>2013</year>). <article-title>Upper limb evaluation with robotic exoskeleton. Normative values for indices of accuracy, speed and smoothness</article-title>. <source>NeuroRehabilitation</source> <volume>33</volume>, <fpage>523</fpage>&#x02013;<lpage>530</lpage>. <pub-id pub-id-type="doi">10.3233/NRE-130998</pub-id><pub-id pub-id-type="pmid">24037096</pub-id></citation></ref>
<ref id="B15"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mihelj</surname> <given-names>M.</given-names></name></person-group> (<year>2006</year>). <article-title>Human arm kinematics for robot based rehabilitation</article-title>. <source>Robotica</source> <volume>24</volume>, <fpage>377</fpage>&#x02013;<lpage>383</lpage>. <pub-id pub-id-type="doi">10.1017/S0263574705002304</pub-id></citation></ref>
<ref id="B16"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Noda</surname> <given-names>K.</given-names></name> <name><surname>Arie</surname> <given-names>H.</given-names></name> <name><surname>Suga</surname> <given-names>Y.</given-names></name> <name><surname>Ogata</surname> <given-names>T.</given-names></name></person-group> (<year>2014</year>). <article-title>Multimodal integration learning of robot behavior using deep neural networks</article-title>. <source>Rob. Auton. Syst.</source> <volume>62</volume>, <fpage>721</fpage>&#x02013;<lpage>736</lpage>. <pub-id pub-id-type="doi">10.1016/j.robot.2014.03.003</pub-id></citation></ref>
<ref id="B17"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Oyama</surname> <given-names>E.</given-names></name> <name><surname>Chong</surname> <given-names>N. Y.</given-names></name> <name><surname>Agah</surname> <given-names>A.</given-names></name> <name><surname>Maeda</surname> <given-names>T.</given-names></name></person-group> (<year>2001</year>). &#x0201C;<article-title>Inverse kinematics learning by modular architecture neural networks with performance prediction networks</article-title>,&#x0201D; in <conf-name>IEEE International Conference on Robotics and Automation, 2001. Proceedings 2001 ICRA</conf-name>, Vol. <volume>1</volume> (<conf-loc>Seoul, Korea</conf-loc>: <conf-sponsor>IEEE</conf-sponsor>), <fpage>1006</fpage>&#x02013;<lpage>1012</lpage>.</citation></ref>
<ref id="B18"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Papaleo</surname> <given-names>E.</given-names></name> <name><surname>Zollo</surname> <given-names>L.</given-names></name> <name><surname>Garcia-Aracil</surname> <given-names>N.</given-names></name> <name><surname>Badesa</surname> <given-names>F. J.</given-names></name> <name><surname>Morales</surname> <given-names>R.</given-names></name> <name><surname>Mazzoleni</surname> <given-names>S.</given-names></name> <etal/></person-group> (<year>2015</year>). <article-title>Upper-limb kinematic reconstruction during stroke robot-aided therapy</article-title>. <source>Med. Biol. Eng. Comput.</source> <volume>53</volume>, <fpage>815</fpage>&#x02013;<lpage>828</lpage>. <pub-id pub-id-type="doi">10.1007/s11517-015-1276-9</pub-id><pub-id pub-id-type="pmid">25861746</pub-id></citation></ref>
<ref id="B19"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Pattacini</surname> <given-names>U.</given-names></name> <name><surname>Nori</surname> <given-names>F.</given-names></name> <name><surname>Natale</surname> <given-names>L.</given-names></name> <name><surname>Metta</surname> <given-names>G.</given-names></name> <name><surname>Sandini</surname> <given-names>G.</given-names></name></person-group> (<year>2010</year>). &#x0201C;<article-title>An experimental evaluation of a novel minimum-jerk Cartesian controller for humanoid robots</article-title>,&#x0201D; in <conf-name>IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2010</conf-name> (<conf-loc>Taipei</conf-loc>, <conf-sponsor>IEEE</conf-sponsor>), <fpage>1668</fpage>&#x02013;<lpage>1674</lpage>.</citation></ref>
<ref id="B20"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Provenzale</surname> <given-names>A.</given-names></name> <name><surname>Cordella</surname> <given-names>F.</given-names></name> <name><surname>Zollo</surname> <given-names>L.</given-names></name> <name><surname>Davalli</surname> <given-names>A.</given-names></name> <name><surname>Sacchetti</surname> <given-names>R.</given-names></name> <name><surname>Guglielmelli</surname> <given-names>E.</given-names></name></person-group> (<year>2014</year>). &#x0201C;<article-title>A grasp synthesis algorithm based on postural synergies for an anthropomorphic arm-hand robotic system</article-title>,&#x0201D; in <conf-name>5th IEEE RAS &#x00026; EMBS International Conference on Biomedical Robotics and Biomechatronics (2014)</conf-name> (<conf-loc>S&#x000E3;o Paulo</conf-loc>, <conf-sponsor>IEEE</conf-sponsor>), <fpage>958</fpage>&#x02013;<lpage>963</lpage>.</citation></ref>
<ref id="B21"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Schaal</surname> <given-names>S.</given-names></name> <name><surname>Atkeson</surname> <given-names>C. G.</given-names></name></person-group> (<year>1998</year>). <article-title>Constructive incremental learning from only local information</article-title>. <source>Neural Comput.</source> <volume>10</volume>, <fpage>2047</fpage>&#x02013;<lpage>2084</lpage>. <pub-id pub-id-type="doi">10.1162/089976698300016963</pub-id><pub-id pub-id-type="pmid">9804671</pub-id></citation></ref>
<ref id="B22"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Siciliano</surname> <given-names>B.</given-names></name> <name><surname>Sciavicco</surname> <given-names>L.</given-names></name> <name><surname>Villani</surname> <given-names>L.</given-names></name> <name><surname>Oriolo</surname> <given-names>G.</given-names></name></person-group> (<year>2010</year>). <source>Robotics: Modelling, Planning and Control</source>. <publisher-loc>Berlino, Germania</publisher-loc>: <publisher-name>Springer Science &#x00026; Business Media</publisher-name>.</citation></ref>
<ref id="B23"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Svinin</surname> <given-names>M. M.</given-names></name> <name><surname>Goncharenko</surname> <given-names>I. A.</given-names></name> <name><surname>Hosoe</surname> <given-names>S.</given-names></name> <name><surname>Osada</surname> <given-names>Y.</given-names></name></person-group> (<year>2010</year>). <source>Optimality Principles and Motion Planning of Human-Like Reaching Movements</source>. <publisher-loc>London, UK</publisher-loc>: <publisher-name>INTECH Open Access Publisher</publisher-name>.</citation></ref>
</ref-list>
</back>
</article>