**Performance Evaluation of a Sensor Concept for Solving the Direct Kinematics Problem of General Planar 3-RPR Parallel Mechanisms by Using Solely the Linear Actuators' Orientations**

### **Stefan Schulz**

Workgroup on System Technologies and Engineering Design Methodology, Hamburg University of Technology, 21073 Hamburg, Germany; st.schulz@tuhh.de

### Received: 7 June 2019 ; Accepted: 13 August 2019; Published: 16 August 2019

**Abstract:** In this paper, we experimentally evaluate the performance of a sensor concept for solving the direct kinematics problem of a general planar 3-RPR parallel mechanism by using solely the linear actuators' orientations. At first, we review classical methods for solving the direct kinematics problem of parallel mechanisms and discuss their disadvantages on the example of the general planar 3-RPR parallel mechanism, a planar parallel robot with two translational and one rotational degrees of freedom, where P denotes active prismatic joints and R denotes passive revolute joints. In order to avoid these disadvantages, we present a sensor concept together with an analytical formulation for solving the direct kinematics problem of a general planar 3-RPR parallel mechanism where the number of possible assembly modes can be significantly reduced when the linear actuators' orientations are used instead of their lengths. By measuring the orientations of the linear actuators, provided, for example, by inertial measurement units, only two assembly modes exist. Finally, we investigate the accuracy of our direct kinematics solution under static as well as dynamic conditions by performing experiments on a specially designed prototype. We also investigate the solution formulation's amplification of measurement noise on the calculated pose and show that the Cramér-Rao lower bound can be used to estimate the lower bound of the expected variances for a specific pose based exclusively on the variances of the linear actuators' orientations.

**Keywords:** direct kinematics problem; parallel robots; linear actuators' orientations; assembly modes; general planar 3-RPR parallel mechanism; inertial measurement units; Cramér-Rao lower bound; static and dynamic experiments

### **1. Introduction**

The direct kinematics problem is the problem of finding the actual position and orientation, also known as pose, of the moveable manipulator platform with respect to the fixed base platform from the active joints' coordinates. In general, this problem has multiple solutions. For example, for the general planar 3-RPR parallel mechanism, where three linear actuators, that is, active prismatic joints (P-joints), connect the passive revolute joints (R-joints) of the fixed base platform with those of the moveable manipulator platform, shown in Figure 1, up to six different poses of the manipulator platform are possible for a given set of linear actuators' lengths. These different poses that solve the direct kinematics problem are also known as assembly modes. However, the general questions that have to be answered for solving the direct kinematics problem in terms of control purposes are: (a) how many solutions exist for a given set of active joints' coordinates and (b) which one of them is the actual solution?

Many scientists have focused on answering these questions. The first question is basically solved by reducing the system of kinematic constraint equations to a univariate polynomial

equation. Noncomplex solutions of this equation correspond to possible assembly modes of the parallel mechanism, that is, possible ways to assemble it. Among others, Gosselin et al. [1] introduced a polynomial formulation for the direct kinematics problem of the general planar 3-RPR parallel mechanism and concluded that for a given set of linear actuators' lengths, up to six real solutions can exist. The same result was independently achieved by Peisach, Pennock and Kassner and Wohlhart [2–4] and finally proved by Gosselin and Merlet [5]. Kong and Gosselin [6] even proposed a coordinate-free formulation to avoid dependencies on the chosen reference frame. In contrast to that, Collins [7] used Clifford algebra and Rojas et al. [8] introduced a method based on the bilateration problem to derive the polynomial formulation in a different manner. This distance-based method, however, can even yield two times more solutions compared to classical methods. For the special case where the three revolute base platform joints are aligned, only four solutions exist, see, for example, References [5,6,8].

**Figure 1.** General planar 3-RPR parallel mechanism with the three base platform joints *A*, *B* and *C* and the three manipulator platform joints *D*, *E* and *F*. The pose of the manipulator platform is given by the position of joint *D* and the platform's orientation *γ* with respect to the shown coordinate system.

Finding the univariate polynomial equation makes it possible to calculate all the possible solutions of the direct kinematics problem but it does not identify the actual pose of the manipulator platform. This can be done either by using additional numerical techniques such as Newton-Raphson algorithms with an initial pose estimation [9–15] to transform the system of nonlinear kinematic constraint equations into an explicit or linear problem where a closed-form solution can be found [16–23].

As the linear actuators' lengths are no generalized coordinates, they are only used because they are the active joints' coordinates. Due to the simple inverse kinematics of the general planar 3-RPR parallel mechanism with a unique solution, the linear actuators' lengths can be directly calculated when the manipulator platform's pose is known. This allows to use other coordinates that are more suitable for solving the direct kinematics problem and, afterwards, calculate the linear actuators' lengths from the obtained manipulator platform's pose. There are several advantages associated with avoiding the linear actuators lengths because (a) reference drives are required to derive the initial lengths, (b) absolute length sensors that do not need reference drives are very expensive and have a limited operation range, (c) possible deformations and backlashes in the linear actuators and joints cannot be determined, and, most importantly, (d) they do not provide a unique solution of the direct kinematics problem.

In order to avoid using the linear actuators' lengths for solving the direct kinematics, we proposed a new sensor concept where the manipulator platform's pose can be uniquely determined from the orientations provided by three inertial measurement units (IMUs) that were placed on top of the manipulator platform as well as on two of the linear actuators [24–26]. For measuring the manipulator platform's orientation, additional wiring effort is required that can cause workspace reductions due to the risk of link-wire interferences. In Reference [27], we therefore suggested using solely the three linear actuators' orientations for solving the direct kinematics problem and derived an analytical formulation that provides the two possible poses of the manipulator platform. Therewith, instead of having up to six assembly modes for the general planar 3-RPR parallel mechanism when using the linear actuators' lengths that also cannot be found analytically (except for some special cases), we found an analytical expression to calculate them.

As the quality of the formulation's results mainly depends on the quality of the measured linear actuators' orientations, in this paper, we investigate the accuracy of our concept under static as well as dynamic conditions by performing several experiments on a new, specially designed prototype of a general planar 3-RPR parallel mechanism. For measuring the linear actuators' orientations, we use inertial measurement units that provide linear accelerations and angular velocities of a rigid body in their three axes. Furthermore, we evaluate the maximum achievable accuracy of our formulation and investigate the effect of measurement errors on the calculated manipulator platform's pose by computing the Cramér-Rao lower bound and comparing the results with those of our experiments.

The remainder of this paper is as follows. In Section 2, classical methods for solving the direct kinematics problem of parallel mechanisms and especially the general planar 3-RPR parallel mechanism are reviewed and their disadvantages are highlighted. In Section 3, we revisit the approach for calculating the number of possible assembly modes when solely the linear actuators' orientations are measured. In Section 4, we then derive the Cramér-Rao lower bound to estimate the variances of the calculated pose of the manipulator platform based on the variances of the linear actuators' orientations. In order to test our concept under static as well as dynamic conditions, in Section 5, we present the experimental results that were performed on a specially designed prototype of a general planar 3-RPR parallel mechanism. Finally, a conclusion and evaluation is made in Section 6.

Throughout the paper, we use the following notation referring to Figure 1. The three base platform joints are denoted as *A*, *B* and *C* and the three manipulator platform joints as *D*, *E* and *F*. The body-fixed coordinate system of the base platform is located in joint *A* and the body-fixed coordinate system of the manipulator platform is located in joint *D*. The position of the manipulator platform with respect to the base platform is given by the coordinates *x* and *y* while the orientation of the manipulator platform is given by the angle *γ*. In the following, the manipulator platform's pose *p* with respect to the base platform is denoted by the position of the manipulator platform and its orientation:

$$\mathbf{p} = \begin{bmatrix} \mathbf{x} & \mathbf{y} & \mathbf{y} \end{bmatrix}^{\top}. \tag{1}$$

The coordinates of the two remaining base platform joints, *B* and *C*, are denoted as *c*<sup>1</sup> and *c*<sup>2</sup> in the *x*-axis and *d*<sup>1</sup> and *d*<sup>2</sup> in the *y*-axis. The three manipulator platform joints *D*, *E* and *F* are aligned and the distance between joint *D* and joint *E* is denoted as *l*1, whereas the distance between joint *E* and joint *F* is denoted as *l*2. The linear actuators' lengths are denoted as *ρ*1, *ρ*<sup>2</sup> and *ρ*<sup>3</sup> and correspond to the distance between the joints *A* and *D*, *B* and *E*, as well as *C* and *D*, respectively. The linear actuators' orientation angles are denoted as *ϕ*1, *ϕ*<sup>2</sup> and *ϕ*<sup>3</sup> and correspond to the angle between the *x*-axis and the first, second and third linear actuator, respectively.

### **2. Review of Classical Solutions for the Direct Kinematics Problem**

In the literature, three methods are available for handling the direct kinematics problem of parallel mechanisms. Scientifically, the most interesting method is to derive the echelon form which contains all the solutions of the direct kinematics problem. Here, the system of kinematic constraint equations is reduced to a univariate polynomial equation from which all the possible solutions are then derived. Noncomplex solutions of this equation correspond to possible assembly modes of the parallel mechanism, that is, modes for which the manipulator platform's pose satisfies the requirements of the active joints' coordinates as well as the closure conditions, or, in other words, possible solutions to assemble the parallel mechanism. The echelon form therewith allows to find all the possible solutions of the direct kinematics problem but it does not identify the actual or real pose of the manipulator platform. This problem can be solved by using one of the two following methods.

One possibility of finding the actual solution of the direct kinematics problem is to use iterative techniques such as Newton-Raphson procedures to solve the system of nonlinear kinematic constraint equations. These techniques require a good initial guess of the manipulator platform's pose on the one hand and a determinable pose that is sufficiently far away from a singular configuration on the other hand [28]. In this context, a singularity is a pose where the manipulator platform has at least one uncontrollable instantaneous degree of freedom leading to huge forces in the joints and the linear actuators, see, for example, References [29–31].

