*Article* **Functional Design of a 6-DOF Platform for Micro-Positioning**

### **Matteo-Claudio Palpacelli 1,\*,†, Luca Carbonari 2,†, Giacomo Palmieri 1, Fabio D'Anca 3, Ettore Landini <sup>4</sup> and Guido Giorgi <sup>5</sup>**


Received: 14 October 2020; Accepted: 18 November 2020; Published: 23 November 2020

**Abstract:** Parallel kinematic machines (PKMs) have demonstrated their potential in many applications when high stiffness and accuracy are needed, even at micro- and nanoscales. The present paper is focused on the functional design of a parallel platform providing high accuracy and repeatability in full spatial motion. The hexaglide architecture with 6-PSS kinematics was demonstrated as the best solution according to the specifications provided by an important Italian company active in the field of micro-positioning, particularly in vacuum applications. All the steps needed to prove the applicability of such kinematics at the microscale and their inherent advantages are presented. First, the kinematic model of the manipulator based on the study's parametrization is provided. A global conditioning index (GCI) is proposed in order to optimize the kinetostatic performance of the robot, so that precise positioning in the required platform workspace is guaranteed avoiding singular configurations. Some numerical simulations demonstrate the effectiveness of the study. Finally, some details about the realization of a physical prototype are given.

**Keywords:** kinematic optimization; vacuum applications; micro-positioning; parallel kinematics machines

### **1. Introduction**

The ability to change the orientation and position of a sample with high precision has become an indispensable requisite in many applications, ranging from testing of microelectronic components, to assembly of optoelectronic components, to measurements in extreme environments such as ultra-high vacuums, to exposure to cryogenic radiation and temperature typical of synchrotrons, and more. These functions are normally performed by robotic platforms with limited workspace and a small range of rotation. Compliant devices often fulfill such requirements allowing precise movements only in a subdomain of the typically required six degrees of freedom, as is well documented in [1–7]. Parallel kinematic machines (PKMs) are usually preferred to serial devices because of their intrinsic features, such as stiffness, positioning accuracy, and repeatability. Many examples of commercial devices based on parallel kinematics architectures can be found in industry, especially in the measurement sector.

The most widely used PKM in such fields is the Gough–Stewart platform [8], which has been commercially proposed in many sizes in order to respond to different application domains. Many examples

of hexapods, whose operating principle is used to orient and manipulate microelectronic components, can be found in the scientific literature [9–11]. The main drawback of these manipulators, shared by most of the PKMs, is the limited workspace caused by the fixed location of both active and passive joints at the base frame, with which the legs of the manipulator are connected.

This limit can be overcome by a well-known mechanism from École Polytechnique Fédérale of Zürich, which takes the name of Hexaglide for its particular architecture. It belongs to the family of Hexapods, with six legs and six actuated rails at the fixed base [12]. In fact, the mechanical solution of having six parallel rails at the base can significantly extend the manipulator workspace, at least in one direction, providing a sort of extruded volume. One of the benefits could be the possibility of combining classic operations of pick and place, exploiting the whole length of the rails and covering a large workspace, to specific alignment and assembly tasks, for instance those typical of the microelectronics industry, in reduced sections of the rails by repeating them in several parallel workstations.

There are many examples in the literature of Hexaglide PKMs, but some of them are conceived with a different arrangement of the actuated rails at the base frame, for instance along the edges of an equilateral triangle [13] or in a star configuration [14], or even in more complex configurations [15,16], losing the ability to translate the entire mechanics in a prevalent direction. On the contrary, other studies are focused on their parallelism [17,18], but the proposed mechanical designs are oriented towards large machines where accuracy and repeatability are not the main objectives.

The present work proposes the functional design of a Hexaglide manipulator aimed at precision applications in the electronics and measurement sectors, with the aim of revealing a new potential use by showing its kinematic performance when designed for carrying out microscale tasks. Therefore, the first part of the paper is focused on the kinematics modeling of the manipulator, whereas the rest of the paper proposes an optimization procedure that, starting from one of its multiple inverse kinematics solutions, results in a functional design that fulfills the specifications set by an industrial manufacturer. Finally, a prototype designed with the aforementioned procedure is shown. Such prototype is based on a different inverse kinematics solution that is subject to a confidentiality agreement and currently cannot be disclosed.

### **2. Design Specifications**

The design specifications of the Italian manufacturer concern the kinematic and static performance required by the manipulator. They result from a market analysis in the microelectronics sector, as previously indicated. These can be summarized as follows:


### **3. The Hexaglide Kinematics**

As already mentioned in the previous sections, one of the most suitable kinematic architectures that can meet such desired specifications is the Hexaglide. Six actuated sliders, equally oriented in a given direction of the fixed base, provide the manipulator with a main direction of translation. A typical configuration of the manipulator is obtained with six rigid legs of constant length, and a hexagonal or triangular moving platform according to the connection of the legs in a 6-6 [19] or 6-3 scheme [20] by means of spherical joints, as shown in Figure 1. Six of the twelve spherical joints, the ones at the base or the others at the moving platform, can be replaced by universal joints for a non-under-constrained version of

