{'fraction_non_alphanumeric': 0.03345517093098258, 'fraction_numerical': 0.012771447000645022, 'mean_word_length': 4.586355993274081, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 5, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Inverse and Forward Kinematic Analysis of a 6-DOF Parallel Manipulator Utilizing a Circular Guide

: The proposed study focuses on the inverse and forward kinematic analysis of a novel 6-DOF parallel manipulator with a circular guide. In comparison with the known schemes of such manipulators, the structure of the proposed one excludes the collision of carriages when they move along the circular guide. This is achieved by using cranks (links that provide an unlimited rotational angle) in the manipulator kinematic chains. In this case, all drives stay ﬁxed on the base. The kinematic analysis provides analytical relationships between the end-effector coordinates and six controlled movements in drives (driven coordinates). Examples demonstrate the implementation of the suggested algorithms. For the inverse kinematics, the solution is found given the position and orientation of the end-effector. For the forward kinematics, various assembly modes of the manipulator are obtained for the same given values of the driven coordinates. The study also discusses how to choose the links lengths to maximize the rotational capabilities of the end-effector and provides a calculation of such capabilities for the chosen manipulator design.


Introduction
Currently, manipulators designed with a parallel structure are becoming more widespread in technology. Many different types of these manipulators are known and they provide exceptional functional properties [1][2][3][4]. Herein parallel manipulators equipped with a circular guide are quite promising for practical application. Their kinematic chains are supported by movable carriages, which allow chains to switch the position of the end-effector relative to a fixed link designed as a circular guide [5,6].
A circular guide provides the end-effector with a large rotational angle around the vertical axis that is quite an important property for many practical applications. In addition, the design features of manipulators with a circular guide ensure the manipulation of heavy objects. Due to the possibility of realization of these important functional properties, such manipulators have become the object of many studies in recent years.
The first parallel manipulator with a circular guide was mentioned in [7] in 1983. This is a six-degree-of-freedom (6-DOF) manipulator, in which six kinematic chains couple in pairs at the end-effector (platform). This manipulator provides a full range of motions of the end-effector with complete rotation around the vertical axis, and it has three additional mobilities that do not affect the trajectories of the end-effector. The kinematics of this manipulator and its workspace analysis are presented in [8]. Later, similar kinematic schemes of 6-DOF parallel manipulators, including exclusively joints with rotational DOFs, were presented in [9][10][11][12][13].
An advanced scheme of the 6-DOF manipulator with a circular guide [7] is presented in [14]. A study of its kinematics and working zone analysis is presented in [15]. A similar manipulator with kinematic chains having different types of joints, including universal joints, is presented in [16].
A different structure of the 6-DOF manipulator with a circular guide is proposed in [17,18]. The manipulator designed with three kinematic chains and equipped with prismatic joints, which allow the manipulator to have large displacement along the vertical axis. A three-DOF manipulator with a circular guide is shown in [19]. It was designed on the basis of spherical kinematic chains. Its principal difference from the spherical manipulator is in increased rotational angle around the vertical axis. In [20], this manipulator is presented with a reconfigurable kinematic design that allows changing the size of its working zone. Another variation of the three-DOF spherical manipulator with a circular guide proposed in [21]. The manipulator includes kinematic chains 3-RUS and 1-S. In [22], a manipulator with a circular guide is presented as a one-DOF system. The transition from six drives to one is realized by installing an additional lever mechanism inside the circular guide, which provides the dependent movement of all carriages from a single drive. All of the above discussed manipulators with a circular guide, with the exception of the manipulator given in [22], have drives mounted exclusively on the movable links (carriages). Moreover, the structure of these manipulators is organized in such a way that the possibility of collision between the adjacent carriages is not eliminated.
In this regard, the proposed study aims at the designing and analysis of such a manipulator with a circular guide that provides placement of all drives fixed on the base, ensures elimination of the possibility of collision between the adjacent carriages while having a sufficiently large rotation of the end-effector around the vertical axis and providing six DOFs.

Manipulator Architecture
Let us consider the structure and functional features of the proposed 6-DOF manipulator with a circular guide. Figure 1 presents its CAD (computer-aided design) model (virtual prototype). The model allows not only to fabricate its physical prototype but also to perform numerical calculations and experiments. The operation of the CAD model is presented in the movie in Supplementary Materials. The key elements in Figure 1 are: 1-circular guide (fixed link); 2-drive; 3-crank; 4-slide block; 5-swinging arm; 6-carriage; 7-leg; 8-platform (end-effector). Slide block 4 and swinging arm 5 form a prismatic joint, swinging arm 5 and carriage 6 form a single link (rigid connection), leg 7 is connected on both sides with carriage 6 and platform 8 by spherical joints. Figure 1 also demonstrates the main constructive assemblies of the manipulator: I-the coupling of leg 7 and platform 8 through spherical joints; II-the coupling of six swinging arms 5, which converge in the center of circular guide 1 and have a common rotational axis; III-the coupling of links 1-6. In each of the six kinematic chains of the manipulator, the input motions pass from cranks 2 to slide blocks 4 and then to swinging arms 5, turning them at certain angles. Swinging arms 5 displace carriages 6 along circular guide 1. The motion transmits to legs 7 and then to platform 8. Thus, six independently actuated kinematic chains provide the change of position and orientation of platform 8.
One can note the following design features of the proposed manipulator: • all drives stay fixed on the base; • correctly chosen cranks' lengths allow eliminating the possibility of collision between the adjacent carriages; • sufficiently large rotation of the end-effector around the vertical axis.

Kinematic Analysis
Let us consider the solution of the inverse and forward position problems, which allows to identify the relationships between the end-effector coordinates and the controlled movements in the manipulator drives. In this case, the inverse problem aims at calculating the driven coordinates for the given end-effector coordinates, and the forward one aims at determining the position and orientation of the end-effector with known driven coordinates.
The position of the end-effector can be described by the Cartesian coordinates of any of its points, for example, its center, point P ( Figure 2a). These coordinates can be represented as vector p P that determines the position of point P relative to global coordinate system OXYZ. Plane OXY is in the plane of carriages K i , i = 1 . . . 6, and the center, point O, corresponds to the intersection point of the circular guide axis with this plane. The endeffector orientation can be set using rotation matrix R P , which determines the orientation of local coordinate system PX P Y P Z P attached to the end-effector relative to global coordinate system OXYZ. Let us represent the driven coordinates of the manipulator as vector q: where q i corresponds to the rotational angle of i-th crank, i = 1 . . . 6 ( Figure 2b).

Inverse Kinematics
The solution of the inverse position problem is to find driven coordinates q for given vector p P and matrix R P , which describe the end-effector position and orientation. The algorithm for solving this problem is as following. Coordinates p Ei of points E i (the centers of spherical joints 7-8), i = 1 . . . 6, relative to global coordinate system OXYZ can be written as: where r Ei are the coordinates of points E i in local coordinate system PX P Y P Z P .
Coordinates p Ki of points K i (the centers of spherical joints 6-7), i = 1 . . . 6, in global coordinate system OXYZ can be found in the following way: where R 1 is the radius of circular guide 1; α i is the angle between axis OX and line OB i ( Figure 2b); δ i is the rotational angle of i-th swinging arm 5. Let us write the relationship, linking coordinates of points E i and K i with length L i of leg 7: After substituting Equations (2) and (3) in Equation (4) and carrying out transformations, the following relation can be obtained: where p Ei x and p Ei y are the corresponding components of vector p Ei . Angle δ i of swinging arm 5 is an unknown parameter in Equation (5). Let us apply the tangent half-angle substitution to find this angle: Substituting Equation (6) into Equation (5), after transformations, the following expression can be obtained: Coefficients a i , b i , and c i are known when solving the inverse position problem. In the general case, quadratic Equation (7) can have two solutions, which can be interpreted as follows. The motion trajectory of each carriage (point K i ) is a circle. At the same time, for the given (fixed) coordinates of the end-effector, point K i must be on the surface of the sphere with the center at point E i and radius L i . This sphere generally has two intersection points with the mentioned circle that corresponds to quadratic Equation (7). The choice of the specific solution is determined by the design features of the manipulator.
After determining variable t i , angle δ i of swinging arm 5 can be found from Equation (6) written as follows: The angle at apex C i of triangle OB i C i can be determined using the sine theorem as: where d i is the distance between point O and rotational axis B i of i-th crank ( Figure 2b); l i is the length of i-th crank.
Finally, the rotational angle of the i-th crank, i.e., the value of driven coordinate q i , can be determined: Thus, the solution of the inverse position problem has been found. The solution algorithm is the same for all kinematic chains of the manipulator.

Forward Kinematics
The solution of the forward position problem for the proposed manipulator is to find vector p P and rotation matrix R P , which describes the end-effector position and orientation, for given driven coordinates q. The algorithm for solving this problem is as follows.
Initially, length OC i (i = 1 . . . 6) can be found using the cosine theorem for triangle OB i C i (Figure 2b): Next, angle δ i of swinging arm 5 can be determined using the sine theorem for the same triangle: Then, Equation (3) allows to find coordinates p Ki of carriages 6. As a result, a system of six equations of the form (4) can be written. With Equation (2), this system has twelve unknown variables: three components of vector p P and nine components of matrix R P . Since rotation matrix R P is orthogonal, the following additional relations exist [23]: where u, v, and w are the columns of matrix R P : Thus, six equations of the form (4) and six equations of the form (13) represent a system of twelve equations with respect to twelve variables. All the equations are second-degree polynomials. Such a system of equations is inherent for many parallel mechanical systems, including the classical Gough-Stewart platform [23], and the determination of its solutions in an explicit form comes with significant computational difficulties. Many authors have proposed various algorithms for solving these equations based on the methods of dialytic elimination [24], homotopy continuation [25], Gröbner bases [26], interval analysis [27], and others [28,29]. The studies above showed that in general (in the case of an arbitrarily chosen geometry of the manipulator), the system can have 40 different solutions, both real and complex, and Husty [30] provided an algorithm to form a univariate polynomial of 40th degree that allows finding all the solutions. Dietmaier also showed that all the solutions can be the real ones [31]. Any of the approaches above can be applied to solve the system of equations discussed in this study. The next section will discuss the examples of solving both position problems.

Example of Inverse Position Problem Solution
First, consider an example of solving the inverse position problem for the simplest case, when point P of the end-effector is located above point O at height 180 mm. Let the axes of local coordinate system PX P Y P Z P be aligned with the axes of coordinate system OXYZ, i.e., rotation matrix R P is identity in this case. As a result of the calculation according to the above mentioned algorithm, implemented in MATLAB package, the following values of the driven coordinates were determined: The rotational angles of cranks form two groups with equal values and opposite in sign: q 1 = q 3 = q 5 = −q 2 = −q 4 = −q 6 . As expected, the solution has certain "symmetry", which is fully consistent with the "symmetric" geometry and the given configuration of the manipulator.

Example of Forward Position Problem Solution
Next, consider an example of solving the forward position problem, taking Equation (15) as the given values of the driven coordinates. This problem was solved by the homotopy continuation method [32] that implies the following idea. Given the system of equations to solve in a standard form F(X) = 0, one can form an auxiliary system: where G(X) is a system that has the same number of solutions as F(X), and all these solutions are known; λ is a scalar parameter, varying from 0 to 1. When λ = 0, H(X, 0) = G(X), and all the solutions are known. These solutions present an initial guess to solve a new version of H(X, λ) with slightly increased value of λ using standard iterative algorithms. The process is repeated until λ = 1, for which H(X, 1) = F(X). Thus, the starting system G(X) = 0 with known solutions slowly evolves toward the desired one F(X) = 0.
As mentioned before, system F(X) = 0 for the studied manipulator consists of twelve second-order degree polynomials with respect to twelve variables. According, to Bezout's theorem [33], this system can have a maximum of 2 12 = 4096 solutions. Given this, one can form the system G(X) = 0 with the desired number of solutions.
This procedure was realized automatically using Bertini program [34], implemented in MATLAB package as BertiniLab interface [35]. As a result, 28 different solutions were obtained: 8 real and 20 complex. These eight real solutions correspond to eight different assembly modes of the manipulator and are shown in Table 1 and Figure 3. Assembly mode #3 corresponds to the specified end-effector configuration from the previous example. Note that half of the assemblies have a symmetrical analog located on the other side of plane OXY.
One should also notice that the number of obtained solutions, 28, is less than 40. The reason is that the considered manipulator has a "symmetrical" geometry and the example was performed for "symmetrical" values of the driven coordinates. In the general case, the number of solutions will be equal to 40.    (15); dashed line indicates the circular guide; the yellow triangle indicates the end-effector; red, green, and blue lines correspond to X P , Y P , and Z P axes of system PX P Y P Z P , respectively; red dot represents point P.

Calculation of Crank Lengths
As mentioned in Section 2, the correctly chosen cranks lengths allow eliminating the possibility of collision between the adjacent carriages. Let us address this problem in detail. Let's consider the symmetrical geometry of the manipulator as in the previous examples: all the cranks have length l and their rotational axes are located evenly on a circle with radius d. Suppose that the carriages have angular width γ, and the distance between the adjacent carriages when they are in extreme positions is ∆ (Figure 4). In this configuration, each crank is perpendicular to the corresponding swinging arm. Each of the arms rotate on its maximum angle δ max , so: On the other hand, according to Figure 4: Combining Equations (17) and (18), one can find the crank length: The equation above allows finding the crank length for the specified gap ∆ between the carriages. For example, for d = 160 mm as in Section 3.3, γ = 10 • , and ∆ = 0 (extreme case), the crank length will be l = 67.6 mm.

Calculation of Maximum Rotational Angle of the Platform
The key feature of manipulators with a circular guide is the ability to provide large rotational angles around the vertical axis. Let us calculate these angles for the proposed manipulator in the following way.
For simplicity, suppose that the platform's plane is parallel to the base one, and the platform's center stays above the center of the base. For the proposed manipulator, these assumptions can be written as: where z is the height of the platform above the base; ϕ is the rotational angle of the platform around the vertical axis.
In addition, suppose that the platform's spherical joints are placed on radius R 8 with angular coordinates β i as in the previous examples, i.e., r Ei = R 8 cos β i R 8 sin β i 0 T , i = 1 . . . 6. With these assumptions, Equation (5) can be transformed to the following form: The equation above allows to express angle ϕ: The choice of the sign is determined by the design features of the kinematic chains. Equation (22) can be used to estimate the maximum value of angle ϕ permitted by each of the six chains. Given the manipulator geometry, this value mainly depends on the maximum rotational angles δ imax of the swinging arm, and platform's height z: The value of δ imax can be found using Equation (17). Since each of the kinematic chains can permit different values of maximum rotational angle ϕ imax , one has to choose the minimum one over all kinematic chains: A similar procedure can be used to find the minimum value of angle ϕ concerning the minimum rotational angle δ imin of the swinging arm: and The proposed procedure has been modeled in MATLAB for the manipulator with the same parameters as above, except crank length, which was set to 67.6 mm. Figure 5 demonstrates the dependence of angles ϕ min and ϕ max on the platform's center coordinate z, which varies between 120 and 200 mm. Due to the symmetrical geometry of the manipulator, ϕ min = −ϕ max . For smaller values of coordinate z, ϕ min becomes greater than ϕ max , and these configurations are not acceptable. For higher values of coordinate z, there are no values of ϕ min and ϕ max since the manipulator cannot be in those configurations. The maximum value of ϕ max is equal to 25 • for coordinate z near 185 mm.
The extreme values of angle ϕ are smaller than the ones for the classical Gough-Stewart platform that can reach about 60 • [36,37]. However, with Equations (23)- (26), one can formulate an optimization problem to find mechanism geometry that will maximize the range of rotation. Another solution is to change the manipulator structure and use two circular guides: one of them is inside the other (as in [38]) or stacked over it. Each guide will support only three carriages increasing their driving range and, therefore, the rotational capabilities of the platform.  Figure 6 presents such a variation of the proposed design with two circular guides. The swinging arms can rotate at higher angles leading to the increased value of platform rotational angle ϕ. Here are: 1-inner circular guide (fixed link); 2-outer circular guide (fixed link); 3-drive; 4-support for drive 3; 5-crank; 6-slide block; 7-swinging arm; 8-carriage; 9-leg; 10-platform (end-effector). The proposed design requires location of the centers of spherical joints 9-10 according to view I in Figure 6, where each pair of these joints is on the same radius of the platform. To provide higher rotational angle ϕ, three kinematic chains of links 5-7 are moved under the circular guides (section A-A in Figure 6). For the presented design, the maximum value of rotational angle ϕ is about 55 • , which is comparable to the Gough-Stewart platform. Both proposed designs in Figures 1 and 6 can be further optimized to enhance the rotational capabilities of the platform, not only in one particular configuration but over the whole working area. This topic is beyond the current study but presents interest for future research.

Conclusions
This study has presented a novel version of the 6-DoF manipulator with a circular guide. The proposed manipulator has such design advantages as having all drives fixed on the base, sufficiently large rotation of the end-effector around the vertical axis, and using cranks as the driving links (as an alternative to carriages) placed within the circular guide. The manipulator can find an application for positioning different elements and objects in space.
The study has presented algorithms for solving the inverse and forward kinematics. The former one has a closed-form solution. First, the position of upper and lower spherical joints, as well as carriages, is determined based on the given end-effector coordinates, second, the rotational angles of cranks (driven coordinates) are calculated. The solution of the forward kinematics has been determined using the homotopy continuation method. According to the example, 28 different solutions have been found (8 real and 20 complex) for the same values of the driven coordinates. Eight assembly modes have been obtained according to the eight real solutions. The study has also presented methods for calculation of the rotational capabilities of the platform and for selection of link lengths. It has been found that the platform can rotate from −25 • to +25 • around the vertical axis with respect to the chosen manipulator design. However, these values can be increased by different design variations. The study has presented another manipulator design with two circular guides, which allows significantly increasing the rotational angle around the vertical axis. In this design, the angle can vary from −55 • to +55 • , which is comparable to the one of the Gough-Stewart platform.
The work has studied design variations of the manipulator with symmetrical geometry and performed analysis when the platform is parallel to the base and is located right above its center. The techniques proposed in the study can be expanded for other cases too. The kinematic analysis of the manipulator performed in this work can serve as a basis for the further analysis of velocities and accelerations, as well as workspace analysis and optimal design. In addition, the singularities that can affect the shape and size of the workspace of the manipulator are of special interest.

Data Availability Statement:
The data presented in this study are available on request from the corresponding author.