**2. Structure description and kinematic analysis**

### **2.1 Structure description**

The SP manipulator used in this study (Figure 1), is a six DOF parallel mechanism that consists of a rigid body moving plate, connected to a fixed base plate through six independent kinematics legs. These legs are identical kinematics chains, couple the moveable upper and the fixed lower platform by universal joints. Each leg contains a precision ball-screw assembly and a DC- motor. Thus, length of the legs is variable and they can be controlled separately to perform the motion of the moving platform.

Fig. 1. Solid model of the SP manipulator

Dynamic Modeling and Simulation of Stewart Platform 23

rotation of about the fixed *x-axis*, *RX*(), followed by a rotaion of about the fixed *y-axis*, *RY*() and a rotaion of about the fixed *z-axs*, *RZ*(). In this way, the rotation matrix of the moving platform with respect to the base platform coordinate system is obtained. The position vector *P* denotes the translation vector of the origin of the moving platform with respect to the base platform. Thus, the rotation matrix and the position vector are given as the following.

> 11 12 13 21 22 23 31 32 33

*rrr*

*rrr*

 

*X PPP po x y z*

*L JX* (7)

(8)

 

*P PPP xyz* (4)

*L R GT P B i XYZ i i* i=1,2, … ,6. (5)

2 2

 

> 

(6)

and the generalized

(3)

*T*

 

 

*T*

11 12

21 22 31 32

 

*TZ Y X*

*B*

 

When the position and orientation of the moving platform

expression of the Jacobian matrix is given as the following.

velocity of the moving platform ( *Xp*<sup>0</sup> ) as the following

The generalized velocity of the moving platform is below:

rewritten to see the relationship between the actuator velocities, *L*

are given, the length of each leg is computed as the following.

The actuator length is *i i l L* .

**2.3 Jacobian matrix** 

where *L*

The vector *Li* of the link *i* is simply obtained as

cos cos cos sin sin cos sin sin sin cos cos sin cos sin cos cos sin sin sin cos sin sin cos sin sin cos sin cos cos

 

Referring back to Figure 2, the above vectors *GTi* and *Bi* are chosen as the position vector.

The Jacobian matrix relates the velocities of the active joints (actuators) to the generalized velocity of the moving platform. For the parallel manipulators, the commonly used

work, two different derivations of the Jacobian matrix are developed. The first derivation is made using the general expression of the Jacobian matrix given in Equation 7. It can be

<sup>0</sup> *<sup>A</sup> <sup>J</sup> L JX JV <sup>p</sup> IA T*

and *X* are the velocities of the leg and the moving platform, respectively. In this

*y yi xi yi z xi yi*

*P B GT r GT r P GT r GT r*

<sup>2</sup> <sup>2</sup>

*i x xi xi yi*

*l P B GT r GT r*

 

*RR R R rrr*

#### **2.2 Inverse kinematics**

To clearly describe the motion of the moving platform, the coordinate systems are illustrated in Figure 2. The coordinate system *(BXYZ* ) is attached to the fixed base and other coordinate system (*Txyz* ) is located at the center of mass of the moving platform. Points ( *Bi* and*Ti* ) are the connecting points to the base and moving platforms, respectively. These points are placed on fixed and moving platforms (Figure 2.a). Also, the separation angles between points ( *T*<sup>2</sup> and *T*<sup>3</sup> , *T*<sup>4</sup> and*T*<sup>5</sup> , *T*<sup>1</sup> and*T*<sup>6</sup> ) are denoted by *<sup>p</sup>* as shown in Figure 2.b. In a similar way, the separation angles between points ( *B*<sup>1</sup> and *B*<sup>2</sup> , *B*<sup>3</sup> and *B*<sup>4</sup> , *B*<sup>5</sup> and *B*<sup>6</sup> ) are denoted by*b* .

Fig. 2. The schematic diagram of the SP manipulator