the manipulator, avoiding the spin of the legs about their axis. It is often preferred that there is a reduction of the rails at the frame with three units, where two sliders move in pairs [21–23].

**Figure 1.** Functional solutions for the Hexaglide manipulator.

### *3.1. Model Parametrization*

The pose of the moving platform of a manipulator is typically defined by means of a homogeneous transformation expressed in terms of a 4 <sup>×</sup> 4 matrix, called <sup>0</sup> <sup>1</sup>**T** in the following. It involves the rotation matrix <sup>0</sup> <sup>1</sup>**R** between the mobile reference system {1}, placed on the moving platform, and the fixed reference system {0}, located at the base frame, and the relative position vector <sup>0</sup>**p**<sup>1</sup> amongst their origins. The two reference systems and other important geometric data related to the Hexaglide are shown in Figure 2. The rotation matrix <sup>0</sup> <sup>1</sup>**R** is also interpreted in this work as a sequence of *roll*, *pitch*, and *yaw* elemental rotations, namely a matrix multiplication of the form <sup>0</sup> <sup>1</sup>**R** = **R***z*(*θz*)**R***y*(*θy*)**R***x*(*θx*), with obvious meanings of terms. The well-established study's parametrization can be conveniently used in the implementation of calculation routines in order to avoid representation singularities for <sup>0</sup> <sup>1</sup>**R**:

0 <sup>1</sup>**T** = ⎡ ⎣ 0 <sup>1</sup>**<sup>R</sup>** <sup>0</sup>**p**<sup>1</sup> **0**1×<sup>3</sup> 1 ⎤ <sup>⎦</sup> = = ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ *x*2 <sup>0</sup> <sup>−</sup> *<sup>x</sup>*<sup>2</sup> <sup>1</sup> <sup>−</sup> *<sup>x</sup>*<sup>2</sup> <sup>2</sup> + *<sup>x</sup>*<sup>2</sup> <sup>3</sup> 2(*x*<sup>0</sup> *x*<sup>1</sup> − *x*<sup>2</sup> *x*<sup>3</sup> ) 2(*x*<sup>0</sup> *x*<sup>2</sup> + *x*<sup>1</sup> *x*<sup>3</sup> ) 2(*x*<sup>0</sup> *y*<sup>3</sup> − *x*<sup>1</sup> *y*<sup>2</sup> + *x*<sup>2</sup> *y*<sup>1</sup> − *x*<sup>3</sup> *y*<sup>0</sup> ) <sup>2</sup>(*x*<sup>0</sup> *<sup>x</sup>*<sup>1</sup> <sup>+</sup> *<sup>x</sup>*<sup>2</sup> *<sup>x</sup>*<sup>3</sup> ) <sup>−</sup>*x*<sup>2</sup> <sup>0</sup> + *<sup>x</sup>*<sup>2</sup> <sup>1</sup> <sup>−</sup> *<sup>x</sup>*<sup>2</sup> <sup>2</sup> + *<sup>x</sup>*<sup>2</sup> <sup>3</sup> 2(*x*<sup>1</sup> *x*<sup>2</sup> − *x*<sup>0</sup> *x*<sup>3</sup> ) 2(*x*<sup>0</sup> *y*<sup>2</sup> + *x*<sup>1</sup> *y*<sup>3</sup> − *x*<sup>2</sup> *y*<sup>0</sup> − *x*<sup>3</sup> *y*<sup>1</sup> ) <sup>2</sup>(*x*<sup>0</sup> *<sup>x</sup>*<sup>2</sup> <sup>−</sup> *<sup>x</sup>*<sup>1</sup> *<sup>x</sup>*<sup>3</sup> ) <sup>2</sup>(*x*<sup>1</sup> *<sup>x</sup>*<sup>2</sup> <sup>+</sup> *<sup>x</sup>*<sup>0</sup> *<sup>x</sup>*<sup>3</sup> ) <sup>−</sup>*x*<sup>2</sup> <sup>0</sup> <sup>−</sup> *<sup>x</sup>*<sup>2</sup> <sup>1</sup> + *<sup>x</sup>*<sup>2</sup> <sup>2</sup> + *<sup>x</sup>*<sup>2</sup> <sup>3</sup> 2(*x*<sup>1</sup> *y*<sup>0</sup> − *x*<sup>0</sup> *y*<sup>1</sup> + *x*<sup>2</sup> *y*<sup>3</sup> − *x*<sup>3</sup> *y*<sup>2</sup> ) 00 0 *x*<sup>2</sup> <sup>0</sup> + *<sup>x</sup>*<sup>2</sup> <sup>1</sup> + *<sup>x</sup>*<sup>2</sup> <sup>2</sup> + *<sup>x</sup>*<sup>2</sup> 3 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ . (1)

**Figure 2.** Kinematic scheme of the 6-PSS Hexaglide.