As an alternative to additional numerical procedures, in the third method, additional sensor information is used to transform the system of nonlinear kinematic constraint equations into an explicit or linear problem where a closed-form solution can be found. This method allows to find the actual pose of the manipulator platform uniquely and, compared to iterative methods, faster, more accurately and independently from initial pose estimations.

In the following, the three methods are reviewed and their complexity as well as remaining challenges are illustrated on the example of the general planar 3-RPR parallel mechanism. As the planar equivalent to the Stewart-Gough platform, this mechanism has been investigated by several scientists in terms of direct kinematics [1–8,32], singularities [29–31,33–35] and control [36–38].

### *2.1. Analytical Solution*

In this section, we review the classical method to derive the assembly modes of the general planar 3-RPR parallel mechanism by following the method introduced by Gosselin et al. [1]. In contrast to the classical planar 3-RPR parallel mechanism where the manipulator is illustrated as a triangle, we use the mechanism displayed in Figure 1. However, we show that by using the linear actuators' lengths, for this parallel mechanism, up to six solutions for the direct kinematics problem, that is, up to six assembly modes, exist.

The inverse kinematics of the general planar 3-RPR parallel mechanism can be written as

$$
\rho\_1^2 = \mathbf{x}^2 + y^2 \,, \tag{2}
$$

$$
\rho\_2^2 = \left(\mathbf{x} + l\_1 \cos \gamma - c\_1\right)^2 + \left(y + l\_1 \sin \gamma - d\_1\right)^2,\tag{3}
$$

$$\rho\_3^2 = \left(\mathbf{x} + (l\_1 + l\_2)\cos\gamma - c\_2\right)^2 + \left(y + (l\_1 + l\_2)\sin\gamma - d\_2\right)^2. \tag{4}$$

By subtracting Equation (2) from Equation (3) and Equation (2) from Equation (4), we get

$$
\rho\_2^2 - \rho\_1^2 = R\mathfrak{x} + \mathfrak{S}\mathfrak{y} + T \text{ .}\tag{5}
$$

$$
\rho\_3^2 - \rho\_1^2 = \mathcal{U}\mathbf{x} + \mathcal{V}\mathbf{y} + \mathcal{W} \tag{6}
$$

with

$$\begin{aligned} R &= 2l\_1 \cos \gamma - 2c\_1 \\ S &= 2l\_1 \sin \gamma - 2d\_1 \\ T &= l\_1^2 + c\_1^2 + d\_1^2 - 2l\_1(c\_1 \cos \gamma + d\_1 \sin \gamma) \\ M &= 2(l\_1 + l\_2) \cos \gamma - 2c\_2 \\ V &= 2(l\_1 + l\_2) \sin \gamma - 2d\_2 \\ W &= (l\_1 + l\_2)^2 + c\_2^2 + d\_2^2 - 2(l\_1 + l\_2)(c\_2 \cos \gamma + d\_2 \sin \gamma) \end{aligned} \tag{7}$$

From Equation (5), we get

$$\mathbf{x} = \frac{\rho\_2^2 - \rho\_1^2 - \mathbf{S}\mathbf{y} - T}{R},\tag{8}$$

and by inserting this result into Equation (6),

$$y = \frac{R(\rho\_3^2 - \rho\_1^2 - \mathcal{W}) - \mathcal{U}(\rho\_2^2 - \rho\_1^2 - T)}{RV - SlI} \,. \tag{9}$$

In the same manner, we get

$$\chi = \frac{V(\rho\_2^2 - \rho\_1^2 - T) - S(\rho\_3^2 - \rho\_1^2 - W)}{RV - SlI} \,. \tag{10}$$

In order to obtain a univariate equation in *γ*, inserting Equations (9) and (10) into Equation (2) gives us:

$$\rho\_1^2 = \frac{\left(V(\rho\_2^2 - \rho\_1^2 - T) - S(\rho\_3^2 - \rho\_1^2 - \mathcal{W})\right)^2}{(RV - SII)^2} + \frac{\left(R(\rho\_3^2 - \rho\_1^2 - \mathcal{W}) - \mathcal{U}(\rho\_2^2 - \rho\_1^2 - T)\right)^2}{(RV - SII)^2}.\tag{11}$$

By applying the Weierstrass substitution

$$X = \tan\frac{\gamma}{2} \quad \cos\gamma = \frac{1 - X^2}{1 + X^2} \quad \sin\gamma = \frac{2X}{1 + X^2} \tag{12}$$

We can get the sixth order polynomial in *X*, whose six possible solutions can be found numerically. In this context, Wenger et al. [33] investigated the situation where the term *RV* − *SU* in Equations (9)–(11) becomes zero. Finally, we can substitute backwards and insert the solutions for *γ* back into Equations (9) and (10) to obtain the position of the manipulator platform. However, there is no analytical solution for this problem available [8].

As an example, Figure 2 shows the six assembly modes of the general planar 3-RPR parallel mechanism when using the linear actuators' lengths. Here, we use the following parameters:

$$c\_1 = 40 \,\text{mm}, \quad d\_1 = 10 \,\text{mm}, \quad l\_1 = 25 \,\text{mm}, \quad c\_2 = 90 \,\text{mm}, \quad d\_2 = -20 \,\text{mm}, \quad l\_2 = 35 \,\text{mm}. \tag{13}$$

With a given set of linear actuators' lengths

$$
\rho\_1 = 80.6226 \,\text{mm} \,, \quad \rho\_2 = 61.7931 \,\text{mm} \,, \quad \rho\_3 = 82.9139 \,\text{mm} \,\text{m} \,\text{s} \,\tag{14}
$$

six assembly modes exist. Due to a faster calculation time, we derive the solution by using the method proposed by Rojas et al. [8]. The coordinates of point *D*, given by *x* and *y* and the orientation of the manipulator platform *γ* for the six solutions are:

$$
\begin{bmatrix} \mathbf{x}\_{\text{I}} \\ \mathbf{y}\_{\text{I}} \\ \gamma \mathbf{I} \end{bmatrix} = \begin{bmatrix} 37.3098 \,\text{mm} \\ -71.4701 \,\text{mm} \\ -59.7539^{\circ} \end{bmatrix}, \qquad \begin{bmatrix} \mathbf{x}\_{\text{II}} \\ \mathbf{y}\_{\text{II}} \\ \gamma \mathbf{u} \end{bmatrix} = \begin{bmatrix} -11.5040 \,\text{mm} \\ 79.7976 \,\text{mm} \\ -50.5183^{\circ} \end{bmatrix}, \qquad \begin{bmatrix} \mathbf{x}\_{\text{III}} \\ \mathbf{y}\_{\text{III}} \\ \gamma \mathbf{u} \end{bmatrix} = \begin{bmatrix} 72.6382 \,\text{mm} \\ -34.9812 \,\text{mm} \\ 38.1265^{\circ} \end{bmatrix}, \tag{15}
$$

$$
\begin{bmatrix} \mathbf{x}\_{\text{IV}} \\ \mathbf{y}\_{\text{IV}} \\ \gamma \mathbf{v} \end{bmatrix} = \begin{bmatrix} 10.0000 \,\text{mm} \\ 80.0000 \,\text{mm} \\ -20.0000^{\circ} \end{bmatrix}, \qquad \begin{bmatrix} \mathbf{x}\_{\text{V}} \\ \mathbf{y}\_{\text{V}} \\ \gamma \mathbf{v} \end{bmatrix} = \begin{bmatrix} 36.0067 \,\text{mm} \\ 72.1354 \,\text{mm} \\ -9.0029^{\circ} \end{bmatrix}, \qquad \begin{bmatrix} \mathbf{x}\_{\text{VI}} \\ \mathbf{y}\_{\text{VI}} \\ \gamma \mathbf{u} \end{bmatrix} = \begin{bmatrix} 79.1195 \,\text{mm} \\ 15.4950 \,\text{mm} \\ 42.2360^{\circ} \end{bmatrix}. \tag{16}
$$

**Figure 2.** Assembly modes (shown in blue, red, green, orange, yellow and brown) for the manipulator platform of the general planar 3-RPR parallel mechanism when using the linear actuators' lengths *ρ*1, *ρ*<sup>2</sup> and *ρ*<sup>3</sup> from Equation (14).

### *2.2. Numerical Solution*

Since we are usually more interested in the actual manipulator platform's pose than in all of the possible poses, it is necessary to distinguish the actual pose from all the others. In the literature, there are numerous methods proposed that aim to find the actual pose of the parallel mechanism. Here, genetic algorithms [39–42], neuronal methods [43,44] and interval analysis methods [15,45] have to be mentioned. In fact, the most common numerical procedures for fast determination of the manipulator platform's pose are iterative techniques such as Newton-Raphson algorithms, see References [11,46–50]. Here, the inverse kinematic equations are used together with a pose estimate for iteratively solving these equations with a multi-dimensional Newton-Raphson algorithm.

All the iterative techniques have in common that they need a pose estimation. With the first guess, they calculate an error between the linear actuators' lengths that correspond to the pose estimate and the measured linear actuators' lengths. By using the measurement model, they vary the pose within several iterations to minimize this error. Different formulations and stop-criteria were proposed to obtain the actual pose (see, for example, Reference [28]) but every iterative method depends on the quality of the first pose estimation. In fact, the pose the algorithm converges to is neither necessarily the actual pose due to the quality of the initial pose estimation nor the closest possible pose next to the initial estimate [28]. The iterative algorithm might also fail to converge in case of singularities [28,51]. In conclusion, the initial pose estimation influences both the pose the algorithm converges to and, not to be neglected, the computation time which corresponds to the number of iterations. For a static case, it is not possible to assure that the actual pose of the manipulator platform can be found at all because, depending on the initial pose estimate, all the solutions are possible. In fact, further information is still required to guarantee that the actual pose can be found.

Fortunately, for dynamic cases such as pose control, the initial guess can be improved during the sampling time and incorrect solutions can be removed. Since the converged pose is available for the previous set of linear actuators' lengths, this pose can be used as an initial guess together with the new set of lengths. Furthermore, the new solution has to be within some boundaries, based on the sampling time, maximum velocities and the latest pose [28].