From Figure 2.b, the location of the *i*th attachment point (*Ti* ) on the moving platform can be found (Equation 1). *pr* and *base r* are the radius of the moving platform and fixed base, respectively. By the using the same approach, the location of the *i*th attachment point ( *Bi* ) on the base platform can be also obtained from Equation 2.

$$\begin{aligned} \begin{bmatrix} GT\_{xi} \\ GT\_{yi} \\ GT\_{zi} \end{bmatrix} = \begin{bmatrix} r\_p \cos(\mathcal{A}\_i) \\ r\_p \sin(\mathcal{A}\_i) \\ 0 \end{bmatrix} \end{aligned} \quad \begin{aligned} \mathcal{A}\_i &= \frac{i\pi}{3} - \frac{\theta\_p}{2} \\ \mathcal{A}\_i &= \mathcal{A}\_{i-1} + \theta\_p \\ \mathcal{A}\_i &= \mathcal{A}\_{i-1} + \theta\_p \end{aligned} \tag{1}$$

$$B\_i = \begin{bmatrix} B\_{xi} \\ B\_{yi} \\ B\_{zi} \end{bmatrix} = \begin{bmatrix} r\_{base} \cos(\nu\_i) \\ r\_{base} \sin(\nu\_i) \\ 0 \end{bmatrix} \begin{aligned} \nu\_i &= \frac{i\pi}{3} - \frac{\theta\_b}{2} \\\\ \nu\_i &= \nu\_{i-1} + \theta\_b \\ \end{aligned} \tag{2}$$

The pose of the moving platform can be described by a position vector, *P* and a rotation matrix, *BRT* . The rotation matrix is defined by the roll, pitch and yaw angles, namely, a

To clearly describe the motion of the moving platform, the coordinate systems are illustrated in Figure 2. The coordinate system *(BXYZ* ) is attached to the fixed base and other coordinate system (*Txyz* ) is located at the center of mass of the moving platform. Points ( *Bi* and*Ti* ) are the connecting points to the base and moving platforms, respectively. These points are placed on fixed and moving platforms (Figure 2.a). Also, the separation angles between points ( *T*<sup>2</sup> and

separation angles between points ( *B*<sup>1</sup> and *B*<sup>2</sup> , *B*<sup>3</sup> and *B*<sup>4</sup> , *B*<sup>5</sup> and *B*<sup>6</sup> ) are denoted by

*Y*

*d* 1

*B* 1

*<sup>p</sup> p i xi <sup>i</sup>*

*zi ii b*

*zi ii p*

From Figure 2.b, the location of the *i*th attachment point (*Ti* ) on the moving platform can be found (Equation 1). *pr* and *base r* are the radius of the moving platform and fixed base, respectively. By the using the same approach, the location of the *i*th attachment point ( *Bi* ) on

*<sup>i</sup> GT <sup>r</sup> <sup>i</sup>*

*GT i*

*<sup>i</sup> B r <sup>i</sup>*

*B i*

The pose of the moving platform can be described by a position vector, *P* and a rotation matrix, *BRT* . The rotation matrix is defined by the roll, pitch and yaw angles, namely, a

 

1

1

 

cos( ) 1,3,5 3 2 sin( ) ,

0 2,4,6

 

cos( ) 1,3,5 3 2 sin( ) ,

*b*

<sup>0</sup> 2,4,6

 

*d* 2

*y*

*<sup>T</sup>* <sup>1</sup> *<sup>T</sup>* <sup>2</sup>

*Z*

B

Fig. 2. The schematic diagram of the SP manipulator

the base platform can be also obtained from Equation 2.

*GT GT r*

*BB r*

*i yi p i*

*i yi base i*

*xi base i i*

*<sup>d</sup>* <sup>3</sup> *<sup>d</sup>* <sup>4</sup>

*<sup>B</sup> <sup>B</sup>* <sup>4</sup> <sup>3</sup>

*z*

T

T <sup>3</sup> T <sup>4</sup>

*X*

(a)

*B* 5

*B* 6

*d* 5

*x*

*T* 6

*T* 5

*d* 6

*<sup>p</sup>* as shown in Figure 2.b. In a similar way, the

*XT, XB*

(b)

*r*P

*T*1

*T*6

*<sup>T</sup>*<sup>4</sup> *<sup>T</sup>*<sup>5</sup>

*b* .

*YT, YB*

*p*

(1)

(2)

*T*3

*T*2

**2.2 Inverse kinematics** 

*T*<sup>3</sup> , *T*<sup>4</sup> and*T*<sup>5</sup> , *T*<sup>1</sup> and*T*<sup>6</sup> ) are denoted by

