<?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.1099656</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>Actuation delay compensation of robots in semi-physical test</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Zhang</surname> <given-names>Xiao</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<xref ref-type="author-notes" rid="fn002"><sup>&#x2020;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1977845/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>He</surname> <given-names>Yun</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
<xref ref-type="author-notes" rid="fn002"><sup>&#x2020;</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Xu</surname> <given-names>Zhigang</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x002A;</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Jiang</surname> <given-names>Zainan</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<xref ref-type="corresp" rid="c002"><sup>&#x002A;</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Liu</surname> <given-names>Yong</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Feng</surname> <given-names>Wenbo</given-names></name>
<xref ref-type="aff" rid="aff5"><sup>5</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Wu</surname> <given-names>Junwu</given-names></name>
<xref ref-type="aff" rid="aff5"><sup>5</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Shenyang Institute of Automation, Chinese Academy of Sciences</institution>, <addr-line>Shenyang</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>Institutes for Robotics and Intelligent Manufacturing, Chinese Academy of Sciences</institution>, <addr-line>Shenyang</addr-line>, <country>China</country></aff>
<aff id="aff3"><sup>3</sup><institution>State Key Laboratory of Robotics and Systems, Harbin Institute of Technology</institution>, <addr-line>Harbin</addr-line>, <country>China</country></aff>
<aff id="aff4"><sup>4</sup><institution>University of Chinese Academy of Sciences</institution>, <addr-line>Beijing</addr-line>, <country>China</country></aff>
<aff id="aff5"><sup>5</sup><institution>Institute of Aerospace System Engineering Shanghai</institution>, <addr-line>Shanghai</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Hang Su, Fondazione Politecnico di Milano, Italy</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Xiaorui Liu, Qingdao University, China; Chao Cheng, Jilin University, China</p></fn>
<corresp id="c001">&#x002A;Correspondence: Zhigang Xu, <email>zgxu@sia.cn</email></corresp>
<corresp id="c002">Zainan Jiang, <email>jiangzainan@hit.edu.cn</email></corresp>
<fn fn-type="equal" id="fn002"><p><sup>&#x2020;</sup>These authors share first authorship</p></fn>
</author-notes>
<pub-date pub-type="epub">
<day>09</day>
<month>01</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>16</volume>
<elocation-id>1099656</elocation-id>
<history>
<date date-type="received">
<day>16</day>
<month>11</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>19</day>
<month>12</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x00A9; 2023 Zhang, He, Xu, Jiang, Liu, Feng and Wu.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Zhang, He, Xu, Jiang, Liu, Feng and Wu</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 general, the traditional spacecraft semi-physical docking tests include the evaluation of docking and separation performance. However, these tests often rely on &#x201C;specific&#x201D; equipment, such as specially designed actuators and fast-response hydraulic systems, to meet the stringent dynamic response requirements of semi-physical testing. In this paper, a novel docking test platform is designed based on a general-purpose industrial manipulator using 3-D force and 3-D torque sensors. Different from the traditional solution, this novel platform is well-assembled and cost-effective. Furthermore, an actuation delay compensation method is introduced to improve the performance. Finally, the proposed method is evaluated using simulations. The results show that the novel method is with promising performance in terms of actuation delay compensation.</p>
</abstract>
<kwd-group>
<kwd>semi-physical test</kwd>
<kwd>actuation delay compensation</kwd>
<kwd>docking test platform</kwd>
<kwd>space docking dynamics modeling</kwd>
<kwd>robotic systems</kwd>
</kwd-group>
<counts>
<fig-count count="9"/>
<table-count count="0"/>
<equation-count count="39"/>
<ref-count count="19"/>
<page-count count="10"/>
<word-count count="6164"/>
</counts>
</article-meta>
</front>
<body>
<sec id="S1" sec-type="intro">
<title>1. Introduction</title>
<p>The space docking mechanism plays a role in realizing the docking of spacecraft in space under various forms of initial docking conditions and then fulfilling better functions. To ensure the progressive development of docking in space, many tests must be conducted on the ground. The ground test of the space docking mechanism goes beyond its mechanical characteristic test and docking performance test. The docking performance test generally needs to reproduce the working process of the docking mechanism in space on the ground. This involves the application of common spacecraft ground tests to overcome gravity (<xref ref-type="bibr" rid="B18">Xu et al., 1994</xref>, <xref ref-type="bibr" rid="B2">Carignan and Akin, 2000</xref>, <xref ref-type="bibr" rid="B6">How et al., 2001</xref>). For example, the space manipulator can accomplish many dexterous tasks in space (<xref ref-type="bibr" rid="B7">Jiang et al., 2019a</xref>,<xref ref-type="bibr" rid="B8">b</xref>), but in the ground test, the test equipment plays a major role in balancing the weight of the space manipulator itself. In the process of testing the docking mechanism on the ground, the spacecraft matters in simulating the load of the docking mechanism. One commonly used method is to simulate the mass and inertia of the spacecraft in an entirely physical way and then compensate for the gravity of the simulated spacecraft through air flotation. This method features high test accuracy, simpleness, and reliability in theory. Generally, the application of air flotation is achieved in a two-dimensional plane. Three-dimensional rotating air flotation can be realized by using an air flotation ball, and vertical air flotation depends on an air flotation guide column combined with an air flotation pulley. However, the design of a full air flotation mechanism cannot be achieved with six degrees of freedom. Moreover, changing the mass and inertia characteristics of the simulated spacecraft takes a lot for the full physical air flotation equipment, and so does the setting of the first-order initial conditions of docking. In this way, the beauty of semi-physical testing is reflected (<xref ref-type="bibr" rid="B5">Doyon et al., 2003</xref>, <xref ref-type="bibr" rid="B19">Zebenay et al., 2015</xref>). The semi-physical test employs the combination between a mechanical motion system and mathematical algorithm to simulate the real docking movement, which harbors the flexibility of digital simulation and the authenticity of full physical simulation. In the mathematical model, the modification of the mass and inertia characteristics of the spacecraft can be easily achieved by the operator; the implementation of the initial docking conditions is effortless for the actuator, and in addition to the mass and inertia characteristics of the spacecraft, other dynamic factors can also be added in the process of designing the mathematical model.</p>
</sec>
<sec id="S2">
<title>2. Our choice</title>
<p>To reproduce the collision process in space and accurately simulate the dynamic characteristics of objects with the tested device, the motion simulator should be equipped with a series of factors such as a high degree of freedom, high load bearing, high precision, and high dynamic response. The above characteristics are not born for serial mechanisms, which are the merits of parallel mechanisms. Therefore, at present, the motion simulators with high demand in these aspects all use parallel mechanisms, most of which are Stewart parallel mechanisms. For example, the collision ground simulation experiment system built by Boeing Company of the United States (<xref ref-type="bibr" rid="B11">Motaghedi and Stamm, 2005</xref>), and the collision ground simulation experiment system of McDonnell Douglas Aerospace Department of the United States (<xref ref-type="bibr" rid="B1">Ananthakrishnan et al., 1996</xref>). Realizing high performance of ordinary robots is one of the core problems in robotic research (<xref ref-type="bibr" rid="B3">Chen and Qiao, 2020a</xref>,<xref ref-type="bibr" rid="B14">Qiao et al., 2022b</xref>). With the development of robot application and the combination of deep learning technology and robots (<xref ref-type="bibr" rid="B12">Qi and Su, 2022</xref>), robots are increasingly intelligent (<xref ref-type="bibr" rid="B4">Chen and Qiao, 2020b</xref>,<xref ref-type="bibr" rid="B17">Wang et al., 2022</xref>) and behaving more and more like human beings (<xref ref-type="bibr" rid="B15">Su et al., 2022b</xref>). Now robots can be driven by humans to display natural and appropriate behaviors in social scenes (<xref ref-type="bibr" rid="B9">Liu et al., 2022a</xref>). Cylinder-aperture ESM measurement system sees the successful application of a 6-DOF manipulator (<xref ref-type="bibr" rid="B10">Liu et al., 2022b</xref>). Such as compliant and precise manipulation, fast and flexible response, and deep collaboration between humans and robots become possible (<xref ref-type="bibr" rid="B13">Qiao et al., 2022a</xref>). Even in unknown physical interaction between the patients&#x2019; body and surgical tool in laparoscopic surgery, a task-space control approach based on fuzzy approximation is proposed, so a serial redundant robot manipulator (7 degrees of freedom) could accomplish the task (<xref ref-type="bibr" rid="B16">Su et al., 2022a</xref>). It seems feasible for semi-physical test of space docking mechanisms to use serial robots. This paper, a set of the semi-physical docking test platforms is built through a KUKA manipulator, a three-dimension-force and three-dimension-torque sensor (F/T sensor), a PXI computer, a PC and other accessories. The existence of actuation delay in this test platform boosts the docking performance of the semi-physical test. It well managed the problem of semi-physical experiments with the low-cost serial robot scheme. Compared with the semi-physical test bench developed by the Institute of Aerospace System Engineering Shanghai and Shanghai Jiao Tong University, the cost of this test bench is only about two hundred thousand dollars, while theirs is about 2 million dollars. The bearing capacity of the test bench in this paper is on the order magnitude of 5000 N and 700 Nm, which is the same as that of their test bench. Our control cycle is 4 ms, and theirs 1 ms. When the control cycle falls behind, the algorithm designed by us fills the hardware performance gap and conducts semi-physical testing. The main contributions of our work are twofold. First, the dynamic model with the equivalent resistance of the space manipulator in parking docking of the semi-physical test is established, and the implementation method on the manipulator is found. Second, the actuation delay compensation method is available for manipulator&#x2019;s lagging phenomenon in the semi-physical docking test.</p>
<p>The following parts are arranged as follows: Section &#x201C;Semi-physical docking performance test&#x201D; is the semi-physical test with modeling of space docking dynamics on the general test platform. Section &#x201C;Actuation delay compensation&#x201D; discusses how we find the delay effect in the test system and how to compensate for it. Additionally, the simulation studies the lagging compensation method. Section &#x201C;Conclusion&#x201D; is the summarization of the paper.</p>
</sec>
<sec id="S3">
<title>3. Semi-physical docking performance test</title>
<p>In this chapter, we will introduce how to implement traditional semi-physical tests with the equipment in this paper. The two key actuators of this test platform are a common industrial manipulator and an F/T sensor. The realization of all functions on the test platform is based on the flexible mechanical motion control of the manipulator and the accurate F/T sensor measurement data.</p>
<sec id="S3.SS1">
<title>3.1. Semi-physical test</title>
<p>The structural block diagram of the semi-physical test is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption><p>Semi-physical docking performance test structure.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g001.tif"/>
</fig>
<p>The principle of the semi-physical test is to calculate the motion of the spacecraft under the action of an external force according to the spacecraft dynamic model and then execute the motion through the real mechanism. When the docking mechanism moves according to the results given by the dynamic model, an actual collision appears, and the sensor detects the real collision force and torque. The force and torque data are sent to the dynamic model, and the model calculates the motion of the spacecraft in the next cycle. The manipulator continues to drive the docking mechanism according to the model&#x2019;s results, and the docking mechanism processes a real collision again. In this way, the iteration constitutes a semi-physical test. Theoretically, we need the manipulator to act corresponding movement as soon as the impact force and torque are generated. However, in fact, the measurement of the impact force and torque, the calculation of the mathematical model, and the execution of the manipulator&#x2019;s movement all take time, which leads to the lagging effect and significantly affects the semi-physical test. The traditional method alleviates the lagging effect by improving the response speed of the actuator. In this paper, under the condition that the existence of the lagging effect lasts, a method of actuation delay compensation is proposed, and it will be discussed in the next chapter.</p>
</sec>
<sec id="S3.SS2">
<title>3.2. Docking dynamics model</title>
<p>The semi-physical model in this paper is as follows. The model describes the relationship between the force and torque of the spacecraft and the acceleration and angular acceleration during parking docking with manipulator assistance. The definition of parking docking is that two spacecraft are connected by a manipulator or other components, and the initial conditions of docking are almost static.</p>
<disp-formula id="S3.Ex1">
<mml:math display="block" id="M1"><mml:mrow><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mi mathvariant="normal">s</mml:mi><mml:mo>-</mml:mo><mml:mi>manipulator</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">a</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex2">
<mml:math display="block" id="M2"><mml:mrow><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mi mathvariant="normal">s</mml:mi><mml:mo>-</mml:mo><mml:mi>manipulator</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">I</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">I</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>where <bold><italic>F</italic></bold><sub>K,Q</sub> and <bold><italic>T</italic></bold><sub>K,Q</sub> are the measurement results of the docking force and torque, <bold><italic>F</italic></bold><sub>s&#x2212;<italic>manipulator</italic></sub> and <bold><italic>T</italic></bold><sub>s&#x2212;<italic>manipulator</italic></sub> are the equivalent resistances of the space manipulator in parking docking, and the mass <italic>m</italic><sub>K,Q</sub> and inertia tensor <bold><italic>I</italic></bold><sub>K,Q</sub> of the spacecraft are the parameters set by the operator. Angular velocity &#x03C9;<sub>K,Q</sub> is a variable involved in iterative calculation. Acceleration <bold><italic>a</italic></bold><sub>K,Q</sub> and angular acceleration &#x03B1;<sub>K,Q</sub> are variables to be solved.</p>
<p>As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, we imagine that there is spacecraft behind the docking mechanisms. In fact, they do not exist, and only the docking mechanisms are real. The coordinate systems of spacecraft centroids and the coordinate systems of docking mechanisms are also drawn in the figure, where A is the ground coordinate; S the F/T sensor coordinate system; K the passive spacecraft centroid, which is moveable during the test and is also named M, meaning that all the moving commands describe the movement between M and A; J the passive docking mechanism docking surface, whose positional relationship with K is invariant and is also named N, an additional observation coordinate system set by the operator; P the active docking mechanism docking surface; and Q the active spacecraft centroid. P and Q are static during the test. In the real docking process in the universe, K and Q are both moving. In the experiment, Q is stationary, and K&#x2019;s motion reproduces K&#x2019;s relative motion with respect to Q. The F/T sensor can measure the force and torque in the S coordinate system in real time. In the test, we need to conduct gravity compensation, zero compensation, and dynamic compensation for the measurement results and convert the compensated measurement results to the M coordinate system for the model. The compensation and conversion are shown in the following equations.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption><p>Schematic diagram of the semi-physical test with the coordinate system.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g002.tif"/>
</fig>
<disp-formula id="S3.Ex3">
<mml:math display="block" id="M3"><mml:mrow><mml:mo>{</mml:mo><mml:mtable displaystyle="true" rowspacing="0pt"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>compensation</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mi>S</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>S</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mtext mathvariant="bold-italic">G</mml:mtext><mml:mi>G</mml:mi></mml:msup></mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mn>0</mml:mn><mml:mi>S</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mtext mathvariant="bold-italic">a</mml:mtext><mml:mi>S</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>compensation</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mi>S</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>S</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>G</mml:mi></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:none/><mml:mi>S</mml:mi><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mtext mathvariant="bold-italic">G</mml:mtext><mml:mi>S</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:msubsup><mml:mpadded lspace="80.6pt" width="+80.6pt"><mml:mi mathvariant="bold-italic">T</mml:mi></mml:mpadded><mml:mn>0</mml:mn><mml:mi>S</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mtext mathvariant="bold-italic">I</mml:mtext><mml:mi>S</mml:mi></mml:msup><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mi>S</mml:mi></mml:msup></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mi>S</mml:mi></mml:msup><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mtext mathvariant="bold-italic">I</mml:mtext><mml:mi>S</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mi>S</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mi/></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex4">
<mml:math display="block" id="M4"><mml:mrow><mml:mo>{</mml:mo><mml:mtable displaystyle="true" rowspacing="0pt"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>M</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>S</mml:mtext></mml:mrow><mml:mi>M</mml:mi></mml:mmultiscripts><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>compensation</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mi>S</mml:mi></mml:msubsup></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>M</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>S</mml:mtext></mml:mrow><mml:mi>M</mml:mi></mml:mmultiscripts><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>compensation</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mi>S</mml:mi></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:none/><mml:mi>M</mml:mi><mml:mprescripts/><mml:mrow><mml:mtext>S</mml:mtext></mml:mrow><mml:mi>M</mml:mi></mml:mmultiscripts><mml:mo>&#x00D7;</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>M</mml:mi></mml:msubsup></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mi/></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula><mml:math id="INEQ10"><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mi>G</mml:mi><mml:mi>S</mml:mi></mml:mmultiscripts></mml:math></inline-formula> is the rotation matrix between the S coordinate system and the gravity direction coordinate system and <inline-formula><mml:math id="INEQ11"><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>S</mml:mtext></mml:mrow><mml:mi>M</mml:mi></mml:mmultiscripts></mml:math></inline-formula> is the rotation matrix between the M coordinate system and the S coordinate system. <inline-formula><mml:math id="INEQ12"><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mtext mathvariant="bold-italic">G</mml:mtext><mml:mi>G</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="INEQ13"><mml:mrow><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>G</mml:mi></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:none/><mml:mi>S</mml:mi><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts><mml:mo>&#x00D7;</mml:mo><mml:msup><mml:mtext mathvariant="bold-italic">G</mml:mtext><mml:mi>S</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:math></inline-formula> are the gravity compensation items; <inline-formula><mml:math id="INEQ14"><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mn>0</mml:mn><mml:mi>S</mml:mi></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="INEQ15"><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mn>0</mml:mn><mml:mi>S</mml:mi></mml:msubsup></mml:math></inline-formula> are the zero compensation items; m<bold>a</bold><sup>S</sup> and <bold>I</bold><sup><italic>S</italic></sup>&#x03B1;<italic><sup>S</sup></italic> + &#x03C9;<italic><sup>S</sup></italic>&#x00D7;<bold>I</bold><sup><italic>S</italic></sup>&#x03C9;<italic><sup>S</sup></italic> are the dynamic compensation items. The parameters <bold>G</bold><sup><italic>G</italic></sup>, <inline-formula><mml:math id="INEQ19"><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:none/><mml:mi>S</mml:mi><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts></mml:math></inline-formula>, <inline-formula><mml:math id="INEQ20"><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mn>0</mml:mn><mml:mi>S</mml:mi></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="INEQ21"><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mn>0</mml:mn><mml:mi>S</mml:mi></mml:msubsup></mml:math></inline-formula> used in gravity compensation and zero compensation can be obtained by the least square method under the condition that <inline-formula><mml:math id="INEQ22"><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">R</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mi>S</mml:mi></mml:mmultiscripts></mml:math></inline-formula>, <inline-formula><mml:math id="INEQ23"><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>de</mml:mi><mml:mo>-</mml:mo><mml:mi>gravity</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mi>S</mml:mi></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="INEQ24"><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>de</mml:mi><mml:mo>-</mml:mo><mml:mi>gravity</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mi>S</mml:mi></mml:msubsup></mml:math></inline-formula> are known. The parameters m and <bold>I</bold><sup><italic>S</italic></sup> can also be obtained by the least square method under the condition that <bold>a</bold><sup><italic>S</italic></sup>, &#x03B1;<italic><sup>S</sup></italic>, and &#x03C9;<italic><sup>S</sup></italic> are known. In this paper, dynamic compensation is ignored; according to the large mass ratio between the docking mechanism and the spacecraft, only gravity compensation and zero compensation are programmed.</p>
<p>The F/T in the K coordinate system is directly measured, and the force in the Q coordinate system needs to be calculated according to the following equation. C is the reference coordinate system set by the operator.</p>
<disp-formula id="S3.Ex5">
<mml:math display="block" id="M5"><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mtext>Q</mml:mtext></mml:mrow><mml:mi>C</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>C</mml:mi></mml:msubsup></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex6">
<mml:math display="block" id="M6"><mml:mrow><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mtext>Q</mml:mtext></mml:mrow><mml:mi>C</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>C</mml:mi></mml:msubsup></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:none/><mml:mrow><mml:mtext>C</mml:mtext></mml:mrow><mml:mprescripts/><mml:mrow><mml:mtext>Q</mml:mtext></mml:mrow><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow></mml:mmultiscripts><mml:mo>&#x00D7;</mml:mo><mml:msubsup><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mrow><mml:mtext>C</mml:mtext></mml:mrow></mml:msubsup></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>The acceleration, angular velocity and angular acceleration can be solved according to the method given in the following equation.</p>
<disp-formula id="S3.Ex7">
<mml:math display="block" id="M7"><mml:mrow><mml:mtext mathvariant="bold-italic">a</mml:mtext><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">F</mml:mtext><mml:mo>/</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex8">
<mml:math display="block" id="M8"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mo>\</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mo>-</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>I</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">&#x03C9;</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex9">
<mml:math display="block" id="M9"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mo>\</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mo>-</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mn>0.5</mml:mn><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mi>I</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mn>0.5</mml:mn><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex10">
<mml:math display="block" id="M10"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mo>\</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mo>-</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mn>0.5</mml:mn><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mi>I</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mn>0.5</mml:mn><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex11">
<mml:math display="block" id="M11"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mo>\</mml:mo><mml:mrow><mml:mo maxsize="120%" minsize="120%">(</mml:mo><mml:mrow><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mo>-</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mo maxsize="120%" minsize="120%">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo rspace="7.5pt">&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow><mml:mo maxsize="120%" minsize="120%">)</mml:mo></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mi>I</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo maxsize="120%" minsize="120%">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow><mml:mo maxsize="120%" minsize="120%">)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo maxsize="120%" minsize="120%">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex12">
<mml:math display="block" id="M12"><mml:mrow><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:mn>6</mml:mn></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>In this way, we can calculate the angular velocity and angular acceleration of the active spacecraft and passive spacecraft in the model according to the measured force and torque in each motion period. The initial position, initial velocity and initial angle in the dynamic model are set by the operator. In each motion period, we calculate the attitude, velocity and angular velocity at the end of this period according to the following formula, which is used as the initial condition for the motion calculation of the next cycle.</p>
<disp-formula id="S3.Ex13">
<mml:math display="block" id="M13"><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">a</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">a</mml:mtext><mml:mrow><mml:mi>ARM</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex14">
<mml:math display="block" id="M14"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03B1;</mml:mi><mml:mrow><mml:mi>ARM</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex15">
<mml:math display="block" id="M15"><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>Q</mml:mi></mml:mrow><mml:mi>C</mml:mi></mml:mmultiscripts><mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>Q</mml:mi></mml:mrow><mml:mi>C</mml:mi></mml:msubsup><mml:msub><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mmultiscripts><mml:mi>T</mml:mi><mml:mprescripts/><mml:mrow><mml:msup><mml:mi mathvariant="normal">K</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow><mml:mi>K</mml:mi></mml:mmultiscripts><mml:mrow><mml:mo maxsize="120%" minsize="120%">(</mml:mo><mml:mn>0.5</mml:mn><mml:mrow><mml:mo maxsize="120%" minsize="120%">(</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo maxsize="120%" minsize="120%">)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex16">
<mml:math display="block" id="M16"><mml:mrow><mml:mi>T</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mn>0.5</mml:mn><mml:mrow><mml:mo maxsize="120%" minsize="120%">(</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:msub><mml:mo maxsize="120%" minsize="120%">)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mo maxsize="120%" minsize="120%">)</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>The acceleration <bold><italic>a</italic></bold><sub><italic>ARM</italic>(n)</sub> and angular acceleration &#x03B1;<sub><italic>ARM</italic>(n)</sub> generated by the force of the space manipulator on the spacecraft are involved in the model calculation here. They are two accelerations set by the operator. Thus far, we have completed the dynamic model of the docking of two spacecraft, both of which are moving. Provided that the test platform in this paper only allows the passive part of the docking mechanism to move and the active part of the docking mechanism to be fixed on the base, we also need to calculate the relative motion between the two docking mechanisms. Then, the manipulator performs the relative motion to complete the equivalent test. The motion of the K coordinate system relative to the Q coordinate system is calculated according to the following equation.</p>
<disp-formula id="S3.Ex17">
<mml:math display="block" id="M17"><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">p</mml:mtext><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex18">
<mml:math display="block" id="M18"><mml:mrow><mml:mmultiscripts><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>Finally, we obtain the movement command of the manipulator in the following equation:</p>
<disp-formula id="S3.Ex19">
<mml:math display="block" id="M19"><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>M</mml:mtext></mml:mrow><mml:mi>C</mml:mi></mml:mmultiscripts><mml:mo>=</mml:mo><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">T</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>M</mml:mtext></mml:mrow><mml:mi>C</mml:mi></mml:mmultiscripts><mml:mmultiscripts><mml:mi>T</mml:mi><mml:mprescripts/><mml:msup><mml:mi mathvariant="normal">M</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mi>M</mml:mi></mml:mmultiscripts><mml:mrow><mml:mo maxsize="160%" minsize="160%">(</mml:mo><mml:mn>0.5</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>+</mml:mo><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S3.Ex20">
<mml:math display="block" id="M20"><mml:mrow><mml:mi>T</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mn>0.5</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mmultiscripts><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>+</mml:mo><mml:mmultiscripts><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mo maxsize="160%" minsize="160%">)</mml:mo></mml:mrow></mml:math>
</disp-formula>
<p>The initial position and velocity of the K coordinate system relative to the Q coordinate system are calculated according to the initial position and velocity of the docking dynamic model, and the manipulator is driven by the operator to reach that position. When the manipulator reaches the initial conditions, we can start the semi-physical test by switching the control mode of the manipulator to the semi-physical simulation mode.</p>
<p>Thus far, we have completed the dynamic model used in the semi-physical test. The model can output the motion velocity command for coordinate M.</p>
</sec>
</sec>
<sec id="S4">
<title>4. Actuation delay compensation</title>
<sec id="S4.SS1">
<title>4.1. Existence of actuation delay</title>
<p>After obtaining the completed semi-physical test model, we designed a small experiment on the test equipment to verify the implementation of the semi-physical test. The designed spring rod test is shown in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption><p>Spring rod test.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g003.tif"/>
</fig>
<p>In the spring rod test, the two spacecraft theoretically did a pure elastic collision, which means the impact force of each adjacent two times should be equal in size and opposite in direction. In fact, however, we obtain the results in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption><p>Rod test results: <bold>(A)</bold> Force; <bold>(B)</bold> velocity.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g004.tif"/>
</fig>
<p>The results demonstrate that the impact force increases with impact times. It can be inferred that in the process of impact, the movement of the manipulator, F/T measurement, computer simulation calculation, communication, and other factors lead to the lagging effect in the semi-physical test system, resulting in a longer contact time of the elastic rod and a larger rebound velocity.</p>
</sec>
<sec id="S4.SS2">
<title>4.2. Compensation</title>
<p>After many attempts, we have found a way to reduce the actuation delay of this system. We add two items to the output velocity of the model and then drive the manipulator with the final velocity as the command. To describe the way we do, we define four velocities: manipulator velocity command <bold><italic>v</italic></bold><sub><italic>cmd</italic>(n)</sub> and &#x03C9;<sub><italic>cmd</italic>(n)</sub>; dynamic model output velocity <bold><italic>v</italic></bold><sub><italic>mod</italic>el(n)</sub> and &#x03C9;<sub><italic>model</italic>(n)</sub>; compensation velocity <bold><italic>v</italic></bold><sub><italic>comp</italic>(n)</sub> and &#x03C9;<sub><italic>comp</italic>(n)</sub>; back velocity <bold><italic>v</italic></bold><sub><italic>back</italic>(n)</sub> and &#x03C9;<sub><italic>back</italic>(n)</sub>.</p>
<p>The relationship among these four velocities is:</p>
<disp-formula id="S4.Ex21">
<mml:math display="block" id="M21"><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>mod</mml:mi><mml:mtext>el</mml:mtext><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>comp</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>back</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex22">
<mml:math display="block" id="M22"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>comp</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>back</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>This means that without compensation, we should use the model output velocity as the command velocity; however, in fact, we added something else to the model output velocity as the command velocity.</p>
<p>The definition of the dynamic model output velocity is:</p>
<disp-formula id="S4.Ex23">
<mml:math display="block" id="M23"><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mn>0.5</mml:mn><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>+</mml:mo><mml:mmultiscripts><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex24">
<mml:math display="block" id="M24"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mn>0.5</mml:mn><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mmultiscripts><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts><mml:mo>+</mml:mo><mml:mmultiscripts><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mrow><mml:mtext>K</mml:mtext></mml:mrow><mml:mi>Q</mml:mi></mml:mmultiscripts></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>To describe the compensation velocity, the following variables are defined. The velocity difference dv<sub>(n)</sub>, d&#x03C9;<sub>(n)</sub> lies in the difference between the current cycle model velocity and the previous cycle model velocity.</p>
<disp-formula id="S4.Ex25">
<mml:math display="block" id="M25"><mml:mrow><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex26">
<mml:math display="block" id="M26"><mml:mrow><mml:mrow><mml:mtext>d</mml:mtext><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>Remark: It should be noted that signals <bold><italic>v</italic></bold><sub><italic>model</italic>(n)</sub> and &#x03C9;<sub><italic>model</italic>(n)</sub> have gone through another data preprocessing, which is a combination of a low-pass filter and saturation.</p>
<p>The definitions of velocity difference symbols <bold><italic>s</italic></bold><sub><italic>dv</italic>(n)</sub> and <bold><italic>s</italic></bold><sub>d&#x03C9;(n)</sub> are judging each component of the velocity vector and angular velocity vector. When the absolute value of the component is less than the set threshold <bold><italic>v</italic></bold><sub><italic>min</italic>&#x2061;dv</sub>, &#x03C9;<sub><italic>min</italic>&#x2061;d&#x03C9;<bold>v</bold></sub>, the component becomes 0. When the absolute value of the component is greater than the set threshold, the symbol of the component is defined as the component. That is, if the component is positive, the value is 1, and if the component is negative, or the value is &#x2212;1.</p>
<disp-formula id="S4.Ex27">
<mml:math display="block" id="M27"><mml:mrow><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">s</mml:mtext><mml:mrow><mml:mrow><mml:mtext>dv</mml:mtext></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable displaystyle="true" rowspacing="0pt"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo rspace="63.6pt">,</mml:mo><mml:mrow><mml:mpadded width="+2.8pt"><mml:mi>when</mml:mi></mml:mpadded><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>&lt;</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>min</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mtext>dv</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mrow><mml:mrow><mml:mi>sign</mml:mi><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo rspace="19.2pt">,</mml:mo><mml:mrow><mml:mi>when</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi mathvariant="normal">v</mml:mi><mml:mrow><mml:mi>min</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mtext>dv</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mi/></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex28">
<mml:math display="block" id="M28"><mml:mrow><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mrow><mml:mtext>d&#x03C9;</mml:mtext></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable displaystyle="true" rowspacing="0pt"><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo rspace="66.4pt">,</mml:mo><mml:mrow><mml:mpadded width="+2.8pt"><mml:mi>when</mml:mi></mml:mpadded><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mtext>d&#x03C9;</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>&lt;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>min</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mrow><mml:mtext>d&#x03C9;</mml:mtext></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">v</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd columnalign="left"><mml:mrow><mml:mrow><mml:mrow><mml:mi>sign</mml:mi><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mtext>d&#x03C9;</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo rspace="19.2pt">,</mml:mo><mml:mrow><mml:mi>when</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mtext>d&#x03C9;</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>&#x2265;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>min</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mrow><mml:mtext>d&#x03C9;</mml:mtext></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">v</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mi/></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>The velocity symbols <bold><italic>s</italic></bold><sub>v(n)</sub> and <bold><italic>s</italic></bold><sub>&#x03C9;(n)</sub> are:</p>
<disp-formula id="S4.Ex29">
<mml:math display="block" id="M29"><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">s</mml:mtext><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mi>sign</mml:mi><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex30">
<mml:math display="block" id="M30"><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">s</mml:mtext><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mi>sign</mml:mi><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>The compensation of velocities is defined as the following equations:</p>
<disp-formula id="S4.Ex31">
<mml:math display="block" id="M31"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>comp</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mtext>dv</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex32">
<mml:math display="block" id="M32"><mml:mrow><mml:munderover><mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo><mml:mn>1</mml:mn><mml:mi>m</mml:mi></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:munderover><mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mi>m</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex33">
<mml:math display="block" id="M33"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>comp</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mtext>d&#x03C9;</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>d&#x03C9;</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mo>+</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex34">
<mml:math display="block" id="M34"><mml:mrow><mml:munderover><mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo><mml:mn>1</mml:mn><mml:mi>m</mml:mi></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mtext>m</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:munderover><mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>d&#x03C9;</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mi>m</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>This is a scalar equation, which should be calculated separately for each component of all vectors. Where <bold><italic>b</italic></bold><sub>0</sub> is the coefficient of velocity difference symbol, <bold><italic>b</italic></bold><sub>1</sub> the proportionality factor of velocity difference and velocity symbol, <bold><italic>c</italic></bold><sub>m</sub> the integral coefficient of velocity difference polynomial, and the right of the equation are polynomial with degree m up to four. Likewise, <bold><italic>h</italic></bold><sub>0</sub> the coefficient of the rotating velocity difference symbol, <bold><italic>h</italic></bold><sub>1</sub> the proportionality factor of the rotating velocity difference and rotating velocity symbol, and <bold><italic>k</italic></bold><sub>m</sub> the integral coefficient of the rotating velocity difference polynomial. The composition of the compensation function is similar to the addition of the velocity difference polynomial and velocity difference polynomial integral. This compensation reduces the collision duration.</p>
<p>Then, the regression function is defined as the following equations:</p>
<disp-formula id="S4.Ex35">
<mml:math display="block" id="M35"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>back</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mtext>pv</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mtext>iv</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex36">
<mml:math display="block" id="M36"><mml:mrow><mml:munderover><mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex37">
<mml:math display="block" id="M37"><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>back</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mtext>p&#x03C9;</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mtext>i&#x03C9;</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo></mml:mrow></mml:math>
</disp-formula>
<disp-formula id="S4.Ex38">
<mml:math display="block" id="M38"><mml:mrow><mml:munderover><mml:mo largeop="true" movablelimits="false" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>model</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>This equation is also a scalar equation, which should be calculated separately for each component of all vectors. <italic>k</italic><sub>pv</sub>, <italic>k</italic><sub>iv</sub>, <italic>k</italic><sub>p&#x03C9;</sub>, and <italic>k</italic><sub>i&#x03C9;</sub> are the proportionality factor and integral coefficients. The equations are PI-like controllers. With a proper combination of compensation and regression, one can allow the command velocity to overcome the actuation delay in the semi-physical test in this paper.</p>
<p>After compensation, the semi-physical simulation motion mode expression of the manipulator is:</p>
<disp-formula id="S4.Ex39">
<mml:math display="block" id="M39"><mml:mrow><mml:mmultiscripts><mml:mi>T</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:none/><mml:mprescripts/><mml:mi>M</mml:mi><mml:mi>C</mml:mi></mml:mmultiscripts><mml:msubsup><mml:mo>=</mml:mo><mml:mi>M</mml:mi><mml:mi>C</mml:mi></mml:msubsup><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:mmultiscripts><mml:mi>T</mml:mi><mml:mprescripts/><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mi>M</mml:mi></mml:mmultiscripts><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mtext mathvariant="bold-italic">v</mml:mtext><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="normal">&#x03C9;</mml:mi><mml:mrow><mml:mi>cmd</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi mathvariant="normal">_</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mi>s</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>We use a single-degree-of-freedom collision experiment to observe the effect of actuation compensation. The comparison between the before and after compensation effects can be seen in <xref ref-type="fig" rid="F5">Figure 5</xref>. The blue curve in the figure represents the motion speed curve calculated by the model according to the actual measured force. As a motion command, this speed can be directly output to the robot for execution, or output to the robot for execution after the compensation algorithm. We can see that before compensation, the output speed of the model changes from 1 mm/s before collision to nearly &#x2212;3 mm/s after the collision, and the absolute value of the speed increases. This phenomenon does not conform to the theoretical elastic collision. In order to observe the cause of this phenomenon, we employ the red curve to draw the measured execution speed of the robot after receiving the command. It can be seen from the figure before compensation that the actual execution speed of the robot lags behind the blue movement speed command curve, and there is a short pause when the speed reaches 0. So we designed a compensation algorithm. The speed command output from the model is delayed by the compensation algorithm, and becomes a green speed command curve and output to the robot. The fact is that the compensated green speed command curve and the model output speed curve have obvious deviations at the time of the collision. After the collision, the compensated speed curve and the model output speed curve gradually coincide. The actual motion curve of the robot represented by the red curve still lags behind the speed command after compensation, which is determined by the hardware characteristics of the system. However, the red robot execution speed curve is closer to the blue model output speed curve than before compensation, indicating that the compensation algorithm makes up for the implementation lag caused by the hardware performance. At the same time, the blue model output speed curve becomes&#x2013;1 mm/s after the collision, which is basically consistent with the absolute value of the speed before the collision. It can be concluded that our compensation algorithm corrects the motion distortion in the semi physical collision process, making the motion closer to the real physical characteristics.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption><p>The effect of lagging compensation.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g005.tif"/>
</fig>
<p>This is consistent with our originally noticed designing functions.</p>
</sec>
<sec id="S4.SS3">
<title>4.3. Simulation of actuation delay compensation</title>
<p>To study how the compensation algorithm compensates for the actuation delay of the semi-physical test, we carry out a simulation of a single-degree-of-freedom collision experiment. In the simulation, the execution velocity of the manipulator lags behind the command velocity by 32 milliseconds, and a short pause occurs when the execution velocity passes zero. The comparison of before and after compensation in the simulation of different initial velocities is demonstrated in <xref ref-type="fig" rid="F6">Figures 6</xref>&#x2013;<xref ref-type="fig" rid="F8">8</xref>.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption><p>The effect of actuation compensation at velocity 1 mm/s in simulation. Where the blue line represents the command velocity, the red line the execution velocity, and the green line the command velocity after the compensation.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g006.tif"/>
</fig>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption><p>Effect of actuation compensation at a velocity of 7 mm/s in the simulation. Where the blue line represents the command velocity, the red line the execution velocity, and the green line the command velocity after the compensation.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption><p>The effect of actuation compensation at velocity 15 mm/s in simulation. Where the blue line represents the command velocity, the red line the execution velocity, and the green line the command velocity after the compensation.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g008.tif"/>
</fig>
<p>In the simulation, the values of the coefficients <italic>b</italic><sub>0</sub> = 0.1, <italic>b</italic><sub>1</sub> = 2, <italic>c</italic><sub>1</sub> = 2.57, <italic>c</italic><sub>2</sub> = &#x2212;16.81, <italic>c</italic><sub>3</sub> = 146, <italic>c</italic><sub>4</sub> = 1337, <italic>k</italic><sub>pv</sub> = 0.005, and <italic>k</italic><sub>iv</sub> = 0.000005.</p>
<p>Observing the simulation results of different velocities, without compensation, the absolute value of the rebound velocity is greater than that of the incident velocity. With compensation, the absolute value of the rebound velocity is almost the same as that of the incident velocity. The actuation delay compensation performs well.</p>
<p>To observe the actions of each component of compensation, we draw 7 components of compensation velocity on the basis of different incident velocity conditions in <xref ref-type="fig" rid="F9">Figure 9</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption><p>Components of the compensation velocity.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fnbot-16-1099656-g009.tif"/>
</fig>
<p>Where the blue line is <inline-formula><mml:math id="INEQ67"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mn>1</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula>, the red line is <inline-formula><mml:math id="INEQ68"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula>, the green line is <inline-formula><mml:math id="INEQ69"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo maxsize="160%" minsize="160%">(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math></inline-formula>|dv<sub>(n)</sub><sup>|3</sup>), the yellow line is <inline-formula><mml:math id="INEQ71"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mn>4</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula>, the pink line is <italic>b</italic><sub>0</sub><italic>s</italic><sub>dv</sub>, the black line is <italic>b</italic><sub>1</sub><italic>s</italic><sub>v(n)</sub>|dv<sub>(n)</sub>|, and the purple line is <bold><italic>v</italic></bold><sub><italic>back</italic>(n)</sub>. It displays that at low velocity, the role of the blue lines <inline-formula><mml:math id="INEQ75"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mn>1</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula> is obvious. With velocity increasing, the roles of the red, green and yellow lines, <inline-formula><mml:math id="INEQ76"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="INEQ77"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mn>3</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="INEQ78"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msubsup><mml:mo largeop="true" symmetric="true">&#x2211;</mml:mo><mml:mn>0</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">v</mml:mi><mml:mo>&#x2062;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x2062;</mml:mo><mml:msup><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mtext>dv</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mn>4</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></inline-formula> matter more. The simulation results demonstrate that within the velocity range required by the test, the actuation delay compensation method provided by us is of outstanding practice.</p>
</sec>
</sec>
<sec id="S5" sec-type="conclusion">
<title>5. Conclusion</title>
<p>This paper represented a successful application of a set of serial robots, and realized the semi-physical test of the space docking mechanism. Compared with the semi-physical test of the space docking mechanism organized by the traditional parallel mechanism, our hardware platform does have insufficient performance, especially the implementation lag. We made up for this lag through algorithms, and achieved good results in practical applications. Based on this serial robot platform, we have finished the theoretical algorithm of space semi-physical testing, which includes the automatic calibration method of gravity compensation of sensors and the simulation model of resistance characteristics of space manipulator in docking test. The operator can set the first-order initial conditions for docking, and the application of the platform is widespread.</p>
<p>In the future, new semi-physical test equipment will be unfolded. This paper provides a reference solution for the problems that may be encountered during the construction of the new test bench. Our idea of compensation for actuation delay can be recognized as a reference in similar occasions where there is a demand for motion performance. The research will be ongoing and increasingly powerful and functional test equipment will be constructed in the coming days.</p>
</sec>
<sec id="S6" sec-type="data-availability">
<title>Data availability statement</title>
<p>The original contributions presented in this study are included in the article/supplementary material, further inquiries can be directed to the corresponding authors.</p>
</sec>
<sec id="S7" sec-type="author-contributions">
<title>Author contributions</title>
<p>XZ: producing the main ideas, modeling, programming, experiments, simulation, and write the manuscript. YH, ZX, and YL: supervision, conceptualization, resources, and related ideas. ZJ: literature review and reviewing the article. WF: experiments, checking the program, and the main idea. JW: experiments, checking the program, and the modeling. All authors contributed to the article and approved the submitted version of the manuscript.</p>
</sec>
</body>
<back>
<ack>
<p>We gratefully acknowledge the support of Mr. Jinzhong Gao from the Institute of Aerospace System Engineering Shanghai.</p>
</ack>
<sec id="S8" sec-type="COI-statement">
<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 id="S9" sec-type="disclaimer">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ananthakrishnan</surname> <given-names>S.</given-names></name> <name><surname>Teders</surname> <given-names>R.</given-names></name> <name><surname>Alder</surname> <given-names>K.</given-names></name></person-group> (<year>1996</year>). <article-title>Role of estimation in real-time contact dynamics enhancement of space station engineering facility.</article-title> <source><italic>IEEE Robot. Autom. Mag.</italic></source> <volume>3</volume> <fpage>20</fpage>&#x2013;<lpage>28</lpage>. <pub-id pub-id-type="doi">10.1109/100.540146</pub-id></citation></ref>
<ref id="B2"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Carignan</surname> <given-names>C. R.</given-names></name> <name><surname>Akin</surname> <given-names>D. L.</given-names></name></person-group> (<year>2000</year>). <article-title>The reaction stabilization of on-orbit robots.</article-title> <source><italic>IEEE Control Syst. Mag.</italic></source> <volume>20</volume> <fpage>19</fpage>&#x2013;<lpage>33</lpage>. <pub-id pub-id-type="doi">10.1109/37.887446</pub-id></citation></ref>
<ref id="B3"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>J.</given-names></name> <name><surname>Qiao</surname> <given-names>H.</given-names></name></person-group> (<year>2020a</year>). <article-title>Motor-cortex-like recurrent neural network and multi-tasks learning for the control of musculoskeletal systems&#x002A;.</article-title> <source><italic>IEEE Trans. Cogn. Dev. Syst.</italic></source></citation></ref>
<ref id="B4"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>J.</given-names></name> <name><surname>Qiao</surname> <given-names>H.</given-names></name></person-group> (<year>2020b</year>). <article-title>Muscle-synergies-based neuromuscular control for motion learning and generalization of a musculoskeletal system.</article-title> <source><italic>IEEE Trans. Syst. Man Cybern. Syst.</italic></source> <volume>51</volume> <fpage>3993</fpage>&#x2013;<lpage>4006</lpage>. <pub-id pub-id-type="doi">10.1109/TSMC.2020.2966818</pub-id></citation></ref>
<ref id="B5"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Doyon</surname> <given-names>M.</given-names></name> <name><surname>Piedboeuf</surname> <given-names>C.</given-names></name> <name><surname>Aghili</surname> <given-names>F.</given-names></name> <name><surname>Gonthier</surname> <given-names>Y.</given-names></name> <name><surname>Martin</surname> <given-names>E.</given-names></name></person-group> (<year>2003</year>). &#x201C;<article-title>The SPDM task verification facility: on the dynamic emulation in one-g environment using hardware-in-the-loop simulation</article-title>,&#x201D; in <source><italic>Proceeding of the 7th international symposium on artificial intelligence, robotics and automation in space (i-SAIRAS 2003)</italic></source>, <publisher-loc>Nara</publisher-loc>.</citation></ref>
<ref id="B6"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>How</surname> <given-names>J.</given-names></name> <name><surname>Kitts</surname> <given-names>C.</given-names></name> <name><surname>Twiggs</surname> <given-names>R.</given-names></name></person-group> (<year>2001</year>). <source><italic>A low-cost spacecraft mission for validating formation flying technologies.</italic></source> <publisher-loc>Stanford, CA</publisher-loc>: <publisher-name>Stanford University</publisher-name>.</citation></ref>
<ref id="B7"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jiang</surname> <given-names>Z.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name> <name><surname>Li</surname> <given-names>C.</given-names></name> <name><surname>Yang</surname> <given-names>D.</given-names></name> <name><surname>Liu</surname> <given-names>H.</given-names></name></person-group> (<year>2019a</year>). <article-title>Design and preliminary ground experiment for robotic assembly of a modular space telescope.</article-title> <source><italic>IEEE Access</italic></source> <volume>7</volume> <fpage>160870</fpage>&#x2013;<lpage>160878</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2019.2950666</pub-id></citation></ref>
<ref id="B8"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jiang</surname> <given-names>Z.</given-names></name> <name><surname>Ni</surname> <given-names>F.</given-names></name> <name><surname>Yang</surname> <given-names>D.</given-names></name> <name><surname>Li</surname> <given-names>C.</given-names></name> <name><surname>Yang</surname> <given-names>F.</given-names></name> <name><surname>Liu</surname> <given-names>H.</given-names></name></person-group> (<year>2019b</year>). <article-title>A hybrid mapping method with position and stiffness for manipulator teleoperation.</article-title> <source><italic>Appl. Sci.</italic></source> <volume>9</volume>:<issue>5005</issue>. <pub-id pub-id-type="doi">10.3390/app9235005</pub-id></citation></ref>
<ref id="B9"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>X.</given-names></name> <name><surname>Jiang</surname> <given-names>W.</given-names></name> <name><surname>Su</surname> <given-names>H.</given-names></name> <name><surname>Qi</surname> <given-names>W.</given-names></name> <name><surname>Ge</surname> <given-names>S. S.</given-names></name></person-group> (<year>2022a</year>). &#x201C;<article-title>A control strategy of robot eye-head coordinated gaze behavior achieved for minimized neural transmission noise</article-title>,&#x201D; in <source><italic>Proceedings of the IEEE/ASME transactions on mechatronics</italic></source>, (<publisher-loc>Piscataway, NJ</publisher-loc>: <publisher-name>IEEE</publisher-name>). <pub-id pub-id-type="doi">10.1109/TMECH.2022.3210592</pub-id></citation></ref>
<ref id="B10"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>X.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Su</surname> <given-names>H.</given-names></name> <name><surname>Zhao</surname> <given-names>Y.</given-names></name> <name><surname>Ge</surname> <given-names>S. S.</given-names></name></person-group> (<year>2022b</year>). <article-title>The opening workspace control strategy of a novel manipulator-driven emission source microscopy system.</article-title> <source><italic>ISA Trans</italic>.</source> Online ahead of print, <pub-id pub-id-type="doi">10.1016/j.isatra.2022.09.002</pub-id> <pub-id pub-id-type="pmid">36163198</pub-id></citation></ref>
<ref id="B11"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Motaghedi</surname> <given-names>P.</given-names></name> <name><surname>Stamm</surname> <given-names>S.</given-names></name></person-group> (<year>2005</year>). &#x201C;<article-title>6 dof testing of the orbital express capture system</article-title>,&#x201D; in <source><italic>Procceding of the SPIE 5799 modeling, simulation, and verification of space-based systems II</italic></source>, (<publisher-loc>Orlando, FL</publisher-loc>), <fpage>66</fpage>&#x2013;<lpage>81</lpage>. <pub-id pub-id-type="doi">10.1117/12.606222</pub-id></citation></ref>
<ref id="B12"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Qi</surname> <given-names>W.</given-names></name> <name><surname>Su</surname> <given-names>H.</given-names></name></person-group> (<year>2022</year>). <article-title>A cybertwin based multimodal network for ecg patterns monitoring using deep learning.</article-title> <source><italic>IEEE Trans. Indust. Inform.</italic></source> <volume>18</volume> <fpage>6663</fpage>&#x2013;<lpage>6670</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2022.3159583</pub-id></citation></ref>
<ref id="B13"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Qiao</surname> <given-names>H.</given-names></name> <name><surname>Chen</surname> <given-names>J.</given-names></name> <name><surname>Huang</surname> <given-names>X.</given-names></name></person-group> (<year>2022a</year>). <article-title>A survey of brain-inspired intelligent robots: integration of vision, decision, motion control, and musculoskeletal systems.</article-title> <source><italic>IEEE Trans. Cybern</italic>.</source> <volume>52</volume> <fpage>11267</fpage>&#x2013;<lpage>11280</lpage>. <pub-id pub-id-type="doi">10.1109/TCYB.2021.3071312</pub-id> <pub-id pub-id-type="pmid">33909584</pub-id></citation></ref>
<ref id="B14"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Qiao</surname> <given-names>H.</given-names></name> <name><surname>Zhong</surname> <given-names>S.</given-names></name> <name><surname>Chen</surname> <given-names>Z.</given-names></name> <name><surname>Wang</surname> <given-names>H.</given-names></name></person-group> (<year>2022b</year>). <article-title>Improving performance of robots using human-inspired approaches: a survey.</article-title> <source><italic>Sci. China Inf. Sci.</italic></source> <volume>65</volume> <fpage>1</fpage>&#x2013;<lpage>31</lpage>.</citation></ref>
<ref id="B15"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Su</surname> <given-names>H.</given-names></name> <name><surname>Qi</surname> <given-names>W.</given-names></name> <name><surname>Schmirander</surname> <given-names>Y.</given-names></name> <name><surname>Ovur</surname> <given-names>S. E.</given-names></name> <name><surname>Cai</surname> <given-names>S.</given-names></name> <name><surname>Xiong</surname> <given-names>X.</given-names></name></person-group> (<year>2022b</year>). <article-title>A human activity-aware shared control solution for medical human&#x2013;robot interaction.</article-title> <source><italic>Assem. Autom</italic>.</source> <volume>42</volume> <fpage>388</fpage>&#x2013;<lpage>394</lpage>. <pub-id pub-id-type="doi">10.1108/AA-12-2021-0174</pub-id></citation></ref>
<ref id="B16"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Su</surname> <given-names>H.</given-names></name> <name><surname>Qi</surname> <given-names>W.</given-names></name> <name><surname>Chen</surname> <given-names>J.</given-names></name> <name><surname>Zhang</surname> <given-names>D.</given-names></name></person-group> (<year>2022a</year>). <article-title>Fuzzy Approximation-based Task-Space Control of Robot Manipulators with Remote Center of Motion Constraint.</article-title> <source><italic>IEEE Trans. Fuzzy Syst.</italic></source> <volume>30</volume> <fpage>1564</fpage>&#x2013;<lpage>1573</lpage>. <pub-id pub-id-type="doi">10.1109/TFUZZ.2022.3157075</pub-id></citation></ref>
<ref id="B17"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>D.</given-names></name> <name><surname>Ma</surname> <given-names>G.</given-names></name> <name><surname>Liu</surname> <given-names>X.</given-names></name></person-group> (<year>2022</year>). <article-title>An intelligent recognition framework of access control system with anti-spoofing function.</article-title> <source><italic>AIMS Math.</italic></source> <volume>7</volume> <fpage>10495</fpage>&#x2013;<lpage>10512</lpage>. <pub-id pub-id-type="doi">10.3934/math.2022585</pub-id></citation></ref>
<ref id="B18"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>Y.</given-names></name> <name><surname>Brown</surname> <given-names>H. B.</given-names></name> <name><surname>Friedman</surname> <given-names>M.</given-names></name> <name><surname>Kanade</surname> <given-names>T.</given-names></name></person-group> (<year>1994</year>). <article-title>Control system of the self-mobile space manipulator.</article-title> <source><italic>IEEE Trans. Control Syst. Technol.</italic></source> <volume>2</volume> <fpage>207</fpage>&#x2013;<lpage>219</lpage>. <pub-id pub-id-type="doi">10.1109/87.317978</pub-id></citation></ref>
<ref id="B19"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zebenay</surname> <given-names>M.</given-names></name> <name><surname>Boge</surname> <given-names>T.</given-names></name> <name><surname>Krenn</surname> <given-names>R.</given-names></name> <name><surname>Choukroun</surname> <given-names>D.</given-names></name></person-group> (<year>2015</year>). <article-title>Analytical and experimental stability investigation of a hardware-in-the-loop satellite docking simulator.</article-title> <source><italic>Proc. Inst. Mech. Eng. G J. Aerosp. Eng.</italic></source> <volume>229</volume> <fpage>666</fpage>&#x2013;<lpage>681</lpage>. <pub-id pub-id-type="doi">10.1177/0954410014539290</pub-id></citation></ref>
</ref-list>
</back>
</article>