As an example, we apply the Newton-Raphson algorithm to the general planar 3-RPR parallel mechanism to compute the actual pose. In case a measurement model *h* can be found that links the measurements *z* with the manipulator platform's pose *p*, this pose can be found iteratively using the Newton-Raphson algorithm:

$$p(i) = p(i-1) + f\_h\left(z - h\left(p(i-1)\right)\right) \tag{17}$$

where *i* is the iteration step, *p*(0) the initial pose estimate and *Jh* the Jacobian of *h*(*p*), which is

$$J\_h\left(h\left(p(i)\right)\right) := J\_h(i) = \frac{\mathrm{d}h(i)}{\mathrm{d}p(i)}\,. \tag{18}$$

The algorithm stops when the difference between the measurements *z* and the results for the measurement model *h* at the proposed pose *p*(*i*) falls below a threshold value Λ, that is,

$$\left\|z - h(p(i))\right\|\_2 < \Lambda \,. \tag{19}$$

As the measurement model *h*(*p*), the inverse kinematic Equations (2)–(4) are used.

The Newton-Raphson algorithm requires exact measurements and a good initial pose estimate. Again, the parameters from Equation (13) are used. As an example, the same linear actuators' lengths from Equation (14) are measured. Now, the Newton-Raphson algorithm is able to compute the pose that meets the conditions given by the measurement model. However, this can be any of the six possible solutions. It therewith depends on the quality of the initial pose estimate. For example, using

$$p(0) = \begin{bmatrix} 10.0000 \text{ mm} & 50.0000 \text{ mm} & 0.0000^\circ \end{bmatrix} \tag{20}$$

as initial pose estimate, after five iterations, the following solution is obtained:

$$
\begin{bmatrix} x & y & \gamma \end{bmatrix}^{\top} = \begin{bmatrix} 10.0000 \text{ mm} & 80.0000 \text{ mm} & -20.0000^{\circ} \end{bmatrix}^{\top} \tag{21}
$$

which corresponds to the fourth assembly mode and is shown in blue in Figure 3. But using

$$p(0) = \begin{bmatrix} 50.0000 \text{ mm} & 20.0000 \text{ mm} & 20.0000^{\circ} \end{bmatrix}^{\prime} \text{ \,\, \text{\,} } \tag{22}$$

after five iterations, leads to a different solution:

$$
\begin{bmatrix} \mathbf{x} & \mathbf{y} & \boldsymbol{\gamma} \end{bmatrix}^{\top} = \begin{bmatrix} 79.1195 \,\text{mm} & 15.4950 \,\text{mm} & 42.2360^{\circ} \end{bmatrix}^{\top}, \tag{23}
$$

shown in red in Figure 3. This solution corresponds to the fifth assembly mode. Furthermore, for the following initial pose estimate:

$$p(0) = \begin{bmatrix} 0.0000 \text{ mm} & 0.0000 \text{ mm} & 0.0000^{\circ} \end{bmatrix}^{\perp},\tag{24}$$

shown in green in Figure 3, the algorithm even fails to converge. Thus, it cannot be guaranteed that the actual pose can be found by using the Newton-Raphson algorithm because an appropriate initial pose estimate has to be provided. Otherwise, the algorithm can converge to the wrong solution or might even fail to converge.

**Figure 3.** Solutions for the general planar 3-RPR parallel mechanism when using a Newton-Raphson algorithm with the linear actuators' lengths: solution for [10 mm 50 mm 0◦] (blue), for [50 mm 20 mm 20◦] (red) and for [0 mm 0 mm 0◦] (green) as initial pose estimates.

### *2.3. Additional Sensor Solution*

As a matter of fact, analytical approaches where the inverse kinematic equations are used to obtain a univariate polynomial equation and iterative procedures are both vulnerable to measurement errors, calibration inaccuracies and sensor failure. If only the linear actuators' lengths are used, the manipulator platform's pose cannot be uniquely and unambiguously determined, neither for accurate measurements and optimal calibrated parallel mechanisms nor for perturbed measurements and calibrations. In order to overcome these disadvantages, it is possible to use sensor redundancy. By implementing further sensors, better and more reliable measurement results can be obtained and, in some cases, the actual pose can be determined without additional numerical procedures. In fact, the goal of redundant or auxiliary sensor concepts is to find an explicit or linear formulation for the manipulator platform's pose with the minimum number of sensor information.

The idea of using additional sensors to find the actual pose of the manipulator platform is based on the fact that the linear actuators' lengths are no minimal coordinates and, therewith, are not enough to find a unique solution for the direct kinematics problem. By implementing further sensors, it is possible to get more information about the system's state, reduce the complexity of the constraint equations and therewith, decrease the number of possible assembly modes until only one possible pose of the manipulator platform remains. This allows to solve the direct kinematics equations in considerably less time, only limited by the sampling rate of the sensors but not the calculation time. The introduced information redundancy can later be used to increase the accuracy or to tolerate sensor failure or faulty sensor data, see, for example, Reference [17]. Furthermore, using additional sensors can even enable an auto-calibration of the parallel mechanism [28,52]. However, the type, number and location of the redundant sensors must be chosen very carefully to define a unique solution. Otherwise, it can cause additional problems such as workspace limitations due to the passive legs or joint arrangements, as mentioned in Reference [53]. Furthermore, different sensor types can even reduce the quality of the output by introducing time delays and unwarranted confidences. For example, trusting additional sensors with faulty measurements can lead to incorrect results or even prevent a result from being calculated.

Merlet [28] extensively discussed possible additional sensor concepts and Vertechy et al. [51] presented a very detailed, chronological review. Usually, length sensors and rotary sensors are used as additional sensors to derive the orientations of the linear actuators or passive legs in addition to the linear actuators' lengths, see, for example, References [16–23,51,53–68]. However, several other sensor types were proposed as additional sensors for solving the direct kinematics problem. For example, Baron et al. [69] suggested using a camera in addition to the linear actuators' lengths. For the 6-RUS Hexa-Robot, Hesselbach et al. [70] developed sensors that can be implemented in the passive joints. Inclination sensors can also be used. However, they are more often used for calibration purposes [71]. It can be noticed from the amount of papers dealing with the topic of additional sensor concepts for parallel mechanisms and especially the Stewart-Gough platform that the problem is quite complicated and the proposed solutions are not optimal. In fact, most of the concepts have one or more limitations. One drawback, for example, is the applicability, that is, some additional sensor concepts can only be used for parallel mechanisms with special architecture. The most common limitation is that the base and manipulator platform joints, respectively, should be coplanar, that is, lie on a plane, see, for example, References [18,20,57,58,65,68]. This architecture is often called nearly-general Stewart-Gough platform. Some other concepts require that two or more length sensors are connected to a common point or joint [18,19,63]. It furthermore stands out that all additional sensor concepts use at least one of the linear actuators' lengths and there are only few concepts where less than three linear actuators' lengths are used. In fact, none of the existing concepts completely renounce the lengths of the linear actuators and solely use other sensor information for solving the direct kinematics problem.

As an example for an additional sensor solution, we calculate the actual pose of the general planar 3-RPR parallel mechanism by adding sensor information. One very common possibility to solve the direct kinematics problem is to add supplementary passive linear actuators that are equipped with length sensors. By coinciding the manipulator platform joints of one linear actuator with those of the supplementary linear actuator, see Figure 4, these joints' positions can be uniquely identified and the equations can be simplified to a closed-form solution. Here, for example, two passive linear actuators are added to the parallel mechanism. One is connected to the first and the other one to the third manipulator platform joint.

To the inverse kinematics of the general planar 3-RPR parallel mechanism in Equations (2)–(4), two additional equations for the passive linear actuators can be added:

$$
\rho\_4^2 = (\mathbf{x} - \mathbf{c}\_4)^2 + (y - d\_4)^2 \tag{25}
$$

$$\rho\_5^2 = \left(\mathbf{x} + (l\_1 + l\_2)\cos\gamma - c\_5\right)^2 + \left(y + (l\_1 + l\_2)\sin\gamma - d\_5\right)^2. \tag{26}$$

At first, the intersections of the two circles with the radii *ρ*<sup>1</sup> starting at point *A* and *ρ*<sup>4</sup> starting at point *G* shall be found, which, in this case, leads to two solutions. By subtracting Equation (2) from Equation (25), an equation for *x* can be obtained:

$$
\rho\_4^2 - \rho\_1^2 = (\mathbf{x} - \mathbf{c}\_4)^2 + (y - d\_4)^2 - \mathbf{x}^2 - y^2 = -2\mathbf{c}\_4\mathbf{x} - 2d\_4y + c\_4^2 + d\_4^2 \tag{27}
$$

$$\mathbf{x} \Longleftrightarrow \mathbf{x} = \frac{\rho\_1^2 - \rho\_4^2 - 2d\_4y + c\_4^2 + d\_4^2}{2c\_4} \,. \tag{28}$$

**Figure 4.** General planar 3-RPR parallel mechanism with two additional passive linear actuators with the base platform joints *G* and *H*. The active linear actuators are shown in black and the supplementary passive linear actuators are shown in blue.

With Equation (2), the two possible positions *x*I/II and *y*I/II of the manipulator platform are derived:

$$\rho\_1^2 = \left(\frac{\rho\_1^2 - \rho\_4^2 - 2d\_4y + c\_4^2 + d\_4^2}{2c\_4}\right)^2 + y^2 \tag{29}$$

$$y \Longleftrightarrow y\_{1/\text{II}} = \frac{\rho\_1^2 d\_4 - \rho\_4^2 d\_4 + c\_4^2 d\_4 + d\_4^3}{2(c\_4^2 + d\_4^2)} \pm \frac{\sqrt{c\_4^2(\rho\_1^2 + 2\rho\_1\rho\_4 + \rho\_4^2 - c\_4^2 - d\_4^2)(-\rho\_1^2 + 2\rho\_1\rho\_4 - \rho\_4^2 + c\_4^2 + d\_4^2)}}{2(c\_4^2 + d\_4^2)},\tag{30}$$

