where *κ*(*a*, *b*) denotes the operation with the k-nearest neighbor algorithm for entities *a* and *b*, and *p*1 and *p*2 are the target points for the thumb and the index finger, respectively. Please note that the angle set of the wrist - *qw* is intentionally set to be the same in the database of the thumb and the index finger so that the inconsistency between the wrist angles of two fingers can be avoided. The result of Equation (4) is used as a basis for performing the IGA to prevent unnecessary computations. Moreover, the database is sorted in the order of the angle of the wrist for quick search and access to the corresponding optimized angles of the

wrist. This optimized angle set of the wrist - *qw*∗ is further provided to the IGA through the estimation function below as the initial guess to accelerate the computation and to offer better convergence. Equation (5) defines the estimation function.

$$
\theta\_{w1} \, ^\*\theta\_{w2} \, ^\* = \underset{q\_{w}}{\text{arg min}} \left[ \kappa \left( T \left( \stackrel{\rightarrow}{q\_{w}} \right) , p\_1 \right) + \kappa \left( I \left( \stackrel{\rightarrow}{q\_{w}} \right) , p\_2 \right) \right]. \tag{5}
$$

#### **4. Algorithm**

The proposed hybrid genetic algorithm mainly includes two steps:

A schematic illustration of the proposed algorithm is depicted in Figure 3, and a flowchart of the proposed hybrid GA is shown in Figure 4. A detailed explanation of each step is addressed in the sections below.

**Figure 3.** Process of the proposed algorithm: (**a**) assign inverse kinematics (IK) request; (**b**) feasibility check and generate wrist angle range; (**c**) perform immigration genetic algorithm (IGA) to obtain precise solution.

**Figure 4.** Flowchart of the proposed algorithm.

#### *4.1. Feasibility Check and Feedforward of Wrist Angle*

Utilizing the techniques elaborated in Section 3, in which collection and establishment of the database are conducted, the feasibility check is performed when the inverse kinematics request is assigned. The value obtained from Equation (4) is compared to the heuristic threshold value to decide whether the motion command should be dropped out or not. The heuristic threshold value and the fitness value of termination are the sum of the distances between target points and end-effectors of the two fingers. Basically, the heuristic threshold value is set to be a bit bigger than the fitness value of termination. Provided that the heuristic threshold value is as low as termination value, the feasibility check will frequently fail. On condition that the heuristic threshold value is much larger than the fitness value of termination, the fitness value will not converge to termination 1. In this research, the fitness value of termination is set to be 1 and the heuristic threshold value is set to be 5.

On the assumption that the motion command passes the feasibility check, Equation (5) yields an optimal wrist angle set -

*qw*∗ according to the aforementioned workspace database. The new wrist angle range provided to the IGA is, therefore, generated in the form of -

*qw*∗ ± *θw*. The value *θw* is associated with the intervals of the wrist angle used in creating the workspace database. A wider interval denotes a larger value of *θw*. In this paper, *θw* was set to be 10◦ to cover the adjacent workspace. For example, the original range of *θw*1

was −60◦ to +60◦ and that of *θw*2 was −60◦ to +90◦. Supposing that the - *qw*∗ provided by the feasibility estimation function is [0◦, 12◦], then the new range of *θw*1 becomes −10◦ to +10◦ and that of *θw*2 becomes +2◦ to 22◦. Note that, if the new angle range exceeds the original angle limit, the boundary shall be set to the original one.

#### *4.2. Chromosome Coding*

In an IGA, a chromosome is the individual in a population, and it consists of many genes to show the individual differences. In this case, the chromosome represents a solution to the IK problem, while a series of genes constitutes a chromosome. The population contains many chromosomes and acts as a set of numerous possible IK solutions. To begin with the IGA, it is necessary to encode the joint angle configurations as the genes for each chromosome. The genetic encoding format is a binary string representation for each joint. By concatenating the binary string of each joint, the chromosome is built and provided for further operations. Figure 5 shows the binary encoding structure of the chromosome.

**Figure 5.** Binary encoding structure.

The decoding process can help a joint angle recover from a chromosome. Using binary–decimal conversion, the bit value is used to calculate the exact joint angle and to ensure that the joint variable is within the bounded joint space, which is mathematically written as

$$\theta\_{\dot{i}} = \theta\_{\dot{i}\_{\min}} + \frac{\left(\sum\_{j=1}^{n} \chi\_{\dot{i}}[j] \ast 2^{\dot{j}}\right)}{2^{n}} \ast (\theta\_{\dot{i}\_{\max}} - \theta\_{\dot{i}\_{\min}})\_{\prime} \tag{6}$$

where *θimin* is the lowest value for a certain joint, and *θimax* is the highest one. It is hard for iterative algorithms based on the Jacobian matrix to avoid exceeding the joint limits. Through this encoding mechanism, the resulting angles computed by the IGA always fall in the range of the joint limit and, thus, prevent unpredictable errors.

#### *4.3. Evaluation and Selection*

Better chromosomes are chosen from the population in order to reproduce the offspring during the process of the IGA. To evaluate a chromosome, a fitness function, which is a quantitative measure, is adopted to measure how satisfactory a chromosome is. In this study, the task-space is only within the position. As a result, the fitness function is defined as

$$Error\_p = \|\|p\_1 - \mathbf{x}\_l\| + \|\|p\_2 - \mathbf{x}\_i\|\|,\tag{7}$$

$$Error\_d = \max\_{k=1,\ldots,8} \theta\_{k,i} - \theta\_{k,f\_{\prime}} \tag{8}$$

$$Fitness = Error\_p + K \cdot Error\_{d\prime} \tag{9}$$

where *p*1 is the target point for the thumb, *xt* is the tip of the thumb, *p*2 is the target point for the index finger, *xt* is the tip of the index finger, *θk*,*i* is the initial angle of each joint before computing the IGA, *θk*, *f* is the angle of the joint contained in the chromosome, and *K* is the weight of the second criterion (infinity-norm term).

The position of *xt* is calculated using the forward kinematics according to the angle set contained in the chromosome. Equation (7) computes the distance in Cartesian space to indicate how far the tips of fingers are from the target points and, thus, sums the distances to be a criterion for the fitness function. Equation (8) takes the maximum absolute value within the angle differences between the initial angle and the angle generated by the IGA. Equation (8) is derived from the concept of the infinity norm and is used to guarantee the smoothness of the motion. The fitness function is minimized by the IGA, which means that the tips of two fingers are set to reach the target points as closely as possible, with each joint having about the same angular difference.

On the other hand, to maintain the quality and diversity of the population, the selection operator is performed to select superior chromosomes for breeding of the next population. Supposing that the chosen chromosomes are always the best individuals, the diversity of the IGA will be narrow. Hence, the k-tournament selection operator is used to choose which chromosomes should reproduce new offspring. The k-tournament selection randomly withdraws k chromosomes from the population and picks the top two chromosomes for the crossover operator. The advantage of the k-tournament selection is that it is unnecessary to sort the entire population to get the top two chromosomes, thereby reducing computational resources. In addition, the top two chromosomes may be poor ones, which keeps the population diverse and eliminates a local minimum.

#### *4.4. Crossover and Mutation*

In this step, the new chromosomes are produced by genetic operations, such as a crossover and a mutation. The crossover operation is adopted to create two offspring from two parent chromosomes. The parents swap with the partial section of genes and then generate two children. Here, k-point crossover is used. The k-point crossover first selects k crossover points to make the k + 1 interval in one chromosome and then changes the section of genes every two intervals to form two offspring.

The crossover operation is followed by the mutation operation. Mutation is utilized to change some genes of the children chromosomes. The mutation rate is defined as the reciprocal of the chromosome's length. The mutation operation is implemented on each gene and flips it with the probability of the mutation rate. Because of these two genetic operations, the diversity of the IGA is highly promoted; simultaneously, it becomes more possible to get close to the global minimum.

#### *4.5. Elitism*

Elitism is a mechanism that guarantees the best chromosome will survive in every generation. Elitism can accelerate the convergence of the IGA but slightly decrease the diversity of the population. In this study, the feasibility check function was used to provide an optimal wrist angle set that narrows down the search space of the IGA. Therefore, the possibility of being trapped in local minimum was lower, thus validating elitism as a good strategy to be adopted.

#### *4.6. Immigration*

An immigration strategy can be performed periodically to maintain the diversity level of the genetic algorithm [23]. The best individuals immigrate to the new population to replace the worst ones at defined intervals, which is called "structured memory immigration operator." In this research, the immigration operator was set to occur every three generations in order to obtain better optimal solutions. Half of the population was replaced with the best individuals of the previous generation in the same quantity. As mentioned, we can ensure that the solution to the IK problem is near the best individuals of the population through the feasibility check. In this case, the introduced immigration operator is more suitable for the population than a random immigration operator. As a result, the tournament selection can have a better chance of selecting better chromosomes and maintaining the diversity.

#### **5. Results and Discussion**

In this section, the performance of the proposed hybrid GA is validated by examination through parametric numerical simulations. The simple GA and the IGA are also performed to compare the results. To highlight the capability of determining the feasibility, both appropriate and improper IK requests are given to different algorithms for computing IK solutions. The detailed parameters used in the illustrated cases through numerical simulations with the proposed algorithm are shown in Table 3.

**Table 3.** Parameters used in the proposed hybrid genetic algorithm. GA, genetic algorithm.

Among the parameters in Table 3, the fitness value of termination dominates the computation time. As exhibited in Table 4, when the termination value increases, it takes less time to compute, while the accuracy of the solution is sacrificed. It also compares the average execution time of the simple genetic algorithm and the performance of the proposed hybrid GA, which shows that the proposed hybrid GA is two times faster than the simple GA. Additionally, it is known that the selection of the fitness value of termination depends on the application scenario. Thus, the termination condition applied in different tasks was varied accordingly.

**Table 4.** Effect of termination value on the convergence speed of GA.

In calculating the inverse kinematics, two points were assigned as the target points of the index finger and thumb. Different algorithms were performed to solve the inverse kinematics, and the best fitness values were recorded for the graphical representation to analyze the performance of each algorithm. Table 5 lists the conditions and results for three illustrated cases. The illustrated case #1 and case #2 were those with reachable target points, whereas an unreachable target point was assigned in the illustrated case #3. In the illustrated case #1, the target fingertip point sets were (50, 0, 130) and (75, 30, 125) for the index finger and the thumb, respectively. As shown in Figure 6a, the two target points were in the workspace of two fingers and they passed the feasibility check. Additionally, the corresponding angle set of the wrist (*θw*1, *θw*2) = (12◦, 15◦) was provided to the hybrid GA as the initial condition. By using the solutions computed by the GA, the tips of the index finger and the thumb reached their target points. The simple GA and IGA were also performed to solve the same IK problem as a comparison. As shown in Figure 6b, the proposed hybrid GA was observed to have a lower fitness value than the other GAs in the beginning. The proposed hybrid GA was found to obtain the solution for the inverse kinematic problem faster than the other GAs with fewer generations.

**Table 5.** Results of illustrated cases performed by the proposed algorithm.

**Figure 6.** (**a**) Schematic illustration showing the solution resulting from an appropriate motion command and (**b**) the corresponding fitness performance of the illustrated case #1.

In the illustrated case #3, the target fingertip point sets were (50, 0, 300) and (60, 50, 125) for the index finger and thumb, respectively. As shown in Figure 7a, the target point of the index finger was obviously out of the workspace. In this circumstance, as shown in Figure 7b, the proposed hybrid GA immediately ceased the inappropriate motion command to prevent unnecessary computation. However, the other GAs still conducted computation until meeting certain termination criteria. As a result, Figure 7b shows high fitness values of the simple GA and IGA, while the proposed hybrid GA successfully stopped computing. The hybrid GA, thus, was successful in avoiding the unnecessary computation for a given inappropriate IK request.

**Figure 7.** (**a**) Schematic illustration showing the solution resulting from an inappropriate motion command and (**b**) the corresponding fitness performance of the illustrated case #3.

Results in Table 6 demonstrate the distribution of population by exemplary generations during the evolution process in the illustrated case #1 for the simple GA and the proposed hybrid GA. The blue dots represent all the thumbs' tips of the population in one generation, whereas the red dots serve as those of the index finger. The corresponding cross marks stand for the target point or the answer of the IK problem. In the initial generation, the population distribution of the simple GA was scattered more widely than that of the proposed hybrid GA. Because of the feedforward wrist angle, the proposed hybrid GA started with a smaller searching scope. When the generation increased, the proposed hybrid GA had more chances to get close to the target points and, therefore, converged faster than the simple GA.

To surpass the performance of the other GA, the workspace of two fingers plays an important role in the proposed hybrid GA. Initially, the workspace analysis can provide the nearest distance between the target point and the workspace. As a result, the feasibility of the IK request can be checked accordingly. Second, the workspace was pre-established and stored in the order of the wrist angle. Consequently, the workspace analysis gives a feedforward wrist angle to the hybrid GA. The hybrid GA then reduces the variable range of the wrist angle to offer a superior initial condition. In general, the proposed hybrid GA has better convergence than the other GA and can effectively terminate the computation when an improper IK request is given.

**Table 6.** Comparison of population distribution at different generations in the illustrated case #1.

**Table 6.** *Cont.*

In addition to the interaction between a thumb and an index finger, the proposed algorithm can solve the IK problem for a thumb and the other three fingers. Numerical simulations were performed to solve the IK under all three scenarios, namely, the IK of the thumb and middle finger, the IK of the thumb and ring finger, and the IK of the thumb and little finger. Similarly, the same procedures were adopted in these IK problems, including building the database of the workspace, checking the feasibility, and providing the feedforward wrist angle. Figure 8 shows a schematic illustration of the IK solutions for the thumb and the other three fingers. The diagram of the best fitness value over generations indicates that the proposed algorithm outperformed the simple GA and the immigration GA. Through these cases, it was confirmed that the proposed algorithm is capable of solving the IK problem of a multi-fingered robotic hand.

**Figure 8.** Schematic illustration showing the solution of the IK problem with (**a**) thumb and middle finger, (**b**) thumb and ring finger, and (**c**) thumb and little finger, as well as the corresponding fitness performance.

#### **6. Conclusions**

