<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Neurorobot.</journal-id>
<journal-title>Frontiers in Neurorobotics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurorobot.</abbrev-journal-title>
<issn pub-type="epub">1662-5218</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnbot.2022.840240</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A Framework for Composite Layup Skill Learning and Generalizing Through Teleoperation</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Si</surname> <given-names>Weiyong</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1587178/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Wang</surname> <given-names>Ning</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Li</surname> <given-names>Qinchuan</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Yang</surname> <given-names>Chenguang</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1300563/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Bristol Robotics Laboratory, Faculty of Environment and Technology, University of the West of England</institution>, <addr-line>Bristol</addr-line>, <country>United Kingdom</country></aff>
<aff id="aff2"><sup>2</sup><institution>Faculty of Mechanical Engineering and Automation, Zhejiang Sci-Tech University</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Rui Huang, University of Electronic Science and Technology of China, China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Wen-An Zhang, Zhejiang University of Technology, China; Jihong Zhu, Delft University of Technology, Netherlands</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Chenguang Yang <email>cyang&#x00040;ieee.org</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>11</day>
<month>02</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>16</volume>
<elocation-id>840240</elocation-id>
<history>
<date date-type="received">
<day>20</day>
<month>12</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>06</day>
<month>01</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2022 Si, Wang, Li and Yang.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Si, Wang, Li and Yang</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract>
<p>In this article, an impedance control-based framework for human-robot composite layup skill transfer was developed, and the human-in-the-loop mechanism was investigated to achieve human-robot skill transfer. Although there are some works on human-robot skill transfer, it is still difficult to transfer the manipulation skill to robots through teleoperation efficiently and intuitively. In this article, we developed an impedance-based control architecture of telemanipulation in task space for the human-robot skill transfer through teleoperation. This framework not only achieves human-robot skill transfer but also provides a solution to human-robot collaboration through teleoperation. The variable impedance control system enables the compliant interaction between the robot and the environment, smooth transition between different stages. Dynamic movement primitives based learning from demonstration (LfD) is employed to model the human manipulation skills, and the learned skill can be generalized to different tasks and environments, such as the different shapes of components and different orientations of components. The performance of the proposed approach is evaluated on a 7 DoF Franka Panda through the robot-assisted composite layup on different shapes and orientations of the components.</p></abstract>
<kwd-group>
<kwd>semi-autonomous composite layup</kwd>
<kwd>human-in-the-loop</kwd>
<kwd>dynamic movement primitives</kwd>
<kwd>learning from demonstration</kwd>
<kwd>teleoperation</kwd>
</kwd-group>
<contract-num rid="cn001">P/S001913</contract-num>
<contract-sponsor id="cn001">Engineering and Physical Sciences Research Council<named-content content-type="fundref-id">10.13039/501100000266</named-content></contract-sponsor>
<counts>
<fig-count count="15"/>
<table-count count="1"/>
<equation-count count="33"/>
<ref-count count="44"/>
<page-count count="16"/>
<word-count count="7589"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Currently, robots have been widely used in various fields, such as an industrial plant (Bj&#x000F6;rnsson et al., <xref ref-type="bibr" rid="B2">2018</xref>; Lamon et al., <xref ref-type="bibr" rid="B8">2019</xref>; Rodr&#x00131;guez et al., <xref ref-type="bibr" rid="B27">2019</xref>; Raessa et al., <xref ref-type="bibr" rid="B24">2020</xref>), medical healthcare (Tavakoli et al., <xref ref-type="bibr" rid="B33">2020</xref>; Yang et al., <xref ref-type="bibr" rid="B39">2020</xref>), rehabilitation exoskeleton (Li et al., <xref ref-type="bibr" rid="B10">2019</xref>, <xref ref-type="bibr" rid="B11">2020</xref>), space exploration (Papadopoulos et al., <xref ref-type="bibr" rid="B20">2021</xref>) and it has great advantages on the repetitive accuracy and reducing the cost. Nowadays, robots are expected to perform more challenging tasks, such as medical scanning, and composite layup as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. These tasks often feature contact-rich manipulation and significant uncertainty of the different tasks, such as variance among the products in flexible manufacturing. Although our humans do not understand the principle behind manipulation, humans have the amazing capability to deal with the uncertainty and complexity in these tasks (Zeng et al., <xref ref-type="bibr" rid="B40">2021</xref>). Therefore, roboticists proposed to make the robot learn the manipulation skills from humans. One of the main problems is how to learn complex and human-like manipulation skills. This study aims to develop a human-robot skill transfer system based on teleoperation and propose an approach to transfer human skills to robots. <xref ref-type="fig" rid="F1">Figure 1</xref> illustrates the composite layup process through teleoperation and human-robot collaboration. It is challenging to transfer the manipulation skill to robots through teleoperation efficiently and intuitively (Si et al., <xref ref-type="bibr" rid="B32">2021c</xref>).</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p><bold>(A)</bold> shows a robot-assisted composite layup, and an in-site assisted person can collaborate with the robot and a demonstration expert in <bold>(B)</bold>. A camera in <bold>(A)</bold> provides visual feedback for the human operator sitting in <bold>(B)</bold>, who can teleoperate the robot manipulator to execute composite layup based on the visual feedback. <bold>(B)</bold> presents the teleoperation scenario, in which the human operator commands the robot based on the visual feedback and the teleoperated device. The two people can collaborate to perform the composite layup and transfer the composite layup skills to the robot manipulator.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0001.tif"/>
</fig>
<p>Collaborative robots have been increasingly important in manufacturing, such as the human-robot interaction and collaboration. Especially for the flexible manufacturing, small-batch and variance among the components put forward new requirements for traditional industrial robots in the smart factory. The main challenge is the flexibility of the manufacturing system, which allows the system to react to the changes of the new products. The human-robot skill transfer has proved a potential solution for flexible manufacturing systems (Ochoa and Cortesao, <xref ref-type="bibr" rid="B19">2021</xref>; Yang et al., <xref ref-type="bibr" rid="B38">2021b</xref>). To realize lightweight structures with high performance, composites have been widely used in several industries, such as aerospace, automotive, and construction etc. Carbon fiber is the main raw material of composite material production. Currently, for low-volume production and complex parts, a hand layup is still the main method, which laminates plies of carbon fiber prepreg (Malhan et al., <xref ref-type="bibr" rid="B15">2021</xref>). The hand layup process is ergonomically challenging and skill-intensive. Human operators must apply various levels of pressure to the plies. In addition, sometimes several people need to collaborate to conform larger plies to complex contours. However, the hand layup process is labor-intensive and can exhibit inconsistency due to variability in human operation. Sheet layup automation can reduce ergonomic challenges, increase the production efficiency, and ensure processing quality (Malhan et al., <xref ref-type="bibr" rid="B14">2020</xref>).</p>
<p>As machine learning techniques have been employed in various areas, such as image recognition, distributed wireless sensor networks (Lu et al., <xref ref-type="bibr" rid="B13">2021b</xref>), and natural language process, the data-driven methods have proved to have several benefits, especially the generalization capability, for robot skill learning. Nowadays, robot skill learning gained much attention, and machine learning methods have been used in robot learning. For example, reinforcement learning (RL), especially the deep reinforcement learning (DRL) method, has shown powerful generalization capability for complex manipulation skills (Kroemer et al., <xref ref-type="bibr" rid="B7">2021</xref>). Deep learning techniques can investigate the powerful capability for the multimodal perceptual information; hence, the DRL equipped the RL with an enhanced representation capability for multimodal information, such as vision and haptic information. However, the limitation of the DRL is the low learning efficiency and relying on big data. It is hard and expensive to acquire massive training data for robot skill learning in practice. Researchers proposed to train the manipulation skill on the simulator and then the transfer learning technique was employed to deploy the learned skill in real robots. However, the high-accuracy simulation environment for contact manipulation tasks is hard to attain, since the friction, stiffness, and damping of the contact process is hard to model. Learning from demonstration (LfD) is a feasible solution for robot skill learning and human-robot skill transfer (Wang et al., <xref ref-type="bibr" rid="B34">2020</xref>).</p>
<p>Robot skill LfD can be categorized into two branches, based on the dynamic system method and statistical methods (Ravichandar et al., <xref ref-type="bibr" rid="B25">2020</xref>). The dynamic system based methods, such as dynamic movement primitives (DMPs) (Ijspeert et al., <xref ref-type="bibr" rid="B6">2013</xref>) and autonomous systems, can guarantee the converge of the skills, which is significantly important for physically human-robot interaction and critical safety tasks, such as medical scanning. In order to enhance the encoding capability of the dynamic system based model, it has been extended into non-Euclid space, such as stiffness, quaternion based orientation skill, and manipulability skills (Yang et al., <xref ref-type="bibr" rid="B35">2018</xref>; Ravichandar et al., <xref ref-type="bibr" rid="B25">2020</xref>). The statistical methods, such as Gaussian mixture model (GMM)/Gaussian mixture regression (GMR), hidden semi-Markov models (HSMM), probabilistic movement primitives (ProMP), could benefit the statistical property to make the best use of the multiple demonstration data and model the multiple modal information (Zeng et al., <xref ref-type="bibr" rid="B42">2020</xref>). Currently, the combined methods have been proposed to make use of the advantages of the convergence guarantee of dynamic system based method and the statistical property of the statistical methods.</p>
<p>The main contributions of this study can be summarized as follows: 1) We developed a human-robot skill transfer system consisting of a 3D mouse device as the teleoperation interface, a 7 DoF Franka Emika robot manipulator, and a Realsense camera for visual feedback. Additionally, the composite layup task was used to evaluate the performance of the system. 2) DMPs were used to model the primitive motion skills as high-level &#x0201C;bricks&#x0201D; of the complex task. A complex task is parameterized into several motion primitives represented by the parameters of primitive motion skill; hence, combining and re-organizing the motion primitives can form a complex trajectory, which allows generalizing the learned skill to novel tasks and environments. 3) The human-robot skill transfer based on the proposed system provides a solution for robot skill learning through teleoperation or human-robot collaboration. The proposed method is more suitable for human-robot skill transfer in hazardous environments or situations that humans cannot access, such as nuclear waste disposal, lockdown under the pandemic.</p>
<p>The rest of this article is organized as follows. Section II presents the most related previous studies on LfD through teleoperation and motion primitive method. Section III presents basic knowledge of the dynamics of robot manipulators, null-space optimization, and the DMPs. The methodology is detailed in Section IV, followed by the experiments in Section V. Finally, Section VI concludes this article.</p>
</sec>
<sec id="s2">
<title>2. Related Work</title>
<sec>
<title>2.1. Teleoperation for Human-Robot Skill Transfer</title>
<p>In terms of algorithms for LfD, there are generally two types, offline and online learning. Learning from demonstration through teleoperation could provide solutions to both types, offline learning and online learning. In Peternel et al. (<xref ref-type="bibr" rid="B22">2016</xref>), the authors proposed a human-in-the-loop paradigm to teleoperate and demonstrate a complex task to a robot in real-time. However, this work did not consider the compliant manipulation skills. Online LfD has some advantages over offline learning from demonstration. First, online LfD could form the skill model gradually during the demonstrations. Second, the transition between the teleoperated mode, semi-autonomous and autonomous mode is straightforward. Third, online learning also could provide real-time feedback on the performance of the model, which is like the iterative learning control. The demonstrator could get real-time feedback on the performance of the learned skills. In addition, the learned skill could execute the task online and directly on the sensorimotor level. Finally, because the skill is encoded in the end-effector, it is straightforward to transfer among different robot platforms.</p>
<p>In Latifee et al. (<xref ref-type="bibr" rid="B9">2020</xref>), incremental learning from the demonstration method was proposed based on the kinaesthetic demonstration to update the current learned skill model. But the kinaesthetic teaching method lacks immersive, especially involved contact-rich task with tactile sensing. Also, it is hard to demonstrate the impedance skill simultaneously. During the human-in-the-loop demonstration, there is a requirement on the mechanism of control allocation and adaptation between the human demonstration and the autonomous execution by the robot.</p>
<p>In Rigter et al. (<xref ref-type="bibr" rid="B26">2020</xref>), the authors integrated shared autonomy, LfD, and RL, which reduced the human effort in teleoperation and demonstration time. The controller can switch between autonomous mode and teleoperation mode, enabling controller learning online. The human-in-the-loop provides a solution for imitation learning to exploit human intervention, which can train the policy iteratively online (Mandlekar et al., <xref ref-type="bibr" rid="B16">2020</xref>). Shared control is an approach enabling robots and human operators to collaboratively efficiently. In addition, shared control integrated with LfD can further increase the autonomy of the robotic system, which enables efficient task executions (Abi-Farraj et al., <xref ref-type="bibr" rid="B1">2017</xref>). Human-in-the-loop and learning from the demonstration were used to transfer part assembly skills from humans to robots (Peternel et al., <xref ref-type="bibr" rid="B23">2015</xref>). An approach combining operator&#x00027;s input and learned model online was developed for remotely operated vehicles (ROVs) to reduce human effort and teleoperation time. In addition, intelligent control methods were employed in the teleoperation to improve the trajectory tracking accuracy, which can ensure the stability of the human-robot skill transfer system (Yang et al., <xref ref-type="bibr" rid="B37">2019</xref>, <xref ref-type="bibr" rid="B36">2021a</xref>). A comprehensive review on human-robot skill transfer can refer to Si et al. (<xref ref-type="bibr" rid="B32">2021c</xref>).</p>
</sec>
<sec>
<title>2.2. Motion Primitives</title>
<p>In the past years, many researchers from the motor control and neurobiology field tried to answer how biological systems execute complex motion in versatile and creative manners. The motion primitives theory was proposed to answer this question, which means our humans can generate a smooth and complex trajectory out of multiple motion primitives. DMPs are an effective model to encode the motion primitives for robots. Therefore, how to generate a smooth and complex trajectory based on a library of DMPs, has gained attention in the robot skill learning communities, and several approaches have been developed to merge the DMPs sequences. In Saveriano et al. (<xref ref-type="bibr" rid="B29">2019</xref>), the authors proposed a method to merge motion primitives in Cartesian space, including position and orientation parts. The convergence of the merging strategy has proved theoretically, and experimental evaluation was performed as well.</p>
<p>Additionally, the motion primitives theory and knowledge-based framework were integrated and employed in the surgery, which can be generalized to different tasks and environments (Ginesi et al., <xref ref-type="bibr" rid="B3">2019</xref>, <xref ref-type="bibr" rid="B4">2020</xref>). Furthermore, the sequence of DMPs was employed to encode cooperative manipulation for mobile dual-arm (Zhao et al., <xref ref-type="bibr" rid="B44">2018</xref>). The authors proposed to build a library of motion primitive through LfD, and the library, including the translation and orientation, can be generalized to different tasks and novel situations (Pastor et al., <xref ref-type="bibr" rid="B21">2009</xref>; Manschitz et al., <xref ref-type="bibr" rid="B18">2014</xref>). Also, a novel movement primitive representation, named Mixture of attractors, was proposed to encode complex object-relative movements (Manschitz et al., <xref ref-type="bibr" rid="B17">2018</xref>). In our previous study, we proposed a method to merge the motion primitive based on the execution error and real-time feedback to improve the generalization capability and robustness (Si et al., <xref ref-type="bibr" rid="B31">2021b</xref>).</p>
</sec>
</sec>
<sec id="s3">
<title>3. Preliminary</title>
<sec>
<title>3.1. Robot Dynamics</title>
<p>The general form of dynamics of the n-DOF serial manipulator robot can be modeled as Santos and Cortes&#x000E3;o (<xref ref-type="bibr" rid="B28">2018</xref>),</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</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:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where the <italic>D</italic>(<italic>q</italic>) is the inertia matrix, the <inline-formula><mml:math id="M2"><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</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:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, and <italic>G</italic>(<italic>q</italic>) represent the Coriolis and centrifugal, respectively. <italic>q</italic> and <inline-formula><mml:math id="M3"><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:math></inline-formula> are the joint position and velocity in the joint space, respectively. &#x003C4;<sub><italic>c</italic></sub> is the actuator torque and &#x003C4;<sup><italic>ext</italic></sup> represents torque generated by the end-effector interacting with environments.</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M4"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</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:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Based on Equations (1) and (2), the designed control variable can be described as the following,</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M5"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C4;<sub><italic>cmp</italic></sub> represents a new control variable in the joint space. In order to facilitate the following analysis, we design the controller in Cartesian space; hence, Equation (3) is rewritten in Cartesian space as the follows,</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M6"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E8D;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><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:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E5"><label>(5)</label><mml:math id="M7"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>J</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>m</italic><sub><italic>p</italic></sub>(<italic>q</italic>) represents the inertial matrix in Cartesian space, <italic>f</italic><sub><italic>tol</italic></sub> is the control force in Cartesian space, and <italic>J</italic>(<italic>q</italic>) is the Jacobian matrix. The task space velocity can be described as,</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M8"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>J</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The &#x01E8B;<sub><italic>p</italic></sub> is the velocity in Cartesian space. Additionally, the control torque &#x003C4;<sub><italic>cmp</italic></sub> can be described as,</p>
<disp-formula id="E7"><label>(7)</label><mml:math id="M9"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</sec>
<sec>
<title>3.2. Null-Space Optimization</title>
<p>For the redundant manipulator, the null space can be used to execute second priority tasks, such as obstacle avoidance, tracking orientation, and pose optimization. The property of the null space has a lot of benefits, such as the control torque will not influence the main task. In this study, we optimize the robot pose to keep the joint close to the middle of the range of the joint. The total torque employed in the joint can be described as,</p>
<disp-formula id="E8"><label>(8)</label><mml:math id="M10"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C4;<sub><italic>null</italic></sub> is the optimization torque in the null space, and &#x003C4;<sub><italic>m</italic></sub> is the torque for the main task. The &#x003C4;<sub><italic>null</italic></sub> can be represented as,</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C4;<sub><italic>n</italic></sub> represents the optimization torque, and <inline-formula><mml:math id="M12"><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is the null space projector. Because the &#x003C4;<sub><italic>null</italic></sub> is executed in the null-space, the optimization task will not affect the main task. The null space projector <inline-formula><mml:math id="M13"><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> can be described as,</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M14"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>I</italic> is a identity matrix, and the <italic>J</italic><sup>&#x0002B;</sup>(<italic>q</italic>) is the inverse of <italic>J</italic>(<italic>q</italic>), which can be described as,</p>
<disp-formula id="E11"><label>(11)</label><mml:math id="M15"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>m</italic><sub><italic>p</italic></sub>(<italic>q</italic>) represents the inertial matrix in Cartesian space, <italic>J</italic>(<italic>q</italic>) is the Jacobian matrix. <italic>D</italic>(<italic>q</italic>) is the inertia matrix. The optimization torque can be computed as,</p>
<disp-formula id="E12"><label>(12)</label><mml:math id="M16"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi></mml:mrow></mml:msub><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>Q</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p><italic>K</italic><sub><italic>o</italic></sub> is a gain matrix, which needs to be designed based on the requirement on the pose optimization and main tasks. <italic>Q</italic>(<italic>q</italic>) is the cost function, which tries to control the joint as close as the middle of the joint angle range.</p>
<disp-formula id="E13"><label>(13)</label><mml:math id="M17"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>Q</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><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:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><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:munderover></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mfrac><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>-</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>q</italic><sub><italic>i</italic></sub> is the current angle of the ith joint, <italic>q</italic><sub><italic>id</italic></sub> is the middle angle of ith joint. <italic>q</italic><sub><italic>imax</italic></sub> and <italic>q</italic><sub><italic>imin</italic></sub> are the maximum and the minimum angle of ith joint.</p>
</sec>
<sec>
<title>3.3. Dynamic Movement Primitives</title>
<p>Dynamic movement primitives is an effective model for encoding motion skills <italic>via</italic> a second-order dynamical system with a nonlinear forcing term. The core idea of robots skills based on DMPs is to model the forcing term in such a way, allowing to generalize the learned skills to a new start and goal position while maintaining the shape of the learned trajectory. DMPs can be used to model both periodic and discrete motion skills. Currently, most research on DMPs mainly focuses on the position and orientation DMPs and their modifications (Lu et al., <xref ref-type="bibr" rid="B12">2021a</xref>; Si et al., <xref ref-type="bibr" rid="B30">2021a</xref>), which can be used to represent arbitrary movements for robots in Cartesian or joint space by adding a nonlinear term to adjust the shape of trajectory. Also, the DMPs can be used to model the force profiles (Zhang et al., <xref ref-type="bibr" rid="B43">2021</xref>) and stiffness profiles (Zeng et al., <xref ref-type="bibr" rid="B41">2018</xref>). For one degree of multiple dimensional dynamical systems, the transformation system of position DMP can be modeled as follows (Ijspeert et al., <xref ref-type="bibr" rid="B6">2013</xref>),</p>
<disp-formula id="E14"><label>(14)</label><mml:math id="M18"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mover accent="true"><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</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:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E15"><label>(15)</label><mml:math id="M19"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mi>&#x01E57;</mml:mi><mml:mo>=</mml:mo><mml:mi>v</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where the <italic>p</italic><sub><italic>g</italic></sub> is the desired position, <italic>p</italic> is the current position; <italic>v</italic> is the scaled velocity, &#x003C4;<sub><italic>s</italic></sub> is the temporal scaling parameter, which can be used to modify the velocity. &#x003B1;<sub><italic>z</italic></sub>, &#x003B2;<sub><italic>z</italic></sub> are the design parameters, generally, &#x003B1;<sub><italic>z</italic></sub> &#x0003D; 4&#x003B2;<sub><italic>z</italic></sub>. <italic>F</italic><sub><italic>p</italic></sub>(<italic>x</italic>) is the nonlinear forcing term responsible for tuning the shape of the trajectory. The <italic>F</italic><sub><italic>p</italic></sub>(<italic>x</italic>) can be approximated by a set of radial basic functions,</p>
<disp-formula id="E16"><label>(16)</label><mml:math id="M20"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</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:msub><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></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:msub><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E17"><label>(17)</label><mml:math id="M21"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>-</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:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C8;<sub><italic>i</italic></sub>(<italic>x</italic>) is a Gaussian radial basis function with the center <italic>c</italic><sub><italic>i</italic></sub> and width <italic>h</italic><sub><italic>i</italic></sub>; <italic>p</italic><sub>0</sub> is the initial position, <italic>w</italic><sub><italic>i</italic></sub> is the weight LfD. The phase variable <italic>x</italic> is determined by the canonical system, which can be represented as follows,</p>
<disp-formula id="E18"><label>(18)</label><mml:math id="M22"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mi>&#x01E8B;</mml:mi><mml:mo>=</mml:mo><mml:mo>-</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:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>x</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>;</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B1;<sub><italic>x</italic></sub> is a positive gain coefficient, &#x003C4;<sub><italic>s</italic></sub> is the temporal scaling parameter, and the <italic>x</italic><sub>0</sub> &#x0003D; 1 is the initial value of <italic>x</italic>, which can converge to zero exponentially. For the multiple Degree of Freedom (DoF) dynamic system, each dimension can be modeled by a transformation system, but they share a common canonical system to synchronize them.</p>
</sec>
</sec>
<sec sec-type="methods" id="s4">
<title>4. Methodology</title>
<sec>
<title>4.1. Task-Space Formulation</title>
<p>As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, the proposed framework includes teleoperation, perception, skill modeling and robot control. This section derives the controller in Cartesian space, and the whole control structure can be found in <xref ref-type="fig" rid="F3">Figure 3</xref>. It will be convenient to design the controller in the task space because the teleoperation control would be intuitive and straightforward in the task space. For the human-robot collaboration task, the safety of the human is significant; hence, compliant control has been employed for the collaborative robots. In 1985, impedance control was first proposed by Hogan (<xref ref-type="bibr" rid="B5">1985</xref>), and since then, a lot of exciting work has been done. A number of work on the impedance control was done for the manipulator control. Additionally, in order to achieve human-like manipulation, the variable impedance control was employed in the human-robot interaction. The core idea of impedance control models the dynamic behavior of robots under disturbance from the environment. In Ochoa and Cortesao (<xref ref-type="bibr" rid="B19">2021</xref>), the authors proposed a similar impedance controller for the polishing task. The impedance controller can be described as the following,</p>
<disp-formula id="E19"><label>(19)</label><mml:math id="M23"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:msub><mml:mrow><mml:mi>&#x01E8D;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>K</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>A</italic> is the mass matrix, <italic>D</italic> is the damping matrix, and <italic>K</italic> is the stiffness matrix. <italic>x</italic><sub><italic>d</italic></sub> represents the equilibrium point and <italic>x</italic><sub><italic>p</italic></sub> is the current position of the robot end-effector. <italic>f</italic><sub><italic>imp</italic></sub> is the interaction force between the robot end-effector and the environment. For the dynamic equation of manipulator in the task space, Equation (4), the total force <italic>f</italic><sub><italic>tol</italic></sub>, exerting on the robot, can be calculated as follows:</p>
<disp-formula id="E20"><label>(20)</label><mml:math id="M24"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We define a new control variable <inline-formula><mml:math id="M25"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>, and the <italic>f</italic><sub><italic>c</italic></sub> is represented as follows,</p>
<disp-formula id="E21"><label>(21)</label><mml:math id="M26"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The Equation (4) can be represented as follows,</p>
<disp-formula id="E22"><label>(22)</label><mml:math id="M27"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E8D;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Therefore, the control law of <inline-formula><mml:math id="M28"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> is,</p>
<disp-formula id="E23"><label>(23)</label><mml:math id="M29"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E8D;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:msub><mml:mrow><mml:mi>&#x01E8D;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>K</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>In this article, the mass matrix is approximated by Ochoa and Cortesao (<xref ref-type="bibr" rid="B19">2021</xref>),</p>
<disp-formula id="E24"><label>(24)</label><mml:math id="M30"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>J</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>So, the control law becomes,</p>
<disp-formula id="E25"><label>(25)</label><mml:math id="M31"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi>D</mml:mi><mml:mrow><mml:mo stretchy="false">(</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>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x01E8B;</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>K</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The joint torque for the main task can be given by,</p>
<disp-formula id="E26"><label>(26)</label><mml:math id="M32"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Because the <inline-formula><mml:math id="M33"><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> has a small influence on the system, the <inline-formula><mml:math id="M34"><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:math></inline-formula> can be ignored. Therefore, the control law for the main task in the Cartesian space can be written as follows,</p>
<disp-formula id="E27"><label>(27)</label><mml:math id="M35"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M36"><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> can be rewritten as,</p>
<disp-formula id="E28"><label>(28)</label><mml:math id="M37"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mi>f</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>u</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>f</italic> is the force vector for translation control in Cartesian space, and <italic>u</italic> is the torque vector for orientation control. The translation controller in discrete form can be described as the following,</p>
<disp-formula id="E29"><label>(29)</label><mml:math id="M38"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>f</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>&#x01E57;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>d</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>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>d</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>-</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>D</italic><sub><italic>p</italic></sub> is the damping matrix, <italic>K</italic><sub><italic>p</italic></sub> is the stiffness matrix, and <italic>I</italic><sub><italic>p</italic></sub> is the integral matrix. <italic>i</italic><sub><italic>p</italic></sub>[<italic>t</italic> #x02212; 1] is the integral error in the position at time [<italic>t</italic>&#x02212;1]. <italic>p</italic><sub><italic>d</italic></sub>[<italic>t</italic>] and <italic>p</italic><sub><italic>c</italic></sub>[<italic>t</italic>] are the desired position and current position at time t, respectively. Similarly, the orientation controller in discrete form can be represented as,</p>
<disp-formula id="E30"><label>(30)</label><mml:math id="M39"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00394;</mml:mo><mml:msub><mml:mrow><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>D</italic><sub><italic>o</italic></sub> is the damping matrix, <italic>K</italic><sub><italic>o</italic></sub> is the stiffness matrix, and <italic>I</italic><sub><italic>o</italic></sub> is the integral matrix. <italic>w</italic><sub><italic>c</italic></sub> is the angular velocity, &#x00394;<italic>o</italic><sub><italic>cd</italic></sub> is the orientation error, and <italic>i</italic><sub><italic>o</italic></sub> is the integral error in orientation. Finally, based on Equations (2), (8), and (27), the total torque command can be described as the following,</p>
<disp-formula id="E31"><label>(31)</label><mml:math id="M40"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msubsup><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002A;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>,</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:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x0002B;</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>The diagram of the proposed framework for human-robot skill transfer through the human-in-the-loop. The human-in-the-loop module is the teleoperation based subsystem, which could command the robot through the teleoperation interface, a 3D mouse, and receive visual and force feedback from the perception subsystem. The impedance controller can generate joint torque command for the robot either through the teleoperation or autonomous mode (through skill library).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0002.tif"/>
</fig>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>The diagram of the impedance-based control system. The task interface module generates the desired position and orientation through teleoperation or learned skill model. The impedance controller is used to track the desired position and orientation. The null-space controller is used to optimize the joint pose by using redundancy to keep the joint angle close to the middle value.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0003.tif"/>
</fig>
</sec>
<sec>
<title>4.2. Task Interface Design</title>
<p>The desired trajectory, including the translation and orientation, is generated from the input device based on displacement commands in the teleoperation mode. The human operator is provided with a GUI interface and a 3D mouse to monitor and control the system. The 3D mouse has two buttons and a six-DoF motion sensor. The two buttons are used to switch control modes, such as teleoperation, autonomous, and collaboration. The six-DoF motion axis of the 3D mouse is employed to generate the reference trajectory for the impedance controller in Cartesian space.</p>
<disp-formula id="E32"><label>(32)</label><mml:math id="M41"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mo>&#x00394;</mml:mo><mml:mi>Z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:mo>&#x00394;</mml:mo><mml:mi>P</mml:mi></mml:mtd><mml:mtd><mml:mo>&#x00394;</mml:mo><mml:mi>R</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x00394;<italic>P</italic> and &#x00394;<italic>R</italic> represent the translational and rotational displacements, respectively. &#x00394;<italic>Z</italic> is then converted to the desired motion in the robot&#x00027;s base frame.</p>
<p>In the autonomous mode, the desired trajectory in the robot&#x00027;s base frame, including the translation and orientation, is generated based on the learned DMPs.</p>
<disp-formula id="E33"><label>(33)</label><mml:math id="M42"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none none none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>P</italic><sub><italic>d</italic></sub> and <italic>R</italic><sub><italic>d</italic></sub> represent the desired trajectory in translational and rotational directions, respectively. <italic>Z</italic><sub><italic>d</italic></sub> is then converted to the desired motion in the robot&#x00027;s base frame.</p>
</sec>
</sec>
<sec id="s5">
<title>5. Experiment Study Case</title>
<p>This section aims at evaluating the proposed solution, human-robot skill transfer through teleoperation, by performing composite layup for different components.</p>
<sec>
<title>5.1. Experiment Setup</title>
<p>A collaborative robot, Franka Emika Panda, was used to conduct experiments, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. An external force/torque sensor is equipped in the wrist to sense the interaction force and torque between the end-effector tool and the environment. As shown in <xref ref-type="fig" rid="F4">Figure 4</xref>, we designed the fixtures (3D printing) to connect the layup tool (roller), force/torque sensor, and the robot end-effector. A RealSense depth camera D435 is used to observe the working scenario of the robot, and the visual feedback is transmitted to the computer on the leader side for the human operator to monitor the remote scenario.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>The experiment setup for the composite layup. In the leader site, the human operators teleoperate the robot to perform the composite layup.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0004.tif"/>
</fig>
<p>A 3D mouse from the 3DConnexion company is more suitable for teleoperation, and it can output linear and angular components of the joystick&#x00027;s position and the status of the two buttons. The twist command of the 3D mouse, consisting of the linear and angular components, is used to map the translation and orientation of the end-effector. The buttons states as an event-trigger signal were employed to switch control modes. There is a control interface of the robot manipulator provided by the Franka control interface (FCI) on the robot side, which provides the control interface and a fast and direct low-level bidirectional connection to the robot arm. In the leader site, there is a laptop to execute the control and learning algorithm. The generated command is transferred to the Franka control board. Linux Operating system is run on the laptop, and Robot Operating System (ROS) is used to communicate among the different modules.</p>
</sec>
<sec>
<title>5.2. The User Interface of the Control System</title>
<p>As shown in <xref ref-type="fig" rid="F5">Figure 5</xref>, the control system parameters can be displayed and modified by the human operators online. The human operators can change the control modes (switching between teleoperation mode and collaboration mode) <italic>via</italic> adjusting these parameters, including stiffness <italic>K</italic><sub><italic>p</italic></sub> and <italic>K</italic><sub><italic>o</italic></sub>, damping <italic>D</italic><sub><italic>p</italic></sub> and <italic>D</italic><sub><italic>o</italic></sub>, integral <italic>I</italic><sub><italic>p</italic></sub> and <italic>I</italic><sub><italic>o</italic></sub>, and the null-space optimization gain matrix <italic>K</italic><sub><italic>n</italic></sub>. These parameters can be modified online based on the different task requirements, such as more stiff in one degree or more compliant in another degree. The interaction force/torque between the end-effector and the environment can also be displayed on a monitor, which provides more knowledge on the interaction process.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>The GUI for the control system. The human operator could modify the parameters of the controller online to change the compliant behavior.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0005.tif"/>
</fig>
<p>In terms of the controller design and the human-robot skill transfer, defining the proper coordinate frame is necessary. The proper frame could reduce the cognitive workload during teleoperation and human-in-the-loop interaction and collaboration. In this study, we defined three frames on the robot sides, as shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. The impedance controller is defined in the cartesian space, and the desired command is based on the based frame of the robot. The task description is based on the component frame, and the transformation from the based frame of the robot to the component frame is fixed. The impedance gain defined by the user is based on the end-effector frame, therefore, the parameters of the controller need to be transformed into the based frame.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>The three coordinate frames, the base frame of the robot, the end-effector frame, and the component frame.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0006.tif"/>
</fig>
</sec>
<sec>
<title>5.3. Human Demonstration Through Teleoperation</title>
<p>To enable the human-robot composite layup skill transfer, the human operator needs to composite layup through teleoperation. The motion primitives of composite layup were recorded, as shown in <xref ref-type="fig" rid="F7">Figure 7</xref>. During the demonstration, the human operator demonstrated the layup for a flat component. From the results, the roller moves forward and back in the X-Y plane, which is the primitive motion skill for the composite layup. We modeled this motion primitive by DMPs, which can be generalized to different locations. Regarding the parameters of DMPs, please refer to <xref ref-type="table" rid="T1">Table 1</xref>. For the Z-axis, there is a small motion, which can be used to generate the contact force along Z-axis in the end-effector frame. The stiffness parameters for the X and Y are the same, K = 3,000, while for the Z-axis is large, K = 6,000, which can be guaranteed to generate contact force along Z-axis. The small impedance along X and Y, which can feature a compliant manner.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Modeling the motion primitive by dynamic movement primitive (DMP).</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0007.tif"/>
</fig>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Parameters of Dynamic movement primitives (DMPs) and the controller.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="center"><bold>Descriptions</bold></th>
<th valign="top" align="left"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left"><italic>N</italic></td>
<td valign="top" align="left">Number of Gaussian functions</td>
<td valign="top" align="left">100</td>
</tr>
<tr>
<td valign="top" align="left">&#x003B1;<sub><italic>z</italic></sub></td>
<td valign="top" align="left">Coefficient of DMP</td>
<td valign="top" align="left">80</td>
</tr>
<tr>
<td valign="top" align="left">&#x003B2;<sub><italic>z</italic></sub></td>
<td valign="top" align="left">Coefficient of DMP</td>
<td valign="top" align="left">20</td>
</tr>
<tr>
<td valign="top" align="left">&#x003C4;<sub><italic>s</italic></sub></td>
<td valign="top" align="left">Coefficient of DMP</td>
<td valign="top" align="left">1</td>
</tr>
<tr>
<td valign="top" align="left"><italic>K</italic><sub><italic>px</italic></sub>,<italic>K</italic><sub><italic>py</italic></sub></td>
<td valign="top" align="left">Stiffness of position controller along X and Y axis</td>
<td valign="top" align="left">3,000</td>
</tr>
<tr>
<td valign="top" align="left"><italic>K</italic><sub><italic>pz</italic></sub></td>
<td valign="top" align="left">Stiffness of position controller along Z axis</td>
<td valign="top" align="left">6,000</td>
</tr>
<tr>
<td valign="top" align="left"><italic>D</italic><sub><italic>px</italic></sub>,<italic>D</italic><sub><italic>py</italic></sub></td>
<td valign="top" align="left">Damping of position controller along X and Y axis</td>
<td valign="top" align="left">100</td>
</tr>
<tr>
<td valign="top" align="left"><italic>D</italic><sub><italic>pz</italic></sub></td>
<td valign="top" align="left">Damping of position controller along Z axis</td>
<td valign="top" align="left">150</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>5.4. Generalize to a Novel and Big Plane</title>
<p>In this case study, we would like to evaluate the generalization to a novel and large component, which is necessary for the composite layup in the real industry plant. The automation of composite layup only relies on the motion primitive and a little bit of information on the component. Generally, it is straightforward to attain the geometry of the component based on the CAD model of the part. In this case, we assumed that the vertex coordinates of the part are known. For example, given the four vertex coordinates, we can get the region where the parts need to be manufactured for a plane. For the area that needs to be processed, we divided several sub-areas. Each sub-area can be modeled with a task variable, including the start and end coordinates. For the DMPs based skill model, only the task variable is needed to reproduce the motion skills.</p>
<p>The number of motion primitive is dependent on the size of the component. For the X direction, as the generalization of DMP, the number can be random. In the Y direction, the number is the length of the workpiece, divided by the width of the roller, which ensures the roller can cover the whole workpiece. As shown in <xref ref-type="fig" rid="F8">Figure 8</xref>, there are 16 motion primitives for the big plane. Each motion primitive is similar to the human demonstration motion. Between two motion primitives, we used a motion planning algorithm to generate a transition trajectory. The first row, along X-axis, shows that the coordinates of the roller decrease from 0.6 to 0.34 m. The middle row, along the Y-axis, shows that the coordinates of the roller change between &#x02212;0.17 m and 0.1 m. The real trajectory of robots can cover the whole workpiece.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>The trajectory of the roller in the autonomous mode. The green bar and the yellow bar represent the motion primitive. In this works, the motion primitive is the same, but the start and end of each motion primitives are different.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0008.tif"/>
</fig>
<p>The <xref ref-type="fig" rid="F9">Figure 9</xref> shows the tracking error between the command from the DMP model and the actual trajectory of the roller. The tracking error is less than 0.005 m in the X, Y, and Z-axis. During the composite layup, the orientation of the end-effector is fixed, and the tracking error is less than 0.02 rad. The control accuracy is enough for the composite layup, which proves the performance of the impedance controller for the composite layup.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>The tracking error along the X, Y, and Z-axis; and the orientation tracking in yaw, pitch, and roll.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0009.tif"/>
</fig>
</sec>
<sec>
<title>5.5. Generalize to a Novel and Small Plane</title>
<p>In this case study, we would like to evaluate the generalization to a novel and small component, which is similar to the previous experiment case. The main difference is that the four vertex coordinates are changed. The motion primitive is the same as the previous experiment, and we evaluate that the learned skill can be generalized to a novel component with different sizes.</p>
<p>As shown in <xref ref-type="fig" rid="F10">Figure 10</xref>, for the small component, only eight motion primitives are needed to cover the whole plane. The proposed framework could generalize to different sizes only based on the vertex coordinates for a plane part. From <xref ref-type="fig" rid="F11">Figure 11</xref>, the tracking errors are less than 0.005 m, and the orientation tracking errors are less than 0.02 rad. The control accuracy is enough for the composite layup.</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>The autonomous trajectory of end-effector in the base frame of robot for novel and small plane.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0010.tif"/>
</fig>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>The tracking error along the X, Y, and Z-axis <bold>(B)</bold>; and the orientation tracking in yaw, pitch, and roll for the small plane <bold>(A)</bold>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0011.tif"/>
</fig>
</sec>
<sec>
<title>5.6. Generalize to a Slope Plane</title>
<p>This experiment case aim at evaluating the generalization to an inclined plane. In this case, the key points for this task are <italic>P</italic><sub>1</sub>(0.36, - 0.14, 0.38), <italic>P</italic><sub>2</sub>(0.37, 0.01, 0.42), <italic>P</italic><sub>3</sub>(0.50, 0, 0.42), and <italic>P</italic><sub>4</sub>(0.50, - 0.18, 0.38). We assume that we know the CAD model of the component or the orientation of the model can be measured based on sensing technology, such as machine vision.</p>
<p>From <xref ref-type="fig" rid="F12">Figure 12</xref>, there are eight motion primitives to cover the whole inclined plane. The main differences between the inclined plane and the horizontal plane are the motion along the Z-axis and the orientation. From the third row, the motion range along the Z-axis is from 0.41 to 0.38 m in <xref ref-type="fig" rid="F13">Figure 13</xref>. Additionally, the orientation is different, which needs to keep the roller perpendicular to the plane. The tracking errors are less than 0.005 m, and the orientation tracking errors are less than 0.02 rad, which demonstrates the generalization of the learned skill and the performance of the impedance-based controller for a composite layup in the inclined plane.</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>The trajectory of end-effector in the base frame of robot in autonomous mode for the slope plane.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0012.tif"/>
</fig>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p>The tracking error along the X, Y, and Z-axis <bold>(B)</bold>; and the orientation tracking in yaw, pitch, and roll for the slope plane <bold>(A)</bold>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0013.tif"/>
</fig>
</sec>
<sec>
<title>5.7. Collaboration Through Teleoperation</title>
<p>This experiment aims at evaluating the collaboration performance of the impedance control-based teleoperation system. Existing research focuses mostly on physical human-robot collaboration, with less work on collaboration between teleoperation, in-site humans and robots. In this experiment, we evaluated that teleoperation and in-site human can collaborate smoothly through modifying the parameters of the impedance controller. We make use of the character of the torque-computed control based on impedance control. For example, we set the stiffness of the impedance controller to a specific degree; the control along this degree becomes a free-motion mode, which can be kinesthetic teaching or adjusting the robots by an in-site human.</p>
<p>From <xref ref-type="fig" rid="F14">Figure 14A</xref> is the control command from the teleoperation, and (<xref ref-type="fig" rid="F14">Figure 14B</xref>) is the command by in-site human operation. The orientation control is autonomous by the robot. <xref ref-type="fig" rid="F15">Figure 15</xref> is the trajectory of the end-effector in the hybrid control mode. The results show that the control system can integrate teleoperation and kinesthetic demonstration and autonomous. The transition among the three modes can be smooth.</p>
<fig id="F14" position="float">
<label>Figure 14</label>
<caption><p>The trajectory of end-effector in the collaboration mode through teleoperation. <bold>(A)</bold> is the teleoperation command, and <bold>(B)</bold> is the input command from the in-site human operator.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0014.tif"/>
</fig>
<fig id="F15" position="float">
<label>Figure 15</label>
<caption><p>The trajectory of the end-effector in the base frame of the robot in the collaboration mode.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-840240-g0015.tif"/>
</fig>
</sec>
</sec>
<sec id="s6">
<title>6. Discussion and Conclusion</title>
<p>In this article, a torque-computed framework based on impedance control was proposed to enable the human-robot skill transfer through teleoperation. The human user interface was developed to display the parameters of the controller and the contact force, and the human operator could modify the parameters of the control system. The 3D mouse has been used as the input device for teleoperation. In addition, because the teleoperation control design is in Cartesian space, the teleoperation mapping between the input and the robot motion is intuitive. Also, the proposed teleoperation system is compatible with other input devices, such as Omni joystick and Omge.</p>
<p>For the robot-assisted composite layup, the layup skills are modeled by DMPs and transferred to the robot through teleoperation. The generalization of the proposed framework has been demonstrated through different components with various sizes and orientations. Additionally, the tracking error of the impedance-based controller is less than 0.005 m, which is feasible for the composite layup. In addition, we also evaluated the performance through an experiment, teleoperation, and in-site human operator co-work. From the results, the transition is smooth. In the future, we will conduct a user study to improve the human teleoperation interface design, such as combining multiple input devices and visualizing the interaction states. We will also study the deep learning techniques to automate the perception information to investigate reactive and automated monitoring.</p>
</sec>
<sec sec-type="data-availability" id="s7">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>WS developed the structure of the manuscript conducted the experiments, and discussions of the results. NW mainly contributed the Preliminary and part of Introduction. CY guided the whole process of this study and writing. QL and CY critically revised the manuscript. All the authors contributed to the article and approved the submitted version.</p>
</sec>
<sec sec-type="funding-information" id="s9">
<title>Funding</title>
<p>This study was supported in part by the Engineering and Physical Sciences Research Council (EPSRC) under grant EP/S001913 and in part by the Key Research and Development Project of Zhejiang Province under grant 2021C04017.</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x00027;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Abi-Farraj</surname> <given-names>F.</given-names></name> <name><surname>Osa</surname> <given-names>T.</given-names></name> <name><surname>Peters</surname> <given-names>N. P. J.</given-names></name> <name><surname>Neumann</surname> <given-names>G.</given-names></name> <name><surname>Giordano</surname> <given-names>P. R.</given-names></name></person-group> (<year>2017</year>). <article-title>A learning-based shared control architecture for interactive task execution</article-title>, in <source>2017 IEEE International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Singapore</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>329</fpage>&#x02013;<lpage>335</lpage>.</citation>
</ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bj&#x000F6;rnsson</surname> <given-names>A.</given-names></name> <name><surname>Jonsson</surname> <given-names>M.</given-names></name> <name><surname>Johansen</surname> <given-names>K.</given-names></name></person-group> (<year>2018</year>). <article-title>Automated material handling in composite manufacturing using pick-and-place systems-a review</article-title>. <source>Robot Comput. Integr. Manuf</source>. <volume>51</volume>:<fpage>222</fpage>&#x02013;<lpage>229</lpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2017.12.003</pub-id></citation>
</ref>
<ref id="B3">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ginesi</surname> <given-names>M.</given-names></name> <name><surname>Meli</surname> <given-names>D.</given-names></name> <name><surname>Nakawala</surname> <given-names>H.</given-names></name> <name><surname>Roberti</surname> <given-names>A.</given-names></name> <name><surname>Fiorini</surname> <given-names>P.</given-names></name></person-group> (<year>2019</year>). <article-title>A knowledge-based framework for task automation in surgery. In 2019 19th International Conference on Advanced Robotics (ICAR)</article-title>, pages <fpage>37</fpage>-<lpage>42</lpage>. <publisher-name>IEEE</publisher-name>. <pub-id pub-id-type="doi">10.1109/ICAR46387.2019.8981619</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B4">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ginesi</surname> <given-names>M.</given-names></name> <name><surname>Meli</surname> <given-names>D.</given-names></name> <name><surname>Roberti</surname> <given-names>A.</given-names></name> <name><surname>Sansonetto</surname> <given-names>N.</given-names></name> <name><surname>Fiorini</surname> <given-names>P.</given-names></name></person-group> (<year>2020</year>). <article-title>Autonomous task planning and situation awareness in robotic surgery</article-title>, in <source>2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)</source> (<publisher-loc>Las Vegas, NV</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>3144</fpage>&#x02013;<lpage>3150</lpage>.</citation>
</ref>
<ref id="B5">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hogan</surname> <given-names>N.</given-names></name></person-group> (<year>1985</year>). <article-title>Impedance control: an approach to manipulation: Part ii&#x02013;implementation</article-title>. <source>J. Dyn. Sys. Meas. Control</source>. <volume>107</volume>, <fpage>8</fpage>&#x02013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1115/1.3140713</pub-id></citation>
</ref>
<ref id="B6">
<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="B7">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Kroemer</surname> <given-names>O.</given-names></name> <name><surname>Niekum</surname> <given-names>S.</given-names></name> <name><surname>Konidaris</surname> <given-names>G.</given-names></name></person-group> (<year>2021</year>). <article-title>A review of robot learning for manipulation: challenges, representations, and algorithms</article-title>. <source>J. Mach. Learn. Res</source>. <volume>22</volume>, <fpage>30</fpage>&#x02013;<lpage>31</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="http://jmlr.org/papers/v22/19-804.html">http://jmlr.org/papers/v22/19-804.html</ext-link></citation>
</ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lamon</surname> <given-names>E.</given-names></name> <name><surname>De Franco</surname> <given-names>A.</given-names></name> <name><surname>Peternel</surname> <given-names>L.</given-names></name> <name><surname>Ajoudani</surname> <given-names>A.</given-names></name></person-group> (<year>2019</year>). <article-title>A capability-aware role allocation approach to industrial assembly tasks</article-title>. <source>IEEE Robot. Autom. Lett</source>. <volume>4</volume>, <fpage>3378</fpage>&#x02013;<lpage>3385</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2019.2926963</pub-id></citation>
</ref>
<ref id="B9">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Latifee</surname> <given-names>H.</given-names></name> <name><surname>Pervez</surname> <given-names>A.</given-names></name> <name><surname>Ryu</surname> <given-names>J.-H.</given-names></name> <name><surname>Lee</surname> <given-names>D.</given-names></name></person-group> (<year>2020</year>). <article-title>Mini-batched online incremental learning through supervisory teleoperation with kinesthetic coupling</article-title>, in <source>2020 IEEE International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Paris</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>5453</fpage>&#x02013;<lpage>5459</lpage>.</citation>
</ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>Z.</given-names></name> <name><surname>Deng</surname> <given-names>C.</given-names></name> <name><surname>Zhao</surname> <given-names>K.</given-names></name></person-group> (<year>2019</year>). <article-title>Human-cooperative control of a wearable walking exoskeleton for enhancing climbing stair activities</article-title>. <source>IEEE Trans. Ind. Electr</source>. <volume>67</volume>, <fpage>3086</fpage>&#x02013;<lpage>3095</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2019.2914573</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>Z.</given-names></name> <name><surname>Zhao</surname> <given-names>K.</given-names></name> <name><surname>Zhang</surname> <given-names>L.</given-names></name> <name><surname>Wu</surname> <given-names>X.</given-names></name> <name><surname>Zhang</surname> <given-names>T.</given-names></name> <name><surname>Li</surname> <given-names>Q.</given-names></name> <etal/></person-group>. (<year>2020</year>). <article-title>Human-in-the-loop control of a wearable lower limb exoskeleton for stable dynamic walking</article-title>. <source>IEEE/ASME Trans. Mechatron</source>. <volume>26</volume>, <fpage>2700</fpage>&#x02013;<lpage>2711</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2020.3044289</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>Z.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2021a</year>). <article-title>A constrained dmps framework for robot skills learning and generalization from human demonstrations</article-title>. <source>IEEE/ASME Trans. Mechatron</source>. <volume>26</volume>, <fpage>3265</fpage>&#x02013;<lpage>3275</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2021.3057022</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>Z.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2021b</year>). <article-title>A novel iterative identification based on the optimised topology for common state monitoring in wireless sensor networks</article-title>. <source>Int. J. Syst. Sci</source>. <volume>53</volume>, <fpage>1</fpage>&#x02013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1080/00207721.2021.1936275</pub-id></citation>
</ref>
<ref id="B14">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Malhan</surname> <given-names>R. K.</given-names></name> <name><surname>Joseph</surname> <given-names>R. J.</given-names></name> <name><surname>Shembekar</surname> <given-names>A. V.</given-names></name> <name><surname>Kabir</surname> <given-names>A. M.</given-names></name> <name><surname>Bhatt</surname> <given-names>P. M.</given-names></name> <name><surname>Gupta</surname> <given-names>S. K.</given-names></name></person-group> (<year>2020</year>). <article-title>Online grasp plan refinement for reducing defects during robotic layup of composite prepreg sheets</article-title>, in <source>2020 IEEE International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Paris</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>11500</fpage>&#x02013;<lpage>11507</lpage>.</citation>
</ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Malhan</surname> <given-names>R. K.</given-names></name> <name><surname>Shembekar</surname> <given-names>A. V.</given-names></name> <name><surname>Kabir</surname> <given-names>A. M.</given-names></name> <name><surname>Bhatt</surname> <given-names>P. M.</given-names></name> <name><surname>Shah</surname> <given-names>B.</given-names></name> <name><surname>Zanio</surname> <given-names>S.</given-names></name> <etal/></person-group>. (<year>2021</year>). <article-title>Automated planning for robotic layup of composite prepreg</article-title>. <source>Robot. Comput. Integr. Manuf</source>. <volume>67</volume>:<fpage>102020</fpage>. <pub-id pub-id-type="doi">10.1016/j.rcim.2020.102020</pub-id></citation>
</ref>
<ref id="B16">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mandlekar</surname> <given-names>A.</given-names></name> <name><surname>Xu</surname> <given-names>D.</given-names></name> <name><surname>Mart&#x000ED;n-Mart&#x000ED;n</surname> <given-names>R.</given-names></name> <name><surname>Zhu</surname> <given-names>Y.</given-names></name> <name><surname>Fei-Fei</surname> <given-names>L.</given-names></name> <name><surname>Savarese</surname> <given-names>S.</given-names></name></person-group> (<year>2020</year>). <article-title>Human-in-the-loop imitation learning using remote teleoperation</article-title>. <source>arXiv preprint</source> arXiv:2012.06733.</citation>
</ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Manschitz</surname> <given-names>S.</given-names></name> <name><surname>Gienger</surname> <given-names>M.</given-names></name> <name><surname>Kober</surname> <given-names>J.</given-names></name> <name><surname>Peters</surname> <given-names>J.</given-names></name></person-group> (<year>2018</year>). <article-title>Mixture of attractors: A novel movement primitive representation for learning motor skills from demonstrations</article-title>. <source>IEEE Robot. Automat. Lett</source>. <volume>3</volume>, <fpage>926</fpage>&#x02013;<lpage>933</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2018.2792531</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B18">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Manschitz</surname> <given-names>S.</given-names></name> <name><surname>Kober</surname> <given-names>J.</given-names></name> <name><surname>Gienger</surname> <given-names>M.</given-names></name> <name><surname>Peters</surname> <given-names>J.</given-names></name></person-group> (<year>2014</year>). <article-title>Learning to sequence movement primitives from demonstrations</article-title>, in <source>2014 IEEE/RSJ International Conference on Intelligent Robots and Systems</source> (<publisher-loc>Chicago, IL</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>4414</fpage>&#x02013;<lpage>4421</lpage>.</citation>
</ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ochoa</surname> <given-names>H.</given-names></name> <name><surname>Cortesao</surname> <given-names>R.</given-names></name></person-group> (<year>2021</year>). <article-title>Impedance control architecture for robotic-assisted mold polishing based on human demonstration</article-title>. <source>IEEE Trans. Ind. Electron</source>. <volume>69</volume>, <fpage>3822</fpage>&#x02013;<lpage>3830</lpage>. <pub-id pub-id-type="doi">10.1109/TIE.2021.3073310</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Papadopoulos</surname> <given-names>E.</given-names></name> <name><surname>Aghili</surname> <given-names>F.</given-names></name> <name><surname>Ma</surname> <given-names>O.</given-names></name> <name><surname>Lampariello</surname> <given-names>R.</given-names></name></person-group> (<year>2021</year>). <article-title>Robotic manipulation and capture in space: a survey</article-title>. <source>Front. Robot. AI</source> <volume>228</volume>:<fpage>686723</fpage>. <pub-id pub-id-type="doi">10.3389/frobt.2021.686723</pub-id><pub-id pub-id-type="pmid">34350212</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pastor</surname> <given-names>P.</given-names></name> <name><surname>Hoffmann</surname> <given-names>H.</given-names></name> <name><surname>Asfour</surname> <given-names>T.</given-names></name> <name><surname>Schaal</surname> <given-names>S.</given-names></name></person-group> (<year>2009</year>). <article-title>Learning and generalization of motor skills by learning from demonstration</article-title>, in <source>2009 IEEE International Conference on Robotics and Automation</source> (<publisher-loc>Kobe</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>763</fpage>&#x02013;<lpage>768</lpage>.</citation>
</ref>
<ref id="B22">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Peternel</surname> <given-names>L.</given-names></name> <name><surname>Oztop</surname> <given-names>E.</given-names></name> <name><surname>Babi&#x0010D;</surname> <given-names>J.</given-names></name></person-group> (<year>2016</year>). <article-title>A shared control method for online human-in-the-loop robot learning based on locally weighted regression</article-title>, in <source>2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)</source> (<publisher-loc>Daejeon</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>3900</fpage>&#x02013;<lpage>3906</lpage>.</citation>
</ref>
<ref id="B23">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Peternel</surname> <given-names>L.</given-names></name> <name><surname>Petri&#x0010D;</surname> <given-names>T.</given-names></name> <name><surname>Babi&#x0010D;</surname> <given-names>J.</given-names></name></person-group> (<year>2015</year>). <article-title>Human-in-the-loop approach for teaching robot assembly tasks using impedance control interface</article-title>, in <source>2015 IEEE International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Seattle, WA</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1497</fpage>&#x02013;<lpage>1502</lpage>.</citation>
</ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Raessa</surname> <given-names>M.</given-names></name> <name><surname>Chen</surname> <given-names>J. C. Y.</given-names></name> <name><surname>Wan</surname> <given-names>W.</given-names></name> <name><surname>Harada</surname> <given-names>K.</given-names></name></person-group> (<year>2020</year>). <article-title>Human-in-the-loop robotic manipulation planning for collaborative assembly</article-title>. <source>IEEE Trans. Automat. Sci. Eng</source>. <volume>17</volume>, <fpage>1800</fpage>&#x02013;<lpage>1813</lpage>. <pub-id pub-id-type="doi">10.1109/TASE.2020.2978917</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B25">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ravichandar</surname> <given-names>H.</given-names></name> <name><surname>Polydoros</surname> <given-names>A. S.</given-names></name> <name><surname>Chernova</surname> <given-names>S.</given-names></name> <name><surname>Billard</surname> <given-names>A.</given-names></name></person-group> (<year>2020</year>). <article-title>Recent advances in robot learning from demonstration</article-title>. <source>Ann. Rev. Control Robot. Auton. Syst</source>. <volume>3</volume>, <fpage>297</fpage>&#x02013;<lpage>330</lpage>. <pub-id pub-id-type="doi">10.1146/annurev-control-100819-063206</pub-id><pub-id pub-id-type="pmid">32095878</pub-id></citation></ref>
<ref id="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rigter</surname> <given-names>M.</given-names></name> <name><surname>Lacerda</surname> <given-names>B.</given-names></name> <name><surname>Hawes</surname> <given-names>N.</given-names></name></person-group> (<year>2020</year>). <article-title>A framework for learning from demonstration with minimal human effort</article-title>. <source>IEEE Robot. Automat. Lett</source>. <volume>5</volume>, <fpage>2023</fpage>&#x02013;<lpage>2030</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2020.2970619</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rodr&#x00131;guez</surname> <given-names>I.</given-names></name> <name><surname>Nottensteiner</surname> <given-names>K.</given-names></name> <name><surname>Leidner</surname> <given-names>D.</given-names></name> <name><surname>Ka&#x000DF;ecker</surname> <given-names>M.</given-names></name> <name><surname>Stulp</surname> <given-names>F.</given-names></name> <name><surname>Albu-Sch&#x000E4;ffer</surname> <given-names>A.</given-names></name></person-group> (<year>2019</year>). <article-title>Iteratively refined feasibility checks in robotic assembly sequence planning</article-title>. <source>IEEE Robot. Automat. Lett</source>. <volume>4</volume>, <fpage>1416</fpage>&#x02013;<lpage>1423</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2019.2895845</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Santos</surname> <given-names>L.</given-names></name> <name><surname>Cortes&#x000E3;o</surname> <given-names>R.</given-names></name></person-group> (<year>2018</year>). <article-title>Computed-torque control for robotic-assisted tele-echography based on perceived stiffness estimation</article-title>. <source>IEEE Trans. Automat. Sci. Eng</source>. <volume>15</volume>, <fpage>1337</fpage>&#x02013;<lpage>1354</lpage>. <pub-id pub-id-type="doi">10.1109/TASE.2018.2790900</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B29">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Saveriano</surname> <given-names>M.</given-names></name> <name><surname>Franzel</surname> <given-names>F.</given-names></name> <name><surname>Lee</surname> <given-names>D.</given-names></name></person-group> (<year>2019</year>). <article-title>Merging position and orientation motion primitives</article-title>, in <source>2019 International Conference on Robotics and Automation (ICRA)</source> (<publisher-loc>Montreal, QC</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>7041</fpage>&#x02013;<lpage>7047</lpage>.</citation>
</ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Si</surname> <given-names>W.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2021a</year>). <article-title>Composite dynamic movement primitives based on neural networks for human-robot skill transfer</article-title>. <source>Neural Comput. Appl</source>. <fpage>1</fpage>&#x02013;<lpage>11</lpage>. <pub-id pub-id-type="doi">10.1007/s00521-021-05747-8</pub-id></citation>
</ref>
<ref id="B31">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Si</surname> <given-names>W.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2021b</year>). <article-title>Reactive and constrained motion primitive merging and adaptation</article-title>, in <source>2021 26th International Conference on Automation and Computing (ICAC)</source> (<publisher-loc>Portsmouth</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x02013;<lpage>6</lpage>.</citation>
</ref>
<ref id="B32">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Si</surname> <given-names>W.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2021c</year>). <article-title>A review on manipulation skill acquisition through teleoperation-based learning from demonstration</article-title>. <source>Cognit. Comput. Syst</source>. <volume>3</volume>, <fpage>1</fpage>&#x02013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1049/ccs2.12005</pub-id></citation>
</ref>
<ref id="B33">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tavakoli</surname> <given-names>M.</given-names></name> <name><surname>Carriere</surname> <given-names>J.</given-names></name> <name><surname>Torabi</surname> <given-names>A.</given-names></name></person-group> (<year>2020</year>). <article-title>Robotics, smart wearable technologies, and autonomous intelligent systems for healthcare during the covid-19 pandemic: an analysis of the state of the art and future vision</article-title>. <source>Adv. Intell. Syst</source>. <volume>2</volume>, <fpage>2000071</fpage>. <pub-id pub-id-type="doi">10.1002/aisy.202000071</pub-id><pub-id pub-id-type="pmid">25855820</pub-id></citation></ref>
<ref id="B34">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Chen</surname> <given-names>C.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2020</year>). <article-title>A robot learning framework based on adaptive admittance control and generalizable motion modeling with neural network controller</article-title>. <source>Neurocomputing</source> <volume>390</volume>, <fpage>260</fpage>&#x02013;<lpage>267</lpage>. <pub-id pub-id-type="doi">10.1016/j.neucom.2019.04.100</pub-id></citation>
</ref>
<ref id="B35">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>C.</given-names></name> <name><surname>Chen</surname> <given-names>C.</given-names></name> <name><surname>He</surname> <given-names>W.</given-names></name> <name><surname>Cui</surname> <given-names>R.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name></person-group> (<year>2018</year>). <article-title>Robot learning system based on adaptive neural control and dynamic movement primitives</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst</source>. <volume>30</volume>, <fpage>777</fpage>&#x02013;<lpage>787</lpage>. <pub-id pub-id-type="doi">10.1109/TNNLS.2018.2852711</pub-id><pub-id pub-id-type="pmid">30047914</pub-id></citation></ref>
<ref id="B36">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>C.</given-names></name> <name><surname>Huang</surname> <given-names>D.</given-names></name> <name><surname>He</surname> <given-names>W.</given-names></name> <name><surname>Cheng</surname> <given-names>L.</given-names></name></person-group> (<year>2021a</year>). <article-title>Neural control of robot manipulators with trajectory tracking constraints and input saturation</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst</source>. <volume>32</volume>:<fpage>4231</fpage>&#x02013;<lpage>4242</lpage>. <pub-id pub-id-type="doi">10.1109/TNNLS.2020.3017202</pub-id><pub-id pub-id-type="pmid">32857705</pub-id></citation></ref>
<ref id="B37">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>C.</given-names></name> <name><surname>Peng</surname> <given-names>G.</given-names></name> <name><surname>Cheng</surname> <given-names>L.</given-names></name> <name><surname>Na</surname> <given-names>J.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name></person-group> (<year>2019</year>). <article-title>Force sensorless admittance control for teleoperation of uncertain robot manipulator using neural networks</article-title>. <source>IEEE Trans. Syst. Man Cybern. Syst</source>. <volume>51</volume>, <fpage>3282</fpage>&#x02013;<lpage>3292</lpage>. <pub-id pub-id-type="doi">10.1109/TSMC.2019.2920870</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B38">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>C.</given-names></name> <name><surname>Zeng</surname> <given-names>C.</given-names></name> <name><surname>Zhang</surname> <given-names>J.</given-names></name></person-group> (<year>2021b</year>). <source>Robot Learning Human Skills and Intelligent Control Design</source>. <publisher-loc>Boca Raton, FL</publisher-loc>: <publisher-name>CRC Press</publisher-name>.</citation>
</ref>
<ref id="B39">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>G.-Z.</given-names></name> <name><surname>Nelson</surname> <given-names>B. J.</given-names></name> <name><surname>Murphy</surname> <given-names>R. R.</given-names></name> <name><surname>Choset</surname> <given-names>H.</given-names></name> <name><surname>Christensen</surname> <given-names>H.</given-names></name> <etal/></person-group>. (<year>2020</year>). <article-title>Combating covid-19&#x02013;the role of robotics in managing public health and infectious diseases</article-title>. <source>Sci. Robot</source>. <volume>5</volume>, <fpage>eabb5589</fpage>. <pub-id pub-id-type="doi">10.1126/scirobotics.abb5589</pub-id><pub-id pub-id-type="pmid">33022599</pub-id></citation></ref>
<ref id="B40">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zeng</surname> <given-names>C.</given-names></name> <name><surname>Su</surname> <given-names>H.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name> <name><surname>Guo</surname> <given-names>J.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2021</year>). <article-title>An approach for robotic leaning inspired by biomimetic adaptive control</article-title>. <source>IEEE Trans. Ind. Inform</source>. <volume>18</volume>, <fpage>1479</fpage>&#x02013;<lpage>1488</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2021.3087337</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B41">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zeng</surname> <given-names>C.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name> <name><surname>Chen</surname> <given-names>Z.</given-names></name> <name><surname>Dai</surname> <given-names>S.-L.</given-names></name></person-group> (<year>2018</year>). <article-title>Robot learning human stiffness regulation for hybrid manufacture</article-title>. <source>Assembly Automat</source>. <volume>38</volume>, <fpage>539</fpage>&#x02013;<lpage>547</lpage>. <pub-id pub-id-type="doi">10.1108/AA-02-2018-019</pub-id></citation>
</ref>
<ref id="B42">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zeng</surname> <given-names>C.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name> <name><surname>Cheng</surname> <given-names>H.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name> <name><surname>Dai</surname> <given-names>S.-L.</given-names></name></person-group> (<year>2020</year>). <article-title>Simultaneously encoding movement and semg-based stiffness for robotic skill learning</article-title>. <source>IEEE Trans. Ind. Inform</source>. <volume>17</volume>, <fpage>1244</fpage>&#x02013;<lpage>1252</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2020.2984482</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B43">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>Y.</given-names></name> <name><surname>Li</surname> <given-names>M.</given-names></name> <name><surname>Yang</surname> <given-names>C.</given-names></name></person-group> (<year>2021</year>). <article-title>Robot learning system based on dynamic movement primitives and neural network</article-title>. <source>Neurocomputing</source> <volume>451</volume>, <fpage>205</fpage>&#x02013;<lpage>214</lpage>. <pub-id pub-id-type="doi">10.1016/j.neucom.2021.04.034</pub-id><pub-id pub-id-type="pmid">30047914</pub-id></citation></ref>
<ref id="B44">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhao</surname> <given-names>T.</given-names></name> <name><surname>Deng</surname> <given-names>M.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name> <name><surname>Hu</surname> <given-names>Y.</given-names></name></person-group> (<year>2018</year>). <article-title>Cooperative manipulation for a mobile dual-arm robot using sequences of dynamic movement primitives</article-title>. <source>IEEE Trans. Cogn. Dev. Syst</source>. <volume>12</volume>, <fpage>18</fpage>&#x02013;<lpage>29</lpage>. <pub-id pub-id-type="doi">10.1109/TCDS.2018.2868921</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
</ref-list>
</back>
</article>