$$\chi\_{1/11} = \frac{\rho\_1^2 - \rho\_4^2 - 2d\_4y + c\_4^2 + d\_4^2}{2c\_4} = \frac{c\_4^4 + c\_4^2 d\_4^2 \mp d\_4 \sqrt{c\_4^2 (c\_4^2 + d\_4^2)(4\rho\_1^2 - c\_4^2 - d\_4^2)}}{2c\_4 (c\_4^2 + d\_4^2)}.\tag{31}$$

In a similar way, the two possible positions of point *F* can be determined. Here, the following substitution is used:

$$\pounds = \text{x} + (l\_1 + l\_2)\cos\gamma \, \prime \, \qquad \hat{y} = y + (l\_1 + l\_2)\sin\gamma \, \, \tag{32}$$

which reveals two solutions. The angle *γ* can then be obtained by using the arc tangent with the known horizontal and vertical distances between the points *D* and *F*.

As an example, Figure 5 shows the actual solution of the general planar 3-RPR parallel mechanism when using the linear actuators' lengths and two additional lengths. Here, the parameters from Equation (13) are used together with

$$c\_4 = 10\,\text{mm}, \quad d\_4 = 10\,\text{mm}, \quad c\_5 = 100\,\text{mm}, \quad d\_5 = 0\,\text{mm}.\tag{33}$$

With the set of linear actuators' lengths from Equation (14) and

$$
\rho\_4 = 70.0000 \,\text{mm} \,, \quad \rho\_5 = 68.3222 \,\text{mm} \,\text{s} \,\text{mm} \,\text{s} \,\tag{34}
$$

two solutions are obtained. The two possible coordinates of the manipulator platform, given by *x* and *y* and the orientation of the manipulator platform *γ* are:

$$
\begin{bmatrix} \mathbf{x}\_{\mathrm{I}} \\ \mathbf{y}\_{\mathrm{I}} \\ \gamma\_{\mathrm{I}} \end{bmatrix} = \begin{bmatrix} 10.0000 \,\mathrm{mm} \\ 80.0000 \,\mathrm{mm} \\ -20.0000^{\circ} \end{bmatrix}, \quad \begin{bmatrix} \mathbf{x}\_{\mathrm{II}} \\ \mathbf{y}\_{\mathrm{II}} \\ \gamma\_{\mathrm{II}} \end{bmatrix} = \begin{bmatrix} 80.0000 \,\mathrm{mm} \\ 10.0000 \,\mathrm{mm} \\ -0.7883^{\circ} \end{bmatrix}, \tag{35}
$$

where the second solution is not possible because the distance between the points *D*II and *F*II does not satisfy the conditions given by *l*<sup>1</sup> and *l*2. In fact,

$$\begin{split} \left\| D\_{\Pi} F\_{\Pi} \right\|\_{2} &= \sqrt{(80.000 \,\mathrm{mm} - 167.7541 \,\mathrm{mm})^{2} + (10.000 \,\mathrm{mm} - 8.7925 \,\mathrm{mm})^{2}} \\ &= 87.7624 \,\mathrm{mm} \neq \sqrt{(l\_{1} + l\_{2})^{2}} = 60 \,\mathrm{mm} \,\mathrm{.} \end{split} \tag{36}$$

**Figure 5.** Actual solution (blue) for the general planar 3-RPR parallel mechanism when using two additional lengths in addition to the linear actuators' lengths. The second solution is shown in red.

### **3. Assembly Modes when Using the Linear Actuators' Orientations**

In the last section, we have seen that all the current concepts for solving the direct kinematics problem have several disadvantages as illustrated on the example of the general planar 3-RPR parallel mechanism. In this section, we demonstrate that by using the three linear actuators' orientations, the solution of the direct kinematics problem of the general planar 3-RPR parallel mechanism can be calculated analytically and a maximum of two instead of six assembly modes exist. Here, the elimination method described in Section 2.1 is used where the inverse kinematic equations are used to systematically eliminate unknown variables until a univariate equation is obtained.

For the general planar 3-RPR parallel mechanism shown in Figure 1, the inverse kinematics can be rewritten as

$$\underbrace{\tan \varphi\_1}\_{A} = \frac{y}{x} \text{ \AA} \tag{37}$$

$$\underbrace{\tan \, \varphi\_2}\_{B} = \frac{y + l\_1 \sin \gamma - d\_1}{x + l\_1 \cos \gamma - c\_1} \, , \tag{38}$$

$$\underbrace{\tan \, \varphi\_3}\_{\mathbb{C}} = \frac{y + (l\_1 + l\_2)\sin \gamma - d\_2}{x + (l\_1 + l\_2)\cos \gamma - c\_2},\tag{39}$$

where we will be using the abbreviations *A*, *B* and *C* in the following. The angles *ϕ*1, *ϕ*<sup>2</sup> and *ϕ*<sup>3</sup> are the three orientation angles of the linear actuators with respect to the base platform's *x*-axis and can be obtained, for example, from IMUs that are mounted on the linear actuators. Now, we can rewrite Equation (37):

$$\mathbf{y} = \mathbf{A}\mathbf{x}\,,\tag{40}$$

and use it in Equation (39):

$$\mathcal{C} = \frac{A\mathbf{x} + (l\_1 + l\_2)\sin\gamma - d\_2}{\mathbf{x} + (l\_1 + l\_2)\cos\gamma - c\_2} \,. \tag{41}$$

From this, we can derive an expression for *x*:

$$\mathbf{x} = \frac{(l\_1 + l\_2)(-\sin\gamma + \mathcal{C}\cos\gamma) - \mathcal{C}c\_2 + d\_2}{A - \mathcal{C}}\,,\tag{42}$$

and from Equation (40), we can get an expression for *y*:

$$y = A \frac{(l\_1 + l\_2)(-\sin\gamma + C\cos\gamma) - Cc\_2 + d\_2}{A - C} \,. \tag{43}$$

In order to obtain a univariate equation in *γ*, we use Equations (42) and (43) with the remaining Equation (38) of the inverse kinematics:

$$B = \frac{y + l\_1 \sin \gamma - d\_1}{x + l\_1 \cos \gamma - c\_1} = \frac{A \frac{(l\_1 + l\_2)(-\sin \gamma + C \cos \gamma) - C c\_2 + d\_2}{A - C} + l\_1 \sin \gamma - d\_1}{\frac{(l\_1 + l\_2)(-\sin \gamma + C \cos \gamma) - C c\_2 + d\_2}{A - C} + l\_1 \cos \gamma - c\_1}. \tag{44}$$

Now, we have a univariate equation in *γ* whose two possible solutions are given by

$$\gamma\_1 = -\operatorname{atan2}\left(\frac{DH - E}{GI}, \frac{F + D}{G}\right),\tag{45}$$

$$\gamma\_{\rm II} = -\operatorname{atan2}\left(\frac{-DH-E}{GI}, \frac{F-D}{G}\right) \tag{46}$$

where

$$D = \sqrt{-I^2 \left(-G + \frac{E^2}{I^4}\right)}.\tag{47}$$

$$\begin{split} E &= \left( \left( (-c\_1 + c\_2)\mathbf{C} + c\_1\mathbf{A} - d\_2 \right) \mathbf{B} - (Ac\_2 - d\_1)\mathbf{C} - A(d\_1 - d\_2) \right) \mathbf{I}^2, \\ F &= \left( \left( (-c\_1 - c\_2)l\_1 - l\_2c\_1 \right) \mathbf{B} + (d\_1 - d\_2)l\_1 + (d\_1 - d\_2)l\_2 \right) \mathbf{C} \\\\ &+ c\_1 l\_1 \mathbf{B}^2 - (d\_1 - d\_2)l\_1 \mathbf{B} + (c\_2 l\_1 + c\_2 l\_2) \mathbf{C}^2 \Big) \mathbf{A}^2 + \left( (-c\_1 + c\_2)l\_2 \mathbf{B}^2 + d\_1 l\_2 \mathbf{B} \right) \mathbf{C}^2 - B^2 \mathbf{C} d\_2 l\_2 \\\\ &+ \left( \left( \left( (c\_1 - c\_2)l\_1 + (c\_1 - 2c\_2)l\_2 \right) \mathbf{B} - d\_1 l\_1 - d\_1 l\_2 \right) \mathbf{C}^2 \right. \\\\ &+ \left( \left( (-c\_1 + c\_2)l\_1 + l\_2 c\_2 \right) \mathbf{B}^2 + \left( (d\_1 + d\_2)l\_1 - (d\_1 - 2d\_2)l\_2 \right) \mathbf{B} \right) \mathbf{C} - B^2 d\_1 l\_1 \end{split} \tag{40}$$

$$+\left(\left((-c\_1+c\_2)l\_1+l\_2c\_1\right)\mathcal{B}^2+\left((d\_1+d\_2)l\_1-(d\_1-2d\_2)l\_2\right)\mathcal{B}\right)\mathcal{C}-\mathcal{B}^2d\_2l\_1\right)A\,,\tag{49}$$

$$\ldots \quad \ldots \quad \ldots \quad \ldots$$

$$G = (\mathbb{C}^2 + 1)(A - B)^2 l\_2^2 + l\_1^2 (B - \mathbb{C})^2 (A^2 + 1) - 2l\_1 l\_2 (B - \mathbb{C})(A \mathbb{C} + 1)(A - B) \, , \tag{50}$$

$$H = A(B - \mathbb{C})l\_1 - \mathbb{C}(A - B)l\_2 \,. \tag{51}$$

$$I = (A - B)l\_2 - (B - \mathbb{C})l\_1 \,. \tag{52}$$

Finally, we can use the solutions for  $\gamma$  in the Equations (42) and (43) to obtain the position of the manipulator platform. If we are also interested in the linear advantages' lengths, we can calculate them by using inverse kinematics, see Equations (2)-(4).