In this study, a workspace-analysis-based immigration genetic algorithm was presented to solve the inverse kinematics of a multi-fingered hand. In the offline stage, the kinematic model of fingers is built to perform forward kinematics, from which the workspace database of the fingers can be established using the Monte Carlo method. In the online stage, an estimation function is used to check the feasibility of the target point whenever an IK request is assigned. If the target point is within the workspace, the estimation function then provides an optimal set of wrist angles for the IGA to compute the solution; contrarily, the estimation function terminates further calculation. This estimation function enables the searching range to be narrowed to the neighborhood of the solution. Therefore, the distribution of the population is less widespread, and the IGA can have better initial condition and greater convergence. Numerical simulations were conducted to verify the performance of the proposed hybrid GA. For the unreachable targets, the estimation function could efficiently abort the entire computation. For the reachable targets, the proposed algorithm took fewer iterations to obtain accurate results than the simple GA and the IGA. As a whole, this study presented an algorithm to solve the multi-fingered inverse kinematics, which enables the tips of the index finger and the thumb to move to their target points concurrently; likewise, the same approach can be applied to the other fingers. The results can also be applied to the IK problem of a dual-arm robot that has degree of freedoms in the waist. The proposed method is believed to have the potential to be employed in many industrial robots.

**Author Contributions:** Conceptualization, methodology, software, formal analysis, visualization, and writing—original draft preparation, C.-T.L.; conceptualization, writing—review and editing, supervision, project administration, and funding acquisition, J.-Y.C. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research was funded by the Ministry of Science and Technology of Taiwan, grant number MOST 109-2218-E-007-024.

**Institutional Review Board Statement:** Not applicable.

**Informed Consent Statement:** Not applicable.

**Data Availability Statement:** Not applicable.

**Conflicts of Interest:** The authors declare no conflict of interest.

#### **References**

## *Article* **Design of a Planar Cable-Driven Parallel Robot for Non-Contact Tasks**

**Valentina Mattioni †, Edoardo Ida' \*,† and Marco Carricato**

Department of Industrial Engineering, University of Bologna, Viale Risorgimento 2, 40136 Bologna, Italy<EMAIL_ADDRESS>(V.M<EMAIL_ADDRESS>(M.C.)

**\*** Correspondence<EMAIL_ADDRESS>
† These authors contributed equally to this work.

**Abstract:** Cable-driven parallel robots offer significant advantages in terms of workspace dimensions and payload capability. Their mechanical structure and transmission system consist of light and extendable cables that can withstand high tensile loads. Cables are wound and unwound by a set of motorized winches, so that the robot workspace dimensions mainly depend on the amount of cable that each drum can store. For this reason, these manipulators are attractive for many industrial tasks to be performed on a large scale, such as handling, pick-and-place, and manufacturing, without a substantial increase in costs and mechanical complexity with respect to a small-scale application. This paper presents the design of a planar overconstrained cable-driven parallel robot for quasi-static non-contact operations on planar vertical surfaces, such as laser engraving, inspection and thermal treatment. The overall mechanical structure of the robot is shown, by focusing on the actuation and guidance systems. A novel concept of the cable guidance system is outlined, which allows for a simple kinematic model to control the manipulator. As an application example, a laser diode is mounted onto the end-effector of a prototype to perform laser engraving on a paper sheet. Observations on the experiments are reported and discussed.

**Keywords:** cable-driven parallel robots; overconstrained robots; design; non-contact operations

#### **1. Introduction**

Cable-driven parallel robots (*CDPRs* in short) combine the successful features of parallel manipulators with the benefits of cable transmissions. The payload is divided among light extendable cables, resulting in an energy-efficient system that can achieve high acceleration of the end-effector (*EE*) over a remarkably large workspace. From a structural point of view, a *CDPR* is formed by a set of actuation units, usually fixed to a frame, and a mobile platform, working as *EE* [1]. The cables, driven by the actuation units, are guided inside the robot workspace (*WS*) using a guidance system, and then connected to the mobile platform. The variation of cable lengths is responsible for the *EE* displacement throughout the robot *WS*. These features result in easily reconfigurable systems, where the *WS* can be modified by relocating the actuation and/or guidance units [2].

Nevertheless, the use of *CDPRs* in industrial environments is still limited, mainly due to the drawbacks of employing flexible cables. Indeed, cables impose unilateral constraints that can only exert tensile forces and, consequently, the *EE* cannot withstand any arbitrary external action. In addition, the viscoelastic nature of cables can cause their elongation under prolonged load application [3]. This highly non-linear behavior complicates the control of the robot and the estimation of the actual cable lengths, and therefore the determination of the platform pose through direct kinematics. To enhance the robot controllability, *CDPRs* can be overconstrained by employing a number of cables higher than the degrees of freedom (*DoFs*) of the *EE*. This allows cables to pull one against the other and to keep the overall system controllable over a wide range of externally applied loads. In other cases, to increase accessibility and reduce hardware complexity,

**Citation:** Mattioni, V.; Ida', E.; Carricato, M. Design of a Planar Cable-Driven Parallel Robot for Non-Contact Tasks. *Appl. Sci.* **2021**, *11*, 9491. https://doi.org/ 10.3390/app11209491

Academic Editor: Alessandro Gasparetto

Received: 19 September 2021 Accepted: 23 September 2021 Published: 13 October 2021

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

**Copyright:** © 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https:// creativecommons.org/licenses/by/ 4.0/).

suspended architectures with less cables than *EE DoFs* can be used, though they are more difficult to control [4,5].

Thanks to their simple architecture, high reconfigurability, easy deployability, and large workspace, *CDPRs* have been proposed in many fields of application: entertainment [6,7], logistics [8], construction [9–11], maintenance [12,13], to name a few. In general, it is possible to design a general-purpose machine that can be dedicated to different tasks by changing the *EE* tool [14,15] or, in alternative, a *CDPR* for a specific purpose can be developed. In the second case, the robot geometry, the number and configuration of cables, and, consequently, additional design constraints are established by the final task. This is the case of the deployable *CDPR* in [16]: the suspended architecture and the *EE* self-deployability ensure the high orientational capability required for the laser scanning of low-accessibility environments. As an additional example, the storage-retrieval *CDPR* in [8] is equipped with eight cables, despite the planar nature of the robot task, in order to provide a suitable machine stiffness and prevent platform tilt.

Usually, if the task requires a specific motion pattern of the *EE*, it is possible to act in two different ways to limit the *EE* range of motion. First, an external means, which physically constrains the *EE*, can be employed. This happens with the *CDPR* Pickable [17], whose *EE* is constrained to slide on a planar surface thanks to an air-bearing system. Likewise, in [13], the *EE* of the robot moves in direct contact with the building façade to perform window cleaning operations. The contact of the *EE* with the environment requires specific contact models [18], and suitable force-control strategies [19]. For the Pickable robot, undesired phenomena, such as friction, are significantly reduced by using air bearings, whereas, for the cleaning robot, friction is part of the process itself. A different approach for constraining the *EE* motion consists in adopting special cable configurations, such as the parallelogram arrangements inspired by delta robots [20–22]. This expedient allows obtaining a translational motion of the *EE* without any external constraint, provided that all cables are taut. This is useful in the case of large-scale industrial tasks, such as pick-and-place and warehousing [23], or operations that need deployable systems, such as rescue and contour crafting [24,25].

The parallelogram arrangement strategy can also be applied in non-contact tasks where the *EE* must move on a prescribed vertical plane without interacting with the surrounding environment. This is the case of welding, laser engraving, thermal treatment, and decoration or inspection of building façades, to name a few. This paper focuses on the design of a *CDPR* for this kind of applications. Specifically, an overconstrained planar machine is presented. This prototype employs a parallelogram cable arrangement to constrain the *EE* to move on a vertical plane. Four cables, closed in a parallelogram loop, are used to control the mobile platform's three degrees of freedom (*DoFs*). The cable guidance system comprises a pair of swivel pulleys whose swivel axes are orthogonal to the work surface: the intersections of these swivel axes with the work surface effectively define the cable proximal and distal points. Each cable loop is driven by one winch, whose drum has two helicoidal starts. Each winch includes a rotary encoder for cable length control. In addition, the pulley swivel axes are equipped with rotary encoders to achieve redundant kinematic measures, and cable tensions are measured with shear beam load cells integrated into the proximal anchor systems. Like other planar *CDPR* that share the idea of parallelogram mechanisms [23,26], this system allows the platform to move on a defined plane, excluding low-amplitude oscillatory motions induced by external disturbances [27,28]. On the other hand, unlike the others, the proposed system shows three advantages: the use of a single cable loop, instead of two separate cables, ensures that the parallel cable segments are in tension when controlled by a single actuator, thus reducing the number of actuators to be used; the cable anchor system includes a measurement unit to continuously monitor cable tensions and cable angles with respect to the frame; the mounting arrangement of the swivel pulleys allows to estimate the cable lengths as distances between two precisely defined points, which are the intersections between the swivel axes and the work plane, without introducing geometrical approximations. Consequently, a simple geometric model can be adopted to control the *CDPR* without inherent geometrical errors.

The paper is organized as follows. The main aspects to be taken into consideration for the mechanical design of a *CDPR* are described in Section 2. Then, the design of the planar overconstrained *CDPR* prototype is presented in Section 3, focusing on the actuation and guidance system, and the influence of the kinematic model. In Section 4, as an application example, an experiment of the robot performing laser engraving is reported and discussed. Lastly, some conclusions are drawn.

#### **2. Design Strategies**

In most cases, cables are driven by actuators that are placed on a fixed base. Sometimes, if deployability is a requirement, they can be attached to mobile vehicles [24] or placed on the mobile platform [29]. A guidance system is used to convey cables from the actuators to the mobile platform. Many authors analyzed the design process of *CDPRs* and identified several methods for optimizing their structure and dimensions [1,30]. For a given criterion (i.e., workspace dimension, accuracy, stiffness, orientation capability), optimization procedures help determine the geometry of the *CDPR*, including the number of cables, position of cable anchor points, and platform and frame shapes [2,15,31]. Once the architecture is known, the hardware design requires developing three distinct systems: the actuation unit, the guidance system, and the mobile platform. These systems can be equipped with suitable sensors, to monitor the robot performance and obtain feedback on relevant control variables. The two most notable examples are cable lengths, which are usually estimated by using angular sensors mounted on the actuation unit motors, and cable tensions, whose measurement involves integrating force sensors in the actuation unit, guidance system, or *EE* [1].

This section shows how specific design techniques can help keep the robot model and control as simple as possible without introducing geometrical approximations. Usually, a simplified kinematic model, called standard in the following, is adopted. This model considers cables inextensible and massless and, thus, treated as line segments between two points, one on the mobile platform and the other on the frame (distal and proximal anchor points, respectively). The former is usually assumed to be fixed with respect to the moving platform, whereas the latter is fixed with respect to the robot frame. These assumptions neglect not only all effects caused by the elastic nature of cables, which may be negligible in some small-to-medium-scale applications, but also the kinematics of the guidance system. Geometrical-model errors can be limited by accounting for the pulley geometry [4,32], but the model and control complexity is usually increased. As an alternative, if the standard kinematic model is to be used without inherent geometrical errors, special design techniques of the actuation units and guidance systems can be used, as discussed in the following.

#### *2.1. Actuation Unit*

The most appropriate type of actuation is chosen depending on the *EE* motion pattern and *WS* size, defined by the task [1,33]. A rotary actuation system generally consists of a servo-actuated winch where the cable is coiled onto a cylindrical drum. This solution is easy to implement but can result in low robot position accuracy since it introduces several errors when estimating cable lengths [34]. Lengths are computed by measuring the rotation of the motor and, thus, they depend on the drum design and cable arrangement on it. Linear actuation systems reduce cable-length estimation errors, but they usually limit the size of the achievable *WS* [35], or increase cable wear [34].

A solution could be to adopt a rotary actuation system designed to be as close as possible to the model intended for its control. The main drawback of the rotary actuation, if a simple lifting winch is considered, is the fact that the cable exit direction from the drum varies, even unpredictably, as the motor rotates: this results in a non-linear transmission ratio between the motor angle and the cable length, which is usually undesirable. A constant transmission ratio can be obtained (i) by avoiding the cable overlapping onto the

drum surface, (ii) by suitably grooving the drum to accommodate the cable, which is also desirable for reducing cable wear [36], and (iii) by constraining the cable to exit the drum in a fixed, known, direction. There are several solutions in the literature to achieve such desired design requirements (Figure 1).

**Figure 1.** Winch models. (**a**) Cross section of a rototranslating drum. (**b**) Rendering of a winch with rototranslating drum kinematically equivalent to the ones in [37,38]. (**c**) Close-up view of a winch of the Ipanema *CDPR* family [14]. (**d**) Winch with translational motor-drum.

It is possible to rototranslate the drum [16,37,38] so that the cable exit point from the drum, and consequently its direction, is kept fixed with respect to the winch frame, while the cable is coiled and uncoiled. This is usually achieved by employing screw/nut joints to convert the rotational motion of the motor into rotational and translational motion of the drum, and allowing the drum to translate by mounting it on a passive prismatic joint. In [38] the drum houses a nut and two pairs of cylindrical bearings. Two rods, which are coupled with the motor shaft, parallel to the drum axis, but mounted with a radial offset with respect to the drum, pass through the bearings, thus transmitting the rotational motion, but allowing the drum to translate. The translation is caused by the drum nut being joined with a screw, which is fixed on the winch frame: a cross section of the drum system is shown in Figure 1a. The main advantages of this solution are compactness and mechanical simplicity, but this design suffers from one main drawback, namely the rods used for transmitting the motor rotations pass through the drum, thus the latter diameter needs to be large. An example of this design is shown in Figure 1b, where a timing belt is used to transmit motion from the motor to the drum, as in [37].

As an alternative, in [14] an auxiliary cable guiding device equipped with a pulley (*spooling helper*) continuously follows the variable cable exit point on the rotating drum (Figure 1c) by translating parallel to the drum axis, to ensure that the direction of the cable connecting the drum and the spooling helper is constant. The spooling helper is mounted on a support equipped with a nut and a pair of bearings, and thus slides with respect to fixed rods, driven by a screw, which is ultimately connected to the drum with a synchronous belt. Given its footprint, this solution has the primary benefit of allowing very long cables to be stored onto the drum. Still, an additional mechanical transmission, such as a timing belt, is always required to transmit drum motion to the screw.

A different solution allows the translation of the entire motor-drum system on a linear guide [39], similar to the design shown in Figure 1d. This solution has the advantage of being particularly simple and cheap, since the drum is directly connected to the motor, and the drum supports are connected to a carriage. Still, the motor mass, which needs to be translated, may limit the system's dynamic performance.

#### *2.2. Guidance System*

One of the main advantages of *CDPRs* is the possibility to locate the actuation units almost anywhere. This is possible thanks to the cable guidance system that conveys the cable, from the actuator, through the prescribed anchor points on the frame (proximal) to the anchor point on the platform (distal). For the standard model to be respected, without introducing geometrical-model errors, the cable anchor points need to be geometrically determined. An extensive review of possible construction solutions is reported in [1], where a distinction is made between the proximal and distal anchor systems.

The mechanical devices that compose the proximal guidance system should allow for large deflection angles and at the same time determine the anchor point position. Swivel (or panning) pulleys and eyelets are primarily used for this purpose. Eyelets allow for the approximate definition of a point and significant cable orientation, but cause high cable wear [40]. However, they are employed in many *CDPRs* thanks to their simplicity, and the possibly low geometrical error introduced, if the *CDPR* workspace is large [16,38,41]. Figure 2 shows the use of eyelets as proximal anchor points on the fixed frame of the *CDPR* prototype presented in [16]. Conversely, swivel pulleys can reduce cable wear and still allow for orientation in a broad direction range, since, unlike classical fixed pulleys (Figure 3a), they can rotate about an axis tangent to the pulley groove, the swivel axis (Figure 3b). This kind of solution is adopted in [39,42], and an example of exit point layout is shown in Figure 4. In general, the presence of pulleys in the guidance system makes the system reliable, but complicates the geometrical model of the robot. This issue can be faced in two ways: by adopting a more complex model, which includes pulley kinematics for *CDPR* control [4,32,43], or by ignoring the actual geometry of the system, and accepting several modeling errors. Otherwise, particular layout and orientations of the pulley system must be adopted.

**Figure 2.** Model of the eyelet exit point of the *CDPR* laser scanner in [16].

**Figure 3.** 3D model of pulley transmissions. (**a**) Fixed pulley. (**b**) Swivel pulley.

**Figure 4.** Application of swivel pulleys for cable proximal anchor point.

On the platform, at the distal anchor points, cables can be knotted to a fixture (i.e., an eyelet or a hook) or anchored to a universal joint: both these options allow to define a fixed point with respect to the platform. The knot solution is preferred for its simplicity (Figure 5) [16,44], but it is neither accurate nor reliable for long-term use. On the other hand, the universal joint (Figure 6) is more precise but complex and more expensive. Pulleys can also be employed if the cable needs to be deflected and not fixed at the distal anchor point. In [45], a pulley system is used at the distal anchor point on the platform to compensate for the effect of the proximal swiveling pulley geometrical model.

**Figure 5.** Cable knotted at the anchor point on the platform of the *CDPR* laser scanner [16]. (**a**) Platform overview. (**b**) Knot detail.

**Figure 6.** Prototypal universal joint at the anchor point on the platform of a *CDPR*. (**a**) Platform overview. (**b**) Universal joint detail.

#### **3. Mechanical Design**

The prototype presented in this section is devoted to non-contact tasks, such as laser engraving, welding, thermal treatment, decoration, and inspection of vertical surfaces, such as building façades. Thus, the main design requirements are the following: (i) it should present a planar vertical workspace, which should be easily scaled upon the redefinition of the installation locations of the guidance systems, (ii) the tool mounted on the platform should be interchangeable.

The 3D model of the designed prototype is shown in Figure 7. The machine frame (1) is formed by aluminum profiles that define the robot installation (and *WS*) limits. An actuation (2) and a proximal guidance unit (3) are placed at each of the four corners of the frame to coil and uncoil four cables and convey them to the distal guidance unit (4) attached to the mobile platform (5). The platform has *n* = 3 *DoFs* in the plane, thus, a 4-cable architecture results in an overconstrained manipulator. The constraint redundancy allows firstly to obtain a wider *WS* and then improve the *EE* controllability. Redundant

actuated cables make them pull one against the other to keep the overall system under tension. Reconfigurable anchor points also characterize the prototype: cables can be arranged in a standard (Figure 8a) or crossed (Figure 8b) layout by simply un-mounting and re-mounting the distal guidance unit. As shown in Figure 8, each swivel pulley (1) on the platform, which forms the distal anchor point, can be translated into slots (2) on the support (3); the equivalent operation can be done on the proximal anchor systems on the frame. The crossed layout aims to improve the platform's orientation capability [46], if required by the task, and to withstand external torques induced by gravity (if the tool is not mounted in a barycentric position) or external disturbances.

The actuation units and guidance systems are the same for each cable, and they are described in the following subsections.

**Figure 7.** Planar 4-cable *CDPR* prototype with two cable arrangements: (1) frame, (2) actuation unit, (3) proximal guidance unit, (4) distal guidance unit, (5) platform. (**a**) Standard layout, front view. (**b**) Crossed layout, front view. (**c**) Standard layout, top view (**d**) Crossed layout, top view.

**Figure 8.** Reconfigurable distal anchor points on the mobile platform: (1) swivel pulley, (2) slots for the translation of the swivel pulley, (3) platform support. (**a**) Standard layout. (**b**) Crossed layout.

#### *3.1. Actuation Unit*

The cable actuation unit is a servo-actuated winch where both the motor and the drum translate along a linear guide during the motor rotation (Figure 9). As described in Section 2.1, this design choice limits the overall machine cost, at the price of poorer actuator dynamic performances: given the quasi-static requirement for the robot operation, this design choice was deemed the best. In addition, to further limit the robot cost, most components were produced by Fused Deposition Modeling (FDM) technology using PETG as base material. The choice of a rotary actuation, instead of a linear one, is supported by the project requirements reported in Section 3. In particular a rotary actuator allows for easy scalability in case of wide-workspace applications and field deployability.

**Figure 9.** 3D model of the winch: (1) servo-stepper motor, (2) brackets, (3) aluminum drum, (4) brass nut, (5) screw shaft, (6) support element, (7) base plates, (8) end-stop switches, (9) circular rods, (10) cable guidance slot, (11) carriage.

A double-helicoidal-groove aluminum drum (3) is rigidly connected to the shaft of a Wantai (57HBM20-1000, 2.1 Nm holding torque) Nema 23 servo-stepper motor (1) equipped with an incremental encoder (≈0.1◦ resolution). Drum dimensions were chosen in order to coil 2.2 m of a 0.51 mm diameter dyneema cable (DAIWA j-braid X8, 550 N breaking tension), and limit (for the given motor) the realizable maximum tension to 160 N (cable tension safety factor of ≈3.5). Thus, drum diameter was selected as 27 mm, and groove pitch as 2 mm. A brass nut (4) is rigidly centered to the drum and coupled to a trapezoidal screw shaft (5), which is clamped at one end to the actuation unit frame, in a support element (6). While the motor rotates, the drum-motor system, fixed to a carriage (11) using two brackets (2), moves on a linear guide (9) made by two circular rods and linear ball bearings. The drum and the shaft have the same pitch, so the cable portions exiting the drum always have a fixed direction and position with respect to the winch frame. Two end-stop switches (8) are mounted at the physical limits of the drum-motor system, to provide a safety-stop signal to the motor controller. The winch frame is ultimately fixed to the overall robot frame with bolted connections via two plates (7).

This winch houses one of the four cables. One end of the cable is fixed to the drum employing a screw. Then, the cable is coiled onto the first start of the drum and conveyed to the guidance system through a thin slot (10) on the carriage (11). After being guided to the distal anchor point on the platform (as detailed in Section 3.2), the cable returns to the drum through the slot (10) and is then wound onto the other start of the drum and secured with another screw.

#### *3.2. Guidance System*

The cable guidance system is designed to (i) guide each of the four cables on a parallelogram-like routing (Figure 10) to ensure the motion of the *EE* in a defined plane; (ii) geometrically define the cable exit points, to apply a standard kinematic model for robot control, (iii) integrate a load sensor for cable tension measurement.

**Figure 10.** Layout of the guidance system of the robot in standard cable arrangement (top view): (1), (6) fixed pulleys, and (2), (3), (4), (5) swivel pulleys; *a* and *b* sides of the parallelogram defined by the cable loop.

The cable, which leaves the drum groove from a fixed point in space, in a fixed direction (see Section 3.1), is then guided on a fixed pulley (1) attached to a tension measurement unit, which will be analyzed later on. After that, to obtain a parallelogram shape, the cable passes through four identical swivel pulleys (2,3,4,5) and then, through another fixed pulley (6) (also included in the tension measurement unit) before engaging the other groove on the drum. The proposed cable-loop arrangement realized with one cable avoids possible cable slackness during *EE* motion, which may happen if the parallelogram is made of two separate cables driven by the same winch. Two of the swivel pulleys (2,5) are fixed to the base and form the proximal guidance unit, while the other two (3,4) are attached to the platform and form the distal guidance unit. The distance *a* between the two pulleys composing each group is equal. This defines the first two sides of the parallelogram, which are invariant, being distances between points of rigid bodies. The other two sides *b* are formed by cable sections that are equal and parallel when the cable is taut by design.

#### 3.2.1. Sensor Integration

The *CDPR* guidance system is often equipped with position [47] and force sensors [48] to monitor the robot performance in real-time, if required by the control strategy. In this prototype, one of the swivel pulleys of the proximal group is equipped with an incremental encoder. The encoder is coaxial with the swivel pulley, thus it measures the angle between the cable and the frame: this feature can be used for platform pose estimation through direct kinematics [49]. In addition, the fixed pulleys of the proximal guidance group are equipped with a load sensor, a shear beam load cell (Phidget CZL635 micro load-cell, load range 20 kg). Figure 11 shows the force measurement unit: the load cell (1) is directly connected to the pulley support (2) and structurally constraints the fixed pulleys (3) to the machine frame (4) via an auxiliary bracket (5). The system is designed for the load direction of the pulley to be always orthogonal to the shear beam load cell, to ensure the optimal working conditions of the sensor. The load cell, ideally, measures the double of the cable tension value.

**Figure 11.** Force measurement unit: (1) load cell, (2) pulley support, (3) fixed pulleys, (4) machine frame, (5) auxiliary bracket. (**a**) Front view. (**b**) Side view.

#### 3.2.2. Kinematic Model

To define the cable exit points, each of the four swivel pulleys forming the guidance system is oriented so that its swivel axis, identified by the unit vector **k***i* (Figures 11b and 12b) is orthogonal to the work plane, that is a vertical plane. The two pulleys, forming the proximal or distal guidance units, are coaxial, and the projection of their swivel axes onto the vertical plane identifies the cable exit points (*Bi*, for *i* = 1, ... , 4 for the proximal point in Figure 12a,b). Thus, the kinematic *standard* model can be used without causing geometrical modeling errors. Angle *φ* defines the rotation of the pulley about the swivel axis. **t***i* is the unit vector of the *i*-th cable.

**Figure 12.** Standard model definition. (**a**) Geometry of the *i*-th constraint of the planar 4-cable *CDPR*. (**b**) Detail of a proximal swivel pulley.

Considering one of the four cable transmissions (Figure 12), *Oxy* and *Px*- *y* are defined as inertial and mobile frames. The mobile frame is attached to the platform center of mass *P*, described as **p** with respect to the inertial frame. Cables, assumed massless and inextensible, are considered as the line segments between the distal and proximal anchor points, defined by the pulley swivel axes (*Ai* and *Bi* respectively, for *i* = 1, ... , 4). Points *Bi* are described by vectors **b***i* in the inertial frame, and points *Ai* are described by **a**- *i* and **a** in the mobile and inertial frame, respectively. The rotation matrix **R**(*θ*) represents the orientation of the moving platform in the vertical plane. The platform pose is defined as [**p***T*, *θ*] *T*, and *i*-th cable vector is:

$$\rho\_i = \mathbf{a}\_i - \mathbf{b}\_i = \mathbf{p} + \mathbf{R}(\theta)\mathbf{a}'\_i - \mathbf{b}\_{i'} \quad \mathbf{R}(\theta) \triangleq \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix} \tag{1}$$

