The forward kinematic problem involves determining the values of generalized coordinates , , , and s for a given set of joint coordinates . Unlike the inverse kinematics, solution algorithms to this problem differ for the “3+1” and “2+2” mechanisms. Therefore, we will consider the forward kinematics of each mechanism separately.
4.1. Solution Algorithm for the “3+1” Mechanism
For the “3+1” mechanism, the algorithm relies on the kinematic analysis of a 3-DOF Delta mechanism, whose forward kinematic problem has a closed-form solution [
38]. We start by computing the coordinates of points
:
We can solve the forward kinematics for one half of the moving platform, which is coupled to the first three chains (
), by finding the intersection points of three spheres. The
i-th sphere has the radius of
and the center at point
with the following coordinates (
Figure 4):
where we used the conditions that the orientation of reference frame
remains the same as
and that
,
, and
for
according to Equation (
1).
The equations of the three spheres are as follows:
Thus, we have a system of three equations with three variables:
,
, and
. After expanding these equations and subtracting the second and third equations from the first one, we obtain a system of two linear equations:
whose coefficients
are listed in Equation (
A2).
Assuming that
and
, we can rewrite system (
12) as follows:
Subtracting the second equation in system (
13) from the first one and rearranging the terms, we express variable
in terms of
:
where
Next, we substitute Equation (
14) into any equation in system (
13). For instance, substituting it into the second equation yields the following:
where
Now, we can substitute Equations (
14) and (
16) into any equation in system (
11). Using the first equation, after expanding and rearranging the terms, we obtain a quadratic equation for variable
:
whose coefficients
,
, and
are listed in Equation (
A3).
In a general case, Equation (
18) has two solutions, which we substitute into Equations (
14) and (
16) to calculate
and
.
If
,
, or
, the presented algorithm becomes infeasible because of the division by zero in Equations (
13) and (
15). However, if either
or
, we can derive the relation between
and
directly from the first or second equation of system (
12), respectively, and then substitute it into the other equation of the same system to obtain the relation between
and
. These relations are then substituted into any equation of system (
11) to yield an equation similar to Equation (
18). If both
and
are zero, Equation (
12) reduces to a system of two linear equations with two unknowns,
and
, which can be easily solved. Their values are then substituted into any equation of system (
11), resulting in a quadratic equation in
. A similar approach applies when
, but variables
and
are found from linear system (
12) and then substituted into any equation of system (
11) to obtain a quadratic equation in
.
Computed parameters
,
, and
determine the configuration of one part of the platform, and it remains to find displacement
s in its prismatic joint. For this purpose, we can write the following equation for the fourth chain:
Using Equations (
1) and (
3), we obtain a quadratic equation for variable
s:
whose coefficients
,
, and
are listed in Equation (
A4).
Equation (
20) has two solutions in a general case; therefore, there can be up to four different solutions to the forward kinematic problem for the “3+1” mechanism. In practice, the displacement in the prismatic joint between the platform parts is limited, and the solution is feasible only if the value of
s is within range
.
4.2. Solution Algorithm for the “2+2” Mechanism
Unlike the “3+1” case, we cannot use system (
11) to find coordinates
,
, and
as the intersection of three spheres because the third equation in this system is not valid anymore. Therefore, we propose another approach in this section.
First, we consider each half of the moving platform independently. Suppose we disassembled the platform at its prismatic joint and locked the actuators of each part of the mechanism. Under these conditions, point
D on one half of the platform traces a circle formed by the intersection of two spheres centered at points
and
, with radii
and
(
Figure 5a). The first two equations in system (
11) are the equations of these spheres. Likewise, we can define point
F on the other half of the platform, which traces the second circle. This circle is the intersection of two spheres centered at points
and
, with radii
and
. If point
F has coordinates
,
, and
in the
frame, then these two spheres have the following equations:
Next, we apply the assembling condition: points
D and
F stay on a line parallel to the
axis at the distance of
s:
Thus, we have four quadratic equations of the four spheres and three linear equations of the assembling condition with seven variables: , , , , , , and s. Instead of solving these equations directly, we reduce the number of variables by using the parametric equations of the circles.
Each circle is determined by the following parameters: the radius, the coordinates of its center, and the normal to its plane. For example, we consider the first circle for point
D. Let
be the circle radius;
,
, and
be the coordinates of its center
in the
frame;
,
, and
be the coordinates of its unit normal in the
frame (
Figure 5b).
Appendix B shows how to compute these parameters when we know the parameters of the two spheres. Now, we can write the coordinates of point
D as follows:
where angle
defines the angular position of point
D on the circle;
and
are two mutually orthogonal unit vectors, orthogonal to the normal of the circle plane (
Figure 5b). These unit vectors are determined from the coordinates of the normal, as described in
Appendix B.
Now, let
be the radius of the second circle, which corresponds to point
F;
,
, and
be the coordinates of its center
in the
frame;
,
, and
be the coordinates of its unit normal in the
frame. These parameters are computed similarly to the first circle. Using these notations, we can compose an equation like Equation (
23) by replacing subscripts
D and
with
F and
, respectively. Substituting the obtained expressions into assembling condition (
22), we derive a system of three equations with respect to variables
s,
, and
:
The second and third equations in the system above do not depend on
s, and we use these equations to determine variables
and
. For this purpose, we apply the tangent half-angle substitution [
39] (sect. 4.5) to transform these trigonometric equations into the algebraic ones:
Substituting these expressions into the second and third equations of system (
24) and eliminating the denominators, we obtain two quartic equations in variables
and
:
Although the obtained equations are quartic in
and
, each of them is quadratic in either
or
. Therefore, we can consider Equation (
26) as a system of two quadratic equations with respect to variable
(
), whose coefficients depend on variable
(
). For example, we can rewrite Equation (
26) as follows:
whose coefficients
are listed in Equation (
A5).
Next, we follow the dialytic elimination approach [
40] to exclude variable
from Equation (
27). For this purpose, we multiply both equations in system (
27) by
and obtain a system of four equations:
which can be written in a matrix form:
Equation (
29) represents a system of four linear equations with respect to the variables in the column-vector. This system should have a nontrivial solution, which is possible if and only if the determinant of the matrix in Equation (
29) equals zero. This condition yields the following equation:
According to Equation (
A5), each coefficient in the obtained equation is quadratic in
. Thus, Equation (
30) is an octic polynomial equation in variable
. Note that coefficients
and
has common multiplier
. Symbolic computations show that difference
also has this multiplier. Therefore, we can factor the polynomial in Equation (
30) and represent this equation as follows:
where coefficients
are constant and can be deduced from symbolic computations.
Since we are only interested in real solutions, we can ignore the
multiplier and get the final polynomial equation:
Note that the forward kinematics of the “2+2” mechanism cannot have more than four distinct solutions. Indeed, if we project the circles traced by points
D and
F onto the plane orthogonal to the
axis, these projections will be two ellipses in a general case. These ellipses can intersect at up to four points, with each point corresponding to a unique solution to quartic polynomial Equation (
32). This equation has a closed-form solution, which can be found using Ferrari’s method or other techniques [
41]. These methods usually involve tricky variable substitutions and can be inconvenient for practical use. Alternatively, we can compute all solutions numerically as the eigenvalues of the companion matrix of the obtained polynomial [
42]. In any case, we assume that we can solve Equation (
32) and find all its solutions.
For each solution to Equation (
32), we compute
and
using Equation (
25). After that, we determine
and
from the second and third equations in system (
24), which can be considered as two linear equations with respect to these variables:
A solution to this linear system must satisfy Pythagorean’s identity. This condition holds if
and
[
39] (sect. 4.4), but it may not be true in a general case, including the considered one. On the other hand, solutions to the forward kinematic problem (the values of variables
,
, and
s) should not depend on the reference frame where we establish the kinematic equations. In particular, one can transform system (
24) to the frame, whose
x axis is parallel to vector
and where conditions
and
are always true. Therefore, we conclude that system (
33) can indeed be used to find
and
, which will be verified in the subsequent section.
Once we found
,
,
, and
, we can determine variables
,
, and
using Equation (
23) and variable
s using the first equation in system (
24). This concludes the forward kinematic problem for the “2+2” mechanism and shows that it can have up to four distinct solutions, similar to the “3+1” mechanism. This result also agrees with paper [
43]. Like in the “3+1” case, the solution is feasible only if the value of
s is within range
.
Note that we could rewrite Equation (
26) as a system of two quadratic equations for variable
instead of
and then use the dialytic elimination approach to find variable
first. Equations (
27)–(
27) will have the same structure in this case, so either approach can be used. Finally, we should mention three special cases:
If
, we cannot use Equation (
33) to find parameters
and
. In this case, the spheres centered at points
and
touch each other at a single point, and angle
is undefined. The coordinates of point
D are readily obtained from Equation (
23), and it remains to compute variable
s. For this purpose, we first determine
and
from the second and third equations of system (
24), as we solved Equation (
33). After that, we find variable
from the first equation of this system. The forward kinematic problem has a single solution in this case.
If
, we also cannot use Equation (
33) to find parameters
and
. In this case, the
axis belongs to the plane of the circle traced by point
D. To find the position of point
D on this circle and solve the forward kinematics, we should use the dialytic elimination approach to eliminate varible
instead of
, as discussed earlier.
If both
and
, we cannot use proposed method to solve the forward kinematic problem, which has an infinite number of solutions under these conditions. Indeed, in this case, the
axis belongs to the planes of both circles, and the mechanism can be assembled for any values of variable
s. This is an example of a finite-motion singular configuration, which will be considered in
Section 5.