Figure 6a shows the two assembly modes of the general planar 3-RPR parallel mechanism when the linear actuators' orientations are used. We use the same parameters as in Section 2. With a given set of linear actuators' orientation angles

$$
\varphi\_1 = 82.8750^\circ, \qquad \varphi\_2 = 96.0453^\circ, \qquad \varphi\_3 = 106.5502^\circ,\tag{53}
$$

the two assembly modes can be calculated. Using our method, we can find the following two solutions:

$$
\begin{bmatrix} \mathbf{x\_{I}} \\ \mathbf{y\_{I}} \\ \gamma \mathbf{n} \end{bmatrix} = \begin{bmatrix} 10.0000 \,\text{mm} \\ 80.0000 \,\text{mm} \\ -20.0000^{\circ} \end{bmatrix} \,, \qquad \begin{bmatrix} \mathbf{x\_{II}} \\ \mathbf{y\_{II}} \\ \gamma \mathbf{n} \end{bmatrix} = \begin{bmatrix} 24.2363 \,\text{mm} \\ 193.8902 \,\text{mm} \\ 104.5335^{\circ} \end{bmatrix} \,, \tag{54}
$$

As a second example, Figure 6b shows the two assembly modes of the general planar 3-RPR parallel mechanism when the following linear actuators' orientation angles are used:

$$
\varphi\_1 = 82.8750^\circ, \qquad \varphi\_2 = 94.7360^\circ, \qquad \varphi\_3 = 101.0877^\circ. \tag{55}
$$

In this case, the following two solutions are obtained:

$$
\begin{bmatrix} \mathbf{x\_{I}} \\ \mathbf{y\_{I}} \\ \gamma \mathbf{1} \end{bmatrix} = \begin{bmatrix} 10.0000 \,\text{mm} \\ 80.0000 \,\text{mm} \\ 20.0000^{\circ} \end{bmatrix} \,, \qquad \begin{bmatrix} \mathbf{x\_{II}} \\ \mathbf{y\_{II}} \\ \gamma \mathbf{n} \end{bmatrix} = \begin{bmatrix} 10.2792 \,\text{mm} \\ 82.2340 \,\text{mm} \\ 23.6134^{\circ} \end{bmatrix} \,, \tag{56}
$$

Compared to the first example where the two solutions are far away from each other and the actual solution can be identified easily, in the second example, the two solutions are quite close to each other. This would make the differentiation of the actual solution more difficult, especially when the linear actuators' orientations are perturbed by measurement noise. In fact, when two linear actuators' orientations are identical, the root in Equation (47) becomes negative and no real solution exists. This also corresponds to a direct kinematics singularity.

**Figure 6.** The two assembly modes (shown in blue and red) for the manipulator platform of the general planar 3-RPR parallel mechanism when using the linear actuators' orientations: (**a**) results for *ϕ*<sup>1</sup> = 82.8750◦, *ϕ*<sup>2</sup> = 96.0453◦ and *ϕ*<sup>3</sup> = 106.5502◦ and (**b**) results for *ϕ*<sup>1</sup> = 82.8750◦, *ϕ*<sup>2</sup> = 94.7360◦ and *ϕ*<sup>3</sup> = 101.0877◦.

In general, it can be noticed that, in contrast to the usual six assembly modes, we only have two assembly modes when using the linear actuators' orientations. Furthermore, the assembly modes calculated from the linear actuators' orientations differ from those calculated from the liner actuators' lengths, compare Figures 2 and 6. Finally, the equations that were used for calculating the assembly modes are applicable to every type of general planar 3-RPR parallel mechanisms and can be solved without any numerical methods. In contrast, when using the linear actuators' lengths, there is, in general, no analytical equation available to calculate the assembly modes, see, for example, Reference [8].

### **4. Cramér-Rao Lower Bound**

In order to evaluate the achievable accuracy of the presented approach, based on the expected variances of the linear actuators' orientations, the Cramér-Rao lower bound (CRLB) of the manipulator platform's pose can be computed and compared with the actually measured variances. The CRLB is an estimator that provides the lowest possible mean-squared error among all other estimators. Thus, it can be used to compare existing estimators or algorithms regarding their efficiency on the one hand and to estimate the impact of measurement errors on the calculated pose on the other hand.

By using the inverse kinematic Equations (37)–(39), we can find a relation between the measurement vector *z*, with