The eight study parameters, here gathered in the vector **x** = [*x*0, *x*1, *x*2, *x*3, *y*0, *y*1, *y*2, *y*3] *<sup>T</sup>*, are constrained by the study quadric:

$$S: \quad s = 0,\tag{2}$$

with

$$s = x\_0 y\_0 + x\_1 y\_1 + x\_2 y\_2 + x\_3 y\_3. \tag{3}$$

Moreover, the following constraint normalization equation must hold in order to avoid a projective transformation:

$$N: \quad n = 0,\tag{4}$$

with

$$m = \mathbf{x}\_0^2 + \mathbf{x}\_1^2 + \mathbf{x}\_2^2 + \mathbf{x}\_3^2 - 1. \tag{5}$$

The full inverse transformations are also given for the sake of completeness:

$$\begin{aligned} x\_3 &= \frac{1}{2} \sqrt{{}^0 T\_{1,1} + {}^0 T\_{2,2} + {}^0 T\_{3,3} + 1} & y\_0 &= -\frac{1}{2} \left( {}^0 T\_{1,4} x\_3 + {}^0 T\_{2,4} x\_2 - {}^0 T\_{3,4} x\_1 \right) \\ x\_0 &= \frac{{}^0 T\_{3,2} - {}^0 T\_{2,3}}{4x\_3} & y\_1 &= -\frac{1}{2} \left( {}^0 T\_{1,4} x\_2 + {}^0 T\_{2,4} x\_3 + {}^0 T\_{3,4} x\_0 \right) \\ x\_1 &= \frac{{}^0 T\_{1,3} - {}^0 T\_{3,1}}{4x\_3} & y\_2 &= -\frac{1}{2} \left( {}^0 T\_{1,4} x\_1 - {}^0 T\_{2,4} x\_0 + {}^0 T\_{3,4} x\_3 \right) \\ x\_2 &= \frac{{}^0 T\_{2,1} - {}^0 T\_{1,2}}{4x\_3} & y\_3 &= -\frac{1}{2} \left( {}^0 T\_{1,4} x\_0 + {}^0 T\_{2,4} x\_1 + {}^0 T\_{3,4} x\_2 \right) \end{aligned} \tag{6}$$

where <sup>0</sup> <sup>1</sup>*Ti*,*<sup>j</sup>* stands for the element of matrix <sup>0</sup> <sup>1</sup>**T** at the *i*th row and *j*th column.

The position of the lower spherical joints is parametrized as follows:

$$\mathbf{S}\_{l} = \mathbf{S}\_{0,i} + \eta\_{l}\mathbf{s}\_{l\prime} \tag{7}$$

where **S***<sup>i</sup>* is the variable position of the attachment point of the *i*th leg on the frame, corresponding to the *i*th spherical joint center, driven by the actuated prismatic joints at the base, **S**0,*<sup>i</sup>* is the fixed point on each slider that corresponds to **S***<sup>i</sup>* when in the home position, **s***<sup>i</sup>* is the unit vector giving the direction of the linear sliding, and *qi* is the *i*th actuated joint variable. All the *qi* can be gathered in the actuated joint vector **q** = [*q*1, *q*2, *q*3, *q*4, *q*5, *q*6] *<sup>T</sup>*. The generality of the expression can be noted, where **<sup>s</sup>***<sup>i</sup>* can still be different for each prismatic joint.

The *i*th leg can be represented by vector **L***<sup>i</sup>* whose expression is given by

$$\mathbf{L}\_{i} = \mathbf{P}\_{i} - \mathbf{S}\_{i} = L\_{i} \mathbf{1}\_{i\prime} \tag{8}$$

where *Li* is its constant length and **l***<sup>i</sup>* is the unit vector giving its direction from **S***<sup>i</sup>* to **P***i*.

Finally, the moving platform, whose geometric scheme is shown in Figure 3, is parametrized by means of two parameters: *r* is the radius of a circle, on which the six centers of the upper spherical joints lie, and *ϕ* is the semi-central angle of the circular sector between pairs of **P***<sup>i</sup>* points, namely {**P**6, **P**1}, {**P**2, **P**3}, {**P**4, **P**5}. Such arrangement is motivated by the need to avoid the perfect hexagonal symmetry of singular configurations inside the manipulator workspace, while maintaining a certain symmetry. Matrix <sup>0</sup> <sup>1</sup>**T** in (1) can be used to find the absolute coordinates of each point **P***<sup>i</sup>* in the fixed reference frame {0} when the coordinates in the moving reference frame {1} are known:

$$
\begin{bmatrix} \ ^0 \mathbf{P}\_i \\ \ 1 \end{bmatrix} = \,^0\_1 \mathbf{T} \begin{bmatrix} \ ^1 \mathbf{P}\_i \\ \ 1 \end{bmatrix} . \tag{9}
$$

From here on, all vectors are considered written in the fixed frame, unless explicitly stated.

**Figure 3.** Geometric scheme of the moving platform.

### *3.2. Inverse Position Kinematics (IPK)*

