# Position Control of a 3-CPU Spherical Parallel Manipulator

Authors: Massimo Callegari; Luca Carbonari; Giacomo Palmieri; Matteo-Claudio Palpacelli; Donatello Tina
Journal: Journal of Control Science and Engineering
 (2013)

---

## Abstract

The paper presents the first experimental results on the control of a prototypal robot designed for the orientation of parts or tools. The innovative machine is a spherical parallel manipulator actuated by 3 linear motors; several position control schemes have been tested and compared with the final aim of designing an interaction controller. The relative simplicity of machine kinematics allowed to test algorithms requiring the closed-loop evaluation of both inverse and direct kinematics; the compensation of gravitational terms has been experimented as well.


---

## Body

## 1. Introduction

Parallel kinematics machines, PKMs, are known to be characterized by many advantages like a lightweight construction and a high stiffness but also present some drawbacks, like the limited workspace, the great number of joints of the mechanical structure, and the complex kinematics, especially for 6-dof machines [1]. Therefore the A.’s proposed to decompose full-mobility operations into elemental subtasks, to be performed by separate reduced mobility machines, similarly to what is already done in conventional machining operations. They envisaged the architecture of a mechatronic system where two parallel robots cooperate in order to perform complex assembly tasks. The kinematics of both machines is based upon the same 3-CPU topology but the joints are differently assembled so as to obtain a translating parallel machine (TPM) with one mechanism and a spherical parallel machine (SPM) with the other.This solution, at the cost of a more sophisticated controller, would lead to the design of simpler machines that could be used also stand-alone for 3-dof tasks and would increase the modularity and reconfigurability of the robotized industrial process. The two robots are now available at the prototypal stage, and the present paper reports the first experiments on the motion control of the orienting device (SPM).


## 2. Robot’s Architecture and Kinematics

### 2.1. Mechanical Architecture

Since the detailed description of machine’s kinematics and prototype design has been provided already in Callegari et al. [2], hereby only the most relevant aspects are recalled.The spherical parallel machine under study is made of three identical serial chains connecting the moving platform to the fixed base, as shown in Figure1; each leg is composed by two links: the first one is connected to the frame by a cylindrical joint (C), while the second link is connected to the first one by a prismatic joint (P) and to the end-effector by a universal joint (U); for this reason its mechanical architecture is commonly called 3-CPU. A few manufacturing conditions, already investigated for a general pure rotational tripod by Karouia and Hervè [3], must be fulfilled in order to constraint the end-effector to a spherical motion:(i)
the axes of the cylindrical joints (ai,i=1,2,3) are aligned along the x, y, z axes of the base frame and intersect at the center O of the spherical motion;(ii)
the axisbi of each prismatic pair is perpendicular to the axis of the respective cylindrical joint ai;(iii)
the first axis of each universal joint is perpendicular to the plane of the corresponding leg (plane identified by the axesai and bi);(iv)
the second axis of the 3 universal joints (resp., for the leg 1, 2, and 3) are aligned along they1, z1, x1 axes of a local frame centered in P (coincident with O) and attached to the mobile platform.Kinematic schemes of the 3-CPU robot (a) and geometry of the legs (b).
(a)
(b)For a successful operation of the mechanism, onemounting condition must be satisfied too; assembly should be operated in such a way that the two frames O(x0,y0,z0) and P(x1,y1,z1) come to coincide when the robot is in its homing position. Such configuration is obtained when the three displacements ai are equal to the length of the second link c and the displacements of the prismatic joints bi are equal to the constant distance d. If the mounting conditions are verified, the points P and O remain fixed and coincident while the moving platform performs a spherical motion around them.


### 2.2. Kinematic Relations