For a given *EE* pose, the *i*-th cable length *li* and unit vector **t***i* can be computed as:

$$l\_i = ||\rho\_i||\_\prime \quad \mathbf{t}\_i = \frac{\rho\_i}{l\_i} \tag{2}$$

#### **4. Experimental Demonstration: Laser Engraving**

A prototype of a 3-DoF 4-cable *CDPR* with a *crossed layout* was built at IRMA L@B of the University of Bologna (Figure 13a). It employs 4 of the actuation systems described in Section 3.1, connected to the corners of an aluminum frame, and 4 guidance units, whose distal swivel pulleys are bolted to the robot platform. The *CDPR* has rectangular base (0.875 m × 0.700 m) and mobile platform (0.080 m × 0.100 m). The inertial frame *Oxy* is located in the center of the base and the moving frame *Px*- *y* is located at the center of the *EE*, coinciding with its center of mass. Its wrench-feasible translational workspace [50] is represented in Figure 13b with a regular discrete grid of 100 × 100 points, considering the platform mass equal to *m* = 2.5 kg, and *τmin* = 10 N and *τmax* = 80 N as cable tension limits.

**Figure 13.** Laser-engraving prototype at IRMA L@B. (**a**) Picture of the prototype. (**b**) Wrench-feasible translational workspace of the prototype.

The *CDPR* is controlled by a Real-Time Linux PC, which runs its control algorithm at 1 kHz rate, and feeds motor commands through Ethercat protocol [51] to low-level servo drives. The low-level controller is also developed in-house and run on a ST Nucleo-H743ZI development board at 10 kHz: in addition to controlling motor angles, this allows to directly feed a cable-tension command to the drive. This latter feature simplifies the adoption of the hybrid-input control strategy for the *CDPR* described in [50]: once an

*EE*-pose set-point is assigned in the Cartesian space, 3 cables are length controlled (i.e., motor angles are commanded to the drives), and one cable is tension controlled (i.e., cable tension is commanded to the drive, and the error with respect to the readings of the load cell is compensated).

A 2.5 W laser diode is mounted on the robot *EE* so that its focal axis is perpendicular to the working plane (Figure 14), thus allowing the engraving of a paper sheet (for additional details, see Supplementary Video Material). The name of our laboratory, IRMA L@B, was stylized in a way that every letter was a union of a finite number of linear segments (Figure 15a): accordingly, a quantitative comparison between the digital model and the engraved result could be performed, by comparing each segment length. A series of consecutive points *P*1, *P*2, ... , *Pn*, with *n* = 15, were extracted from the digital model (Figure 15b), and the robot reference point commanded to follow the path between them with a trapezoidal velocity profile in the task space, while keeping the orientation identically zero. If the trajectory is expressed as:

$$\mathbf{p}(t) = \mathbf{p}\_i + (\mathbf{p}\_{i+1} - \mathbf{p}\_i)u(t), \qquad u(0) = 0, u(T) = 1, \qquad i = 1, \ldots, n - 1 \tag{3}$$

the motion law *u*(*t*) [52] takes the form:

$$u(t) = \begin{cases} \frac{1-a}{2a}(vt)^2, & \text{for } 0 \le t < aT\\ -\frac{a}{2(1-a)} + vt, & \text{for } aT \le t < (1-a)T, \\\ -\frac{2a^2 - 2a + 1}{2a(1-a)} + \frac{1}{a}vt - \frac{1-a}{2a}(vt)^2, & \text{for } (1-a)T \le t \le T \end{cases} \tag{4}$$