rotation of about the fixed *x-axis*, *RX*(), followed by a rotaion of about the fixed *y-axis*, *RY*() and a rotaion of about the fixed *z-axs*, *RZ*(). In this way, the rotation matrix of the moving platform with respect to the base platform coordinate system is obtained. The position vector *P* denotes the translation vector of the origin of the moving platform with respect to the base platform. Thus, the rotation matrix and the position vector are given as the following.

$$\begin{aligned} \,^B R\_T &= R\_Z(\gamma) R\_Y(\beta) R\_X(\alpha) = \begin{bmatrix} r\_{11} & r\_{12} & r\_{13} \\ r\_{21} & r\_{22} & r\_{23} \\ r\_{31} & r\_{32} & r\_{33} \end{bmatrix} \\ &= \begin{bmatrix} \cos\beta\cos\gamma & \cos\gamma\sin\alpha\sin\beta - \cos\alpha\sin\gamma & \sin\alpha\sin\gamma + \cos\alpha\cos\gamma\sin\beta \\ \cos\beta\sin\gamma & \cos\alpha\cos\gamma + \sin\alpha\sin\beta\sin\gamma & \cos\alpha\sin\beta\sin\gamma - \cos\gamma\sin\alpha \\ -\sin\beta & \cos\beta\sin\alpha & \cos\alpha\cos\beta \end{bmatrix} \end{aligned} \tag{3}$$

$$P = \begin{bmatrix} P\_x & P\_y & P\_z \end{bmatrix}^T \tag{4}$$

Referring back to Figure 2, the above vectors *GTi* and *Bi* are chosen as the position vector. The vector *Li* of the link *i* is simply obtained as

$$L\_i = R\_{XYZ}GT\_i + P - B\_i \qquad \text{i=1,2, } \dots \text{,6.} \tag{5}$$

When the position and orientation of the moving platform *T X PPP po x y z* are given, the length of each leg is computed as the following.

$$\begin{aligned} l\_i^2 &= \left(P\_x - B\_{xi} + GT\_{xi}r\_{11} + GT\_{yi}r\_{12}\right)^2\\ &+ \left(P\_y - B\_{yi} + GT\_{xi}r\_{21} + GT\_{yi}r\_{22}\right)^2 + \left(P\_z + GT\_{xi}r\_{31} + GT\_{yi}r\_{32}\right)^2 \end{aligned} \tag{6}$$

The actuator length is *i i l L* .

#### **2.3 Jacobian matrix**

The Jacobian matrix relates the velocities of the active joints (actuators) to the generalized velocity of the moving platform. For the parallel manipulators, the commonly used expression of the Jacobian matrix is given as the following.

$$
\dot{L} = \dot{f} \,\dot{X} \tag{7}
$$

where *L* and *X* are the velocities of the leg and the moving platform, respectively. In this work, two different derivations of the Jacobian matrix are developed. The first derivation is made using the general expression of the Jacobian matrix given in Equation 7. It can be rewritten to see the relationship between the actuator velocities, *L* and the generalized velocity of the moving platform ( *Xp*<sup>0</sup> ) as the following

$$
\dot{L} = \mathbf{J}\_A \, \dot{\mathbf{X}}\_{p-0} = \mathbf{J}\_{IA} \, \vec{V}\_{T\_l} \tag{8}
$$

The generalized velocity of the moving platform is below:

$$
\vec{V}\_{T\_{\parallel}} = \mathbf{J}\_{IIA} \, \dot{\mathbf{X}}\_{p-o} \tag{9}
$$