The platform is actuated by driving the strokes of the 3 cylindrical joints; therefore joint space displacements are gathered into the following vectorq:
(1)q=[a1a2a3].The position kinematics of the robot expresses the relation between the orientation of the mobile platform and the displacements of the actuators; the attitude of the machine in space is fully provided by the rotation matrixRPO, that can also be conveniently expressed as a composition of elemental rotations. In the development of robot’s kinematics, the following Cardan angles set is used:
(2)RPO(α,β,γ)=Rx(α)Ry(β)Rz(γ)=[cβcγ-cβsγsβsαsβcγ+cαsγ-sαsβsγ+cαcγ-sαcβ-cαsβcγ+sαsγcαsβsγ+sαcγcαcβ].The position kinematics of the robot is simply expressed by(3)r12=-cβsγ=c-a1d,r23=-sαcβ=c-a2d,r31=-cαsβcγ+sαsγ=c-a3d,
where rij is the element at the ith row and jth column of rotation matrix RPO. The solution of the direct position kinematics (DPK) problem requires the computation of the rotation matrix RPO as a function of internal coordinates q, which has been solved already by Carbonari et al. [4]. According to Innocenti and Parenti-Castelli [5], a maximum number of 8 different configurations can be worked out; however, a single feasible solution is found when the real workspace of the robot is considered; that is, the actual mobility of the joints is taken into consideration. Inverse position kinematic (IPK) problem admits just one solution and it is trivially solved by working out joint displacements q in (3).Turning todifferential kinematics, the expression of the analytic Jacobian JA is immediately obtained as a function of the Cardan angles and their rates:
(4)[a˙1a˙2a˙3]=JA[α˙β˙γ˙],JA=d[0-sβsγcβcγcαcβ-sαsβ0-sαsβcγ-cαsγcαcβcγ-cαsβsγ-sαcγ].By taking into account the relation between the derivatives of the Cardan angles and the angular velocityω:
(5)[ωxωyωz]=[10sβ0cα-sαcβ0sαcαcβ][α˙β˙γ˙]=T[α˙β˙γ˙],
the geometric Jacobian JG is easily obtained too:
(6)[a˙1a˙2a˙3]=JAT-1[ωxωyωz]=JG[ωxωyωz],
with
(7)JG=d[0-cαsβsγ-sαcγcαcγ-sαsβsγcαcβ0-sβ-sαsβcγ-cαsγcβcγ0].


### 2.3. User Frames

In order to better define the tasks to be commanded and visualize the obtained results, it is useful to choose a different set of reference frames, as shown in Figure2. The fixed frame O*(x0*,y0*,z0*) is defined as follows:(i)
the origin is located at the center of the moving platform when it assumes its initial configuration;(ii)
thez0* axis is aligned to the vector g of gravity acceleration;(iii)
thex0* axis lies on the upper plane of the platform and points toward the axis a1 of the cylindrical joint of the first leg;(iv)
they0* axis is placed according to the right-hand rule.User-defined task frames.
(a)
(b)The mobile frameP*(x1*,y1*,z1*) is coincident with the fixed frame O*(x0*,y0*,z0*) when the platform is in its initial configuration. Of course, since the frames are not placed at the center of the spherical motion, the two origins O* and P* will be coincident only in the home position.Once the location of the new frameO* has been defined by means of the RO*O rotation matrix, the orientation of the mobile platform can be described in the new frames by
(8)RP*O*=RTO*ORPORO*O,
where it has been used the identity RO*O=RP*P. Of course, being the mobile and fixed frames modified, also the Cardan angles φx,φy,φz that yield the rotation matrix RP*O* are different from the previously described set (α,β,γ):
(9)R(φx,φy,φz)=Rx*(φx)Ry*(φy)Rz*(φz).P*O*Henceforth these angles are used to describe the orientation of the manipulator and to assign the tasks of the mobile platform; since they are assumed as external coordinates for the computation of the differential kinematics, the analytic and the geometric Jacobians are worked out again as previously described, providing similar but more complex relations.


## 2.1. Mechanical Architecture

Since the detailed description of machine’s kinematics and prototype design has been provided already in Callegari et al. [2], hereby only the most relevant aspects are recalled.The spherical parallel machine under study is made of three identical serial chains connecting the moving platform to the fixed base, as shown in Figure1; each leg is composed by two links: the first one is connected to the frame by a cylindrical joint (C), while the second link is connected to the first one by a prismatic joint (P) and to the end-effector by a universal joint (U); for this reason its mechanical architecture is commonly called 3-CPU. A few manufacturing conditions, already investigated for a general pure rotational tripod by Karouia and Hervè [3], must be fulfilled in order to constraint the end-effector to a spherical motion:(i)
the axes of the cylindrical joints (ai,i=1,2,3) are aligned along the x, y, z axes of the base frame and intersect at the center O of the spherical motion;(ii)
the axisbi of each prismatic pair is perpendicular to the axis of the respective cylindrical joint ai;(iii)
the first axis of each universal joint is perpendicular to the plane of the corresponding leg (plane identified by the axesai and bi);(iv)
the second axis of the 3 universal joints (resp., for the leg 1, 2, and 3) are aligned along they1, z1, x1 axes of a local frame centered in P (coincident with O) and attached to the mobile platform.Kinematic schemes of the 3-CPU robot (a) and geometry of the legs (b).
(a)
(b)For a successful operation of the mechanism, onemounting condition must be satisfied too; assembly should be operated in such a way that the two frames O(x0,y0,z0) and P(x1,y1,z1) come to coincide when the robot is in its homing position. Such configuration is obtained when the three displacements ai are equal to the length of the second link c and the displacements of the prismatic joints bi are equal to the constant distance d. If the mounting conditions are verified, the points P and O remain fixed and coincident while the moving platform performs a spherical motion around them.