The mapping from the pose coordinates of the moving platform to the actuated joint displacements along the six linear axes can easily be obtained if the rigid body constraint is imposed to the length of the legs of the manipulator. It consists of the following expression:

$$E\_i: \quad \varepsilon\_i = 0,\tag{10}$$

with

$$e\_i \colon \quad \left(\mathbf{P}\_i - \mathbf{S}\_i\right)^T \left(\mathbf{P}\_i - \mathbf{S}\_i\right) - L\_i^2.$$

The subscript *i* is related to the *i*th leg according to the notation shown in Figure 4. The resulting system of equations is given by as many constraints as the number of legs, with the addition of the study quadric (*S*) and the normalization equation (*N*):

$$\left\{ \begin{aligned} &E\_1:E\_2:E\_3:E\_4:E\_5:E\_6:S:N \right\}. \end{aligned} \tag{11}$$

The expressions of points **S***<sup>i</sup>* and **P***<sup>i</sup>* are given by Equations (7) and (9), respectively. As expected, the system provides two inverse kinematics solutions for each leg, whose expression in compact form is given by:

$$q\_{i\_{1,2}} = \mathbf{s}\_i^T \mathbf{a}\_i \pm \sqrt{\left(\mathbf{s}\_i^T \mathbf{a}\_i\right)^2 - \mathbf{a}\_i^T \mathbf{a}\_i + L\_{i'}^2} \tag{12}$$

where **a***<sup>i</sup>* is the *i*th vector resulting from the following expression:

$$\mathbf{a}\_{i} = {}^{0}\mathbf{p}\_{1} + {}^{0}\_{1}\mathbf{R}^{1}\mathbf{P}\_{i} - \mathbf{S}\_{0,i}.\tag{13}$$

**Figure 4.** Constraint manifold of the *i*th leg.

Both solutions in Equation (12) are acceptable and provide 26 theoretical inverse kinematic solutions for the Hexaglide, if all combinations are taken into account. Therefore, a selection routine for the best solution that meets the design specifications, together with the best kinematic performance, is required. Some geometrical and physical assumptions can be made: the zero configuration for each slider, namely the absolute position of each point **S**0,*<sup>i</sup>* at the fixed base, can be associated to one end of the relative actuated rail, whereas the other end corresponds to the maximum stroke *q*max, providing an always positive or at least null *qi*. Moreover, the legs of the manipulator must never reach a vertical configuration during its operation. Such condition is required to avoid singularities, as shown in the following section about differential kinematics. The foregoing assumptions are summarized as follows:

$$0 \le q\_i \le q\_{\text{max}} \ (i = 1, \dots, 6) \quad \land \quad \begin{array}{l} \mathbf{s}\_i^T \mathbf{S}\_l > \mathbf{s}\_i^T \mathbf{P}\_i + \varepsilon \ (i = 1, 2, 6) \\ \mathbf{s}\_i^T \mathbf{S}\_l < \mathbf{s}\_i^T \mathbf{P}\_i - \varepsilon \ (i = 3, 4, 5) \end{array} \tag{14}$$

with *ε* as large as desired and **s***<sup>i</sup>* directed along the *x*-axis of the fixed frame {0}.

### *3.3. Direct Position Kinematics (DPK)*

The mapping from the actuated joint vector **q** to the pose coordinates of the moving platform expressed by vector **x**, or analogously given by matrix <sup>0</sup> <sup>1</sup>**T**, is more complex than the inverse problem, as expected for PKMs. It can be demonstrated that in this case such problem has 40 solutions and numerical approaches are often preferred to closed-form models because of their easier software implementation. Numerical solutions depend on initial conditions and it is not generally easy to converge to the right solution among the many possibilities. As an initial condition, a matrix <sup>0</sup> <sup>1</sup>**T**<sup>0</sup> based on an identity matrix **<sup>I</sup>**3×<sup>3</sup> and an arbitrary position vector <sup>0</sup>**p**1,0 inside the manipulator workspace, or alternatively a starting Cartesian vector **x**0, is chosen. The algorithm conceived to solve the problem consists of the following steps:



In more detail, at each iteration of step 3, a new estimate of the solution **x***<sup>k</sup>* is sought by means of the aforementioned Newton–Raphson algorithm:

$$\mathbf{x}\_{i+1} = \mathbf{x}\_i - \mathbf{J}\_i^{-1} \mathbf{v}\_{i\prime} \tag{15}$$

where **v***<sup>i</sup>* and **J***<sup>i</sup>* are:

$$\mathbf{v}\_{i} = \begin{bmatrix} \varepsilon\_{1}: & \left|\mathbf{P}\_{1}(\mathbf{x}\_{i}) - \mathbf{S}\_{1}(\mathbf{q}\_{\mathbf{k}})\right|^{2} - L\_{1}^{2} \\ \vdots & \vdots \\ \varepsilon\_{6}: & \left|\mathbf{P}\_{6}(\mathbf{x}\_{i}) - \mathbf{S}\_{6}(\mathbf{q}\_{\mathbf{k}})\right|^{2} - L\_{6}^{2} \\ \mathbf{s}: & \left|\mathbf{s}(\mathbf{x}\_{i})\right| \\ n: & n(\mathbf{x}\_{i}) \end{bmatrix}, \qquad \mathbf{J}\_{i} = \left|\frac{\partial}{\partial \mathbf{x}\_{i}^{T}}\right| \begin{bmatrix} c\_{1} \\ \vdots \\ c\_{6} \\ c\_{7} \\ \mathbf{s} \end{bmatrix}\right|\_{8 \times 8}. \tag{16}$$

### *3.4. Differential Kinematics*

The Jacobian matrix of the manipulator, which maps the Cartesian velocity vector **x**˙ of the moving platform from the actuated joint velocity vector **q**˙ , is presented in the classic partitioned form:

$$\mathbf{J}\_{\mathbf{x}}\dot{\mathbf{x}} = \mathbf{J}\_{\emptyset}\dot{\mathbf{q}}\_{\nu} \tag{17}$$

where **x**˙ = <sup>ω</sup>*T*, **<sup>v</sup>***T<sup>T</sup>* with <sup>ω</sup> the angular velocity and **<sup>v</sup>** the linear velocity of the moving platform, and **q**˙ = [*q*˙1, *q*˙2, *q*˙3, *q*˙4, *q*˙5, *q*˙6] *<sup>T</sup>*. The expression of the matrices **J***<sup>x</sup>* and **J***q*, called respectively the geometric and analytical Jacobians of the manipulator, are obtained by making use of kinematic torsors:

$$\mathbf{J}\_{\mathbf{J}} = \begin{bmatrix} \mathbf{s}\_{r,1}^T \\ \vdots \\ \mathbf{s}\_{r,6}^T \end{bmatrix} \quad \text{and} \quad \mathbf{J}\_{\boldsymbol{\eta}} = \begin{bmatrix} \mathbf{s}\_{r,1}^T \mathfrak{S}\_1 & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & \mathfrak{S}\_{r,6}^T \mathfrak{S}\_6 \end{bmatrix},\tag{18}$$

where \$*<sup>i</sup>* = **0***T*, **s***<sup>T</sup> i <sup>T</sup>* is the six-dimensional kinematic torsor related to the *i*th actuated prismatic joint and \$*T <sup>r</sup>*,*<sup>i</sup>* = (**P***<sup>i</sup>* × **l***i*) *<sup>T</sup>* , **l***<sup>T</sup> i* is the dual torsor to passive joints of each *i*th leg. When the square matrix **J***x* has full rank, the full Jacobian matrix can be found as:

$$\mathbf{J} = \mathbf{J}\_x^{-1} \mathbf{J}\_q. \tag{19}$$

A look at the components of the matrices **J***<sup>x</sup>* and **J***<sup>q</sup>* in (18) allows identification of the singular configurations of the manipulator. The two matrices lose rank according to the following conditions:

• det(**J***x*) = 0 when any pair of reciprocal torsors \$*r*,*<sup>i</sup>* and \$*r*,*<sup>j</sup>* (with *i* = *j*) satisfies the relation \$*r*,*<sup>i</sup>* \$*r*,*j*;

• det(**J***q*) = 0 when **l***<sup>i</sup>* ⊥ **s***<sup>i</sup>* is verified at least for one of the *i*th legs.

#### **4. Optimization Problem**

An objective function Φ is defined with the aim of maximizing the kinematic performance of the manipulator, laying the foundation for a geometrical optimization. One of the most frequently used tools in kinematic optimization problems is the condition number of the Jacobian matrix. However, besides

not being a finite index, it merges the kinematic characteristics of different natures when applied to full motion manipulators. It follows that two sub-matrices extracted from matrix **J** related to angular and linear velocities independently seem more suitable for a guided optimization, instead of using the full Jacobian matrix [24]. Two indexes result from this partitioning:

$$cn\_{\omega} = \sqrt{\frac{\sigma\_{\text{min}} \left(\mathbf{J}\_{\omega} \mathbf{J}\_{\omega}^{T}\right)}{\sigma\_{\text{max}} \left(\mathbf{J}\_{\omega} \mathbf{J}\_{\omega}^{T}\right)}} \quad \text{and} \quad cn\_{\upsilon} = \sqrt{\frac{\sigma\_{\text{min}} \left(\mathbf{J}\_{\upsilon} \mathbf{J}\_{\upsilon}^{T}\right)}{\sigma\_{\text{max}} \left(\mathbf{J}\_{\upsilon} \mathbf{J}\_{\upsilon}^{T}\right)}}\,\,,\tag{20}$$

where **J***<sup>ω</sup>* is the 3 × 6 matrix given by the first three rows of **J** and analogously **J***<sup>v</sup>* by the second three. The terms *σ*min and *σ*max represent the minimum and maximum eigenvalues of the matrices inside the round brackets. The two condition numbers in (20) are local indexes and have the property of being confined in the range 0 ≤ *cn* ≤ 1, with isotropic and singular conditions revealed by the upper and lower extremes respectively. Further useful indexes with global properties can be defined if the condition numbers in (20) are integrated on the manipulator workspace *W* [25], where the latter in the present case refers to the desired workspace defined in Section 2:

$$\text{GCI}\_{\omega} = \frac{\int\_{W} c n\_{\omega} d\mathcal{W}}{\int\_{W} d\mathcal{W}} \quad \text{and} \quad \text{GCI}\_{\upsilon} = \frac{\int\_{W} c n\_{\upsilon} d\mathcal{W}}{\int\_{W} d\mathcal{W}} \,. \tag{21}$$

Finally, an objective function Φ based on (21) and tailored to meet the design specifications can be defined as:

$$\Phi\left(\mathbf{p}\_{h\prime}\lambda\right) = 1 - \left(k\_{\omega}GCl\_{\omega\prime} + k\_{\mathcal{V}}GCl\_{\mathcal{V}}\right),\tag{22}$$

where the weights *k<sup>ω</sup>* and *kv* are in the range [0, 1] and can be adjusted according to kinematic needs and respecting the relationship *k<sup>ω</sup>* + *kv* = 1, favoring translation over rotation performance if required, or other combinations. As highlighted in (22), function Φ depends on **p***<sup>h</sup>* = [*yh*, *zh*, *θz*] *<sup>T</sup>*, namely the *y* and *z* coordinates of the relative position vector between frames {1} and {0} in the home configuration of the manipulator, and the yaw rotation about the vertical *z* axis. The home configuration is defined as the central configuration of the manipulator, from which the required translations and rotations can be performed without incurring singularities, with a horizontal top surface of its moving platform. This latter condition is assumed for practical reasons, in fact the top surface can be used as a horizontal support plane, narrowing the study only to rotations about the *z* axis. At this stage of the study, the *x* coordinate between frames {1} and {0} is arbitrary, therefore, a variability of *xh* is not taken into account. Finally, the vector λ in (22) collects all the geometric parameters of the manipulator that a user wants to optimize. In the present case, with reference to Section 3, it is defined as:

$$\lambda = \begin{bmatrix} \varphi, r, L, S\_{1,y\_\prime}, S\_{3,y\_\prime}, S\_{4,y\_\prime}, S\_{6,y\_\parallel} \end{bmatrix} , \tag{23}$$

with the *y*-position of the *i*th slider with respect to the fixed frame {0} represented by *Si*,*<sup>y</sup>* and all the legs considered with equal length *Li* = *L*. It can be noted that *S*2,*<sup>y</sup>* and *S*5,*<sup>y</sup>* do not participate in the optimization process because the respective linear guides are the most external along the *y*-direction and are confined within the maximum range of 350 mm already mentioned in Section 2.

### *Geometric Optimization*

A preliminary study about the expected overall size of the manipulator was carried out. The design specifications of Section 2 allow limitation of the range of variability of some geometrical parameters, so that optimization results are effectively constrained around an arbitrary initial configuration taken as a first guess. Eventually, they are checked again after all parameters are optimized.

The maximum height of the moving reference frame {1} with respect to the fixed frame {0} is limited to 200 mm, leaving the remaining millimeters to mechanically design the moving platform. According to the results of the kinematic study in Section 3.4, a maximum tilt of 75◦ for each leg from the horizontal plane is considered in order to be sufficiently far from singular configurations. It follows that a hypothesized length for the legs is 210 mm, as shown in Figure 5a. In addition, the unit vectors **l***<sup>i</sup>* of the legs must be as far as possible from being parallel, suggesting a staggered disposition of the linear guides at the base. Their first attempt arrangement is shown in Figure 5b, with a distance of 300 mm between the external guides in order to take into account their physical dimensions.

**Figure 5.** Preliminary design: (**a**) side view, (**b**) top view.

The choice of a first guess value for the geometric parameters of the moving platform is due to technical reasons: on the one hand, the maximization of the free surface where a load can be placed, and, on the other hand, the need for enough space to realize a physical connection of the legs with the platform. Their values are: *ϕ*<sup>0</sup> = 10◦ and *r*<sup>0</sup> = 75 mm, where the subscript 0 has the meaning of the initial value of the optimization procedure.

As already mentioned, the home position of the sliders along the *x*-direction, corresponding to the home configuration of the moving platform, is defined only after the optimization of the other geometric parameters. In fact, the zero of each slider can be placed so that the actual home position falls in the center of the available stroke of the sliders.

The objective function in (22) collects information from the robot about its whole required workspace volume. However, as expected by virtue of the particular features of the Hexaglide along a specific direction, the study of Φ is narrowed to a single cross-section of the workspace: without loss of generality the condition *x* = 0 is chosen. This assumption is justified by the behavior of the manipulator that does not depend on the translation in the *x*-direction, but only on the maximum dimension of the sliders and their initial position. A range of ±25 mm and ±12.5 mm in the *y*- and *z*-directions, respectively, and rotations of ±5◦ about all Cartesian axes are considered (see Section 2).

The pre-sizing values of the optimization parameters, together with their assumed lower and upper range limits, are shown in Table 1. Their values result from a preliminary analysis (a sort of Monte Carlo method) of the objective function subject to discrete variations of the parameters in their admissible range. Values of the objective function above 0.7 allow a large number of combinations of parameters to be excluded from the study. A further refinement around the most promising combinations allows the choosing of the initial values gathered in Table 1, approximated to whole numbers, with a corresponding Φ of about 0.51. Rotations greater than five degrees for *θ<sup>z</sup>* in Table 1 are justified by the search of its home configuration value, around which the required range of ±5◦ can be obtained with the best kinematic performance. A similar approach is followed for the other design parameters.


**Table 1.** Initial values, lower and upper limits of the optimization parameters.

The optimization procedure is repeated 10 times iteratively, each time providing the result obtained in the previous step as starting point, in order to improve the local minimum point of the objective function. This method is necessary because of the sensitivity of the problem to initial conditions.

### **5. Optimization Results**

The geometrical parameters and the home position coordinates summarized in Table 1 are processed by means of the Matlab Optimization Toolbox by MathWorks. A constrained minimization problem is tackled in order to find the required optimal values according to the minimization of the function Φ proposed in (22), with equal weights *k<sup>ω</sup>* = *kv* = 0.5. Hard constraints are imposed on Equation (11), while soft constraints are imposed on the variability of vector **x**, ensuring that Cartesian *y* and *z* translations together with *x* and *y* rotations in their required ranges are satisfied. Another important soft constraint ensures that none of the six legs exceeds the maximum tilt of 80◦, a less stringent condition with respect to the one mentioned in the previous sections, in order to give more flexibility to the optimum search. Table 2 shows each calculation step progressively as rows increase. It is easy to verify that, after the first few steps, the variability of parameters tends to decrease and results stabilize around some reference values, with quite a small deviation. Finally, a Φ of about 0.48 is obtained, derived from a slow progressive increase at each step of the optimization process.


**Table 2.** Optimized values of geometric parameters and home configuration.

Resulting design values are highlighted in the last row of Table 2, where an approximation of figures to average and more practical values is proposed, remembering that better conditions are associated with smaller values of Φ. Some important information about the home configuration is already available from the optimization procedure, for instance vector **p***<sup>h</sup>* = [*yh*, *zh*, *θz*] *<sup>T</sup>* in (22) is now completely known. However, the absolute position of the actuated carriages in the home configuration is only partially defined, knowing their *y* and *z* components (see Figure 5, Table 2 with *Si*,*<sup>z</sup>* = 0 for *i* = 1, ..., 6). Their *x* components

can be obtained from the application of the inverse kinematics algorithm proposed in (12), where the Cartesian pose of the moving platform is assigned: *xh* = 0, *θ<sup>x</sup>* = *θ<sup>y</sup>* = 0, together with the remaining parameters in Table 2. A null value can be also assigned to the components of **S**0,*i*. Such choice allows the absolute *x* position of the carriages to be found with respect to the fixed reference frame {0} when all the linear guides at the platform base are perfectly side by side. Ultimately, the absolute coordinates of the **S***<sup>i</sup>* points, for *i* = 1, ..., 6, in the home configuration become:

$$\begin{aligned} \mathbf{S}\_1 &= \begin{bmatrix} 0.2553 \\ 0.06 \\ 0 \end{bmatrix}; \quad \mathbf{S}\_2 = \begin{bmatrix} 0.1761 \\ 0.15 \\ 0 \end{bmatrix}; \quad \mathbf{S}\_3 = \begin{bmatrix} -0.2182 \\ 0.14 \\ 0 \end{bmatrix}; \\\ \mathbf{S}\_4 &= \begin{bmatrix} -0.2384 \\ 0 \\ 0 \end{bmatrix}; \quad \mathbf{S}\_5 = \begin{bmatrix} -0.1598 \\ -0.15 \\ 0 \end{bmatrix}; \quad \mathbf{S}\_6 = \begin{bmatrix} 0.1850 \\ -0.115 \\ 0 \end{bmatrix}. \end{aligned} \tag{24}$$

with values in meters. In (24) only the *x* coordinates result from a computation, and this justifies the figures down to a tenth of a millimeter. In order to locate the points **S**0,*<sup>i</sup>* to their actual position and to maximize the admissible travel in the *x*-direction, their zero position must be placed so that:

$$\mathbf{S}\_{0,i} = \mathbf{S}\_i - \frac{q\_{\text{max}}}{2}\mathbf{s}\_i. \tag{25}$$

### **6. Kinematic Performance**

Once the optimal geometric dimensions are determined, a further step towards the definition of the mechanical elements can be done by defining the linear modules at the fixed base. The Hercules Stages HLS-M-185-DC-Arom1Vpp by Vacuum Fab Srl with a coreless DC motor, a linear optical scale with a ±50 nm resolution, a stroke of 185 mm, and an actuation force of 212 N are used. If an ultra-high vacuum application is the target, RodRail eXtreme linear translation stages, produced by the same manufacturer, with a stroke of 190 mm and a repeatability of 1 μm in a vacuum, can be used instead.

A map of the Cartesian positioning errors obtained by virtue of the nameplate data of the linear stages is shown in Figure 6 on a vertical *yz*-plane (*xh* = 0), covering the manipulator workspace. The white dot represents the Cartesian home configuration of the platform inside its workspace. A fixed orientation is considered in all Cartesian positions, the same as the home configuration, namely *θ<sup>x</sup>* = 0, *θ<sup>y</sup>* = 0 and *θ<sup>z</sup>* = −10◦. The map in Figure 6 is coherent with the one of the determinants of the Jacobian matrix shown in Figure 7, obtained by analyzing the expression in (19) inside the manipulator workspace. In fact, where the value of the determinant is small, the manipulator in the relative Cartesian position is less prone to errors due to uncertainties in the displacement of the linear modules.

**Figure 6.** Map of the Cartesian positioning errors (fixed orientation: *θ<sup>x</sup>* = 0, *θ<sup>y</sup>* = 0, *θ<sup>z</sup>* = −10◦).

**Figure 7.** Map of the determinant of **J** (fixed orientation: *θ<sup>x</sup>* = 0, *θ<sup>y</sup>* = 0, *θ<sup>z</sup>* = −10◦).

The maximum absolute value of positioning error obtained in the center of the workspace is about 0.6 μm. Such value is the worst possible considering every direction and any combination of errors for the actuated carriages, but it significantly reduces according to the direction chosen, even by an order of magnitude. If the first three rows of the Jacobian matrix are considered instead of the second three, orientation errors can be investigated. Figure 8 shows a trend analogous to the other map, where an error in the center of the workspace of about 3 <sup>×</sup> <sup>10</sup>−<sup>4</sup> degrees can be read, related to the worst condition. Other studies could be proposed taking into account a change of orientation of the moving platform with a fixed Cartesian position, but results are quite similar to the ones already proposed and do not really add more insight. Finally, a force polyhedron can be evaluated in static conditions to show if the manipulator meets the requirement of a 1.5 kg payload. Figure 9 refers to the static performance in terms of Cartesian forces in every direction when the manipulator is in its home configuration and no torques are provided at the end effector. The maximum force magnitude is about 800 N, whereas the minimum is about 80 N, but it is easy to verify that the highest performance is related to almost vertical directions, allowing the weight of the mechanical parts of the manipulator to be borne as well as the required payload. Eventually, it can be concluded that the obtained results almost entirely meet the specifications of Section 2.

**Figure 8.** Map of the orientation errors (around the given orientation *θ<sup>x</sup>* = 0, *θ<sup>y</sup>* = 0, *θ<sup>z</sup>* = −10◦).

### **Force tetrahedron N**

**Figure 9.** Static force performance in home configuration.

### **7. Conclusions**

In this study we proposed a compact version of a Hexaglide parallel manipulator, commissioned by an Italian company operating in the micro-positioning sector. The main feature of the manipulator is its ability to exploit a Cartesian direction along which the entire mechanism can move without inner relative motions, with the aim of serving a few stations arranged for different mechatronic tasks. All the steps needed to functionally design a high-precision manipulator were addressed. The effect of commercial linear modules on the Cartesian positioning errors of the manipulator were investigated. The resolution of their sensors allows a high repeatability to be achieved along the sliding direction of the prismatic rails

and high performance along the other directions, whose worst condition is still less than a micrometer for translations and less than a thousandth of a degree for rotations. Tailored linear modules with a longer stroke can be used to increase the workspace of the manipulator, while preserving the other kinetostatic features. Finally, all key functional design information of the manipulator has been given to prototype a compact Hexaglide.

An even more compact design can be obtained with a different leg tilt and similar stages with a shorter stroke of 150 mm, as shown in Figure 10 for a prototype of another confidential version of the Hexaglide by Vacuum Fab Srl. Figure 10 also shows the mechanical solution that can be used for the twelve spherical joints, based on a magnetic principle with self-centering. Preliminary tests on such a prototype have demonstrated a repeatability for linear and angular movements of about 0.2 μm and better than 0.001◦, respectively.

**Figure 10.** Prototype of a more compact version of the Hexaglide manipulator with similar performance by Vacuum Fab Srl.

**Author Contributions:** Conceptualization, L.C. and M.-C.P.; methodology, L.C. and M.-C.P.; software, E.L. and F.D.; formal analysis, L.C. and G.P.; investigation, L.C. and G.P.; resources, M.-C.P.; data curation, G.P. and M.-C.P.; writing—original draft preparation, M.-C.P.; writing—review and editing, G.P.; supervision, M.-C.P. and G.G.; project administration, G.G.; funding acquisition, G.G. All authors have read and agreed to the published version of the manuscript.

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

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

### **References**



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

© 2020 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/).