Since the set-points *Pi* of Equation (3) are set by the task, the only parameters to be determined are *v* and *α* of Equation (4). They represent, respectively, the motion law maximum speed, and the ratio between the accelerating phase duration and the total time; they are set considering the requirements of the technological operation to be performed. Since the diode laser can only be on or off, the accelerating phase duration should be as limited as possible, to avoid burning the paper when the *EE* is moving too slow; on the other hand, motors have limited power, and too quick accelerations may result in their stall: by trial and error, *α* = 0.1 was established as a good compromise. The motion law maximum speed was instead calculated so as the *EE* maximum translational speed was optimal for the engraving operation, namely **p˙** *max* = 0.02 m/s for the 2.5 W laser diode at hand; thus, by differentiating Equations (3) and (4) we get:

$$||\dot{\mathbf{p}}||\_{\max} = 0.02 = ||\mathbf{p}\_{i+1} - \mathbf{p}\_i||\upsilon\tag{5}$$

**Figure 14.** Robot end-effector equipped with a laser diode.

**Figure 15.** Digital image for engraving task. (**a**) Stylized version of IRMA. (**b**) End-effector path: solid line for engraving process, dotted line for movement; *Pi*, with *i* = 1, ... , 15, consecutive points extracted from the digital image.

The engraving operation of the stylized *IRMA L@B* was then performed, and the result is shown in Figure 16. First of all, it can be noticed that rectilinearity of the segments is qualitatively good (see Figure 17a). Small out-of-plane vibrations were excited by the laser diode cooling fan when the laser was switched on and off at the beginning and the end of each segment. This is nearly unnoticeable even scaling up the engraved paper (see Figure 17b), and it was ultimately expected: a vibration-damping device, such as the one proposed in [27], can be added to prevent such small-magnitude effects.

**Figure 16.** Result of the laser engraving operation.

**Figure 17.** Qualitative evaluation of the laser engraving operation. (**a**) Rectilinearity of a segment. (**b**) Platform out-of-plane oscillations induce sub-millimetric errors.