## 2.2. Kinematic Relations

The platform is actuated by driving the strokes of the 3 cylindrical joints; therefore joint space displacements are gathered into the following vectorq:
(1)q=[a1a2a3].The position kinematics of the robot expresses the relation between the orientation of the mobile platform and the displacements of the actuators; the attitude of the machine in space is fully provided by the rotation matrixRPO, that can also be conveniently expressed as a composition of elemental rotations. In the development of robot’s kinematics, the following Cardan angles set is used:
(2)RPO(α,β,γ)=Rx(α)Ry(β)Rz(γ)=[cβcγ-cβsγsβsαsβcγ+cαsγ-sαsβsγ+cαcγ-sαcβ-cαsβcγ+sαsγcαsβsγ+sαcγcαcβ].The position kinematics of the robot is simply expressed by(3)r12=-cβsγ=c-a1d,r23=-sαcβ=c-a2d,r31=-cαsβcγ+sαsγ=c-a3d,
where rij is the element at the ith row and jth column of rotation matrix RPO. The solution of the direct position kinematics (DPK) problem requires the computation of the rotation matrix RPO as a function of internal coordinates q, which has been solved already by Carbonari et al. [4]. According to Innocenti and Parenti-Castelli [5], a maximum number of 8 different configurations can be worked out; however, a single feasible solution is found when the real workspace of the robot is considered; that is, the actual mobility of the joints is taken into consideration. Inverse position kinematic (IPK) problem admits just one solution and it is trivially solved by working out joint displacements q in (3).Turning todifferential kinematics, the expression of the analytic Jacobian JA is immediately obtained as a function of the Cardan angles and their rates:
(4)[a˙1a˙2a˙3]=JA[α˙β˙γ˙],JA=d[0-sβsγcβcγcαcβ-sαsβ0-sαsβcγ-cαsγcαcβcγ-cαsβsγ-sαcγ].By taking into account the relation between the derivatives of the Cardan angles and the angular velocityω:
(5)[ωxωyωz]=[10sβ0cα-sαcβ0sαcαcβ][α˙β˙γ˙]=T[α˙β˙γ˙],
the geometric Jacobian JG is easily obtained too:
(6)[a˙1a˙2a˙3]=JAT-1[ωxωyωz]=JG[ωxωyωz],
with
(7)JG=d[0-cαsβsγ-sαcγcαcγ-sαsβsγcαcβ0-sβ-sαsβcγ-cαsγcβcγ0].


## 2.3. User Frames

In order to better define the tasks to be commanded and visualize the obtained results, it is useful to choose a different set of reference frames, as shown in Figure2. The fixed frame O*(x0*,y0*,z0*) is defined as follows:(i)
the origin is located at the center of the moving platform when it assumes its initial configuration;(ii)
thez0* axis is aligned to the vector g of gravity acceleration;(iii)
thex0* axis lies on the upper plane of the platform and points toward the axis a1 of the cylindrical joint of the first leg;(iv)
they0* axis is placed according to the right-hand rule.User-defined task frames.
(a)
(b)The mobile frameP*(x1*,y1*,z1*) is coincident with the fixed frame O*(x0*,y0*,z0*) when the platform is in its initial configuration. Of course, since the frames are not placed at the center of the spherical motion, the two origins O* and P* will be coincident only in the home position.Once the location of the new frameO* has been defined by means of the RO*O rotation matrix, the orientation of the mobile platform can be described in the new frames by
(8)RP*O*=RTO*ORPORO*O,
where it has been used the identity RO*O=RP*P. Of course, being the mobile and fixed frames modified, also the Cardan angles φx,φy,φz that yield the rotation matrix RP*O* are different from the previously described set (α,β,γ):
(9)R(φx,φy,φz)=Rx*(φx)Ry*(φy)Rz*(φz).P*O*Henceforth these angles are used to describe the orientation of the manipulator and to assign the tasks of the mobile platform; since they are assumed as external coordinates for the computation of the differential kinematics, the analytic and the geometric Jacobians are worked out again as previously described, providing similar but more complex relations.


## 3. Control Algorithms

### 3.1. Overview