Dynamic Modeling and Simulation of Stewart Platform 25

3 3 1 1 1

*I R S X R R GT S Y R R R GT R R S Z R GT*

 

*x Y XZ YXZ YX Z*

 

*IIA*

Given

respect to time

platform.

where , , 

matrix associated with the vector

coordinate system (B*XYZ* ) is obtained as

*J*

Since the projection of the velocity vector (*Tj*

 

 

*J*

( )( ) ( ) () ( ) ( ) ( ) () ( ) ( )( ) ()

 

 

*A IA IIA J JJ* (15)

*B IB IIB J JJ* (16)

*<sup>T</sup> B B T P P P R GT x R GT <sup>j</sup> <sup>x</sup> <sup>y</sup> z Ti Ti* (17)

 

> 

(19)

) is computed from

 

 

) on the axis of the prismatic joint of link *i* 

 

(18)

 

(13)

 

(14)

3 3 6 6 6 18 6

0

*Sa a a a* 

*z x y x*

0

*x Y XZ YXZ YX Z x*

where 3 3*<sup>x</sup> I* denotes the 3x3 identity matrix and *S* designates the 3x3 screw symmetric

( )( ) ( ) () ( ) ( ) ( ) () ( ) ( )( ) ()

*T*

*z y*

*a a*

*GT GT GT GT i xi yi zi* , *Tj* on the moving platform with reference to the base

The velocity of the attachment point*Tj* is obtained by differentiating Equation 17 with

*<sup>T</sup> B B V P P P R GT x R GT T x <sup>y</sup> z T* 

*i T <sup>i</sup>*

cos 0 0 0 1 sin sin 0 cos

 *<sup>J</sup> <sup>T</sup> B B L V u P P P u R GT u x u R GT u i Ti x <sup>y</sup> z i Tii i Tii* 

(20)

*<sup>x</sup> <sup>y</sup> <sup>z</sup>* is angular velocity of the moving platform with reference to the base

 

*I R S X R R GT S Y R R R GT R R S Z R GT*

*xyz aaaa* ,

0

The first proposed Jacobian matrix of the SP manipulator is defined as

The second proposed Jacobian matrix of the SP manipulator is defined as

*T*

*x y z*