$$\mathbf{z} = \begin{bmatrix} \varphi\_1 & \varphi\_2 & \varphi\_3 \end{bmatrix}^\top \quad \text{\(}\tag{57}$$

and the pose *p*, with

$$\mathbf{p} = \begin{bmatrix} \mathbf{x} & \mathbf{y} & \boldsymbol{\gamma} \end{bmatrix}^{\top} \mathbf{y} \tag{58}$$

that is given by the measurement model *h*(*p*):

$$z = \begin{bmatrix} \arctan\left(\frac{y}{x}\right) \\ \arctan\left(\frac{y + l\_1 \sin \gamma - d\_1}{x + l\_1 \cos \gamma - c\_1}\right) \\ \tan\left(\frac{y + (l\_1 + l\_2) \sin \gamma - d\_2}{x + (l\_1 + l\_2) \cos \gamma - c\_2}\right) \end{bmatrix} =: h(p) \,. \tag{59}$$

Under the assumption that the measurement vector *z* is zero-mean Gaussian distributed with its variances *<sup>σ</sup>*2(*zk*), *<sup>k</sup>* ∈ {1, . . . , 3}, that are stored in the covariance matrix *<sup>C</sup>*, with

$$\mathcal{C} = \text{diag}\left(\sigma^2(\mathbf{z}\_k)\right) \; , \tag{60}$$

we can calculate the CRLB as the inverse of the Fisher information matrix *F*. Its components can be determined as follows:

$$F\_{k,l} = \frac{\partial z^{\parallel}}{\partial p\_k} \mathcal{C}^{-1} \frac{\partial z}{\partial p\_l} + \frac{1}{2} \operatorname{tr} \left( \mathcal{C}^{-1} \frac{\partial \mathcal{C}}{\partial p\_k} \mathcal{C} \frac{\partial \mathcal{C}}{\partial p\_l} \right) \; , \tag{61}$$

with *<sup>k</sup>*, *<sup>l</sup>* ∈ {*x*, *<sup>y</sup>*, *<sup>γ</sup>*}, where *<sup>∂</sup><sup>z</sup> <sup>∂</sup>p<sup>k</sup>* are the components of the Jacobian *Jh* of the measurement model *<sup>h</sup>*(*p*):

$$J\_{\hbar} = \frac{\mathbf{d}\hbar(p)}{\mathbf{d}p} = \begin{bmatrix} \frac{\partial \mathbf{h}^{\top}(p)}{\partial x} & \frac{\partial \mathbf{h}^{\top}(p)}{\partial y} & \frac{\partial \mathbf{h}^{\top}(p)}{\partial \gamma} \end{bmatrix}^{\top}. \tag{62}$$

In general, the variances *σ*2(*zk*) of the measurement vector *z* are not constant and the trace in Equation (61) does not vanish so that we have to calculate the derivatives *<sup>∂</sup><sup>C</sup> ∂p<sup>k</sup>* . Assuming that the variances *σ*2(*zk*), that is, *σ*2(*ϕ*1), *σ*2(*ϕ*2) and *σ*2(*ϕ*3), only depend on the orientation angles *ϕ*1, *ϕ*<sup>2</sup> and *ϕ*3, the derivatives *<sup>∂</sup><sup>C</sup> <sup>∂</sup>p<sup>k</sup>* can be transformed as follows:

$$\frac{\partial \mathcal{C}}{\partial p\_k} = \frac{\partial \mathcal{C}}{\partial z\_k} \frac{\partial z\_k}{\partial p\_k} = \frac{\partial \mathcal{C}}{\partial z\_k} \frac{\partial h\_k(p)}{\partial p\_k} \,, \tag{63}$$

where *<sup>∂</sup>h<sup>k</sup>* (*p*) *<sup>∂</sup>p<sup>k</sup>* is a component of the Jacobian *Jh* and *<sup>∂</sup><sup>C</sup> <sup>∂</sup>z<sup>k</sup>* is the derivative of the variance *<sup>σ</sup>*2(*zk*) for the orientation angle *zk*, that is, *ϕk*:

$$\frac{\partial \mathcal{C}}{\partial \mathbf{z}\_k} = \frac{\partial \operatorname{diag} \left( \boldsymbol{\sigma}^2 (\mathbf{z}\_k) \right)}{\partial \mathbf{z}\_k} = \operatorname{diag} \left( \frac{\partial \boldsymbol{\sigma}^2 (\mathbf{z}\_k)}{\partial \mathbf{z}\_k} \right) \,, \tag{64}$$

and can be derived by experiments.

### **5. Experiments**

### *5.1. Experimental Device*

In order to investigate the accuracy of the direct kinematics solution under static as well as dynamic conditions, we perform experiments on a new, specially designed prototype, see Figure 7. It consists of three identical linear actuators that are connected on the one side to the base platform and on the other side to the manipulator platform. The base and the manipulator platform have integrated revolute joints and, furthermore, the possibility to vary the joints' positions. As linear actuators, we use Actuonix L16-100-35-P with a minimum length of 168 mm, a stroke length of 100 mm and an integrated potentiometer for measuring the current length. The linear actuators are equipped with IMUs to measure their orientation. Here, InvenSense MPU-9250 sensors are chosen as IMUs, where the accelerometer and the gyroscope values are used. An Arduino Mega board with an integrated data acquisition and pose calculation algorithm is mounted inside the experimental device. The Arduino Mega board is furthermore equipped with a display for showing the current pose and a motor shield for controlling the lengths of the linear actuators using a proportional-integral-derivative (PID) controller. For comparing the calculated manipulator platform's pose with the actual pose, we need an independent measurement system. Here, we use image processing to optically analyse the actual manipulator platform's pose, whose joints' positions are equipped with small red dots for optically tracking their position. The positions of the red dots' center points are therefore detected, stored and converted into the positions of the manipulator platform's joints from which the manipulator platform's pose can be calculated. For the experiments on the general planar 3-RPR parallel mechanism, we use the following parameters for the base and manipulator platform's joints' coordinates according to Figure 1:

*c*<sup>1</sup> = 170 mm , *d*<sup>1</sup> = 10 mm , *l*<sup>1</sup> = 70 mm , *c*<sup>2</sup> = 280 mm , *d*<sup>2</sup> = −20 mm , *l*<sup>2</sup> = 30 mm . (65)

**Figure 7.** Experimental prototype of the general planar 3-RPR parallel mechanism with inertial measurement units (IMUs) mounted on the linear actuators and an Arduino Mega with a display integrated in the base to calculate and show the two assembly modes of the manipulator platform.

### *5.2. Dynamic Orientation Measurement*

The mechanism's *y*-axis corresponds to the negative gravity vector of the Earth *g*. The IMUs are mounted on the linear actuators in the way that their *x*-axes are always parallel to the mechanism's *z*-axis. For static poses, it is therewith possible to obtain the orientation angles *ϕ*1, *ϕ*<sup>2</sup> and *ϕ*<sup>3</sup> solely from the accelerometer values of the IMU, *ay*,*<sup>k</sup>* and *az*,*k*, where

$$
\varphi\_{k, \text{acc}} = \text{atan2}\left(a\_{k, y'} a\_{k, z}\right) \,. \tag{66}
$$

However, when the manipulator platform moves and, therewith, the linear actuators move too, the accelerometer values do not provide accurate results, leading to faulty pose calculations. Robust methods for estimating the actual orientation angles of the linear actuators thus require the IMUs' gyroscope values *ωk*,*x*, *ωk*,*<sup>y</sup>* and *ωk*,*<sup>z</sup>* in addition to the accelerometer values. The orientation angle *ϕ<sup>k</sup>* of the *k*th linear actuator can be obtained, for example, by using a complementary filter with

$$
\varphi\_{k,\text{com}}(i) = \pi\_{\text{t}} \left( \varphi\_{k,\text{com}}(i-1) + \omega\_{k,\text{x}} \Delta t \right) + (1 - \pi\_{\text{t}}) \varphi\_{k,\text{acc}} \,. \tag{67}
$$

where *i* is the iteration step, *τ*<sup>t</sup> is the ratio of the gyroscope and accelerometer values and Δ*t* is the time between two measurements. As initial orientation estimates, the results from the accelerometer values, that is, *ϕk*,acc, are used.

There are alternatives available for robustly and efficiently estimating the orientations based on IMU measurements including Kalman filtering, nonlinear complementary filters and quaternion based algorithms [72–75]. For the experiments, however, we choose the above introduced complementary filter with *τ*<sup>t</sup> = 0.93 for all the linear actuators. It shows fast responses to changes in the linear actuators' orientations as the gyroscope has a significantly higher impact than the accelerometer. In fact, especially for real-time applications on a low-memory computer, the complementary filter is recommendable because it shows similar accuracy with lower computational complexity compared to other filters. The time between two measurements Δ*t*, which is the inverse of the sampling rate, mainly depends on the computational efficiency of the used algorithms, the programming and the processor. Throughout the experiments, we realized a sampling rate of 53.16 Hz that corresponds to a Δ*t* of 18.81 ms.

### *5.3. Accuracy of the Orientation Measurements*

In order to investigate the dependency of the variances of the orientation angles *σ*2(*ϕk*) on the orientation angle *ϕ<sup>k</sup>* itself, we build a test bench, see Figure 8a, where we can mount different IMUs and vary the orientation angle in steps of 5◦. Here, we use an InvenSense MPU-9250 sensor which is rotated around its *z*-axis. For every orientation angle, we take 10,000 measurements with an Arduino Nano and calculate the orientation angle using the accelerometer and gyroscope values. Figure 8b shows the variances of the raw angle *ϕ*acc, that is solely calculated from the accelerometer values and the filtered angle *ϕ*com for different orientation angles. For the raw orientation angle *ϕ*acc, the variances lie between 0.0414◦<sup>2</sup> and 0.1609◦2. In contrast to that, the filtered angle *ϕ*com, shown in Figure 8c, has significantly smaller variances (27 to 38 times smaller) that lie between 0.0015◦<sup>2</sup> and 0.0042◦2. In order to find a mathematical representation, we added a fifth-order polynomial fit with

$$
\sigma^2(\boldsymbol{\varphi}\_{\rm acc}) \approx a\_0 + a\_1 \boldsymbol{\varphi}\_{\rm acc} + a\_2 \boldsymbol{\varphi}\_{\rm acc}^2 + a\_3 \boldsymbol{\varphi}\_{\rm acc}^3 + a\_4 \boldsymbol{\varphi}\_{\rm acc}^4 + a\_5 \boldsymbol{\varphi}\_{\rm acc}^5 \tag{68}
$$

$$
\sigma^2(\boldsymbol{\varphi}\_{\rm com}) \approx a\_0 + a\_1 \boldsymbol{\varphi}\_{\rm com} + a\_2 \boldsymbol{\varphi}\_{\rm com}^2 + a\_3 \boldsymbol{\varphi}\_{\rm com}^3 + a\_4 \boldsymbol{\varphi}\_{\rm com}^4 + a\_5 \boldsymbol{\varphi}\_{\rm com}^5 \tag{69}
$$

where the constants *a*0–*a*<sup>5</sup> are given in Table 1.

**Figure 8.** Experimental test bench to investigate IMUs on the dependency of the orientation angles' variances on the orientation angle (**a**). Experimental results of the InvenSense MPU-9250: (**b**) variances of the raw angle and suitable fifth-order polynomial fit and (**c**) variances of the filtered orientation angle and suitable fifth-order polynomial fit.

**Table 1.** Constants of the fifth-order polynomial for describing the orientation angle's variances of the raw and the filtered orientation angle as a function of the orientation angle itself.


### *5.4. Accuracy of Static Pose Detections*

As a first experiment on our general planar 3-RPR parallel mechanism, we investigate how accurate the assembly modes can be obtained under static conditions when solely the linear actuators' orientations are used. We therefore investigate ten randomly chosen static poses of the manipulator platform where we take 500 measurements and calculate the two assembly modes from the measured linear actuators' orientation angles. In this context, we compare the accuracy for the assembly modes that can be obtained when raw orientation angles *ϕ*acc and filtered orientation angles *ϕ*com are used. In addition to this, we compare our experimental results with those provided by the CRLB. As the ground truth, we use the actual manipulator platform's pose whose joints' positions are optically analyzed by using image processing.

Table 2 shows the ten investigated, randomly chosen static poses. We choose the coordinates for the manipulator platform poses between 64.62 mm and 155.25 mm in the *x*-axis, between 157.14 mm and 216.06 mm in the *y*-axis and between −20.45◦ and 15.84◦ for the platform orientation. Furthermore, Table 2 shows the mean values of the calculated poses after 500 measurements calculated from the raw orientation angles. First of all, it can be noticed that solution I, that is calculated from Equation (45), always corresponds to the actual pose while solution II, that is calculated from Equation (46), always

corresponds to the second assembly mode with higher *y*-coordinates. Second of all, it can be noticed that solution I and solution II are sufficiently far away from each other so that they can be distinguished unambiguously. Finally, when comparing the actual pose with the mean value of the calculated poses, it can be noticed that solution I has an offset error that varies from pose to pose between −5.16 mm and 0.11 mm in the *x*-axis, between −12.22 mm and 1.03 mm in the *y*-axis and between −1.48◦ and 6.42◦ for the platform orientation. The offset errors do not seem to have any dependencies.


**Table 2.** Investigated static poses and mean values of the calculated poses (solution I and solution II) after 500 measurements obtained from the raw orientation angles. Dimensions are in mm and ◦.

Figure 9 shows the position and orientation errors between the investigated static poses and solution I that was obtained experimentally from the IMUs' values with 500 repetitions as boxplots. The results from the raw accelerometer values are shown in red and the results from the complementary filtered orientation angles are shown in blue. Comparing the results from the raw accelerometer values with those obtained from the filtered orientation angles, it can be noticed that both show similar offset errors but, most importantly, the results for the filtered orientation angles have significantly lower variances. In fact, throughout the ten investigated poses, the variances of the position and orientation errors obtained with the raw accelerometer values are approximately 27 times higher than those obtained with the filtered orientation angles. This applies for all axes (8.3 to 56.1 times higher for the *x*-axis, 14.2 to 37.5 times higher for the *y*-axis and 14.2 to 33.3 times higher for the platform orientation). From the results shown in Figure 9, it can also be noticed that the variances in the axes are not constant and show dependencies on the position and orientation of the manipulator platform. In fact, the best results for the raw accelerometer values were obtained for the poses 9 and 10 where the position and orientation errors show variances of only 0.19 mm2 to 0.34 mm2 in the *x*-axis, 1.60 mm2 to 1.63 mm2 in the *y*-axis and 2.43◦<sup>2</sup> to 2.96◦<sup>2</sup> for the platform orientation. In contrast to that, poses 2 and 6 show the highest variances for the raw accelerometer values with 5.07 mm2 to 7.33 mm<sup>2</sup> in the *x*-axis, 65.15 mm<sup>2</sup> to 74.55 mm<sup>2</sup> in the *y*-axis and 20.36◦<sup>2</sup> to 22.71◦<sup>2</sup> for the platform orientation. The same applies for the filtered orientation angles.

In conclusion, the manipulator platform's pose can be obtained quite accurately with only small offset errors. Nevertheless, the variances obtained for the raw accelerometer values are very high but can be significantly improved when using the filtered orientation angles instead. Here, variances between 0.006 mm2 and 0.155 mm2 for the *x*-axis, between 0.051 mm<sup>2</sup> and 2.450 mm2 for the *y*-axis and between 0.073◦<sup>2</sup> and 0.743◦<sup>2</sup> can be obtained. In comparison to the other poses, the variances for poses 2 and 6 are comparably higher. One possible reason may be that only poses 2, 6 and 8, the orientation angle *ϕ*<sup>2</sup> is above 90◦, whereas *ϕ*<sup>2</sup> is below 90◦ for the other poses. However, pose 8 does not show the high variances that would be expected.

The variances of the position and orientation errors depend on the variances of the measurements and, more importantly, the amplification of the solution formulation. The CRLB allows to calculate the lower bound of the variances that we can expect for a specific pose based on the variances of the measurements, that is, the orientation angles. Therewith, we can compare our experimental results for each pose with those calculated by the CRLB. Figure 10 shows the position and orientation errors obtained experimentally from the filtered orientation angles in blue and the simulated position and orientation errors calculated with the CRLB in purple. The CRLB only requires the actual pose, the measurement model and the variances of the measurements. Here, we use the polynomial in Equation (69) to estimate the variances of the filtered orientation angles.

Table 3 shows the variances and CRLB's results for the first five static poses when using raw orientation angles and when using filtered orientation angles. From the first five investigated static poses, it can already be noticed that the variances of the position and orientation errors obtained from experiments correspond with those calculated by the CRLB. The same applies for the poses six to ten (not displayed). For all the poses, the difference between the experimental results from the filtered orientation angles and the CRLB's results are very small and do not exceed 0.15 mm<sup>2</sup> in the *x*-axis, 0.28 mm<sup>2</sup> in the *y*-axis and 0.32◦<sup>2</sup> for the platform orientation. When using the CRLB together with the polynomial in Equation (68) as the variances of the measurements, we can estimate the variances of the position and orientation errors of the results obtained with the raw accelerometer values similarly accurate (not displayed in Figure 10). Here, the difference between the raw experimental results and the CRLB's results are not higher than 1.42 mm<sup>2</sup> in the *x*-axis, 8.00 mm<sup>2</sup> in the *y*-axis and -5.82◦<sup>2</sup> for the platform orientation.

**Figure 9.** Results for the ten investigated static poses with 500 repetitions obtained experimentally from the raw accelerometer values (red) and the filtered orientation angles (blue). The errors in each axis, Δ*x*, Δ*y* and Δ*γ*, are displayed in a boxplot. Dimensions are in mm and ◦. The box corresponds to the area in which the middle 50% of the errors lie while the whiskers indicate the area in which the middle 99.3% of the errors lie.

**Figure 10.** Results for the first five investigated static poses with 500 repetitions obtained experimentally from the filtered orientation angles (blue) and by simulation using the corresponding Cramér-Rao lower bound (CRLB) (purple). The errors in each axis, Δ*x*, Δ*y* and Δ*γ*, are displayed in a boxplot. Dimensions are in mm and ◦. The box corresponds to the area in which the middle 50% of the errors lie while the whiskers indicate the area in which the middle 99.3% of the errors lie.

**Table 3.** Variances and results for the Cramér-Rao lower bound for the first five static poses when using raw orientation angles and when using filtered orientation angles. The variances are displayed as *σ*2(*x*) *σ*2(*y*) *σ*2(*γ*) . Dimensions are in mm<sup>2</sup> and ◦2.


In conclusion, by only knowing the measurement variances of the IMUs, it is possible to predict the manipulator platform's variances very accurately for any pose in the workspace without experiments at all. As the experimental results match the CRLB's results, we can furthermore conclude that the solution formulation proposed in Section 4 is the optimal estimator with the lowest amplification of measurement variances on the position and orientation variances. In the measurement model for the CRLB, we assumed the measurement error to be zero-mean Gaussian. The experiments indicate that this is not true. By also including these offset errors and the nonlinearity of the IMUs into the measurement model, it would be possible to predict the offset error of the manipulator platform's pose in addition to its variances. As an alternative, in order to realize zero-mean Gaussian measurement errors, it is also be possible to eliminate the offset errors and the nonlinearity of the IMUs by doing further calibrations.

### *5.5. Comparing Analytic Orientation-Based Results with Iterative Length-Based Results for Static Pose Detections*

In Section 2, we reviewed classical methods for solving the direct kinematics problem of the general planar 3-RPR parallel mechanism and mentioned that iterative methods like the Newton-Raphson algorithm are most often used for finding the actual pose of the manipulator platform from the linear actuators' lengths. The accuracy mainly depends on the initial estimate and the accuracy of the measured linear actuators' lengths. The linear actuators that are used in our prototype of the general planar 3-RPR parallel mechanism have integrated potentiometers. Consequently, the lengths are measured indirectly with the problem that the actual lengths of the linear actuators are not measured and rely on the linearities of the potentiometers. In addition, the analog inputs of the Arduino Mega board have a limited resolution of 10 bit leading to a maximum resolution of 0.0977 mm/bit for the linear actuators' lengths (stroke length of the linear actuators divided by the resolution of Arduino Mega). Nevertheless, the obtained linear actuators' lengths can be used together with an initial estimate and the Newton-Raphson algorithm to calculate the actual pose of the manipulator platform. In order to evaluate the quality of the measured linear actuators' lengths and to guarantee convergence of the Newton-Raphson algorithm, we used the actual pose as initial estimate. Table 4 shows the mean offset errors of the Newton-Raphson algorithm for the measured linear actuators' lengths. Furthermore, it shows the mean offset errors for the ten static poses obtained with the analytic formulation proposed in Section 3 and the raw orientation angles.


**Table 4.** Investigated static poses and mean offset errors Δ*x*, Δ*y* and Δ*γ* of the analytic, orientation-based formulation and the iterative length-based solution (Newton-Raphson algorithm). Dimensions are in mm and ◦. Poses, where the algorithm fails to converge are indicated by a −−.

From Table 4, it can be observed that, except for the poses 2 and 6, the mean error of the Newton-Raphson algorithm is significantly higher than the mean error of the analytic formulation. In fact, the mean errors of the Newton-Raphson algorithm are 1.5 to even 20 times higher than the mean errors of the analytic formulation. The mean errors spread between −32.48 mm and 8.18 mm in the *x*-axis, between −9.22 mm and 5.86 mm in the *y*-axis and between −11.14◦ and 4.09◦ for the platform orientation. For the poses 9 and 10, the Newton-Raphson algorithm even converged to a completely wrong solution although the actual pose is used as the initial pose estimate. In contrast, for poses 2 and 6, the Newton-Raphson algorithm shows more accurate results than the analytic formulation. The mean errors in the calculated poses indicate that there is an offset between the actual and the measured linear actuators' lengths that needs to be removed by calibration. By comparing the actual lengths with the measured lengths, however, only small errors in the lengths measurements

were recognized (±1.5 mm). Other than for the linear actuators' orientations and consequently the results for the analytic formulation, the variances for the Newton-Raphson algorithm are nearly zero (0.21 mm<sup>2</sup> in the *x*-axis, 0.09 mm2 in the *y*-axis and 0.06◦<sup>2</sup> for the platform orientation) since the lengths do not change under static conditions and the potentiometers' readings only differ by ±1 bit. This indicates that if the lengths are measured correctly and with a sufficiently high resolution, the manipulator platforms' pose can be found with the Newton-Raphson algorithm more robustly than from the unfiltered orientation angles. In the current form, that is, using the linear actuators' potentiometer values, only slightly lower variances as for the filtered orientation angles can be obtained. However, the Newton-Raphson algorithm requires at least three to five iterations to converge, whereas the analytic formulation provides an explicit formulation without any iteration steps. Furthermore, if the initial pose estimate is changed away from the actual pose, the required number of iterations increase and we cannot guarantee that the Newton-Raphson algorithm will always converge to the correct solution.

In conclusion, the Newton-Raphson algorithm together with the linear actuators' lengths shows higher offset errors but lower variances than the analytic formulation where solely the linear actuators' orientations are used. However, for pose detections where no accurate initial pose estimate can be provided, for example, in the beginning of an experiment or after restarting the system, the convergence of the Newton-Raphson algorithm cannot be guaranteed.

### *5.6. Accuracy of Dynamic Pose Detections*

As a second experiment on our general planar 3-RPR parallel mechanism, we investigate how accurate the manipulator platform's pose can be obtained under dynamic conditions when solely the linear actuators' orientations are used. Therefore, we continuously move the manipulator platform dynamically by changing the linear actuators' lengths adequately using a PID controller that minimizes the differences between the target and the actual lengths. We let the linear actuators run with 12 V leading to higher velocities (±40 mm/s and ±15◦/s). During the experiment, we measure and filter the linear actuators' orientations with the maximum possible sampling rate, that still is 53.16 Hz and calculate the two assembly modes using the formulation proposed in Section 3. As the ground truth, we again use image processing to optically analyse the actual manipulator platform's pose, whose joints' positions are equipped with small red dots for optically tracking their position (the images are recorded with 30 fps). Figure 11 shows the trajectories of the manipulator platform's joints in blue, red and green, respectively, during the dynamic experiment. The entire dynamic experiment is also shown in the video of the Supplementary Material.

Figure 12 shows the manipulator platform's pose during the dynamic experiment calculated from the raw (red) and the filtered (blue) linear actuators' orientations. As reference (black), the positions and orientations calculated from the optically analysed manipulator platform joints are displayed. During the experiment, the manipulator platform's pose ranges between 97.6 mm and 154.5 mm in the *x*-axis, between 177.1 mm and 219.1 mm in the *y*-axis and between 11.6◦ and 24.7◦ for the platform orientation. Here, we only use solution I of the proposed formulation calculated from Equation (45). Solution II range between 165.9 mm and 333.7 mm in the *x*-axis, between 332.2 mm and 492.6 mm in the *y*-axis and between −179.9◦ and 179.8◦ for the platform orientation and is therewith sufficiently far away from solution I.

The poses calculated from the raw accelerometer values are significantly noisier than the poses calculated with the complementary filtered orientation angles. In fact, the complementary filter's results are at least two times more accurate than the unfiltered results and match the actual manipulator platform's pose quite well. Especially in the *x*-axis, the complementary filter's results are comparatively accurate and do not exceed a position error of ±5 mm. For the platform orientation, the complementary filter's results show errors mainly between −10◦ and 5◦. Only between second 22 and 25 of the experiment, the complementary filter shows strangely big position and orientation errors. The same but with a smaller impact, happens at second 3 of the experiment. In both cases, the calculated

orientation angle of the manipulator platform drifts away by 10◦ (at 3 s) and even 30◦ (at 23 s). The reason for this is probably that, due to the high velocity and the sampling rate, the Arduino Mega looses some measuring information leading to inaccurate linear actuators' orientations.

Figure 13 summarises the position and orientation errors of the raw and the filtered orientation angles in boxplots. Both the poses calculated from the raw accelerometer values and the poses calculated with the complementary filter do not show any offset errors. Due to the high measurement noise, the poses calculated from the raw accelerometer values are very noisy and show huge errors. In total, only 50% of the errors range between −15.3 mm and 11.9 mm for the *x*-axis, between −23.2 mm and 22.3 mm for the *y*-axis and between −21.9 mm and 19.3 mm for the platform orientation. Furthermore, the the proposed formulation often fails to solve Equations (45) and (46) from the raw accelerometer values. Apparently, the root in Equation (47) becomes negative. This can be traced back to the noisy IMUs' measurements under fast motions. Hence, from the raw accelerometer values, the pose cannot be obtained sufficiently accurate. In contrast to that, the results calculated from the complementary filter are significantly more accurate and robust. Here, lower variances of the position and orientation errors can be obtained. y gy n can

**Figure 11.** Trajectories of the first (blue), second (red) and third (green) manipulator platform joint during the dynamic experiment. The trajectories were recorded by a camera with 30 fps and the joints' positions were analysed using image processing.

For comparison, we additionally used the linear actuators' lengths and the Newton-Raphson algorithm to calculate the manipulator platform's pose iteratively. These results, however, are not calculated on the Arduino Mega due to the required initial estimate in the beginning of the experiment and, more importantly, the significantly longer calculation time. In fact, using the linear actuators' lengths and the Newton-Raphson algorithm is at least ten times slower than using the proposed analytic algorithm together with the filtered orientations. However, even though the actual pose of the manipulator platform was given as an initial pose estimate, for this experiment, the Newton-Raphson algorithm converged to a completely wrong pose in the beginning, that is,

$$
\begin{bmatrix} x & y & \gamma \end{bmatrix}^{\top} = \begin{bmatrix} 172.0 \text{ mm} & -142.4 \text{ mm} & 233.3^{\circ} \end{bmatrix}^{\top} \text{,} \tag{70}
$$

and did not return from there. Hence, the results of the Newton-Raphson algorithm does not match the actual pose at all. Possible reason are the small errors in the linear actuators' lengths and the missing robustness of the Newton-Raphson algorithm.

**Figure 12.** Pose of the manipulator platform during the dynamic experiment calculated from the raw (red) and the filtered (blue) linear actuators' orientations: (**a**) *x*-position, (**b**) *y*-position and (**c**) orientation angle *γ*. As reference (black), the positions and orientations calculated from the optically analysed manipulator platform joints are used.

**Figure 13.** Boxplots of the position and orientation errors of the manipulator platform's pose during the experiment calculated with the raw orientation angles (red) and the complementary filtered orientation angles (blue). The box corresponds to the area in which the middle 50% of the errors lie while the whiskers indicate the area in which the middle 99.3% of the errors lie.

In conclusion, the results obtained from the filtered linear actuators' orientation angles together with our formulation proposed in Section 3 are capable of calculating the actual manipulator platform's pose even under dynamic conditions. Comparably small offset errors and variances can be obtained throughout the dynamic experiment. It therewith is significantly more accurate and robust than the raw orientation angles. Nevertheless, the variances obtained with the complementary filter are still too high for an accurate pose control. However, it outperforms the Newton-Raphson algorithm in terms of accuracy, robustness and computational efficiency.

### **6. Conclusions**

In this paper, we first reviewed classical methods for solving the direct kinematics problem of parallel mechanisms and discussed their disadvantages on the example of the general planar 3-RPR parallel mechanism. In order to avoid these disadvantages, we proposed a sensor concept together with an analytical formulation for solving the direct kinematics problem of a general planar 3-RPR parallel mechanism. By measuring the orientations of the linear actuators, provided, for example, by inertial measurement units, the number of possible assembly modes can be reduced down to two when using the linear actuators' orientations instead of their lengths. Finally, we experimentally evaluated the accuracy of our direct kinematics solution under static as well as dynamic conditions by performing experiments on a specially designed prototype.

The static experiments prove that it is possible to calculate the two possible assembly modes of the manipulator platform from the linear actuators' orientations. For the investigated general planar 3-RPR parallel mechanism, the two solutions of the direct kinematics problem are sufficiently far away from each other to distinguish between them. By using the raw accelerometer values to calculate the linear actuators' orientation angles, the variances in the orientation angles are quite high leading to huge variances in the calculated poses of the manipulator platform. The mean results, however, are quite precise. By using a complementary filter instead, where the linear actuators' orientation angles are calculated from the IMUs' accelerometer and gyroscope values, the variances in the orientation angles are significantly smaller (27 to 38 times) leading also to smaller variances in the calculated poses of the manipulator platform. Here, variances between 0.006 mm<sup>2</sup> and 0.155 mm<sup>2</sup> for the *x*-axis, between 0.051 mm2 and 2.450 mm2 for the *y*-axis and between 0.073◦<sup>2</sup> and 0.743◦<sup>2</sup> can be obtained.

By using the Cramér-Rao lower bound (CRLB) together with the known variances of the linear actuators' orientation angles, it is possible to estimate the variances of the calculated manipulator platform's pose in each axis for every pose in the workspace. For the static measurements, the experimental results match the CRLB's results so that we can conclude that the proposed solution formulation is the optimal estimator with the lowest amplification of measurement variances on the position and orientation variances.

The dynamic experiment also indicates that the raw accelerometer values are too noisy to be used for accurately and robustly calculating the manipulator platform's pose. Throughout the experiment, the results show huge variances. Furthermore, the proposed formulation furthermore fails to solve Equations (45) and (46) that, can also be traced back to the noisy raw measurements. Much more accurate and robust results can be obtained from the filtered orientations angles. The complementary filter shows significantly lower variances of the position and orientation errors and no offset error. Therewith, the proposed analytic algorithm enables to actually calculate the manipulator platform's pose even under dynamic conditions. The risk of confusion between the two assembly modes never existed during the experiments since solution I, provided by Equation (45), always corresponds to the actual pose.

The analytic formulation for calculating the two assembly modes of the manipulator platform from the linear actuators' orientations presented in Section 3 can be further generalized. In fact, in the model of the general planar 3-RPR parallel mechanism, we assumed that the three manipulator platform joints *D*, *E* and *F* are aligned. This model is sufficiently general to show that the planar 3-RPR parallel mechanism can have up to six assembly modes. However, it does not correspond to the most general case where no constraints are given for the base and the manipulator platform joints. In future, we will focus on finding an analytic formulation for calculating the assembly modes even for this case.

By obtaining a unique solution of the direct kinematics problem without requiring the linear actuators' lengths, in future, it is possible to actually benefit especially in the control of parallel mechanisms. Usually, the measured linear actuators' lengths are compared with the target lengths that are provided by inverse kinematics for a given target pose, see Figure 14a. Due to the direct kinematics problem and the existence of singularities in the workspace of parallel mechanisms, we cannot guarantee that the linear actuators' lengths correspond to only one pose and it is possible that the manipulator platform is in (or moves to) a different pose than expected. This problem can be solved by using more suitable coordinates, for example, the linear actuators' orientations. When the direct kinematics problem provides a unique solution or, in this case, the two solutions are far away from each other, we can ensure that the manipulator platform always moves to the target pose. Figure 14b shows a pose control concept where the linear linear actuators' orientation angles *ϕ* are used. For a given target pose *p*target, the target orientation angles *ϕ*target can be calculated from inverse kinematics. They can be compared with the measured orientation angles *ϕ*is and the required deviation of the orientation angles Δ*ϕ* can be calculated and given to the controller, for example, a PID controller. The controller then calculates an appropriate output *u* for the system that, in turn, produces the system output. Using the proposed sensor concept, the system output can be measured, for example, with IMUs mounted on the linear actuators. These measurements are filtered and finally compared with the new target orientation angles. In contrast to usual control concepts where we cannot guarantee that the pose that belongs to the measurements, in general, the linear actuators' lengths, is actually the target pose (indicated by the dashed line in Figure 14a. However, by using the proposed control concept shown in Figure 14b, we actually can. In this context, controllability of the robot is essential. Briot et al. [76] proposed an interesting approach to the analysis of the controllability of parallel mechanisms.

**Figure 14.** Conventional (**a**) and proposed control concept (**b**) for controlling the manipulator platform's pose of a parallel mechanism. The conventional control concept uses the linear actuators' lengths, whereas the proposed control concept uses the linear actuators' orientations. In contrast to the conventional control concept, the proposed control concept can guarantee an analytic solution of the direct kinematics problem.

**Supplementary Materials:** The following are available online at http://www.mdpi.com/2218-6581/8/3/72/s1, Video S1: Demonstration\_Video\_3RPR. A video including the dynamic experiment, the Matlab code and other information are available online at https://github.com/stefanschulz85/Assembly-Modes-of-a-3-RPR-parallel-Mechanism-when-Using-the-Linear-Actuators-Orientations (doi:10.5281/zenodo.3240459).

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

**Acknowledgments:** Stefan Schulz would like to thank Arthur Seibel for his valuable suggestions and Aniruidha Nagaraj Vyasamudra for his commitment during his project work. The publication of this article was supported by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation)—Projektnummer 392323616 and Hamburg University of Technology (TUHH) in the funding programme "Open Access Publishing".

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

### **References**


© 2019 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 (http://creativecommons.org/licenses/by/4.0/).