Several kinds of control schemes have been tried on the 3-CPU SPM, with the immediate goal of testing the prototypal robot but aiming at the final design of an efficient co-operative environment for mechanical assembly. In the end, 3 different algorithms have been studied in simulation and then experimentally tested:(i)
a conventional joint resolved PID [6];(ii)
a joint resolved PID with the compensation of gravity forces [7];(iii)
a task-space PID with gravity compensation [8].In all control schemes, the PID loop has been computed as usual in the following way:(10)u(t)=KP(e(t)+1Ti∫0te(τ)dτ+TDddte(t)),
with u(t) control action and e(t) input position error; KP, TI, and TD are, respectively, the proportional gain, integral time, and derivative time matrices of the PID regulator.


### 3.2. Joint Resolved PID

First, a conventional joint resolved PID has been considered; see Figure3. The error signal a~ is computed in the joint space as a difference between the desired position of the sliders aD and their actual values a:
(11)a~=aD-a.Figure 3
Joint space PID controller.Since planning is programmed in the orientation space by assigning the desired configuration of the robotφD, the corresponding position of the actuated joints is computed by means of inverse kinematics relations. The actuation effort of the motors is computed as
(12)f=KP[a~+1Ti∫a~dt+TDda~dt],
where the diagonal matrices KP, TI, and TD have been introduced already in the previous section.


### 3.3. Joint Resolved PID with Gravity Compensation

In robotics the effects of gravitational field are often much more relevant than the other dynamics terms, at least for the small/moderate velocities attained during assembly tasks; such terms can be easily evaluated by means of the virtual work principle, as worked out in Callegari et al. [2]. Thus, a compensation term can be introduced by adding the force vector:
(13)fg=-JA-T∑imiJiTg,
where JA is the analytic Jacobian matrix, mi is the mass of the ith member, Ji is the Jacobian that links the velocity of the centre of gravity of the ith member to the vector a˙, and g is the gravity acceleration. The resulting control scheme is shown in Figure 4.Figure 4
Joint space PID controller with gravity compensation.


### 3.4. Task Space PID with Gravity Compensation

