1. Introduction
A reconfigurable parallel mechanism (RPM) allows changing its configuration to obtain different output link trajectories or vary the dimensions of its workspaces. This type of mechanisms also has the advantages of a parallel structure: particularly, high positioning accuracy, ability to manipulate heavy loads, and high rigidity [
1,
2,
3]. These characteristics allow the wide use of such mechanisms in technology. For example, they are applied as rehabilitation manipulators [
4], grippers [
5], robots for additive technologies [
6,
7], multi-axis machine tools [
8,
9,
10], and force sensors [
11].
Based on the structure, there are different types of RPMs. Some RPMs can change their configuration by attaching or detaching independent modules [
12,
13]. In addition, the configuration of RPMs can be modified by coupling additional kinematic chains, providing the entire system with a hybrid structure [
14]. Works [
15,
16] present RPMs in which it is possible to change the number of degrees-of-freedom (DOFs), while the structure of these mechanisms remains unchanged. Several types of RPMs use metamorphic kinematic chains in the design, i.e., the chains that provide adaptability and reconfigurability by changing their topology [
17,
18]. The original design concept for RPMs is presented in [
19], where types of output link movements vary when mechanisms come through singular positions. The problem of avoiding singularities in RPMs using actuation redundancy is proposed in [
20].
Despite the indicated advantages of the RPMs discussed above, they are still designed with multiple actuators, making their structures and control more complex. In this regard, paper [
21] proposed a novel RPM with the least possible number of actuators, i.e., one actuator, and without additional kinematic chains or modular elements that are used independently of the primary mechanism to change its configuration. This mechanism can reproduce diverse trajectories of its output link by a simple reconfiguration procedure, including disconnecting several flexible elements (belts) and reorienting some links (cranks). However, the problem of how to reorient the cranks to achieve the required output link motion has not yet been studied completely.
The discussed mechanism belongs to the type of parallel mechanisms with a circular guide that can provide a sufficiently large rotational angle around one of the coordinate axes. References [
22,
23,
24] show known examples of these mechanisms with three, four, and six legs. The analytical review showed that the mechanisms of this type lack reconfigurability (except a 3-DOF spherical mechanism presented in [
25] and a 6-DOF cable-driven mechanism shown in [
26]). The proposed mechanism fills this gap. In this paper, we consider an algorithm that can be applied to find reconfiguration parameters needed to realize a particular motion type.
The work is arranged as follows.
Section 2 briefly describes the architecture of the studied RPM.
Section 3 provides kinematic relations that are used next in
Section 4, which considers a reconfiguration algorithm in detail.
Section 5 demonstrates the application of the proposed techniques in several examples.
Section 6 discusses the features of the suggested methods, their limitations, and potential development. Finally, the conclusions (
Section 7) recap the results of the whole paper.
2. Mechanism Architecture
Let us consider the design features of the proposed parallel mechanism.
Figure 1 shows its virtual prototype, where six kinematic chains are mounted between the fixed link—circular guide 1, driving link—wheel 2, and output link—platform 11. Each kinematic chain includes planar and spatial elements. The planar ones stay within circular guide 1: gear 3 and drive pulley 4, having a common axis, driven pulley 5 and crank 6, also having a common axis, link block 7, swinging arm 8, and carriage 9. The last two links are rigidly connected. The spatial element is rod 10.
Pulleys 4 and 5 connect between themselves by a belt. Rod 10 forms spherical joints on both sides with carriage 9 and platform 11. Points and with i = 1 ... 6 determine the centers of spherical joints 9–10 and 10–11. Base coordinate system attaches to circular guide 1. Local coordinate system is attached to platform 11 with point P in the center of platform 11.
The mechanism has one DOF, as we have proved using screw calculus in [
27]. Moreover, this mechanism has reconfigurable capabilities, which allow changing the output link motion while having a single drive. For this purpose, we can disconnect the belt between pulleys 4 and 5 to reorient crank 6 in each kinematic chain. Thus, the platform can realize a particular trajectory.
In the following sections, we will show how to choose initial orientations of the cranks for a specific output link trajectory. This procedure uses kinematic relations between the coordinates of the mechanism links, and we will consider them first.
3. Kinematic Relations
First, let us consider how to set the position and orientation of the output link. The first one can be described by the Cartesian coordinates of its geometric center, point
P, relative to the base coordinate system:
where
is the vector, defining the position of point
P in base coordinate system
;
,
, and
are the components of vector
.
We can determine the orientation of local coordinate system
relative to fixed one
using rotation matrix
. In this study, we will use three Euler angles φ, θ, and ψ to set the platform orientation. Matrix
will be a product of three matrices:
where
O1′
y1′ is the axis of the rotated coordinate system after the platform rotation by angle φ around axis
O1z1;
O1″
x1″ is the axis of the rotated coordinate system after the platform rotation by angle θ around axis
O1′
y1′. Elementary rotation matrices included in (2) are calculated in the following way:
Coordinates of the output link can be grouped into one vector
X:
Suppose the variable
q defines the rotational angle of the driving link. This section aims to obtain relations between angle
q and coordinates
X, i.e., to find vector function
f:
First, let us consider the planar part of the mechanism.
Figure 2 shows a fragment of one of the six kinematic chains.
We can calculate rotational angle
of gear 3 in the following way:
where
i = 1…6 is the index number of a kinematic chain;
is the radius of driving wheel 2;
is the radius of gear 3.
Further, it becomes possible to determine rotational angle
of driven pulley 5:
where
is the radius of driving pulley 4;
is the radius of driven pulley 5.
Center
of driving wheel 2, center
of driving pulley 4, and center
of driven pulley 5 lie on a common straight line (
Figure 2). Then, distance
between the axes of wheel 2 and pulley 5 can be found:
where
is the distance between points
and
(i.e., between the centers of pulleys 4 and 5).
We can find length
from the cosine law for triangle
, where point
corresponds to the line block (
Figure 2):
where
is the length of
(the length of crank 6);
is the rotational angle of crank 6:
where
is an initial orientation of crank 6.
Rotational angle
between sides
and
can be determined from the sine law for triangle
:
The coordinates of point
of carriage 9 relative to base coordinate system
will have the following form:
where
is the radius of circular guide 1;
is the angle between axis
and line
(
Figure 2).
Next, consider the output link. Coordinates of point
of joint 10–11 relative to base coordinate system
can be derived in the following form:
where
are the coordinates of point
relative to local coordinate system
.
Finally, we can write a relationship connecting the coordinates in expressions (14) and (15) with rod length
:
Expressions (16), written for each of the six kinematic chains, form a system of six equations. These equations connect platform coordinates X with coordinates of other links, which depend on angle q. Thus, (16) presents system (7) that we looked for. In the following section, we will show how to handle the obtained relations to choose the initial orientations of the cranks for different output link trajectories.
4. Reconfiguration Algorithm
As mentioned earlier, and as shown in [
28], the output link can perform various trajectories by disconnecting the belt between pulleys 4 and 5 and reorienting cranks 6, i.e., by changing the value of angles
. Our aim is to select these values for a particular trajectory. To undertake this, we can first rewrite Equation (16) as:
Here we should mention a caveat. Since the mechanism has only one DOF, we cannot independently set all six components of vector
X. Only one of the platform coordinates can have an explicit form. Let us specify the prescribed coordinate as
, which represents any component of vector
X. We can group the five remaining unknown coordinates as vector
. System (17) in this case can be written as follows:
We can solve this system numerically for variables , q, and for each value of given coordinate . If coordinate has a form of trajectory , where t is the time, values must remain constant for each value of coordinate over the considered time interval to realize a given motion. From this perspective, the following approach can be applied to find a solution for system (18).
Let us represent trajectory
, given on some time interval [0,
T], in the form of
N discrete values:
where
corresponds to the value of coordinate
at the moment
,
j = 1…
N, with
and
.
For given trajectory
Xg(
t), variables
and
q, determined in the calculation results, will also be time dependences of
(
t) and
q(
t), which we can represent similarly in a discrete form:
Considering the performed discretization, we can write system (18) in the following form:
The equations above represent a system of 6N equations relative to 6 + 6N parameters: 6 unknown variables are ; N unknown variables are q[j]; 5N unknown variables are the components of vectors [j].
The structure of the obtained equation system has some features. To show this, we first group all unknown variables as vector
s of dimension 6 + 6
N:
where
is the vector containing the values of initial crank angles
.
We can also group system (22) as vector-function
f:
Jacobian matrix for vector-function (24) has a form:
For any pair of integers
m and
n,
m = 1…6,
n = 1…
N, function
depends only on those variables
[
j] and
q[
j], which have
j =
n, and only on that variable
, for which
i =
m, and does not depend on other variables. Consequently, Jacobian matrix (25) will have a sparse structure of the following form:
where
where
Variable in (27) is the k-th component of vector [j], k = 1…5.
All elements in the right side of expression (26) except
,
, and
are zeros; the latter can be found in
Appendix A. Thus, the Jacobian matrix for vector-function
f is highly sparse. We can estimate the matrix sparsity,
sp, as the ratio of its zero elements to the total number of the elements. In the discussed case, there are 6
N × (6 + 6
N) elements in total, and the number of nonzero elements is 42
N. As a result, we obtain the following equation:
The sparsity tends to one, i.e., almost all elements of the matrix are zero at large values of N. The large number of zero elements facilitates and speeds up the numerical solution of system (22). To find a solution, we should set some initial guess, which choice is a key factor. System (22) includes nonlinear equations, and the number of variables is greater than the number of equations. As a result, different initial guesses will lead to various solutions, and the solution may not exist at all for an incorrect initial guess. The problem of choosing this initial guess is still not studied completely. There are possibilities to facilitate this choice, for example, using experimental data or a virtual prototype of the hexapod.
Note that we also find angle q and coordinates during the numerical solution of system (22). Thus, the procedure implicitly includes an algorithm to solve the inverse kinematics.
5. Examples
Let us consider several examples of reconfiguration analysis for various output link trajectories with the mechanism parameters corresponding to the virtual prototype shown in
Figure 1 and presented in
Table 1.
In the first case, let us take orientation angle φ of the platform as given coordinate
with the following time law:
which corresponds to one complete oscillation around axis
with amplitude 10°.
The numerical solution was carried out in MATLAB package using standard function “fsolve” with the tolerance 1 × 10
−8 as a stopping criterion. To find a solution, “fsolve” applies a least-squares method for system (24). At this step, we also provided Jacobian matrix (26), the nonzero elements of which were found in an explicit form by differentiating expression (17) with respect to the corresponding variables (see
Appendix A). We set
N equal to 125, which corresponded to
sp = 0.99 according to expression (28). All variables had zero initial guesses, except output link coordinate
with the initial guess of 195 mm taken for each value of
j.
The numerical solution has been obtained after five iterations. Initial rotational angles
of cranks 6 have taken the following values (accurate to a tenth):
Figure 3 presents the calculation results for platform trajectory
X(
t), where φ(
t) corresponds to expression (29). It follows from
Figure 3 that four of the six platform coordinates remain unchanged and equal to zero, while coordinate
changes in a small range.
Let us study another example and take output link displacement
as given coordinate
with the following time law:
which corresponds to one complete oscillation along axis
with an amplitude of 10 mm.
The numerical simulation was performed under the same conditions as in the previous example, and we have found the solution after 13 iterations. Initial rotational angles
of cranks 6 have taken the following values:
Figure 4 shows the calculation results for output link trajectory
X(
t), where
corresponds to expression (31). It follows from
Figure 4 that the changes in Cartesian coordinates
and
of the platform center and its orientation angles θ and ψ are negligible, and angle φ varies in a small range. The coordinates have the same values at
t = 0 s and
t = 5 s.
Let us consider one more example and take platform displacement
as given coordinate
with the following time law:
which corresponds to one complete oscillation along axis
with an amplitude of 10 mm.
The conditions of the numerical simulation corresponded to the previous examples, and the solution has been determined after 99 iterations. We have found the following values of initial rotational angles
of cranks 6:
Figure 5 demonstrates the calculation results for platform trajectory
X(
t), where
corresponds to expression (33). In this case, all six coordinates of the output link vary and have the same values at
t = 0 s and
t = 5 s.
To complete the analysis,
Figure 6 presents the calculated time laws
q(
t) for all the examples. Notice that angle
q has the same values at
t = 0 s and
t = 5 s in each example.
As mentioned earlier, solutions obtained by numerical methods can significantly depend on an initial guess. The importance of this fact increases in situations such as ours, where we have a number of variables (6 + 6N) greater than the number of equations (6N). To demonstrate this, let us perform simulations for a different initial guess.
In the previous examples, we set a zero guess for all the variables except for the platform coordinate
. Suppose we arbitrarily change the guess for initial crank orientations
from zero to the following one:
Using MATLAB, we performed similar simulations for this updated initial guess. In the first case with
according to (29), we have found the following values of
after six iterations:
The values differ from (30) and have no “symmetry” as before. This leads to displacements in all the platform coordinates, which can be seen from
Figure 7 (φ(
t) corresponds to expression (29)). The results have a big contrast with the ones in
Figure 3, where the output link motion varied only in two coordinates.
The next example considers the case with
as in Equation (31). Given the updated initial guess for
, we have found the following values of the crank initial rotational angles after nine iterations:
The calculation took fewer iterations than before, and the obtained results are close to (32) but differ from them and are slightly “unsymmetrical.”
Figure 8 also demonstrates the resulting platform trajectory. Notice that coordinates
,
, θ, and ψ vary much more than earlier (
Figure 4), though the output link continues to track given motion
.
In the final case,
according to expression (33). After 24 iterations, we have found the next values of
:
The calculation took four times fewer iterations than the previous one with the zero initial guess. Obtained values of
and the resulted output link trajectory (
Figure 9) differ significantly from (34) and
Figure 5. Platform coordinates vary at the same order of magnitude as before but have an alternative form.
Figure 10 shows the calculated values of drive rotational angle
q for all the examples. Again, for each case, we can see the differences between these results and the ones in
Figure 6. The biggest difference exists in the third case when
.
6. Discussion
To implement the suggested techniques in practice, one should follow the next simple steps:
Set desired motion Xg(t) for one output link coordinate and calculate crank initial configuration together with drive control law q(t) using the proposed reconfiguration algorithm;
On the mechanism, manually disconnect the belts and reorient the cranks according to calculated values . Reconnect the belts;
Rotate the drive from its initial (zero) position to q(0). At this step, one can use any control law for the drive, e.g., an ordinary rotation with a constant speed;
Control the drive according to calculated time law q(t).
We applied the steps above on the virtual prototype (
Figure 1) and verified all the examples of
Section 5 using an Autodesk Inventor Dynamic Simulation module. During the CAD simulations, we first set the initial orientations of the cranks according to obtained values
. Next, we controlled the drive rotation using time laws in
Figure 6 or
Figure 10 and tracked the platform displacements. In all examples, the relative difference between the MATLAB and CAD results was less than 0.1%, caused mainly by numerical inaccuracies. This confirms the correctness of the suggested reconfiguration algorithm.
The examples studied in the previous section show that the given output link trajectory can be realized with different initial rotational angles of the cranks and various drive motions q(t). In some cases, uncontrolled platform coordinates have negligible changes, while in others, they vary considerably. This leaves us an opportunity to form an optimization problem that will seek for parameters and drive motion q(t) minimizing deviations in the uncontrolled coordinates. One should remember that the considered kinematic relations are highly nonlinear: as a result, convergence to a global optimum solution cannot be guaranteed for inappropriate initial conditions. The choice of initial guess remains an open and interesting problem.
We can use the proposed reconfiguration procedure in any other cases when it is necessary to provide a specified output link motion for one of the six coordinates, and the remaining five are arbitrary. The method allows determining the initial orientations of the cranks and the drive control law required to realize such a motion. To get more accurate results, we can either increase the sampling rate, i.e., parameter N, or diminish the tolerance value. However, the calculation time will rise in both cases.
Nevertheless, the suggested algorithm is computationally effective and can be developed for solving a dimensional synthesis problem. We addressed both topics in [
29]. The considered techniques can also be extended for other mechanisms.
7. Conclusions
In this study, we have presented a variation of the hexapod-type reconfigurable parallel mechanism equipped with a single drive. The mechanism allows changing trajectories of the output link by disconnecting the belt in each kinematic chain.
During the kinematic analysis, we have formed the explicit relations between the output link coordinates and the rotation angle of the driving link. Based on these relations, we have developed the reconfiguration algorithm. This algorithm allows choosing the values of reconfigurable parameters (initial orientation of the cranks) and the driving link control law to realize a specific output link trajectory along any one of six coordinates. The suggested algorithm contains an implicit solution of the inverse kinematics problem and allows finding five remaining coordinates of the platform. Features of the equation system being solved (high sparsity of its Jacobian matrix) make the numerical solution procedure fast.
Given the geometry of the mechanism virtual prototype, we have considered three examples with different specified output link trajectories and various initial conditions. These examples have confirmed the effectiveness of the proposed algorithm. All calculations have been successively verified by CAD simulations.
The considered mechanism can be used for various technological applications related to vibration testing, mixing materials, and for rehabilitation procedures. The algorithms presented in this study can be extended to solve optimization problems, including optimal design, and adapted for other mechanisms. Developing a subsystem that could automate the reconfiguration procedure (crank reorientation) represents another direction for future research.