produces the extension rate of link *i*, the velocity of the active joint ( *Li*

where *TJ V* is the velocity of the platform connection point of the leg. Figure 3 shows a schematic view of one of the six legs of the SP manipulator.

Fig. 3. Schematic view of the *i*th leg of the parallel manipulator

Now combining Equation 8 and Equation 9 gives

$$
\dot{L} = \mathbf{J}\_A \, \dot{X}\_{p-o} = \mathbf{J}\_{IA} \, \mathbf{J}\_{\text{IIA}} \, \dot{X}\_{p-o} \tag{10}
$$

The first Jacobian matrix in the equation above is

$$J\_{IA} = \begin{bmatrix} \bar{u}\_1^T & \cdots & \cdots & \cdots & \cdots & 0 \\ 0 & \bar{u}\_2^T & \cdots & \cdots & \cdots & 0 \\ 0 & \cdots & \bar{u}\_3^T & \cdots & \cdots & 0 \\ 0 & \cdots & \cdots & \bar{u}\_4^T & \cdots & 0 \\ 0 & \cdots & \cdots & \cdots & \bar{u}\_5^T & 0 \\ 0 & \cdots & \cdots & \cdots & \cdots & \bar{u}\_6^T \end{bmatrix}\_{6 \times 18} \tag{11}$$

where *ui* is the unit vector along the axis of the prismatic joint of link *i* (Figure 3). It can be obtained as follows

$$\overline{u}\_{i} = \frac{B\_{i}T\_{j}}{\left| L\_{i} \right|} = \frac{L\_{i}}{l\_{i}} \; \begin{cases} j = \frac{i+1}{2} & \text{if } i \text{ is odd} \\\\ j = \frac{i}{2} & \text{if } i \text{ is even} \end{cases} \tag{12}$$

The second Jacobian matrix in Equation 10 is calculated as the following.

*T IIA <sup>J</sup> V JX <sup>p</sup><sup>o</sup>*

*GTi <sup>u</sup>*<sup>i</sup> *<sup>L</sup>*<sup>i</sup>

schematic view of one of the six legs of the SP manipulator.

*B*i

1

*u*

*T*

0

*i j i*

*L l* ,

The second Jacobian matrix in Equation 10 is calculated as the following.

*i i B T L*

2

*u*

*IA T*

*T*

3

*u*

*T*

 

0 0 0 0 0 0 0 0

where *ui* is the unit vector along the axis of the prismatic joint of link *i* (Figure 3). It can be

 

 

4

*u*

5

<sup>1</sup> <sup>2</sup>

*<sup>i</sup> j if i is odd*

<sup>2</sup>

*<sup>i</sup> j if i is even*

*u*

*T*

6 6 18

*T x*

*u*

0

Fig. 3. Schematic view of the *i*th leg of the parallel manipulator

Now combining Equation 8 and Equation 9 gives

The first Jacobian matrix in the equation above is

obtained as follows

*J*

*i*

*u*

is the velocity of the platform connection point of the leg. Figure 3 shows a

*r*P

*L JX J J X <sup>A</sup> <sup>p</sup>o IA IIA <sup>p</sup><sup>o</sup>* (10)

(11)

(12)

*T*j

where *TJ V*

(9)

*T*1

3 3 1 1 1 3 3 6 6 6 18 6 ( )( ) ( ) () ( ) ( ) ( ) () ( ) ( )( ) () ( )( ) ( ) () ( ) ( ) ( ) () ( ) ( )( ) () *x Y XZ YXZ YX Z IIA x Y XZ YXZ YX Z x I R S X R R GT S Y R R R GT R R S Z R GT J I R S X R R GT S Y R R R GT R R S Z R GT* (13)

where 3 3*<sup>x</sup> I* denotes the 3x3 identity matrix and *S* designates the 3x3 screw symmetric matrix associated with the vector *T xyz aaaa* ,

$$S = \begin{bmatrix} 0 & -a\_z & a\_y \\ a\_z & 0 & -a\_x \\ -a\_y & a\_x & 0 \end{bmatrix} \tag{14}$$

The first proposed Jacobian matrix of the SP manipulator is defined as

$$J\_A = J\_{1A} J\_{\text{IIA}} \tag{15}$$

The second proposed Jacobian matrix of the SP manipulator is defined as

$$J\_B = J\_{IB} J\_{IB} \tag{16}$$

Given *T GT GT GT GT i xi yi zi* , *Tj* on the moving platform with reference to the base coordinate system (B*XYZ* ) is obtained as

$$T\_j = \begin{bmatrix} P\_x & P\_y & P\_z \end{bmatrix}^T + \,^B R\_T G T\_i = \mathbf{x} + \,^B R\_T G T\_i \tag{17}$$

The velocity of the attachment point*Tj* is obtained by differentiating Equation 17 with respect to time

$$
\vec{V}\_{T\_f} = \begin{bmatrix} \dot{P}\_x & \dot{P}\_y & \dot{P}\_z \end{bmatrix}^T + a\nu \times \,^B R\_T G T\_i = \dot{\mathbf{x}} + a\nu \times \,^B R\_T G T\_i \tag{18}
$$

where , , *<sup>x</sup> <sup>y</sup> <sup>z</sup>* is angular velocity of the moving platform with reference to the base platform.

$$
\begin{aligned}
\boldsymbol{\rho}\boldsymbol{\alpha} &= \begin{bmatrix} \boldsymbol{\alpha}\_{\times} \\ \boldsymbol{\alpha}\_{y} \\ \boldsymbol{\alpha}\_{z} \end{bmatrix} = \begin{bmatrix} \cos\beta & 0 & 0 \\ 0 & 1 & -\sin\alpha \\ -\sin\beta & 0 & \cos\alpha \end{bmatrix} = \begin{bmatrix} \dot{\boldsymbol{\alpha}} \\ \dot{\beta} \\ \dot{\gamma} \end{bmatrix} \end{aligned} \tag{19}
$$

Since the projection of the velocity vector (*Tj* ) on the axis of the prismatic joint of link *i*  produces the extension rate of link *i*, the velocity of the active joint ( *Li* ) is computed from

$$\dot{L}\_i = \vec{V}\_{T\_f} \vec{u}\_i = \left[\dot{P}\_x \quad \dot{P}\_y \quad \dot{P}\_z\right]^T \cdot \vec{u}\_i + o\nu \times \left(^B R\_T \, GT\_i\right) \cdot \vec{u}\_i = \dot{\mathbf{x}} \cdot \vec{u}\_i + o\nu \times \left(^B R\_T \, GT\_i\right) \cdot \vec{u}\_i \tag{20}$$

Equation 20 is rewritten in matrix format as follows.

$$\dot{L}\_i = f\_B \begin{bmatrix} \dot{\alpha} \\ \dot{\alpha} \end{bmatrix} = f\_B \dot{X}\_{p-o} = f\_{IB} \ I\_{IB} \dot{X}\_{p-o} \tag{21}$$

Dynamic Modeling and Simulation of Stewart Platform 27

1 2 *<sup>T</sup> K I up rot u* 

( )

 

frame. Given the definition of the angles , and , the angular velocity,

 

where ( ) *mf I* and

where *up ff* ( ) *up*( ) *mf*

given in Equation 27 is calculated as

moving platform, respectively. They are given as

 

 

( )

*up mf*

platform in a compact form is given by

1 0 0 cos sin 0 0 0 0 0 cos sin sin cos 0 0 0 0 0 sin cos 0 0 1 0 0 1

> 

1 1 2 2

( ) ( )( ) ( )

*X mf Y*

( ) ( ) () ( ) ( ) *TTT*

denotes the angular velocity of the moving platform with respect to the base

 

( ) ( ) () () cos 0 sin 1 0 0 0 0 0 0 1 0 000 010 sin 0 cos 0 0 0 0 0 0

*up ff Y R XYR R Z X Z*

In the moving platform coordinate system, the angular velocity of the moving platform

where *s*( ) sin( ) and *c*( ) cos( ) . As a result, the total kinetic energy of the moving

*up up trans up rot up XY Z up mf mf up mf*

*T Z P O up P O P O X Y Z up*

*<sup>P</sup> X MX X PPP M*

*c c s ccs c ss cc ss s cc ccs css cc sc s s cc*

 

 

222 ( ) () ( )( ) ( ) 1 1 2 2

 

2 2 0

*K K K mP P P I*

 

 

 

 

 

 

*up mf RR R ZX Y up ff*

*I I I*

 *p mf mf up mf*

0 0 0 0 0 0

*Z*

 

(27)

 

> 

> 

> > *T*

*I*

are the rotational inertia mass and the angular velocity of the

(25)

(26)

*up ff* ( ) is

cos 0 0 0 1 sin sin 0 cos

 

> 

 

 

> *X Y*

 

*P P*

   

(29)

(30)

(28)

 

 

The first Jacobian matrix is

$$J\_{IB} = \begin{vmatrix} u\_{x1} & u\_{y1} & u\_{z1} & \left( \,^B R\_T G T\_1 \ge \vec{u}\_1 \right)^T \\ \vdots & \vdots & \vdots & \vdots \\ u\_{x6} & u\_{y6} & u\_{z6} & \left( \,^B R\_T G T\_6 \ge \vec{u}\_6 \right)^T \end{vmatrix}\_{6 \ge 6} \tag{22}$$

The second Jacobian matrix is

$$J\_{IIB} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & \cos \beta & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & -\sin a \\ 0 & 0 & 0 & -\sin \beta & 0 & \cos a \end{bmatrix} \tag{23}$$