The third control scheme that has been taken into consideration is a task space PID, with the compensation of the gravitational terms; see Figure5:
(14)f=JA-T(KP'[φ~+1TI'∫φ~dt+TD'dφ~dt]-∑imiJiTg),
where φ~ is the error signal in the task space and the PID gains KP', TI', and TD' are diagonal matrices once again. This algorithm is computationally more expensive than the previous one, since it requires the evaluation of direct kinematics that for PKMs is more complex than inverse kinematics; on the other hand, it could prove useful, for example, in vision assisted assembly tasks with position-based controls, as already experimented on the 3-CPU translating parallel machine by Palmieri et al. [9].Figure 5
Task space PID controller with gravity compensation.


### 3.5. Implementation in Real-Time Controller

During the implementation of algorithms (12)–(14) on the real-time controller, it was took into consideration the sensitiveness to noise of differentiation. Considering the Laplace transform of (10), the mentioned problem has been numerically mitigated by substituting the classic derivative term KPTDs with the following derivative operator:
(15)D*(s)=KPTDs1+sTD/N,
where N has been chosen equal to 10. Another problem in the implementation of PID controllers over a real-time system is the windup effect. This phenomenon is due to the integral action which saturates the actuators output. Figure 6 shows a modified scheme of the PID control which implements a typical anti-windup strategy; the model of the actuator, mentioned in the scheme, was easily obtained after identification of the motor mechanical and electrical parameters summarized in Table 2.Figure 6
Anti-windup modified PID.


## 3.1. Overview

Several kinds of control schemes have been tried on the 3-CPU SPM, with the immediate goal of testing the prototypal robot but aiming at the final design of an efficient co-operative environment for mechanical assembly. In the end, 3 different algorithms have been studied in simulation and then experimentally tested:(i)
a conventional joint resolved PID [6];(ii)
a joint resolved PID with the compensation of gravity forces [7];(iii)
a task-space PID with gravity compensation [8].In all control schemes, the PID loop has been computed as usual in the following way:(10)u(t)=KP(e(t)+1Ti∫0te(τ)dτ+TDddte(t)),
with u(t) control action and e(t) input position error; KP, TI, and TD are, respectively, the proportional gain, integral time, and derivative time matrices of the PID regulator.


## 3.2. Joint Resolved PID

First, a conventional joint resolved PID has been considered; see Figure3. The error signal a~ is computed in the joint space as a difference between the desired position of the sliders aD and their actual values a:
(11)a~=aD-a.Figure 3
Joint space PID controller.Since planning is programmed in the orientation space by assigning the desired configuration of the robotφD, the corresponding position of the actuated joints is computed by means of inverse kinematics relations. The actuation effort of the motors is computed as
(12)f=KP[a~+1Ti∫a~dt+TDda~dt],
where the diagonal matrices KP, TI, and TD have been introduced already in the previous section.


## 3.3. Joint Resolved PID with Gravity Compensation

In robotics the effects of gravitational field are often much more relevant than the other dynamics terms, at least for the small/moderate velocities attained during assembly tasks; such terms can be easily evaluated by means of the virtual work principle, as worked out in Callegari et al. [2]. Thus, a compensation term can be introduced by adding the force vector:
(13)fg=-JA-T∑imiJiTg,
where JA is the analytic Jacobian matrix, mi is the mass of the ith member, Ji is the Jacobian that links the velocity of the centre of gravity of the ith member to the vector a˙, and g is the gravity acceleration. The resulting control scheme is shown in Figure 4.Figure 4
Joint space PID controller with gravity compensation.


## 3.4. Task Space PID with Gravity Compensation

The third control scheme that has been taken into consideration is a task space PID, with the compensation of the gravitational terms; see Figure5:
(14)f=JA-T(KP'[φ~+1TI'∫φ~dt+TD'dφ~dt]-∑imiJiTg),
where φ~ is the error signal in the task space and the PID gains KP', TI', and TD' are diagonal matrices once again. This algorithm is computationally more expensive than the previous one, since it requires the evaluation of direct kinematics that for PKMs is more complex than inverse kinematics; on the other hand, it could prove useful, for example, in vision assisted assembly tasks with position-based controls, as already experimented on the 3-CPU translating parallel machine by Palmieri et al. [9].Figure 5
Task space PID controller with gravity compensation.


## 3.5. Implementation in Real-Time Controller

During the implementation of algorithms (12)–(14) on the real-time controller, it was took into consideration the sensitiveness to noise of differentiation. Considering the Laplace transform of (10), the mentioned problem has been numerically mitigated by substituting the classic derivative term KPTDs with the following derivative operator:
(15)D*(s)=KPTDs1+sTD/N,
where N has been chosen equal to 10. Another problem in the implementation of PID controllers over a real-time system is the windup effect. This phenomenon is due to the integral action which saturates the actuators output. Figure 6 shows a modified scheme of the PID control which implements a typical anti-windup strategy; the model of the actuator, mentioned in the scheme, was easily obtained after identification of the motor mechanical and electrical parameters summarized in Table 2.Figure 6
Anti-windup modified PID.


## 4. Simulation Results

### 4.1. Simulation Environment

Figure7 shows the virtual prototyping environment used at the Robotics Laboratory of the Polytechnic University of Marche for the design of automated and robotized systems, in particular for the design and virtual testing of parallel kinematic manipulators. The mechanical design is developed through conventional CAD tools, which allow to easily define even the most complex geometries and also to perform, for example, by means of FEM modules, the needed structural analyses; the interface with a multibody code allows to perform closed-loop dynamic analyses, with different levels of difficulty according to the associativity of the used programs. In this case, the LMS Virtual. Lab Motion package has been used, which is able to handle conveniently also complex situations like, for instance, the occurrence of an impact. The multibody package receives in input from the controller the actuation torques and integrates the equation of direct dynamics, providing in output the state variables assumed to be measured. The control system, which is implemented in the Matlab/Simulink environment, computes the control actions by taking into account the commanded task and sometimes, just like the present case, by also exploiting the complete or partial knowledge of robot’s dynamics (inverse dynamics model). If the task is constrained by the contact with the environment, like is usually the case for assembly, the contact forces can be evaluated too, to set up more efficient force control schemes. It is noted that, by using the Real-Time Workshop package of the Matlab suite, the same code used during the simulations in the virtual prototyping environment has been directly ported to the real-time control hardware afterwards.Figure 7
Integrated virtual prototyping environment for PKM’s analysis and design.In this way, by means of the mentioned prototyping software,a model of the spherical robot has been made available for the design of the control system and for the tuning of the PID’s. Table 1 collects some control gains at the end of the tuning procedure, based on both simulation runs and experimental tests.Table 1
PIDs gains.
Joint space
Joint space with gravity compensation
Task space with gravity compensation
K
P  [N/m]
25000
15000
1000
T
I  [s]
200
100
100
T
D  [s]
1
0.2
0.25Table 2
Parameters of the linear drives.
Motors properties
M
s
2.95
kg
Stator mass
K
t
58
N/A
Torque constant
I
n
3
A
Nominal supply current
T
n
184
N
Nominal thrust
v
n
6
m/s
Nominal speed


### 4.2. Simulation Analysis

A few test cases have been set up in simulation to evaluate the performances of the 3 PID controllers described in Section3. The figures show the response of the system when the robot started at rest from the home configuration (φx=φy=φz=0) and was required to attain the set point:
(16)φD=[φx,Dφy,Dφz,D]=[-15°-15°-15°]=[-0.262-0.262-0.262]rad,φ˙D=0.Such task is very challenging for machine’s controller because the set point lies close to a singular configuration of the robot and algorithms (13) and (14) require the inversion of the Jacobian matrix. Figure 8 shows the different performances, in simulation, between the three different controllers: C1, C2, C3 are, respectively, joint resolved PID, joint resolved PID with gravity compensation, and task space PID with gravity compensation. It is noted that the robot is not kept at its home position by means of the brakes but the motors are used to this aim instead, then the set point has been applied in all trials at the time instant t=0.5 s. The orientation trajectories in the task space show the better behaviour of the closed-loop system when it is equipped with the conventional PID algorithm, due to the mentioned presence of singularities.Figure 8
Response to step input: task space trajectories.The simulations also return useful information for what regards the control effort forces, which are plotted in Figure9: in all cases the application of the set point causes a peak in the required forces, which saturates the actuators.Figure 9
Response to step input: control efforts.In the end, it is noted that the task space PID with gravity compensation is more sensitive to parameter variations. This is due to the intrinsic characteristics of robot prototype, which has no external sensor and many singular configurations. In this way, all the information about the task space is obtained through the direct kinematics and the robot Jacobian. Small errors in the computation may affect heavily control system’s performance.


## 4.1. Simulation Environment

Figure7 shows the virtual prototyping environment used at the Robotics Laboratory of the Polytechnic University of Marche for the design of automated and robotized systems, in particular for the design and virtual testing of parallel kinematic manipulators. The mechanical design is developed through conventional CAD tools, which allow to easily define even the most complex geometries and also to perform, for example, by means of FEM modules, the needed structural analyses; the interface with a multibody code allows to perform closed-loop dynamic analyses, with different levels of difficulty according to the associativity of the used programs. In this case, the LMS Virtual. Lab Motion package has been used, which is able to handle conveniently also complex situations like, for instance, the occurrence of an impact. The multibody package receives in input from the controller the actuation torques and integrates the equation of direct dynamics, providing in output the state variables assumed to be measured. The control system, which is implemented in the Matlab/Simulink environment, computes the control actions by taking into account the commanded task and sometimes, just like the present case, by also exploiting the complete or partial knowledge of robot’s dynamics (inverse dynamics model). If the task is constrained by the contact with the environment, like is usually the case for assembly, the contact forces can be evaluated too, to set up more efficient force control schemes. It is noted that, by using the Real-Time Workshop package of the Matlab suite, the same code used during the simulations in the virtual prototyping environment has been directly ported to the real-time control hardware afterwards.Figure 7
Integrated virtual prototyping environment for PKM’s analysis and design.In this way, by means of the mentioned prototyping software,a model of the spherical robot has been made available for the design of the control system and for the tuning of the PID’s. Table 1 collects some control gains at the end of the tuning procedure, based on both simulation runs and experimental tests.Table 1
PIDs gains.
Joint space
Joint space with gravity compensation
Task space with gravity compensation
K
P  [N/m]
25000
15000
1000
T
I  [s]
200
100
100
T
D  [s]
1
0.2
0.25Table 2
Parameters of the linear drives.
Motors properties
M
s
2.95
kg
Stator mass
K
t
58
N/A
Torque constant
I
n
3
A
Nominal supply current
T
n
184
N
Nominal thrust
v
n
6
m/s
Nominal speed


## 4.2. Simulation Analysis

A few test cases have been set up in simulation to evaluate the performances of the 3 PID controllers described in Section3. The figures show the response of the system when the robot started at rest from the home configuration (φx=φy=φz=0) and was required to attain the set point:
(16)φD=[φx,Dφy,Dφz,D]=[-15°-15°-15°]=[-0.262-0.262-0.262]rad,φ˙D=0.Such task is very challenging for machine’s controller because the set point lies close to a singular configuration of the robot and algorithms (13) and (14) require the inversion of the Jacobian matrix. Figure 8 shows the different performances, in simulation, between the three different controllers: C1, C2, C3 are, respectively, joint resolved PID, joint resolved PID with gravity compensation, and task space PID with gravity compensation. It is noted that the robot is not kept at its home position by means of the brakes but the motors are used to this aim instead, then the set point has been applied in all trials at the time instant t=0.5 s. The orientation trajectories in the task space show the better behaviour of the closed-loop system when it is equipped with the conventional PID algorithm, due to the mentioned presence of singularities.Figure 8
Response to step input: task space trajectories.The simulations also return useful information for what regards the control effort forces, which are plotted in Figure9: in all cases the application of the set point causes a peak in the required forces, which saturates the actuators.Figure 9
Response to step input: control efforts.In the end, it is noted that the task space PID with gravity compensation is more sensitive to parameter variations. This is due to the intrinsic characteristics of robot prototype, which has no external sensor and many singular configurations. In this way, all the information about the task space is obtained through the direct kinematics and the robot Jacobian. Small errors in the computation may affect heavily control system’s performance.


## 5. Experimental Results

### 5.1. Experimental Setup

The prototype robot is shown in Figure10; it is actuated by three brushless linear motors by Phase and controlled by a National Instrument board based on the PXI/FlexMotion hardware. The force developed by the sliders is obtained by directly setting the current loop of the drivers, according to the usual relation between the current i and the thrust F:
(17)F=Kti,
where the torque constant Kt characterizes the performances of the motor; see Table 2.Figure 10
The prototype of the spherical parallel machine.With reference to the symbols introduced in Figure1, the main design data of the prototype are collected in Table 3.Table 3
Mechanical data of the robot prototype.
Geometrical data
c
210
mm
d
490
mm
h
280
mm
a
i
min
319
mm
a
i
max
661
mm
b
i
min
130
mm
b
i
max
210
mm
Mass data
Slider
7.15
kg
Link 1
1.90
kg
Link 2
2.21
kg
Platform
11.73
kgA series of experimental tests have been carried out in order to validate the numerical model described in the previous sections and to experimentally assess the performances of control laws (12)–(14). Results are here reported.


### 5.2. Case Study A

The first case study was already investigated in simulation, so that numerical and experimental results can now be compared. The platform at the home position has been requested to attain once again the task space set point (16), which corresponds to the following motor strokes:
(18)aD=[a1,Da2,Da3,D]=[516.4430.6445.6][mm],a˙D=0.Many tests have been performed for each one of the three control laws (12)–(14) and in the figures some experimental results are presented; values of one of the experimental trials are represented by circle markers while the averaged quantities are represented by solid lines.Figure11 presents some results obtained with the conventional PID loop. It is seen that steady state is achieved in less than one second without significant oscillations, due to the pretty high mechanical damping of the system. The corresponding actuation forces Fi are rather large in the first instants, approaching motors’ saturation thrusts, then they settle along the static value required for gravity compensation.Joint-space PID controller: platform’s trajectory in task-space (a), joint space errors (b), and motors thrusts (c).
(a)
(b)
(c)By observing Figures11, 12, 13, and 14, it results that the introduction of a gravity compensation term into the joint loop brings in system’s dynamics overshoots that increase the settle time. The task-space controller, on the other hand, requires much more actuation efforts in the first instants of the trials; see Figure 15.Joint-space PID with gravity compensation: platform’s trajectory in task-space (a) and joint space errors (b).
(a)
(b)Figure 13
Joint-space PID with gravity compensation:Ft total force provided by the motors, Fg gravity component.Task-space PID with gravity compensation: platform’s trajectory in workspace (a) and joint space errors (b).
(a)
(b)Figure 15
Task-space PID with gravity compensation:Ft total force provided by the motors, Fg gravity component.


### 5.3. Case Study B

The second case study was aimed at comparing the performances of the 3 controllers and therefore an elemental task was chosen; the wrist started in quiet at the home pose and was requested to reach the configuration:(19)φD=[φx,Dφy,Dφz,D]=[15°00]=[0.262rad00],φ˙D=0,
which corresponds to the following motor strokes:
(20)aD=[a1,Da2,Da3,D]=[470.2533.2470.2][mm],a˙D=0,Figure16 shows the trend of the workspace variable vector φ=[φxφyφz]T in the three different cases, while Figure 17 plots the actuation forces developed by the motors.Figure 16
Comparative behavior of the three controllers: task-space trajectories.Figure 17
Comparative behavior of the three controllers: actuation forces.


## 5.1. Experimental Setup

The prototype robot is shown in Figure10; it is actuated by three brushless linear motors by Phase and controlled by a National Instrument board based on the PXI/FlexMotion hardware. The force developed by the sliders is obtained by directly setting the current loop of the drivers, according to the usual relation between the current i and the thrust F:
(17)F=Kti,
where the torque constant Kt characterizes the performances of the motor; see Table 2.Figure 10
The prototype of the spherical parallel machine.With reference to the symbols introduced in Figure1, the main design data of the prototype are collected in Table 3.Table 3
Mechanical data of the robot prototype.
Geometrical data
c
210
mm
d
490
mm
h
280
mm
a
i
min
319
mm
a
i
max
661
mm
b
i
min
130
mm
b
i
max
210
mm
Mass data
Slider
7.15
kg
Link 1
1.90
kg
Link 2
2.21
kg
Platform
11.73
kgA series of experimental tests have been carried out in order to validate the numerical model described in the previous sections and to experimentally assess the performances of control laws (12)–(14). Results are here reported.


## 5.2. Case Study A

The first case study was already investigated in simulation, so that numerical and experimental results can now be compared. The platform at the home position has been requested to attain once again the task space set point (16), which corresponds to the following motor strokes:
(18)aD=[a1,Da2,Da3,D]=[516.4430.6445.6][mm],a˙D=0.Many tests have been performed for each one of the three control laws (12)–(14) and in the figures some experimental results are presented; values of one of the experimental trials are represented by circle markers while the averaged quantities are represented by solid lines.Figure11 presents some results obtained with the conventional PID loop. It is seen that steady state is achieved in less than one second without significant oscillations, due to the pretty high mechanical damping of the system. The corresponding actuation forces Fi are rather large in the first instants, approaching motors’ saturation thrusts, then they settle along the static value required for gravity compensation.Joint-space PID controller: platform’s trajectory in task-space (a), joint space errors (b), and motors thrusts (c).
(a)
(b)
(c)By observing Figures11, 12, 13, and 14, it results that the introduction of a gravity compensation term into the joint loop brings in system’s dynamics overshoots that increase the settle time. The task-space controller, on the other hand, requires much more actuation efforts in the first instants of the trials; see Figure 15.Joint-space PID with gravity compensation: platform’s trajectory in task-space (a) and joint space errors (b).
(a)
(b)Figure 13
Joint-space PID with gravity compensation:Ft total force provided by the motors, Fg gravity component.Task-space PID with gravity compensation: platform’s trajectory in workspace (a) and joint space errors (b).
(a)
(b)Figure 15
Task-space PID with gravity compensation:Ft total force provided by the motors, Fg gravity component.


## 5.3. Case Study B

The second case study was aimed at comparing the performances of the 3 controllers and therefore an elemental task was chosen; the wrist started in quiet at the home pose and was requested to reach the configuration:(19)φD=[φx,Dφy,Dφz,D]=[15°00]=[0.262rad00],φ˙D=0,
which corresponds to the following motor strokes:
(20)aD=[a1,Da2,Da3,D]=[470.2533.2470.2][mm],a˙D=0,Figure16 shows the trend of the workspace variable vector φ=[φxφyφz]T in the three different cases, while Figure 17 plots the actuation forces developed by the motors.Figure 16
Comparative behavior of the three controllers: task-space trajectories.Figure 17
Comparative behavior of the three controllers: actuation forces.


## 6. Conclusions

The paper presented the first experiments in driving a prototypal SPM developed at the Polytechnic University of Marche by means of linear controllers. The use of a virtual simulation environment can be very profitable in the design of robots’ controllers and even in the draft tuning of their parameters. In the present case, three controllers have been first designed in simulation and then implemented on an embedded system for real-time application by means of rapid prototyping software. The task-space controller with the compensation of the gravity terms provided poorer performances than conventional joint-space loops, but in A.’s opinion it could be due to calibration errors, that would heavily affect the computation of direct kinematics, which is required with the present sensing equipment; the use of ANN controllers could be profitable to overcome unmodeled disturbances due to static friction or calibration errors [10].As a matter of fact, task-space control schemes would be very useful for the realization of interaction controllers, see Siciliano and Villani [11], which is the objective of A.’s coming researches, since they aim at performing mechanical assembly by means of cooperating PKMs [12].The simplicity of direct kinematics of this machine (in comparison with the usual complexity of PKMs) allows an efficient implementation of algorithms with loop closures in the task space; the same can be said for the easy compensation of the static unbalance of robot’s links.These features and the possible use of visual servoing suggest a possible implementation of control schemes based on force control, where machine’s dynamics has to be computed in task-space coordinates, which is rather “natural” for parallel kinematics machines.



---

*Source: 136841-2013-02-21.xml*