From a quantitative point of view, the ideal length *l i* of each segment was compared to the engraved one *li*, measured on the paper with a digital caliper (maximum measuring error of 0.3 mm at full scale, 180 mm). If the error is defined as *li* = *l i* − *li* and the percentage error is *li*,% = 100(*l i* − *li*)/*l i* , the root-mean-square error was 2 mm, and the root-mean-square percentage error was 2.4% (complete results can be found in Table 1). Considering the size of the robot workspace and its prototypal nature (most of the components are 3D printed in plastic material), errors of this magnitude are reasonably attributed to an imperfect calibration, mounting errors of the guidance system on the aluminum

frame, and elastic components deflection. All in all, the machine can perform the planar non-contact task with relatively good accuracy, which can be increased with a more advanced mechanical design, followed by a precise calibration.

**Table 1.** Comparison between ideal and engraved segment lengths.

#### **5. Conclusions**

This paper presented an overconstrained *CDPR* for non-contact tasks on planar vertical surfaces. The actuation and guidance systems were described and the applicability of the standard model was outlined by showing the employed design expedients. The *CDPR* prototype was built at IRMA laboratory at the University of Bologna, and used to perform laser engraving on a paper sheet. Engraving results are qualitatively good, considering the prototypal nature of the robot, and quantitatively acceptable, since they can be improved by better manufacture of mechanical components and calibration.

In the future, the proposed actuation and guidance units design will be evolved in order to achieve on-site deployability: the actuation (or guidance) unit will be mounted on a vertical façade, and the system geometry will be self-calibrated on-site after each mounting operation.

#### **6. Patents**

The preliminary design of the prototype presented in this paper is object of the patent WO2021144685.

**Supplementary Materials:** The following are available at https://www.mdpi.com/2076-3417/11/2 0/9491/s1, Video S1: This video shows the engraving process described in the experimental section of the paper.

**Author Contributions:** Conceptualization, V.M. and E.I.; methodology, V.M. and E.I.; software, V.M. and E.I.; validation, V.M. and E.I.; writing—original draft preparation, V.M.; writing—review and editing, V.M. and E.I.; supervision, M.C.; project administration, E.I. and M.C. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research received no external funding.

**Institutional Review Board Statement:** Not applicable.

**Informed Consent Statement:** Not applicable.

**Data Availability Statement:** Data is contained within the article.

**Acknowledgments:** The authors would like to acknowledge Federico Zaccaria for his help in designing the prototype components.

**Conflicts of Interest:** The authors declare no conflict of interest.

#### **References**

## *Article* **Design and Implementation of Inverse Kinematics and Motion Monitoring System for 6DoF Platform**

**Ming-Yen Wei**

Aeronautical System Research Division Simulation System Section, National Chung-Shan Institute of Science and Technology, Taichung 407, Taiwan<EMAIL_ADDRESS>Tel.: +886-4-2702-3051

**Abstract:** Six-axis motion platforms have a low contraction height and a high degree of freedom. First of all, the designed six-axis crank arm platform, including the motor, reducer, crank arm, link, platform support arm, and upper and lower platforms, can be designed for different bearing requirements. Secondly, it uses a coordinate transform and kinematics theory to derive each motor rotor angle. A set of platform data acquisition (DAQ) monitoring modules was established, and the LabVIEW programming language was used to write measurement software. The monitoring items include displacement, speed, and acceleration, which can be displayed on the screen and recorded by an industrial computer in real time and dynamically. Then, an RS-485 or RS-232 communication transmission interface was used to provide the control system with the related movement information. Finally, an industrial computer combined with a motion control card was used as a control kernel to realize the control algorithms, internet module function, I/O write and read signals, firmware integration, and human–machine interface message. The experimental results validate the appropriateness of the proposed method.

**Keywords:** 6DoF motion platform; inverse kinematics; monitoring system; crank arm mechanisms

#### **1. Introduction**

Simulators continue to progress toward high performance, high fidelity, and complex, realistic scenes [1]. A motion platform with six degrees of freedom (DoF) simulates the dynamic motion of several vehicles to be perceived by passengers. In addition to visual effects, sound effects, and force, adding motion to professional training simulators can make the simulations more realistic as well as improving the effectiveness of training and exempting trainees from having to readapt to the motion of real vehicles. Regarding entertainment systems, adding motion can increase excitement, enhance interaction, and increase the value of the systems. Motion platforms with six DoF are commonly driven by one of the following devices: (1) A linear actuator, which is composed of motors, belts, and lead screws. This structure includes six electric cylinders, three pneumatic cylinders, upper and lower platforms, and a platform controller. (2) A 6DoF crank arm platform, which is created by combining a crank arm mechanism—composed of a servo motor, a gear box, and a crank arm—with a reducer, a rocker arm, a platform support arm, upper and lower platforms, and a control system. Though they possess the advantages of simple control, high DoF, high efficiency, and high loading capacity (ton) [2], linear actuators have high production costs, and the height of the platform to be positioned in the center is overly high. With approximately half the development cost of linear actuators, 3DoF and 4DoF crank arm platforms have comparable high-fidelity motion, which reduces manufacturing costs, and can be applied in professional training simulators (e.g., of ships and vehicles) and entertainment simulators, which may serve as a point device at amusement parks [3,4].

In 1965, Stewart from the United Kingdom proposed a 6DoF, six-axis motion platform structure [5], which was first used as a flight simulator. The potential advantages and application prospects of parallel platforms received considerable attention and inspired numerous studies. In 1980, Fichter and Mcdowell proposed a parallel mechanism derived

**Citation:** Wei, M.-Y. Design and Implementation of Inverse Kinematics and Motion Monitoring System for 6DoF Platform. *Appl. Sci.* **2021**, *11*, 9330. https://doi.org/ 10.3390/app11199330

Academic Editors: Alessandro Gasparetto, Stefano Seriani and Lorenzo Scalera

Received: 27 August 2021 Accepted: 4 October 2021 Published: 8 October 2021

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

**Copyright:** © 2021 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https:// creativecommons.org/licenses/by/ 4.0/).

from Stewart's platform and discussed the inverse kinematics of said mechanism [6], which represented the earliest discussion of inverse kinematics. In 1985, Mohamed and Duffy published a study on the relationship between the end effector speed of a six-axis motion platform and the drive input speed [7]. In 1992, Kumer clarified the relationship between the speed and acceleration of a six-axis platform and the drive. In 1993, Liu proposed a comprehensive analysis of forward kinematics and inverse kinematics of a six-axis motion platform [8]. Ji et al. analyzed the inverse kinematics of a 3-RRPS 6DoF Stewart platform [9]. By that time, most kinematics problems related to the general type of 6DoF Stewart platform had been resolved. Studies after 2010 have generally addressed means of controlling parallel architectures, such as artificial neural network control [10], and predictive control [11–13]. Studies after 2010 have also explored numerical solutions. For example, the spatial position and the center of the upper platform can be obtained by applying forward kinematics [14]. In addition, [15] proposed a real-time algorithm for solving the six motors' angular update command problem caused by multithreading. The algorithm is advantageous in that it increases the computing speed and reduces the running time, which enables the motors' angular update commands of the six-axis platform to provide more timely updates to the six servo drives. The current study applied the dynamic proprioception of real-life situations to achieve a motor sense that is identical or close to that created by real vehicles. Theoretically, the motion cueing effect most closely resembles reality when the motion state of the platform is exactly that of a real vehicle [16,17]. The simulation of motion especially targeted the speed and acceleration perceptible by the human sensory system to achieve a realistic motor sense.

The majority of simulators have been designed based on the 6DoF structure of the Stewart platform [5–17], which uses linear actuators to achieve a 6DoF overall movement. However, the need to use six linear actuators is expensive. Therefore, this work proposes a six-axis crank arm mechanism for motion systems. There is no formal literature about the design and implementation of an actual crank arm mechanism platform. As in [18], this work's design was based on DIY methods to create a simple model. Limiting the range of movement through the error correction method achieves an effect similar to an integrator. In order to improve the movement stroke of the platform, this study investigated the crank arm motion platform with a monitoring system, in order to propose an inverse kinematics design for virtual cylinders. In addition, a motion monitoring system is proposed for affordable measurement of the platform. For affordability, low-cost sensors are utilized. The software offers functions such as sampling settings, impulse response display, real-time display of measured values, and log file reading and sending. To the best of our knowledge, the ideas we mention have not been presented in previously published papers [1–18]. As a result, this paper presents some new ideas on the implementation of motion control systems, including an adjustable speed control system and a middle-distance stroke control system. Related measuring instruments, such as a touch panel, an industrial computer, professional wiring harnesses, sensors, jigs, and auxiliary appliances, are placed in a selfdesigned waterproof storage box to facilitate portability and operation at different venues. Validated through experiments, the proposed algorithm can control different attitudes, human–machine interface operations, network packet reading, and command receiving of the platform and can achieve 6DoF control and monitoring.

#### **2. Inverse Kinematics Design**

For six-axis motion platforms with a parallel structure, when the upper platform changes directions, the crank arm mechanism can bear the evenly divided load. That is, the highly rigid structure has a high load-bearing capacity. For six-axis motion platforms with a serial design, a structure resembling a cantilever beam is formed when the connecting rod is fully extended, and each joint connected in series accumulates errors (which reduces accuracy), possesses a low bearing capacity, and easily wobbles. Accordingly, a parallel structure has greater rigidity and stability and can achieve high-precision positioning in a complex working environment. Kinematics is divided into forward and inverse kinematics. Forward kinematics refers to the rotation angles of the servo motors of a six-axis platform, and numerical methods are used to determine the position, speed, and acceleration corresponding to the platform [19]. Inverse kinematics involves the use of platform position, speed, and acceleration to calculate the rotation angle of servo motors. This is the method adopted in the current study [20]. Figure 1 presents the physical model of the six-axis crank arm motion platform, which comprises six crank arm mechanisms, an upper platform (moving platform), a lower platform (fixed platform), and six support arms. The coordinates of the upper platform, lower platform, and rotation axis of the drive shaft are (xpi, ypi, zpi), (xbi, ybi, zbi), and (xb\_Mi, yb\_Mi, zb\_Mi), respectively, where i = 1, 2–6. Traditional inverse kinematics methods and the proposed inverse kinematics method are explained in the section below.

**Figure 1.** Photograph of the motion platform.

#### *2.1. Traditional Inverse Kinematics*

Traditional inverse kinematics changes the endpoint coordinate of the crank arm through the rotation angle of the arm [18], which requires adding together the components of the crank mapped to the platform, components of the connecting rod mapped to the platform, and the coordinates of the rotation axis of the drive shaft and then subtracting the sum from the expected upper platform coordinate to calculate its distance from the rod. Because the length of the support arm is fixed, the endpoint coordinate of the crank arm was adjusted by rotating the crank arm until the distance between the lower and upper platform coordinates aligned with the actual length of the support arm (Figure 1).

As Figure 2 illustrates, when the upper platform coordinate (xp1, yp1, zp1) of the first axis and inverse kinematics were used to calculate the expected rotating position vector (xp1\_1, yp1\_1, zp1\_1), the coordinate corresponding to the lower platform (xb1\_1, yb1\_1, zb1\_1) was moved from (xb1, yb1, zb1) according to the rotation angle of the crank arm. The virtual support arm (*L*1) was calculated using (xp1\_1, yp1\_1, zp1\_1) and (xb1, yb1, zb1). If *L*1 did not equal the actual support arm (*L*), the two had different lengths. The M1 motor rotation command is obtained according to the change in the error value as

$$
\theta\_1(k+1) = \theta\_1(k) + \gamma(L1(k) - L) \tag{1}
$$

where *k* is the number of sampling points, *θ*1 is the angle of the M1 motor, and *γ* is the weighting factor of the iteration. Then, the angle of the M1 motor had to be adjusted until *L*1 and *L* were of the same length. Therefore, the upper platform coordinate (xp1, yp1, zp1)

was slowly moved from the virtual support arm (*L*1) to *L* by controlling the M1 motor. The length of *L*was calculated using Equation (1).

**Figure 2.** The schematic diagram of axis1 control.

The software ran Equation (2) until *L* = *L*- , which indicated that the coordinate of the lower platform (xb1\_1, yb1\_1, zb1\_1) was correct.

#### *2.2. Proposed Inverse Kinematics*

Because traditional inverse kinematics methods fail in the position control implementation, the upper platform can only be moved approximately to adjust the length of the virtual support arm. To improve the movements of the endpoint coordinates of the motion platform crank arm, an actuating method similar to that of a linear actuator was adopted to obtain the relevant coordinates. The position of the linear actuator was set as the lower fixed point coordinate, and the upper platform coordinate could be changed by adjusting the elongation of six linear actuators. In practice, the elongation required by each electric cylinder can be calculated by subtracting the distance between the upper and lower platform coordinates with elongation from that without elongation. Therefore, this study proposes changing the motion platform of the rotary crank arm to the output end of the crank arm motor as the lower fixed point of the linear actuator, thereby determining di, which is the distance between the upper platform coordinate and the motor coordinate (xb\_Mi, yb\_Mi, zb\_Mi). The vector of di is expressed as follows [21]:

$$d\_i = q\_i - b\_i = T + R \cdot p\_i - b\_i \tag{3}$$

where *T* is the position vector of the upper platform coordinate relative to the lower platform, *R* denotes the homogeneous transformation matrix, *pi* = [xpi ypi zpi] represents the position vector of the upper platform, *bi* = [xb\_Mi yb\_Mi zb\_Mi] is the position vector of the motor rotation axis, and *di* denotes the equivalent rod length.

Thus, by taking into account the relationship between the lengths of the crank, connecting rod, and support arm, the positions of the motor end and upper platform were bi and pi, respectively, s was the sum of the connecting link length (p) and support arm length (l), and the contact coordinate (Ai) between s and the crank length (a) was projected to the xy plane. In Figure 3, *φi* denotes the included angle between the x direction and the crank length. The known conditions, namely, s, a, Bi = [xb\_Mi yb\_Mi zb\_Mi], pi = [xpi ypi zpi], and *φi*, were used to calculate the angle required for each axis to rotate (*θi*), thereby controlling

the different virtual cylinder lengths (di), controlling the elongation of the virtual cylinder, and determining the platform attitude required by the 6DoF platform.

**Figure 3.** The relationship of axis i (i = 1–6) and upper platform coordinate.

Because the six sets of crank arm mechanisms were arranged opposite to each other, they were divided into odd and even numbers. The first, third, and fifth axes were controlled at 0–180 degrees, while the second, fourth, and sixth axes were controlled at 180–360 degrees. The odd axes of Ai are expressed as

$$\mathbf{x}\_{ai} = \mathbf{a} \cdot \cos(\theta\_i) \cos(\phi\_{i}) + \mathbf{x}\_{b\\_Mi} \tag{4}$$

$$y\_{ai} = a \cdot \cos(\theta\_i) \cos(\phi\_{i^\circ}) + y\_{b\\_Mi} \tag{5}$$

$$z\_{ai} = a \cdot \sin(\theta\_i) + z\_{b\\_Mi} \tag{6}$$

where i = 1, 3, and 5. The even axes of Ai are expressed as

$$\mathbf{x}\_{ai} = a \cdot \cos(180 - \theta\_i) \cos(180 + \phi\_i) + \mathbf{x}\_{b\\_Mi} \tag{7}$$

$$y\_{ai} = a \cdot \cos(180 - \theta\_i) \cos(180 + \phi\_i) + y\_{b\\_Mi} \tag{8}$$

$$z\_{ai} = a \cdot \sin(180 - \theta\_i) + z\_{\text{b\\_Mi}} \tag{9}$$

where i = 2, 4, and 6. As shown in Figure 3, Pythagorean theorem is applied to find s, di, and a, which are expressed as follows:

$$s^2 = \left(\mathbf{x}\_{pi} - \mathbf{x}\_{ai}\right)^2 + \left(y\_{pi} - y\_{ai}\right)^2 + \left(z\_{pi} - z\_{ai}\right)^2\tag{10}$$

$$d\_i^2 = \left(\mathbf{x}\_{pi} - \mathbf{x}\_{b\\_Mi}\right)^2 + \left(y\_{pi} - y\_{b\\_Mi}\right)^2 + \left(z\_{pi} - z\_{b\\_Mi}\right)^2\tag{11}$$

$$a^2 = \left(\mathbf{x}\_{\text{ai}} - \mathbf{x}\_{\text{b\\_Mi}}\right)^2 + \left(y\_{\text{ai}} - y\_{\text{b\\_Mi}}\right)^2 + \left(z\_{\text{ai}} - z\_{\text{b\\_Mi}}\right)^2\tag{12}$$

Equations (11) and (12) are substituted into Equation (10) to derive

$$\begin{aligned} s^2 &= d\_i^2 + a^2 + 2\left(\mathbf{x}\_{b\\_Mi}^2 + y\_{b\\_Mi}^2 + z\_{b\\_Mi}^2\right) - 2\left(\mathbf{x}\_{pi}\mathbf{x}\_{b\\_Mi} + y\_{p\bar{p}}y\_{b\\_Mi} + z\_{p\bar{r}}z\_{b\\_Mi}\right) + 2\mathbf{x}\_{i\bar{i}}\left(\mathbf{x}\_{pi} - \mathbf{x}\_{b\\_Mi}\right) \\ &+ 2y\_{i\bar{i}}\left(y\_{p\bar{i}} - y\_{b\\_Mi}\right) + 2z\_{i\bar{i}}\left(z\_{pi} - z\_{b\\_Mi}\right) \end{aligned} \tag{13}$$

#### Equations (4)−(9) are substituted into (13) to derive

$$\left\{ \left. d\_i^2 + a^2 - s^2 + 2a \cdot \sin(\theta\_i) \right| \left( z\_{pi} - z\_{b\\_Mi} \right) - 2a \cdot \cos(\theta\_i) \cdot \left\{ \cos(\phi\_i) \left( x\_{pi} - x\_{b\\_Mi} \right) + \sin(\phi\_i) \left( y\_{pi} - y\_{b\\_Mi} \right) \right\} = 0 \right. \tag{14}$$

To facilitate the calculation, the equation is rewritten as follows:

$$H = E \cdot \sin(\theta\_i) + K \cdot \cos(\theta\_i) \tag{15}$$

where

$$H = d\_i^2 + a^2 - s^2 \tag{16}$$

$$E = -2a \cdot \left( z\_{pi} - z\_{b\\_Mi} \right) \tag{17}$$

$$K = 2a \cdot \cos(\theta\_i) \left\{ \cos(\phi\_i) \left( \mathbf{x}\_{pi} - \mathbf{x}\_{b\\_Mi} \right) + \sin(\phi\_i) \left( y\_{pi} - y\_{b\\_Mi} \right) \right\} \tag{18}$$

Equation (15) belongs to the trigonometric identity, and *θi* can be written as

$$\theta\_i = \sin^{-1}\left(H/\sqrt{(E^2 + K^2)}\right) - \tan^{-1}(K/E) \tag{19}$$

The aforementioned equation demonstrates that the actual rotation angles (19) of the six motors can be directly derived using the known conditions—s, a, bi = [xb\_Mi yb\_Mi zb\_Mi], pi = [xpi ypi zpi], *φi*, and the distance (di) from the upper platform coordinate to the motor coordinate.

#### **3.  Through realizing *id* = 0 by applying field-oriented control, Equations (20) and (21) can be rewritten as

$$
\omega\_d = -\omega\_{rc} L\_q i\_q \tag{22}
$$

and

$$\begin{array}{l} \boldsymbol{\nu}\_{q} = \boldsymbol{r}\_{s}\boldsymbol{i}\_{q} + \boldsymbol{L}\_{q}\frac{d}{dt}\boldsymbol{i}\_{q} + \omega\_{rc}\boldsymbol{\lambda}\_{m} \\ = \boldsymbol{\mu}\_{q} + \omega\_{rc}\boldsymbol{\lambda}\_{m} \end{array} \tag{2.3}$$

The electro-magnetic torque is

$$T\_c = \frac{3}{2} \frac{P}{2} \lambda\_m i\_q = K\_T i\_q \tag{24}$$

where *Te* is the electro-magnetic torque of the motor, *P* is the number of poles of the motor, and *KT* is the torque constant. The mechanical speed and position of the motor are expressed as

$$\frac{d}{dt}\omega\_{rm} = \frac{1}{f\_t}(T\_{\mathfrak{e}} - T\_L - B\_t\omega\_{rm})\tag{25}$$

and

$$\frac{d}{dt}\theta\_{rm} = \omega\_{rm} \tag{26}$$

where *ωrm* is the mechanical speed, *θrm* is the mechanical position, *Jt* is the total inertia of the motor and gearbox, *TL* is the load torque, and *Bt* is the total viscous coefficient of the motor and gearbox. The electrical position and speed, which can be expressed as *θre* and *ωre*, are shown as follows:

$$
\theta\_{r\epsilon} = \frac{P}{2} \theta\_{rm} \tag{27}
$$

and

$$
\omega\_{rc} = \frac{P}{2} \omega\_{rm} \tag{28}
$$

The PID control law is

$$
\mu = K\_P e(t) + K\_I \int e(t)dt + K\_D \frac{d}{dt}e(t) \tag{29}
$$

where *e*(*t*), *KP*, *KI*, and *KD* are the control error, proportional, and integral coefficients, respectively. In Figure 4, *Gθ*, *Gω*, and *GC* of the servo driver are the PID controllers, namely, the position loop, speed loop, and current loop controllers, respectively. The control system was designed and applied to each of the six actuators independently.

**Figure 4.** Block diagram of the position control system.

#### **4. Monitoring System Design**

The six-axis platform monitoring module was developed exclusively for six-axis platform testing. The industrial computer monitoring program was designed under the LabVIEW environment and the interactive property is good. The function of the system reached the expected design requirements, and the cost is low. Combined with the modular design concept, it is integrated in the waterproof box shown in Figure 5. The waterproof box contains a high-speed DAQ, an industrial computer, a touch screen, sensors, professional wiring harnesses, and jigs. The special jig allowed for convenient and rapid installation. Measurement software was written to measure and record various parameters of the six-axis motion platform at high speed.

**Figure 5.** Photograph of the monitoring system.

#### *4.1. Gyroscope and Angular Velocity Meter Jig*

Three angular velocity sensors were fixed on the cube to measure angular velocity in the x, y, and z directions. The attitude gyroscope and the cube were fixed on a magnetic bottom plate, the magnetic attraction was approximately 47 kg. The adherence distance was adjusted using three screws to avoid the strong impact of direct magnetic adherence from damaging the sensors. Two powerful magnets at the bottom of the jig were adhered to the six-axis platform to be tested. To avoid the impact of powerful magnetic adherence, three knobs were designed. Before adherence, the knobs were turned clockwise to the end such that the three screw threads formed three points of support. After aligning with the x direction of the platform, the jig was adhered to the platform, and the three knobs were turned counterclockwise for the bottom plate to fit closely to the platform, the jig was thus firmly adhered to the platform. The jig could be easily dissembled by turning the three knobs clockwise to the end, as shown in Figure 6.

**Figure 6.** Gyroscope and angular velocity meters.

#### *4.2. Laser Displacement and Angular Meters*

Three three-section brackets (Figure 7a) were used to adjust the height of the x, y, and z axes of the measurement platform, while three measurement reference plates (Figure 7b) were magnetically adhered to the x, y, and z axes of the six-axis platform. The positions of the brackets or reference plates were adjusted for a red laser dot fired out of the laser displacement meter to hit near the center of the reference plate. Because the six-axis platform had a hexagonal structure design when viewed from above, the x axis was adjusted for the measurement reference plate to magnetically adhere to the x direction, and the x direction displacement was immediately read when the laser hit the measurement reference plate. The y axis was not perpendicular to any plane. Therefore, the reference plate was installed on the side of the six-axis platform, and y direction displacement was obtained through angle correction. The correction method is shown in Figure 7c.

#### *4.3. Measurement Software*

Figure 8a presents the measurement software setting form, which allows for archive path and measurement speed settings. The five sensor-related settings are as follows: angular velocity sensor and laser displacement meter receiving signals from the voltage input channels (the software enables or disables the function as well as adjusting the channel name, scale, offset, and unit), three-axis accelerometer receiving signals from the IEPE channel (the software enables or disables the function as well as adjusting the channel name, sensor sensitivity, and unit), and attitude gyroscope receiving signals from the RS232 serial port (the software sets the communication port). Figure 8 presents the real-time curve and trend curve for the sensor signals received by the high-speed DAQ. The left side of Figure 8b is the channel display. The operator can manually select the number of measurement channels for continuous and simultaneous measurement, display, and archiving.

**Figure 7.** Laser displacement meter: (**a**) three-section bracket, (**b**) measurement reference plate, and (**c**) schematic diagram of x axis and y axis measurement.

**Figure 8.** *Cont*.

**Figure 8.** Operation interface: (**a**) software setting and (**b**) channels display.

#### **5. Implementation**

The implementation block diagram of the platform is displayed in Figure 9. The mechanical structure of the platform was designed to carry a simulator cab of 1500 kg or heavier (Figure 10a). The platform mechanism was divided into upper and lower platforms. The six support arms of the platform achieved the 6DoF stroke required by the simulator cab through crank arm rotation. Fisheye bearing joints were used to connect the upper end of the support arm to the upper platform, while the lower end of the support arm was coupled with the crank arm to drive the upper platform. The prototype of the crank mechanism is shown in Figure 10b. The dimensions are link length = 105 mm, support arm length = 835 mm, and crank length = 250 mm. The parameters of the motor are shown in Table 1. The gearbox ratio is 32.41. The servo motor was connected with a gearbox to magnify the torque output. A motion control card PMDK, produced by ICP Das Co., Ltd, was used with a 5-V PCI bus. The PMDK had six pulse input and output channels, six analog input and output channels, and various digital input and output channels. The PMDK was equipped with a two-wire FRnet IO module, which can be used for remote input and output control.

**Figure 9.** The block diagram of the 6DoF platform.

**Figure 10.** 3D design drawing of the 6DoF platform: (**a**) 6DoF platform, and (**b**) crank arm mechanism.

**Table 1.** The parameters of the motor.

The monitoring module is shown in Figure 11a,b. The operator opened the waterproof storage box, screwed one end of the wiring harness to the input and output connector and the other end to sensor a, and secured the measurement reference plates and three-section brackets in place (Figure 11a). Figure 11b displays the positions of the angular velocity meter and the gyroscope.

The main program conducts the initial setup, thread enabling, and mode login of the platform. Figure 12a contains a flowchart of the implementation. Under the normal mode, the login mode can be selected using the human–machine interface. When the operator discovers an abnormal alarm or when maintenance personnel need to inspect the electric cylinders, they may select the maintenance mode via the interface. Data can be read and written via Internet transmission, and a thread of network modules is produced (Figure 12b). Operators can issue 6DoF commands to the platform and transmit the 6DoF commands to the platform computer by using Internet cable transmission.

**Figure 11.** Photograph of the implementation system: (**a**) monitoring module and (**b**) upper platform.

**Figure 12.** Flowchart of the implementation: (**a**) main program and (**b**) network module.

#### **6. Experimental Validation**

Figure 13 contains photographs of the four strokes under the control of 6DoF. This section validates the accuracy and feasibility of the proposed method by using experimental results. Traditional inverse kinematics and the proposed inverse kinematics were written into the software—only the inverse kinematics software was modified, the hardware was not—to compare the motion of the six-axis crank arm platform when the two algorithms were applied. Then, 6DoF commands were issued to the platform through the human– machine interface, and the movable range of each DoF was recorded.

**Figure 13.** The control of 6DoF: (**a**) heave, (**b**) pitch, (**c**) roll, and (**d**) surge.

Figure 14a–c are records of the relevant measurement results. The controllable angles of the two algorithms were compared, as indicated in Figure 14a. Because the traditional method used the trial-and-error method to control the lower platform coordinate, when the calculated rod length approximated the actual rod length, the movement was completed. The traditional method allowed the actuator to be operated only within the linear region, that is, a position of 60 to 180 degrees. The proposed method opted to directly map the crank arm platform to the Stewart platform, enabling the actuator operating region to reach 50 to 230 degrees. A comparison of the algorithms is presented in Figure 14b, where the subscripts "old" and "new" denote the traditional and proposed methods, respectively. As in the figure, the movable range of the proposed method was larger than that of the traditional method—a front–back distance 60 mm longer, a left–right distance 80 mm longer, and a vertical distance 160 mm longer, which effectively improved the stroke of the platform operation space. The algorithms' controllable angles of rotation—known as roll, pitch, and yaw—were compared, as in Figure 14c. The angles of rotation of the proposed algorithm were wider than those of the traditional algorithm—8 degrees wider in roll, 4 degrees wider in pitch, and 4 degrees wider in heave. An enlarged operating angle implies an increased overall platform space. Figure 12a,b are the 2 DoF ± 300 mm displacement

response diagrams, where the motion control command begins at 8 s with a period of 4 s. To observe the relationship between surge and sway—a 90-degree difference—more clearly, they were plotted on the horizontal and vertical axes, respectively, forming a perfect circle (Figure 15b). Figure 16a–c present the displacement, velocity, and acceleration curves of surge conducting 150 mm of forward and reverse rotation, and the velocity was obtained using differential software. Platform operation involved complex mechanical parts as well as the simulator cab. Accordingly, a few spikes were observed in the differential velocity due to discontinuous displacement. Figure 17a,b are the response diagrams of the three translational DoF (surge, sway, and heave) at ±300 mm displacement with an angular difference of 120 degrees between any two. Regarding heave, the laser light of the displacement meter hit the rear of the upper platform. Due to the unfavorable mechanism smoothness, ripples were observed in the extracted signals. A 3D circle was formed when the three translational DoF were spatially plotted. Figure 18a–d are the response diagrams of the three other DoF at ±26 degrees with an angular difference of 120 degrees between any two. In Figure 18b, RS232 is used to read the angular velocity of the gyroscope, which has an amplitude of ±12 degrees/s. The roll, pitch, and yaw were spatially plotted, forming a 3D circle. Figure 19 shows the x, y, and z axis accelerations of the test platform, and the impulse responses were captured by the accelerometer. The platform performed x axis acceleration and deceleration alternately at 5–15 s, and the acceleration was approximately 0.5 g, whereas the platform performed y and z axis acceleration and deceleration alternately at 22–23 s and 43–55 s, respectively, and the acceleration was also approximately 0.5 g.

**Figure 14.** *Cont*.

**Figure 14.** Comparison of the proposed method and the conventional method: (**a**) control range, (**b**) surge, sway, and heave, and (**c**) roll, pitch, and yaw.

**Figure 15.** Measured displacement responses: (**a**) responses and (**b**) trajectories.

**Figure 16.** Measured triangular wave displacement responses: (**a**) displacement, (**b**) velocity, and (**c**) acceleration.

**Figure 17.** Measured responses at different time-varying commands: (**a**) 2D view and (**b**) 3D view.

**Figure 18.** Measured sine wave degree responses: (**a**) angle, (**b**) angular velocity, (**c**) angular acceleration, and (**d**) 3D view.

**Figure 19.** Measured acceleration responses: (**a**) x axis, (**b**) y axis, and (**c**) z axis.

#### **7. Conclusions**

This study discussed the inverse kinematics of a six-axis motion platform, and the development of a monitoring system. The main contribution of this study is the design of a 6DoF crank arm mechanism to replace the expensive 6DoF linear actuator Stewart platform, 3DoF crank arm platform, and 4DoF crank arm platform, and the result of obtaining a comparable movement experience to the Stewart system. The algorithm was applied to the motion control of a 6DoF platform to control the elongation of the virtual cylinder and to determine the platform attitude required by the 6DoF platform. Unlike the conventional method, which relies on approximation to obtain the required angle, this study proposed a more accurate, real-time, and highly dependent processing method. In addition, this study used LabVIEW to create a set of testing equipment that integrates different sensors and jigs to read the angle, angular velocity, displacement, and linear acceleration of the platform in motion. Subsequently, the differential equation and sampling rate were used to calculate the angular acceleration and linear velocity. The testing equipment data were transmitted to the platform computer via RS-485 or RS-232 digital communication, allowing the platform to control the state of motion at all times. Finally, the experimental results prove the proposed algorithm capable of improving the operation of the platform stroke and thus applicable to simulators with higher specification requirements. Moreover, the implementation of the platform was based on the PID controller. Because of its simple structure, strong robustness, and good stability, the PID controller is still widely used in various fields of industrial control. However, the modern control theory of the platform is not the main topic of this study that will be considered to evaluate the design in future work.

**Funding:** This research received no external funding.

**Conflicts of Interest:** The author has no conflict of interest to declare.

#### **References**

## *Article* **Synchronization Sliding Mode Control of Closed-Kinematic Chain Robot Manipulators with Time-Delay Estimation**

**Tu Thi Cam Duong 1, Charles C. Nguyen 1 and Thien Duc Tran 2,\***

**Abstract:** Control of closed-kinematic chain manipulators (CKCM) with uncertain dynamics is a tremendous challenge due to the synchronization among actual joints and end-effectors, limited workspace, and nonexistent closed-form solutions of forward kinematics. This paper proposes a synchronization control scheme based on the concept of sliding mode control (SMC) developed for CKCMs called nonsingular fast terminal sliding mode control (NFTSMC) in conjunction with the time-delay estimation (TDE) method to address the above issues. First, the cross-coupling error is derived by combining position errors and synchronization errors to achieve the synchronization goal and then used to form a sliding mode surface of the NFTSMC. After that, a control law is developed based on the sliding mode surface to ensure faster asymptotic convergence of the errors of both position and synchronization of the CKCMs in a finite and minimal time. Then, the TDE control scheme with no prior knowledge of manipulator dynamics is employed to estimate the unknown dynamics and disturbances and thereby reject the effects of chattering caused by the NFTSMC. Lyapunov stability theorem is employed to show that the overall system controlled by the proposed control scheme achieves asymptotic convergence of errors and system stability. The performance of the proposed control is assessed by computer simulation on a 2 degrees-of-freedom (DOF) planar CKCM manipulator and simulation results are presented and discussed.

**Keywords:** closed-kinematic chain manipulator (CKCM); sliding mode control (SMC); time-delay estimation (TDE); nonsingular fast terminal sliding mode control (NFTSMC); synchronization control; model-free control

#### **1. Introduction**

Closed-kinematic chain manipulators (CKCMs) for which its motion is achieved in all degrees-of-freedom (DOF) by the combined motion of their active joints can provide higher positioning accuracy and greater payload handling capability than the conventional openkinematic chain manipulators (OKCM) composed of serial linkages or rigid bodies [1–4]. Despite the above advantages, CKCMs possess several drawbacks such as synchronization among actual joints and end-effectors, limited workspace, and nonexistent closed-form solutions of forward kinematics. To address the above issues, the concept of synchronization control has been considered, and as a result, there has been much effort in the development and implementation of error synchronization-based control schemes for CKCMs. In a synchronization-based control scheme, all joints are synchronously driven to improve CKCM's performance.

The synchronization concept was first introduced in [5], and it was applied to perform tracking control of parallel robots [6–9]. Most existing synchronized control schemes are model-based such as the computed torque control (CTC) [10], adaptive control [11,12], and sliding mode control (SMC) [13,14]. In general, a SMC scheme consists of a driving

**Citation:** Duong, T.T.C.; Nguyen, C.C.; Tran, T.D. Synchronization Sliding Mode Control of Closed-Kinematic Chain Robot Manipulators with Time-Delay Estimation. *Appl. Sci.* **2022**, *12*, 5527. https://doi.org/10.3390/ app12115527

Academic Editors: Alessandro Gasparetto, Stefano Seriani and Lorenzo Scalera

Received: 4 May 2022 Accepted: 27 May 2022 Published: 29 May 2022

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

**Copyright:** © 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https:// creativecommons.org/licenses/by/ 4.0/).

component that forces the system's trajectory to reach a stable hyperplane (sliding surface) and a design of a sliding surface that assures the plant's desired error dynamics. The implementation of the above synchronized control schemes requires a precise dynamical model of the manipulator, for which its calculation is highly computationally intensive. Moreover, it was concluded that an accurate mathematical dynamic model of CKCMs is difficult to obtain. Consequently, the above model-based control schemes are not suitable for real-time control of CKCM manipulators, particularly those with more than 2 DOFs. To tackle the above dynamic modeling issue, the authors in [15,16] considered synchronized control schemes that have simple structures and do not require knowledge of the manipulator dynamics to implement their control laws. However, those control approaches proposed for parallel manipulators can only achieve asymptotic stability, which requires infinite time to converge to an equilibrium point. In order to assure finite-time convergence, the terminal SMC (TSMC) scheme was proposed in [17–19]. Then, the advantage control scheme of TSMC, called Nonsingular Fast Terminal Sliding Mode Control (NFTSMC), was introduced in [20,21]. This developed control scheme can handle the singularity and fast convergence of the system. Recently, the NFTSMC was combined with synchronization, and this control scheme was applied to a parallel robot manipulator in [7]. It used the cross-coupling error that combined both tracking errors among the active joints and synchronization errors of a parallel robot to fix the actuator's external disturbances and dynamic uncertainties. Thus, the tracking performance of the robot improved significantly. However, the gains of this control scheme are still selected based on conservative estimates of the dynamic manipulator model. Thus, it leads to complications in the highly complicated model in calculations.

Recently, a simple model-free controller called Time-Delay Estimation (TDE) was applied to CKCMs to solve the above issue. The TDE has been employed to control robot manipulators over the last decade because of its efficient computation capability [22–24]. It used time-delayed information to estimate unknown dynamics and disturbances in a sufficiently small time-delay. Lately, the TDE has been combined with Nonsingular Terminal Sliding Mode (NTSM) control [25] to provide highly robust and precise control schemes for robots with a fast convergence finite time. To our best knowledge, control schemes combining the TDE, the NFTSMC and synchronization have not been considered for controlling CKCMs.

Based on the above analysis, a simple model-free synchronization control system for CKCMs based on TDE and NFTSMC is proposed in this paper to pursue simplicity while preserving the robustness of CKCMs.

Comparing to the existing control schemes approach for robot manipulators, the contribution of this paper can be marked as the following significant points:

This paper presents the computer simulation studies of the performance of the proposed control scheme using Matlab-Simulink. Comparative studies with other existing control schemes will be conducted.

The paper is organized as follows. Section 2 presents the structure of the proposed control scheme. Section 3 presents the control scheme analysis without TDE while Section 4 presents the description of subsystems and discusses their simplicity and efficiency. The stability and the stability provided by the control scheme is analyzed and discussed in Section 5. Section 6 presents and discusses results of computer simulation conducted to study the performance of the control scheme applied to control the motion of a 2 DOF CKCM manipulator in comparison with other existing control schemes. Finally, Section 7 concludes the paper with a summary of the paper and final comments.

#### **2. Structure of the Control Scheme**

*2.1. Kinematic Scheme of the CKCM*

The structures of the 2 DOF CKCM manipulator and the frame assignment are shown in Figures 1 and 2, respectively. Figure 1 shows a two DOF CKCM manipulator, which is a special case of the n-DOF CKCM manipulator. It consists of an end-effector platform and a fixed upper platform interconnected by two links. All links act in a parallel manner and share the same payload.

**Figure 1.** Architecture of the 2 DOF CKCM manipulator.

**Figure 2.** Frame assignment for the 2 DOF planar CKCM manipulator.

Figure 2 depicts the frame assignment for the two DOF planar CKCM manipulator with a two-dimensional coordinate system (*x*, *y*). From this figure, we obtain the following:

$$q\_1^2 = \mathbf{x}^2 + \mathbf{y}^2 \tag{1}$$

$$q\_2^2 = (d - x)^2 + y^2 \tag{2}$$

where *d* is the distance between the pin joints hanging the two actuators, (*x*, *y*) represents the Cartesian position of the end-effector, and *q*2 and *q*2 are the length of the first and second legs, respectively.

We see that (1) and (2) represent a closed-form solution for the inverse kinematics in the sense that they can be used to determine the leg lengths *q*1 and *q*2 that yield a desired Cartesian position (*x*, *y*).

Moreover, from (1) and (2), the Cartesian variables *x* and *y* can be obtained as follows.

$$\mathbf{x} = \frac{q\_1^2 - q\_2^2 + d^2}{2d} \tag{3}$$

$$y = \frac{-\sqrt{4d^2q\_1^2 - \left(q\_1^2 - q\_2^2 + d^2\right)}}{2d} \tag{4}$$

We see that (3) and (4) represent a closed-form solution for the forward kinematics in the sense that a Cartesian position can be determined based the actual leg lengths *q*1 and *q*2. We note that, due to the small number of DOFs of this manipulator, it has closed-form solutions for both its forward and inverse kinematics.

#### *2.2. Structure of the Proposed Control Scheme*

The structure of the proposed control scheme is presented in Figure 2. It mainly consists of three subsystems: the Synchronization Subsystem, the NFTSMC Subsystem. and the TDE Subsystem.

The notations used in Figure 3 are listed below:

The operation of the proposed control scheme applied to control the motion of an n-DOF CKCM is described as follows. The desired Cartesian vector **x***d* of the manipulator configuration (position and orientation) specified by the user or obtained by a trajectory planner is transformed to its corresponding desired joint vector **q***d* by the CKCM Inverse Kinematic Transformation. The desired joint vector **q***d* and the actual joint vector **q** (provided by the CKCM joint sensors) are supplied to the Synchronization Subsystem, which then produces the position errors **e***i* = **q***di* − **q***i* of every *i*th active joint, the synchronization error **e***S*, and the cross-coupling error **e***c* between the active joints. The cross-coupling error **e***c* is then inputted to the NFTSMC subsystem that in turn based on **e***c* defines a

sliding surface to achieve the above desired behavior of the errors. Next, the control law **u** composed based on the sliding surface will be a driving component forcing the system's trajectory to reach a stable hyperplane (sliding surface). This control law **u** will then serve as part of the input τ to the CKCM and is developed to ensure asymptotic convergence of the errors of both position and synchronization of the CKCM in a finite and minimal time. The TDE subsystem uses the past control input and acceleration of the CKCM to estimate the CKCM dynamics and the disturbance torques, which are required for the implementation of the input τ to CKCM.

**Figure 3.** Structure of the Proposed Control Scheme.

#### **3. Control Scheme Analysis without TDE**

The dynamics of an n-DOF CKCM manipulator can be represented in joint-space as follows [25]:

$$\mathbf{M}(\mathbf{q})\ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}\dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{G}(\mathbf{q}) + \mathbf{F}(\mathbf{q}\dot{\mathbf{q}}) + \boldsymbol{\pi}\_d = \boldsymbol{\pi} \tag{5}$$

where **M**(**q**) ∈ R*n*×*n* stands for the generalized inertia matrix, **C q**, **. q** ∈ R*n*×*n* is the Coriolis/centripetal matrix, **G**(**q**) ∈ R*n* is the gravitational vector, and **F q**, **. q** ∈ R*n* is the friction forces.

Suppose system (5) can be decomposed into n decoupled systems and is presented by the following:

$$\mathbf{M}\ddot{\mathbf{q}} + \mathbf{H}(\mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}}) = \tau \tag{6}$$

where **M** is a constant diagonal matrix, and **H**(**q, . q,.. q**) represents the necessary CKCM dynamics and the disturbance torques. Then, from (5) and (6), we obtain the following.

$$\mathbf{H}(\mathbf{q}, \dot{\mathbf{q}}, \ddot{\mathbf{q}}) = \left[\mathbf{M}(\mathbf{q}) - \overline{\mathbf{M}}\right] \ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} + \mathbf{G}(\mathbf{q}) + \mathbf{F}(\mathbf{q}, \dot{\mathbf{q}}) + \pi\_d \tag{7}$$

Now we apply an input τ such that the following is the case.

$$
\mathbf{\pi} = \overline{\mathbf{M}} \mathbf{u} + \mathbf{H} (\mathbf{q} \dot{\mathbf{q}} \ddot{\mathbf{q}}) \tag{8}
$$

In order to implement (8), the control system must evaluate **H**(**q, . q,.. q**) which in light of (7) requires heavy computation and thereby making the proposed control scheme impractical and not suitable for real-time control applications. Consequently, some computationally efficient estimation of **H**(**q, . q,.. q**) is needed for the control scheme, which the TDE Subsystem could provide. Finally, the Synchronization Subsystem will enhance the overall performance of the control system by using the synchronization errors instead of the conventional joint errors. Detailed development of the above subsystems will be presented below.

#### **4. Description of Subsystems**

This section presents the function of the three subsystems of the control structure including the Synchronization Subsystem, the NFTSMC Subsystem, and the TDE Subsystem.

#### *4.1. The Synchronization Subsystem*

In this section, the error equations will be developed to achieve the synchronization goal. First the trajectory tracking error **e***i* of the *i*th active joint is defined as follows:

$$\mathbf{e}\_i(t) = \mathbf{q}\_{d\_i}(t) - \mathbf{q}\_i(t) \tag{9}$$

where **q***di* (*t*) and **q***i* (*t*) denote the desired and actual trajectories of the *i*th active joint, respectively. Then, the tracking error vector **e**(*t*) can be written as follows.

$$\mathbf{e}(t) = \begin{bmatrix} \mathbf{e}\_1(t) \ \mathbf{e}\_2(t) \dots \mathbf{e}\_n(t) \end{bmatrix}^T \tag{10}$$

The synchronization goal is to make the tracking errors of all active joints identical at all times, which can be achieved if the following is the case.

$$\mathbf{e}\_1(t) = \mathbf{e}\_2(t) = \dots \mathbf{e}\_{ll}(t) \tag{11}$$

In order for (11) to be valid, a control scheme must be aware of all the joint errors and must control the motions of all joints, thereby resulting into possible control and communication errors and heavy real-time computational requirements. Alternatively, (11) can be satisfied by achieving its following sub-goals [8]:

$$\begin{aligned} \mathbf{e}\_{\mathfrak{s}\_1}(t) &= 2\mathbf{e}\_1(t) - [\mathbf{e}\_2(t) + \mathbf{e}\_n(t)] \\ &\vdots \\ \mathbf{e}\_{\mathfrak{s}\_i}(t) &= 2\mathbf{e}\_i(t) - [\mathbf{e}\_{i+1}(t) + \mathbf{e}\_{i-1}(t)] \\ &\vdots \\ \mathbf{e}\_{\mathfrak{s}\_n}(t) &= 2\mathbf{e}\_n(t) - [\mathbf{e}\_{n-1}(t) + \mathbf{e}\_1(t)] \end{aligned} \tag{12}$$

where **e***si* (*t*) presents the synchronization errors of the *i*th active joint.

It is evident that if all synchronization errors in (12) are equal to zero, then the original synchronization goal stated in (11) is automatically achieved.

From (12), a synchronization error vector **e***s* can be written as follows:

$$\mathbf{e}\_{\mathbf{f}}(t) = \begin{bmatrix} 2 & -1 & 0 & \cdots & -1 \\ -1 & 2 & -1 & \cdots & 0 \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ 0 & \cdots & -1 & 2 & -1 \\ -1 & 0 & \cdots & -1 & 2 \end{bmatrix} \begin{bmatrix} c\_1(t) \\ c\_2(t) \\ \vdots \\ c\_{n-1}(t) \\ c\_n(t) \end{bmatrix} = \mathbf{C} \mathbf{e}(t) \tag{13}$$

where **C** is the synchronization transformation matrix and **e***s*(*t*) = [*es*1 (*t*)*es*2 (*t*)*es*3 (*t*)...*esn* (*t*)] *T*. The cross-coupling error vector that combines both tracking errors and synchronization errors is defined as follows:

$$\mathbf{e}\_{\mathbf{c}}(t) = \mathbf{e}(t) + \alpha \mathbf{e}\_{\mathbf{s}}(t) = (\mathbf{I} + \alpha \mathbf{C})\mathbf{e}(t) \tag{14}$$

where **I** is the *n* × *n* identity matrix, and α is an *n* × *n* diagonal positive definite matrix. Since every leading principal sub-matrix of (**I** + α**C**) has positive determinant, (**I** + α**C**) is positive definite. [26]

**Remark 1.** *Assuming that all the elements of matrix α are very small, then if* **e***c*(*t*) *is controlled such that as t* → ∞*,* **e***c*(*t*) → 0 *then* **e**(*t*) → 0 *and then* **e***s*(*t*) → 0 *and finally* **e***i*(*t*) = **e***i*+1(*t*) *(synchronization goal).*

#### *4.2. The NFTSMC and TDE Subsystems*

This section presents the development of the control law of the NFTSMC Subsystem in conjunction with the TDE Subsystem.

#### 4.2.1. Preliminaries and Notations

The preliminaries and notations can be stated as follow

$$\mathbf{x}^{[c]} = |\mathbf{x}|^c \text{sign}(\mathbf{x})\_\prime \text{ where } c > 0$$

It can be easily verified that as *c* ≥ 1, the following is the case.

$$\frac{d}{dt}\mathbf{x}^{[\varepsilon]} = c|\mathbf{x}|^{\varepsilon-1}\dot{\mathbf{x}}$$

The sign function is defined as follows.

$$\text{sign}(\mathbf{x}) = \begin{cases} 1 & \text{if } \mathbf{x} > 0 \\ 0 & \text{if } \mathbf{x} = 0 \\ -1 & \text{if } \mathbf{x} < 0 \end{cases}$$

The power of error vectors is defined as follows.

$$\begin{aligned} \mathbf{e}^{\left[\varphi\right]} &:= \left(\varepsilon\_1^{\left[\varphi\right]}, \dots, \varepsilon\_n^{\left[\varphi\right]}\right)^T \in \mathbb{R}^n\\ \dot{\mathbf{e}}^{\left[\varphi\right]} &:= \left(\varepsilon\_1^{\left[\varphi\right]}, \dots, \dot{\varepsilon}\_1^{\left[\varphi\right]}\right)^T \in \mathbb{R}^n\\ \left|\mathbf{e}\right|^{\varphi-1} &:= \operatorname{diag}\left(\left|\varepsilon\_1\right|^{\varphi-1}, \dots, \left|\varepsilon\_n\right|^{\varphi-1}\right) \in \mathbb{R}^{n \times n}\\ \left|\dot{\mathbf{e}}\right|^{\varphi-1} &:= \operatorname{diag}\left(\left|\dot{\varepsilon}\_1\right|^{\varphi-1}, \dots, \left|\dot{\varepsilon}\_n\right|^{\varphi-1}\right) \in \mathbb{R}^{n \times n} \end{aligned}$$

The spectral norm **A** of a matrix **A** ∈ R*n*×*m* is defined as **A** = *λ*max, **ATA** where *λ*max, **ATA** is the biggest eigenvalue of **ATA**.

#### 4.2.2. The NFTSMC and TDE Sybstems Design

First a nonsingular terminal sliding surface is defined as [20,27].

$$\mathbf{s} = \mathbf{e}\_{\mathbf{c}} + \mathbf{K}\_1 \mathbf{e}\_{\mathbf{c}}^{p\_1/q\_1} + \mathbf{K}\_2 \dot{\mathbf{e}}\_{\mathbf{c}}^{p\_2/q\_2} \tag{15}$$

where **K**1 and **K**2 are diagonal design matrices, 1 < *p*1/*q*1 < 2, 1 < *p*2/*q*2 < 2, and *p*1, *p*2, *q*1, and *q*2 are positive odd integers.

As discussed above, the implementation of (8) requires the computation of **H**(**q, . q,.. q**), which is in light of (7) highly computationally intensive. Thus, an estimate of **H**(**q, . q,.. q**) is needed. We assume that *L* is the smallest obtainable time between which **H**(**q, . q,.. q**) remains almost unchanged, such that an estimate of **H**(**q, . q,.. q**), namely **H**ˆ (**q, . q,.. q**) is equal to **H**(**q, . q,.. q**)*t*−*L* which is **H**(**q, . q,.. q**) evaluated at (*t*−*L*). In other words, we obtain [22] the following:

$$
\hat{\mathbf{H}}(\mathbf{q}\dot{\mathbf{q}}\ddot{\mathbf{q}}) = \mathbf{H}(\mathbf{q}\dot{\mathbf{q}}\ddot{\mathbf{q}}\ddot{\mathbf{q}})\_{l-L} \tag{16}
$$

where **.. q***t*−*L* can be computed as follows.

$$\ddot{\mathbf{q}}\_{t-L} = \frac{\frac{\mathbf{q}\_t - \mathbf{q}\_{t-L}}{L} - \frac{\mathbf{q}\_{t-L} - \mathbf{q}\_{t-2L}}{L}}{L} = \frac{\left(\mathbf{q}\_t - 2\mathbf{q}\_{t-L} + \mathbf{q}\_{t-2L}\right)}{L^2} \tag{17}$$

**..**

From (6) and (16), we obtain the following.

$$
\hat{\mathbf{H}}(\mathbf{q}\dot{\mathbf{q}}\ddot{\mathbf{q}}) = \mathbf{r}\_{t-L} - \nabla \ddot{\mathbf{q}}\_{t-L} \tag{18}
$$

Consequently, (8) can be expressed as follows.

$$
\boldsymbol{\pi} = \mathbf{\hat{H}}(\mathbf{q}\_{\boldsymbol{\rho}} \dot{\mathbf{q}}\_{\boldsymbol{\rho}} \ddot{\mathbf{q}}) + \mathbf{\overline{M}u} \tag{19}
$$

We proceed to develop a control **u** as follows.

$$\mathbf{u} = \ddot{\mathbf{q}}\_d + \frac{q\_2}{p\_2} [\mathbf{K}\_2(\mathbf{I} + \alpha \mathbf{C})]^{-1} \left[ |\dot{\mathbf{e}}\_c|^{p\_2/q\_2 - 1} \right]^{-1} \left( 1 + \frac{p\_1}{q\_1} \mathbf{K}\_1 |\mathbf{e}\_c|^{p\_1/q\_1 - 1} \right) \dot{\mathbf{e}}\_c + \mathbf{K} \mathbf{s} + \mathbf{K}\_{\text{ow}} \text{sign}(\mathbf{s}) \tag{20}$$

where **K** and **K***sw* are diagonal design matrices, sign(**s**) = (sign(**s**1), . . . , sign(**s***n*)) *T* ∈ R*n*. **x***d* ∈ R*n*.

Thus, replacing **u** in (19) by (20) and using (18), we obtain the following.

$$\mathbf{r} = \underbrace{\left(\mathbf{r}\_{t-L} - \overline{\mathbf{M}}\overline{\mathbf{q}}\_{t-L}\right)}\_{\text{TDE}} + \underbrace{\mathbf{M}\left[\overline{\mathbf{q}}\_{d} + \frac{q\_{2}}{p\_{2}}\left[\mathbf{K}\_{2}(\mathbf{I} + \mathbf{c}\mathbf{C})\right]^{-1}\left[\left|\dot{\mathbf{e}}\_{c}\right|^{p\_{2}/q\_{2}-1}\right]^{-1}\left(1 + \frac{p\_{1}}{q\_{1}}\mathbf{K}\_{1}|\mathbf{e}\_{c}|^{p\_{1}/q\_{1}-1}\right)\dot{\mathbf{e}}\_{c} + \mathbf{K}\mathbf{s} + \mathbf{K}\_{\text{sur}}\text{sign}(\mathbf{s})\right]}\_{\text{NFTSM control}} \tag{21}$$

As indicated above in Equation (21), CKCM input τ consists of two main components: a TDE-based input and an NFTSM input. The TDE-based component minimizes the impact of the unknown CKCM dynamics while the NFTSM component forces the cross-coupling errors **e***c* and tracking error **e** to converge to zero asymptotically. Furthermore, in light of the application of the TDE Subsystem as presented above and reflected in Figure 1, the TDE-based component can be derived with the estimate **H**ˆ (**q, . q,.. q**) of **H**(**q, . q,.. q**) using (16), instead of having to compute **H**(**q, . q,.. q**) directly, thereby making the control scheme highly efficient.

#### **5. Stability Analysis**

This section presents the stability analysis of the control scheme using the Lyapunov Theorem. Substituting τ in (6) by (21), using (9) and (14) and solving for **.. e***c*, after rearranging some terms, we obtain the following:

$$\ddot{\mathbf{e}}\_{\varepsilon} = -\left\{ \frac{q\_2}{p\_2} |\mathbf{K}\_2|^{-1} \left[ |\dot{\mathbf{e}}\_{\varepsilon}|^{p\_2/q\_2 - 1} \right]^{-1} \left( 1 + \frac{p\_1}{q\_1} \mathbf{K}\_1 |\mathbf{e}\_{\varepsilon}|^{p\_1/q\_1 - 1} \right) \dot{\mathbf{e}}\_{\varepsilon} + (\mathbf{I} + \mathbf{a}\mathbf{C}) [\mathbf{K}\mathbf{s} + \mathbf{K}\_{\text{HU}} \text{sign}(\mathbf{s})] \right. \\ \left. + (\mathbf{I} + \mathbf{a}\mathbf{C}) \varepsilon \mathbf{I} \right] \varepsilon \dot{\mathbf{e}}\_{\varepsilon} \right\}$$

where the TDE error ε is defined as follows.

$$\boldsymbol{\varepsilon} = \overline{\mathbf{M}}^{-1} \left[ \mathbf{H}(\mathbf{q}\_{\nu}\dot{\mathbf{q}}\_{\nu}\ddot{\mathbf{q}}) - \hat{\mathbf{H}}(\mathbf{q}\_{\nu}\dot{\mathbf{q}}\_{\nu}\ddot{\mathbf{q}}) \right] \tag{23}$$

Using (15), **. s** can be obtained as follows.

$$\dot{\mathbf{s}} = \dot{\mathbf{e}}\_{\varepsilon} + \frac{p\_1}{q\_1} \mathbf{K}\_1 |\mathbf{e}\_{\varepsilon}|^{p\_1/q\_1 - 1} \dot{\mathbf{e}}\_{\varepsilon} + \frac{p\_2}{q\_2} \mathbf{K}\_2 |\dot{\mathbf{e}}\_{\varepsilon}|^{p\_2/q\_2 - 1} \ddot{\mathbf{e}}\_{\varepsilon} \tag{24}$$

Next, we consider a candidate Lyapunov function *V* = **s**T**s** 2 . Using (24), the derivative of *V* with respect to time is obtained as follows.

$$\dot{V} = \mathbf{s}^{\mathrm{T}} \dot{\mathbf{s}} = \mathbf{s}^{\mathrm{T}} \left[ \dot{\mathbf{e}}\_{\mathrm{c}} + \frac{p\_{\mathrm{1}}}{q\_{1}} \mathbf{K}\_{1} |\mathbf{e}\_{\mathrm{c}}|^{p\_{1}/q\_{1}-1} \dot{\mathbf{e}}\_{\mathrm{c}} + \frac{p\_{\mathrm{2}}}{q\_{2}} \mathbf{K}\_{2} |\dot{\mathbf{e}}\_{\mathrm{c}}|^{p\_{2}/q\_{2}-1} \dot{\mathbf{e}}\_{\mathrm{c}} \right] \tag{25}$$

Applying (24) in (25) provides the following.

$$\dot{V} = \mathbf{s}^{\mathrm{T}} \left\{ \frac{p\_2}{q\_2} (\mathbf{I} + \alpha \mathbf{C}) \mathbf{K}\_2 \left| \dot{\mathbf{e}}\_{\varepsilon} \right|^{p\_1/q\_1 - 1} \left[ -\mathbf{K} \mathbf{s} - \mathbf{K}\_{\mathrm{SW}} \text{sign}(\mathbf{s}) + \varepsilon \right] \right\} \tag{26}$$

In other to achieve the asymptotic stability of **. s** about the equilibrium point **s** = 0, the following conditions must be satisfied [28]:

Condition (b) is obviously satisfied by *V*. In (26), since *p*2 and *q*2 are positive integers and 1 < *p*2/*q*2 < 2, there is ( ( **. e***ci* ( ( *p*2/*q*2−1 > 0 for **. e***ci* = 0 [29].

Thus, (26) can be presented as follows.

$$\dot{V} = \mathbf{s}^{\mathsf{T}} \left\{ \frac{p\_2}{q\_2} (\mathbf{I} + \mathfrak{ac}\mathbf{C}) \mathbf{K}\_2 \big| \dot{\mathbf{e}}\_{\mathsf{c}} \right\}^{p\_1/q\_1 - 1} \left[ -\mathbf{K}\mathbf{s} - \mathbf{K}\_{\mathsf{c}W} \text{sign}(\mathbf{s}) + \mathfrak{c} \right] \right\} \leq \mathbf{s}^{\mathsf{T}} \left[ -\mathbf{K}\mathbf{s} - \mathbf{K}\_{\mathsf{c}W} \text{sign}(\mathbf{s}) + \mathfrak{c} \right] \tag{27}$$

The derivative of the candidate Lyapunov function (27) is negative definite if the following is the case:

$$\{\mathbf{K}\_{\rm sw}\}\_{ii} > \|\mathfrak{e}\_{i}\|\tag{28}$$

where •*ii* denotes *i*th diagonal element of •.

Thus, if ε is bounded, the stability condition (28) ensures that the time derivative of the candidate Lyapunov function is negative and the cross-coupling error is bounded.

Using (19), (6) becomes the following.

$$\mathbf{H}(\mathbf{q}\dot{\mathbf{q}}\ddot{\mathbf{q}}) - \hat{\mathbf{H}}(\mathbf{q}\dot{\mathbf{q}}\ddot{\mathbf{q}}\ddot{\mathbf{q}}) = \overline{\mathbf{M}}(\mathbf{u} - \ddot{\mathbf{q}}) \tag{29}$$

Applying (29), the TDE error in (23) is given as follows.

$$
\varepsilon = \mathbf{u} - \ddot{\mathbf{q}} \tag{30}
$$

From (5), the acceleration **.. q** can be determined as follows.

$$\ddot{\mathbf{q}} = \mathbf{M}^{-1}(\mathbf{q}) \left[ \pi - \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}}) \dot{\mathbf{q}} - \mathbf{G}(\mathbf{q}) - \mathbf{F}(\mathbf{q}, \dot{\mathbf{q}}) - \pi\_d \right] \tag{31}$$

Substituting (31) into (30) yields the following.

$$\mathbf{M}\varepsilon = \mathbf{M}\mathbf{u} + \left(\mathbf{C}\left(\mathbf{q}, \dot{\mathbf{q}}\right)\dot{\mathbf{q}} + \mathbf{G}\left(\mathbf{q}\right) + \mathbf{F}\left(\mathbf{q}, \dot{\mathbf{q}}\right) + \mathbf{\tau}\_d - \mathbf{\tau}\right) \tag{32}$$

Then, using (16) and (19), (32) becomes the following.

$$\mathbf{M}\varepsilon = \mathbf{M}\mathbf{u} + \left(\mathbf{C}(\mathbf{q}\dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{G}(\mathbf{q}) + \mathbf{F}(\mathbf{q}\_l\dot{\mathbf{q}}) + \boldsymbol{\tau}\_d - \overline{\mathbf{M}}\mathbf{u} - \mathbf{H}(\mathbf{q}\_l\dot{\mathbf{q}}\_l\ddot{\mathbf{q}})\_{t-L}\right) \tag{33}$$

From (7), the delayed nonlinear term can be derived as follows.

$$\mathbf{H}(\mathbf{q}\dot{\mathbf{q}}\ddot{\mathbf{q}})\_{t-L} = \left(\mathbf{M}\_{t-L} - \overline{\mathbf{M}}\right)\ddot{\mathbf{q}}\_{t-L} + \left(\mathbf{C}(\mathbf{q}\dot{\mathbf{q}})\dot{\mathbf{q}}\right)\_{t-L} + \left(\mathbf{G}(\mathbf{q})\right)\_{t-L} + \left(\mathbf{F}(\mathbf{q}\dot{\mathbf{q}})\right)\_{t-L} + (\mathbf{\tau}\_{d})\_{t-L} \tag{34}$$

Substituting (34) into (33) provides the following:

$$\mathbf{M}\varepsilon = (\mathbf{M} - \overline{\mathbf{M}})\mathbf{u} - (\mathbf{M}\_{t-L} - \overline{\mathbf{M}})\ddot{\mathbf{q}}\_{t-L} + \boldsymbol{\Omega} \tag{35}$$

where the following is the case.

$$\mathbf{M} = \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{G}(\mathbf{q}) + \mathbf{F}(\mathbf{q}, \dot{\mathbf{q}}) + \boldsymbol{\pi}\_d - \left(\mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}}\right)\_{t-L} - \left(\mathbf{G}(\mathbf{q})\right)\_{t-L} - \left(\mathbf{F}(\mathbf{q}, \dot{\mathbf{q}})\right)\_{t-L} - \left(\boldsymbol{\pi}\_d\right)\_{t-L} \tag{36}$$

The friction term **F** in (36) can be divided as **F** = **F***V* + **F***C*, where **F***V* denotes that the viscous friction is continuous, and **F***C* denotes that the Coulomb friction is bounded and discontinuous at velocity reversal [25]. Next, we divide **Ω** into continuous term and discontinuous term to obtain the following:

$$\mathbf{U} \triangleq \mathbf{U}\_{\text{con}} + \mathbf{U}\_{\text{discon}} \tag{37}$$

where the following is the case.

$$\begin{cases} \mathbf{D}\_{\text{conv}} \triangleq \mathbf{C} \big( \mathbf{q}, \dot{\mathbf{q}} \big) \dot{\mathbf{q}} + \mathbf{G} \big( \mathbf{q} \big) + \mathbf{F} \boldsymbol{v} + \mathbf{r}\_{d} - \left( \mathbf{C} \big( \mathbf{q}, \dot{\mathbf{q}} \big) \dot{\mathbf{q}} \big)\_{t-L} - \left( \mathbf{G} \big( \mathbf{q} \big) \big)\_{t-L} - \left( \mathbf{F} \big( \dot{\mathbf{q}} \big) \big)\_{t-L} - \left( \mathbf{r}\_{d} \right)\_{t-L} \right) \right. \\ \mathbf{D}\_{\text{diss}} \triangleq \mathbf{F}\_{\text{C}} - \left( \mathbf{F}\_{\text{C}} \right)\_{t-L} \end{cases} \tag{38}$$

If **C q, . q . q** + **G**(**q**) + **F***V* + τ*d* is continuous and bounded, then **Ω**con = **O** *L*2 , where **O** is used to describe the error term in an approximation to a mathematical function [30]. In addition, the discontinuous term **Ω**discon is described as follows.

$$\Omega\_{\text{disccon}} \le \begin{cases} \quad \mathbf{b}\_{\prime} \text{ at velocity reversal} \\ \quad 0, \text{ otherwise.} \end{cases} \tag{39}$$

Thus, **Ω** is bounded by the following:

$$\mathbf{D} \le \mathbf{b} + \mathbf{O}\left(L^2\right) \tag{40}$$

for a sufficient small *L*, where **b** is a constant vector. The approximation error can be made small by reducing sampling time *L*.

From (30), the delayed nonlinear term is given by the following.

$$
\ddot{\mathbf{q}}\_{t-L} = \mathbf{u}\_{t-L} - \varepsilon\_{t-L} \tag{41}
$$

Substituting (41) to (35) yields the following

$$\begin{array}{lcl} \mathbf{M}\mathbf{\varepsilon} &= \left[ \left( \mathbf{M} - \overline{\mathbf{M}} \right) \mathbf{u} - \left( \mathbf{M} - \overline{\mathbf{M}} \right) \ddot{\mathbf{q}}\_{t-L} + \left( \mathbf{M} - \mathbf{M}\_{t-L} \right) \ddot{\mathbf{q}}\_{t-L} + \boldsymbol{\Omega} \right] \\ &= \left( \mathbf{M} - \overline{\mathbf{M}} \right) \varepsilon\_{t-L} + \left[ \left( \mathbf{M} - \overline{\mathbf{M}} \right) \left( \mathbf{u} - \mathbf{u}\_{t-L} \right) + \left( \mathbf{M} - \mathbf{M}\_{t-L} \right) \ddot{\mathbf{q}}\_{t-L} + \boldsymbol{\Omega} \right] \end{array} \tag{42}$$

Therefore, from (42), ε can be determined as follows:

$$
\varepsilon = \mathbb{E}\varepsilon\_{t-L} + \mathbb{E}\mu\_1 + \mu\_2 \tag{43}
$$

where the following is the case.

$$\mathbf{E} = \mathbf{I} - \mathbf{M}^{-1} \overline{\mathbf{M}}, \ \mu\_1 = \mathbf{u} - \mathbf{u}\_{t-L}, \ \mu\_2 = \mathbf{M}^{-1} \left[ (\mathbf{M} - \mathbf{M}\_{t-L}) \ddot{\mathbf{q}}\_{t-L} + \mathbf{\Omega} \right] \tag{44}$$

For a sufficiently small-time delay *L*, μ1 and μ2 are bounded.

There is a conformal mapping on the complex plane from continuous-time to discretetime [31]. In the discrete time domain, (43) is represented as follows.

$$\mathfrak{e}(k) = \mathbb{E}(k)\mathfrak{e}(k-1) + \mathbb{E}(k)\mathfrak{\mu}\_1(k) + \mathfrak{\mu}\_2(k) \tag{45}$$

We assume **E** < 1 by properly selecting **M** [31]. Thus, the eigenvalues of **E**(*k*) reside inside a unit circle [32]. As a result, (45) is asymptotically bounded with bounded function μ1 and μ2. Therefore, **E** < 1 implies the boundness of the ε in (43).

When ε is bounded, then (28) is satisfied and as a result, the candidate Lyapunov function (27) is negative definite. Thus, this assures of the boundedness of the crosscoupling error. Furthermore, when the cross-coupling error is bounded, the tracking error is bounded. Consequently, all the above errors and the TDE error ε will never grow out of bound and the system is uniformly stable.

#### **6. Computer Simulation Study**

#### *6.1. Simulation Setup*

The proposed scheme can be applied for a general n DOF CKCM manipulator. However, the implementation and application for a n DOF manipulator require massive computation effort and hardware complexity. Therefore, a 2 DOF CKCM robot manipulator that resembles a special case of the complete n DOF manipulation was designed and built for

the purpose of testing of the results obtained in our projects. Hence, this article is devoted to investigate the simulation study of the obtained results on the 2 DOF manipulator.

In this section, computer simulation will be conducted to study the performance of the above NFTSMC in comparison to other existing control schemes when they are employed to control the motion of a 2-DOF CKCM.

The computer simulation study for the NFTSMC is described in the block diagram given in Figure 3 when *n* = 2 since this manipulator has two DOFs, and is designed in MATLAB/Simulink environment in Figure 4. When other existing control schemes are applied, then the block labeled as *Proposed* in Figure 3 is replaced by their particular control schemes. For this particular manipulator, it is noted that the length of an actuator is denoted as its joint variable. To facilitate the analysis of tracking errors in Cartesian space, the actual joint variables **q** and their joint velocities **. q** of the CKCM are converted to their corresponding Cartesian variables by using the CKCM forward kinematic transformation, which is also a closed-form solution due to the number of DOFs of this manipulator.

**Figure 4.** Control design in MatLab/Simulink environment.