# Dynamic Models of Spherical Parallel Robots for
Model-Based Control Schemes

Ali Hassani<EMAIL_ADDRESS>Abbas Bataleblu
<EMAIL_ADDRESS>S. A. Khalilpour<EMAIL_ADDRESS>Hamid
D. Taghirad<EMAIL_ADDRESS>Philippe Cardou<EMAIL_ADDRESS>Advanced Robotics and Automated Systems (ARAS), Faculty of Electrical and
Computer Engineering,
K.N. Toosi University of Technology, Tehran, Iran.  Department of Mechanical
Engineering, Robotics Laboratory, Laval University, Quebec City, QC G1V 0A6,
Canada.

###### Abstract

In this paper, derivation of different forms of dynamic formulation of
spherical parallel robots (SPRs) is investigated. These formulations include
the explicit dynamic forms, linear regressor, and Slotine-Li (S-L) regressor,
which are required for the design and implementation of the vast majority of
model-based controllers and dynamic parameters identification schemes. To this
end, the implicit dynamic of SPRs is first formulated using the principle of
virtual work in task-space, and then by using an extension, their explicit
dynamic formulation is derived. The dynamic equation is then analytically
reformulated into linear and S-L regression form with respect to the inertial
parameters, and by using the Gauss-Jordan procedure, it is reduced to a unique
and closed-form structure. Finally, to illustrate the effectiveness of the
proposed method, two different SPRs, namely, the ARAS-Diamond, and the 3-RRR,
are examined as the case studies. The obtained results are verified by using
the MSC-ADAMS® software, and are shared to interested audience for public
access.

###### keywords:

Spherical Parallel Robots , Virtual Work Method , Explicit Dynamic Formulation
, Spherical Parallel Robots Dynamics , Model-Based Control

##  1 Introduction

The demand for precise robotic manipulators is consistently increasing in the
industry. Parallel robots (PRs) may suitably address this requirement. Having
closed kinematic chains in their structure, PRs often possess higher
stiffnesses, accuracies, speeds, and accelerations than their serial
counterparts. Spherical parallel robots (SPRs) are a special category of PRs,
in which the moving platform and the other moving links, are constrained to
rotate about a single point, namely, the center of rotation (CR) [1] 111It
should be noted that in a group of PRs, the moving-platform and some of the
links are constrained to rotate about CR, for example 3-UPU wrist. These
robots are outside the scope of this article.. Although SPRs are made in
various designs and target different applications, perhaps their substantial
utilization is to rotate a specific object about a specific point, such as
camera attitude [2] or minimally invasive surgeries (MIS) [3].

The dynamic models of robots are needed for model-based controller design,
dynamic performance analysis, robot design, and system identification.
However, deriving the dynamic model of PRs is a challenging issue, due to
inherent complexity, due to their closed-loop structure and kinematic
constraints. The issue of the dynamic derivation of PRs is a popular topic in
the literature and has been addressed in various papers [4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16] and text-books [17, 18, 19, 20, 21, 22]. In general,
the dynamic models of PRs may be derived in the joint- or task-space
coordinates. However, it is advantageous to express the actuating joint
generalized forces of PRs as a function of the task space variables, since the
natural description of PRs dynamics is in the task space, and in addition, the
variables to be controlled are naturally defined in the task space [7, 23].

There are several different forms of robot dynamics that are suitable for
designing model-based controllers and dynamic calibration procedures. The most
common form is the explicit dynamics form, in which robot dynamics is divided
into three components: mass terms, Coriolis and centrifugal acceleration
terms, and gravity terms. The common inverse dynamic controller (IDC), which
is the basis of many advanced model-based controllers, is based on this form.
However, there are always structural and parametric uncertainties in the robot
dynamic model, which can reduce the performance of IDC [20], and that makes
IDC to be the basis for further robust and adaptive controllers for motion
tracking control of PRs.

The second derivation form of robot dynamics is the linear regression form. A
large class of adaptive control schemes [24, 25], as well as many dynamic
calibration procedures [26], requires a regression form that is linear with
respect to the parameters of the robot. Thanks to the linear form of the robot
dynamics, dynamic model uncertainties may be estimated by adaptive controllers
in the feedback loop, or identified using linear regression techniques [27].
Furthermore, there is another type of linear regressor form of the robot
dynamics introduced by Slotine and Li in [28]. This regressor form is more
suitable for the implementation of adaptive controller structures. In Slotine-
Li (S-L) regressor, restrictive requirements are eliminated, such as the need
for the acceleration measurement and the computation of the inverse mass
matrix.

The main objective of this paper is to derive different forms of dynamics of a
general SPR, in order to design different model-based controllers and dynamic
identification schemes. By examining the literature on the subject of various
controllers designed for SPRs, reported in Table 1, it can be seen that most
of reported structures used kinematic-based or simple model-based controllers
[1]. Furthermore, it is quite clear that the controllers that use the dynamic
information in their control law, may lead to better performance [23, 20].

Table 1: Review of notable control schemes for motion control of SPRs. Controller |  Ref |  Method |  Robot |  Considerations
---|---|---|---|---
PID |  [29] |  Practical |  PKAnkle |  Poor performance
PID/Kinematic sliding mode |  [30] |  Practical |  2-DOF 5R |
PD/PID |  [31] |  Practical |  2-DOF 5R |  Only Stabilization
Kinematic sliding mode |  [32] |  Practical |  2-DOF 5R |
Kinematic robust adaptive |  [33] |  Practical |  3-RRR |
$\mathcal{H}_{\infty}$ |  [34] |  Practical |  ARAS-Diamond |  Model Identification
PD+G |  [35] |  Simulation |  Redundant 3-RRR |  Uncertainties in the dynamic model
PD+G |  [36] |  Practical |  SHaDe |
PD/IDC |  [37] |  Simulation |  3-RRR |
IDC |  [38] |  Simulation |  3-RRR |
Dynamic robust adaptive switching learning |  [39] |  Simulation |  3-RRR |

It seems that a lack of sufficient knowledge about derivation of dynamic model
forms of SPRs has limited the use of model-based controllers for SPRs. In
order to investigate the different methods for deriving the dynamic models of
different SPRs, we re-examined the literature, and report the resuly in Table
2.

Table 2: Review of notable dynamic models for different SPRs. Ref |  Approach |  Explicit Dynamics |  Linear Regressor |  S-L Regressor |  Case Study
---|---|---|---|---|---
[40] |  Newton-Euler |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  2DOF-5R
[41] |  Lagrange |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  3-RRR
[42, 43] |  Virtual Work |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  2DOF-5R
[44, 45] |  |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  3-RRP
[46] |  |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  3-RRR
[47] |  Gibbs-Appelle |  ✓ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  3-RRR
[48] |  Natural Orthogonal Complement |  ✓ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  3-RRP
[49, 38, 39] |  Lagrange |  ✓ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  3-RRR
[50, 51] |  Virtual Work |  ✓ |  $\boldsymbol{\times}$ |  $\boldsymbol{\times}$ |  3-RRP, 3-PRR
[52] |  Virtual Work |  $\boldsymbol{\times}$ |  ✓ |  $\boldsymbol{\times}$ |  2DOF-5R
This Paper |  Virtual Work |  ✓ |  ✓ |  ✓ |  2DOF-5R, and 3-RRR

As it is seen in this table in most cases, the derived dynamic models are not
complete enough to be used in the design of model-based controllers. Deriving
the appropriate dynamic model to identify the robot’s dynamic parameters is
more critical, where Ref. [52] addresses this issue, but only for the special
case of 2DOF-5R SPRs. In addition, the derivation of the S-L regressor, which
is necessary for designing various adaptive controllers, is not reported for
any SPR robot in the literature.

In this paper, different forms of the dynamics of SPRs will be examined in
detail using the principle of virtual work while the foremost contributions
are summarized as follows:

  1. 1.

Providing a systematic method of deriving explicit dynamic model of a general
SPR.

  2. 2.

Expanding the implicit dynamic formulation to derive linear regressor form,
which allows the design a class of adaptive controllers [24, 25].

  3. 3.

Deriving the reduced regressor matrix using the unique solution, in order to
use a wide range of robot dynamic calibration schemes, for example, BIRDy
(Benchmark for identification of robot dynamics) MATLAB toolbox [53]. It
should be noted that the BIRDy toolbox can only be used for serial
manipulators.

  4. 4.

Using the explicit dynamic formulation and linear regressor form to derive the
S-L regressor form of SPRs, in order to be used in many adaptive
position/force control schemes, as in [54, 55].

To the best of the authors’ knowledge, such formulation has never been
presented in the literature before. Previous formulations usually are case
dependent, which cannot be generalized into a systematic method of dynamic
formulation. Or they provide only one of these dynamic forms, which is not
sufficient to be used for the advanced control structures of the
position/force of SPRs. To demonstrate the scope of the dynamic formulation
derived in this paper in terms of structure synthesis, different SPRs are
referred to, while two different SPRs, namely, ARAS-Diamond (2-DOF 5R), and
3-RRR, are considered as the case studies. The results of the derived dynamics
model are made publicly available 222Github.com/aras-labs/SPRs_Dynamic_Model.

The remainder of this paper is organized as follows. Implicit and explicit
dynamic analysis are presented in section 2, while section 3 describes the
linear regressor and the Slotine-Li regressor analysis of SPRs. Then, the
dynamic analysis on two case studies is reported in section 4, and the
simulation and validation results by using MSC-ADAMS® software is given in
section 5. Finally, the concluding remarks are given in the last section.

##  2 Dynamic Analysis

###  2.1 Preliminary Definitions

In this section, preliminary definitions for the dynamic formulation of SPRs
are given. The structure of these robots consists of several links and a
moving platform with pure rotational motion about the CR point. The origin of
the base coordinate system is set at the CR point, as shown in the schematic
of Figure 1.

Figure 1: View of a SPR

Throughout this paper, the $i$ and $p$ indices refer to each link and to the
moving platform, respectively. Moreover,
$\boldsymbol{q}=\begin{bmatrix}q_{1}&...&q_{j}\end{bmatrix}^{T}$ denotes the
actuated joint variables, while $\chi$ represents independent generalized
parameters of the moving platform. In SPRs, the moving platform has pure
rotation about the CR point, and therefore, $\chi$ may be considered as
$\boldsymbol{\raisebox{1.5pt}{$\chi$}}=\boldsymbol{\theta}=\begin{bmatrix}\theta_{1},\theta_{2},\theta_{3}\end{bmatrix}^{T}$.
In addition, to describe the orientation of the moving platform in the task
space coordinate, different approaches are reported in the literature. In this
paper, Euler angles and the spherical base coordinate system are adopted.
Besides, $S(\boldsymbol{a})$ denotes the $3\times 3$ skew-symmetric matrix
generated from the vector $\boldsymbol{a}=[a_{1},a_{2},a_{3}]^{T}$.

###  2.2 The Principle of Virtual Work for Parallel Robots

The principle of virtual work for a PR with several links and a moving
platform, may be stated as [9]:

$\delta
W={\delta\boldsymbol{q}}^{T}\cdot\boldsymbol{\tau}+{\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{p}}^{T}\cdot\boldsymbol{\mathfrak{f}}_{p}+\sum_{i=1}^{k}\left({\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{i}}^{T}\cdot\boldsymbol{\mathfrak{f}}_{i}\right)=0,$
(1)

where
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{p}=\left[\delta{\boldsymbol{x}_{p}}^{T},\delta{\boldsymbol{\theta}_{p}}^{T}\right]^{T}$
and
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{i}=\left[\delta{\boldsymbol{x}_{i}}^{T},\delta{\boldsymbol{\theta}_{i}}^{T}\right]^{T}$
represent the virtual displacements of the CGs of the moving platform and of
link $i$, respectively. Furthermore, $\boldsymbol{\mathfrak{f}}_{p}$ and
$\boldsymbol{\mathfrak{f}}_{i}$ denote the inertial wrenches respectively
applied at the moving platform CG and the $i$th link CG. Moreover, $k$
indicates the number of links. These inertial wrenches take the form:

$\displaystyle\boldsymbol{\mathfrak{f}}_{p}=\begin{bmatrix}\boldsymbol{f}_{p}\\\
\boldsymbol{n}_{p}\end{bmatrix}=-\begin{bmatrix}m_{p}\left({}^{0}\mathrm{\boldsymbol{a}}_{p}-{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\boldsymbol{g}_{0}}\right){\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}-\boldsymbol{f}_{G_{d}}}\\\
\left({}^{0}\mathrm{\boldsymbol{I}}_{p}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}+~{}^{0}\mathrm{\boldsymbol{\omega}}\times\left({}^{0}\mathrm{\boldsymbol{I}}_{p}~{}^{0}\mathrm{\boldsymbol{\omega}}\right)\right){\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}-\boldsymbol{n}_{G_{d}}}\end{bmatrix},$
(2a)
$\displaystyle\boldsymbol{\mathfrak{f}}_{i}=\begin{bmatrix}\boldsymbol{f}_{i}\\\
\boldsymbol{n}_{i}\end{bmatrix}=-\begin{bmatrix}m_{i}\left({}^{0}\mathrm{\boldsymbol{a}}_{i}-{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\boldsymbol{g}_{0}}\right)\\\
\left({}^{0}\mathrm{\boldsymbol{I}}_{i}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{i}+~{}^{0}\mathrm{\boldsymbol{\omega}}_{i}\times\left({}^{0}\mathrm{\boldsymbol{I}}_{i}~{}^{0}\mathrm{\boldsymbol{\omega}}_{i}\right)\right)\end{bmatrix},$
(2b)

in which ${}^{0}\mathrm{\boldsymbol{a}}_{p}$ denotes the linear acceleration
of CG of the moving platform, and ${}^{0}\mathrm{\boldsymbol{I}}_{p}$ demotes
the inertia matrix of the moving platform about its CG and expressed in the
base coordinate system. Moreover, ${}^{0}\mathrm{\boldsymbol{\omega}}$ and
${}^{0}\mathrm{\boldsymbol{\dot{\omega}}}$ respectively represent the angular
velocity and acceleration of the moving platform. Similar to this notation,
the same is applied to each link’s inertial force with index $i$. In addition,
$\boldsymbol{\mathfrak{f}}_{G_{d}}=\left[{\boldsymbol{f}_{G_{d}}}^{T},{\boldsymbol{n}_{G_{d}}}^{T}\right]^{T}$
is an external disturbance wrench applied on the moving platform CG.

By choosing the
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}=\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{p}$
as the independent generalized virtual displacements of the PR, virtual
displacement of links, $\delta\boldsymbol{q}$, may be related to the virtual
displacement of the moving platform,
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}$, by the manipulator Jacobian
$\boldsymbol{J}=\left[{\boldsymbol{J}_{v}}^{T},{\boldsymbol{J}_{\omega}}^{T}\right]^{T}$
as:

$\delta\boldsymbol{q}=\boldsymbol{J}~{}\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}.$
(3)

Furthermore, the virtual displacement of the CG of link $i$,
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{i}$, may be related to
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}$ by a Jacobian matrix defined for
each link and denoted by
$\boldsymbol{J}_{i}=\left[{\boldsymbol{J}_{v_{i}}}^{T},{\boldsymbol{J}_{\omega_{i}}}^{T}\right]^{T}$
as:

$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{i}=\boldsymbol{J}_{i}~{}\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}.$
(4)

Substituting (3) and (4) into equation of (1) results in:

${\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}}^{T}\left(\boldsymbol{J}^{T}\boldsymbol{\tau}+\boldsymbol{\mathfrak{f}}_{p}+\sum_{i=1}^{k}{\boldsymbol{J}_{i}}^{T}\left(\boldsymbol{\mathfrak{f}}_{i}\right)\right)=0.$
(5)

Finally, the implicit dynamics formulation of PRs may be represented as
follows:

$\boldsymbol{\mathfrak{f}}={\boldsymbol{J}}^{T}\boldsymbol{\tau}=-\left(\boldsymbol{\mathfrak{f}}_{p}+\sum_{i=1}^{k}{\boldsymbol{J}_{i}}^{T}\left(\boldsymbol{\mathfrak{f}}_{i}\right)\right).$
(6)

In general,
$\boldsymbol{\mathfrak{f}}=\left[{\boldsymbol{f}}^{T},{\boldsymbol{n}}^{T}\right]^{T}=\boldsymbol{J}^{T}\boldsymbol{\tau}$
is defined as a mapping of the actuator forces $\boldsymbol{\tau}$ into the
space of moving platform wrenches. Therefore, the Jacobian matrix is a squared
matrix if the robot is fully parallel with no redundancy in actuators.
Accordingly, in non-singular configurations, actuator forces may uniquely be
derived as $\boldsymbol{\tau}=\boldsymbol{J}^{-T}\boldsymbol{\mathfrak{f}}$.

As mentioned before, this formulation is based on the kinematic analysis of
the CG of each link and of the moving platform. However, if external wrenches
(2) are applied to an arbitrary point $\mathcal{A}$ distinct from the CG, the
external wrenches equation may be rewritten according to this arbitrary point.
It may be proved that the principle of virtual work for any arbitrary point
$\mathcal{A}$ in PRs is derived as [56]:

$\delta
W={\delta\boldsymbol{q}}^{T}\cdot\boldsymbol{\tau}+{\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{\mathcal{A}_{p}}}^{T}\cdot{\boldsymbol{\mathfrak{f}}}_{\mathcal{A}_{p}}+\sum_{i=1}^{k}\left({\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{\mathcal{A}_{i}}}^{T}\cdot{\boldsymbol{\mathfrak{f}}}_{\mathcal{A}_{i}}\right)=0,$
(7)

in which,
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{\mathcal{A}_{p}}=\left[\delta{\boldsymbol{x}_{{\mathcal{A}_{p}}}}^{T},\delta{\boldsymbol{\theta}_{\mathcal{A}_{p}}}^{T}\right]^{T}$
and
$\delta\boldsymbol{\raisebox{1.5pt}{$\chi$}}_{\mathcal{A}_{i}}=\left[\delta{\boldsymbol{x}_{\mathcal{A}_{i}}}^{T},\delta{\boldsymbol{\theta}_{\mathcal{A}_{i}}}^{T}\right]^{T}$
indicate virtual displacements of any arbitrary point $\mathcal{A}$ of the
moving platform and each link, respectively. Therefore, inertial forces of the
moving platform and each link with respect to this arbitrary point may be
derived as:

$\displaystyle\boldsymbol{\mathfrak{f}}_{\mathcal{A}_{p}}=\begin{bmatrix}\boldsymbol{f}_{\mathcal{A}_{p}}\\\
\boldsymbol{n}_{\mathcal{A}_{p}}\end{bmatrix}=-\begin{bmatrix}m_{p}\left({}^{0}\mathrm{\boldsymbol{\dot{\omega}}}\times~{}^{0}\mathrm{\boldsymbol{\rho}}_{p}+~{}^{0}\mathrm{\boldsymbol{\omega}}\times\left({}^{0}\mathrm{\boldsymbol{\omega}}\times~{}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)+\left({}^{0}\mathrm{\boldsymbol{a}}_{\mathcal{A}_{p}}-\boldsymbol{g}_{0}\right)\right){\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}-\boldsymbol{f}_{d}}\\\
\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}+~{}^{0}\mathrm{\boldsymbol{\omega}}\times\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}^{0}\mathrm{\boldsymbol{\omega}}\right)+m_{p}~{}^{0}\mathrm{\boldsymbol{\rho}}_{p}\times\left({}^{0}\mathrm{\boldsymbol{a}}_{\mathcal{A}_{p}}-\boldsymbol{g}_{0}\right)\right){\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}-\boldsymbol{n}_{d}}\end{bmatrix},$
(8a)
$\displaystyle\boldsymbol{\mathfrak{f}}_{\mathcal{A}_{i}}=\begin{bmatrix}\boldsymbol{f}_{\mathcal{A}_{i}}\\\
\boldsymbol{n}_{\mathcal{A}_{i}}\end{bmatrix}=-\begin{bmatrix}m_{i}\left({}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{i}\times~{}^{0}\mathrm{\boldsymbol{\rho}}_{i}+~{}^{0}\mathrm{\boldsymbol{\omega}}_{i}\times\left({}^{0}\mathrm{\boldsymbol{\omega}}_{i}\times~{}^{0}\mathrm{\boldsymbol{\rho}}_{i}\right)+\left({}^{0}\mathrm{\boldsymbol{a}}_{\mathcal{A}_{i}}-\boldsymbol{g}_{0}\right)\right)\\\
\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{i}+~{}^{0}\mathrm{\boldsymbol{\omega}}_{i}\times\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\omega}}_{i}\right)+m_{i}~{}^{0}\mathrm{\boldsymbol{\rho}}_{i}\times\left({}^{0}\mathrm{\boldsymbol{a}_{\mathcal{A}}}_{i}-\boldsymbol{g}_{0}\right)\right)\end{bmatrix},$
(8b)

in which, ${}^{0}\mathrm{\boldsymbol{a}}_{\mathcal{A}_{p}}$ denotes the
acceleration of point $\mathcal{A}_{p}$ in the base coordinate system. The
vector ${}^{0}\mathrm{\boldsymbol{\rho}_{p}}$, points from the arbitrary point
$\mathcal{A}_{p}$ to the origin of the base coordinate system. It must be
noted that equal notation applies to the inertial forces of each link with the
index of $i$. Moreover, we define
$\boldsymbol{\mathfrak{f}}_{d}=\left[{\boldsymbol{f}_{d}}^{T},{\boldsymbol{n}_{d}}^{T}\right]^{T}$
as the external disturbance wrench applied on the moving platform at the
arbitrary point $\mathcal{A}_{p}$.

Therefore, PRs’ dynamic formulation may be derived analogously to the process
mentioned in equations of (3) and (4). The only difference, however, is the
kinematic analysis, which is based on the arbitrary points $\mathcal{A}_{i}$
and $\mathcal{A}_{p}$, for each link and the moving platform, respectively.
Thus, in the following, this general formulation is used to derive a simple
form of the SPR dynamics.

###  2.3 Implicit Dynamic Analysis of Spherical Parallel Robots

As mentioned earlier, in SPRs, the moving platform undergoes pure rotations
about the CR point. Accordingly, we propose expressing the dynamic
formulations in a coordinate system with its origin at the CR. Hence, by
selecting $\mathcal{A}_{i}=\mathcal{A}_{p}$ as a fixed point at the origin of
the base coordinate system, all links and the moving platform experience pure
rotations about the CR point. As a result, the virtual linear displacement of
points of $\mathcal{A}_{i}$ and $\mathcal{A}_{p}$ always remains zero. This
implies that, the substitution of
$\delta\boldsymbol{\theta}_{\mathcal{A}_{p}}$ and
$\delta\boldsymbol{\theta}_{\mathcal{A}_{i}}$ into Eq. (7) leads to
$\delta\boldsymbol{q}=\boldsymbol{J}_{\omega}~{}\delta\boldsymbol{\theta}$ and
$\delta\boldsymbol{\theta}_{i}=\boldsymbol{J}_{\omega_{i}}~{}\delta\boldsymbol{\theta}$.
Therefore, the dynamic formulation of SPRs may be accomplished as follows,
which would be interpreted as the implicit dynamic formulation of SPRs:

${\boldsymbol{J}_{\omega}}^{T}\boldsymbol{\tau}={\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\boldsymbol{n}+\boldsymbol{n}_{d}=\boldsymbol{n}_{p}+\sum\limits_{i=1}^{k}\boldsymbol{n}_{i}}~{},~{}\in\mathbb{R}^{m},$
(9)

in which,
${\boldsymbol{J}_{\omega}}^{T}\boldsymbol{\tau}={\boldsymbol{n}+\boldsymbol{n}_{d}}$
represents the mapping of the actuator forces $\boldsymbol{\tau}$ on moving
platform moments. Moreover, $m$ denotes the number of generalized task space
variables, and the $\boldsymbol{n}_{p}$ and $\boldsymbol{n}_{i}$ are defined
as:

$\displaystyle\boldsymbol{n}_{p}=~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}+S\left({}^{0}\mathrm{\boldsymbol{\omega}}\right)\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}^{0}\mathrm{\boldsymbol{\omega}}\right)-m_{i}~{}S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)\boldsymbol{g}_{0},$
(10a)
$\displaystyle\boldsymbol{n}_{i}={\boldsymbol{J}_{\omega_{i}}}^{T}\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{i}+S\left({}^{0}\mathrm{\boldsymbol{\omega}}_{i}\right)\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\omega}}_{i}\right)-m_{i}~{}S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{i}\right)\boldsymbol{g}_{0}\right),$
(10b)

where, $S(\boldsymbol{a})$ represents the $3\times 3$ skew-symmetric matrix of
vector $\boldsymbol{a}$ and the following mapping may be used for deriving
$S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{i}\right)$ and, likewise,
$S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)$:

$S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{i}\right)=~{}^{0}\mathrm{\boldsymbol{R}}_{i}~{}S\left({}^{i}\mathrm{\boldsymbol{\rho}}_{i}\right)~{}{{}^{0}\mathrm{\boldsymbol{R}}_{i}}^{T}.$
(11)

in which, ${}^{0}\mathrm{\boldsymbol{R}}_{i}$ denotes the rotation matrix of
each link, respect to base coordinate system, and
${}^{i}\mathrm{\boldsymbol{\rho}}_{i}$ is the center of gravity (CG) position
of link $i$ respect to its CG.

###  2.4 Explicit Dynamic Analysis of Spherical Parallel Robots

As stated before, the orientation of the moving platform of SPRs might be
determined by their generalized coordinate, while its derivatives represent
the angular velocity and the angular acceleration as
$\boldsymbol{\dot{\theta}}={{}^{0}\mathrm{\boldsymbol{\omega}}}$, and
$\boldsymbol{\ddot{\theta}}={{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}}$. In
addition, the angular velocity and acceleration of each link may be expressed
as:

${}^{0}\mathrm{\boldsymbol{\omega}}_{i}=\boldsymbol{J}_{\omega_{i}}\boldsymbol{\dot{\theta}},$
(12a)
${}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{i}=\boldsymbol{J}_{\omega_{i}}\boldsymbol{\ddot{\theta}}+\boldsymbol{\dot{J}}_{\omega_{i}}\boldsymbol{\dot{\theta}}.$
(12b)

In order to derive the explicit form of the dynamic formulations employing the
principle of virtual work, substitute (12) into the implicit dynamic
formulation of (9). With some manipulations, the explicit dynamic formulation
for SPRs is written as:

${\boldsymbol{J}_{\omega}}^{T}\boldsymbol{\tau}={\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\boldsymbol{n}+\boldsymbol{n}_{d}}=\boldsymbol{M}(\boldsymbol{\theta})\boldsymbol{\ddot{\theta}}+\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})\boldsymbol{\dot{\theta}}+\boldsymbol{g}(\boldsymbol{\theta}),$
(13)

in which,

$\displaystyle\boldsymbol{M}(\boldsymbol{\theta})={{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}}+\sum\limits_{i=1}^{k}\left({\boldsymbol{J}_{\omega_{i}}}^{T}~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{J}_{\omega_{i}}\right),$
(14a)
$\displaystyle\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})=S(\boldsymbol{\omega})~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}+\sum\limits_{i=1}^{k}{\boldsymbol{J}_{\omega_{i}}}^{T}\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{\dot{J}}_{\omega_{i}}+S\left(\boldsymbol{J}_{\omega_{i}}\boldsymbol{\dot{\theta}}\right)~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{J}_{\omega_{i}}\right),$
(14b)
$\displaystyle\boldsymbol{g}(\boldsymbol{\theta})=-m_{p}~{}S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)\boldsymbol{g}_{0}-m_{i}\sum\limits_{i=1}^{k}{\boldsymbol{J}_{\omega_{i}}}^{T}~{}S(^{0}\mathrm{\boldsymbol{\rho}}_{i})~{}\boldsymbol{g}_{0}.$
(14c)

In order to use the CG position of each link in the body coordinate system
instead of the base coordinate system, we substitute (11) into (14c), which
yields:

$\boldsymbol{g}(\boldsymbol{\theta})=-m_{i}\left({}^{0}\mathrm{\boldsymbol{R}}_{p}~{}S\left({}^{p}\mathrm{\boldsymbol{\rho}}_{p}\right){{{}^{0}\mathrm{\boldsymbol{R}}_{p}}^{T}}\right)\boldsymbol{g}_{0}-m_{i}\sum\limits_{i=1}^{k}{\boldsymbol{J}_{\omega_{i}}}^{T}\left({}^{0}\mathrm{\boldsymbol{R}}_{i}~{}S\left({}^{i}\mathrm{\boldsymbol{\rho}}_{i}\right){{{}^{0}\mathrm{\boldsymbol{R}}_{i}}^{T}}\right)\boldsymbol{g}_{0}.$
(15)

The dynamic matrices of the explicit dynamic formulation of SPRs obtained in
equation (13) satisfy two important properties, which might be used in the
design of model-based controllers [54]:

Property 1. Matrix $\boldsymbol{M}(\boldsymbol{\theta})$ is positive definite
in all configurations.

Property 2. The matrix
$\left[\boldsymbol{\dot{M}}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})-2\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})\right]$
is skew–symmetric.

The first property may be easily proved, considering the quadratic structure
of its expression in Eq. (14a). Proving the second property is less straight
forward. First, the time derivative of $\boldsymbol{M}(\boldsymbol{\theta})$
may be computed as:

$\begin{split}\boldsymbol{\dot{M}}=&\left(S({{}^{0}\mathrm{\boldsymbol{\omega}}})~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}+~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}{S({{}^{0}\mathrm{\boldsymbol{\omega}}})}^{T}\right)+\sum\limits_{i=1}^{k}{\boldsymbol{\dot{J}}_{\omega_{i}}}^{T}~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{J}_{\omega_{i}}\\\
&+{\boldsymbol{J}_{\omega_{i}}}^{T}\left(S\left({}^{0}\mathrm{\boldsymbol{\omega}}_{i}\right)~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}+~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}S\left({}^{0}\mathrm{\boldsymbol{\omega}}_{i}\right)^{T}\right)\boldsymbol{J}_{\omega_{i}}+{\boldsymbol{J}_{\omega_{i}}}^{T}~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{\dot{J}}_{\omega_{i}}.\end{split}$
(16)

Therefore, it can be easily verified that:

$\left(\boldsymbol{\dot{M}}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})-2\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})\right)^{T}+\left(\boldsymbol{\dot{M}}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})-2\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})\right)=0.$
(17)

##  3 Regressor Analysis

###  3.1 Slotine-Li Regressor

In the S-L adaptive controller, the control effort in the task-space is
defined as [28]:

$\boldsymbol{M}(\boldsymbol{\theta})\boldsymbol{\ddot{\theta}}_{r}+\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})\boldsymbol{\dot{\theta}}_{r}+\boldsymbol{g}(\boldsymbol{\theta})-\boldsymbol{K}\boldsymbol{s}=\boldsymbol{Y}_{S}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\dot{\theta}}_{r},\boldsymbol{\ddot{\theta}}_{r})\boldsymbol{\pi}-\boldsymbol{K}\boldsymbol{s},$
(18)

in which, the error is defined as
$\boldsymbol{e}=\boldsymbol{\theta}-\boldsymbol{\theta}_{d}$, whereas
$\boldsymbol{\theta}_{d}$ denotes the desired trajectory in the task-space.
Moreover, the reference velocity of $\boldsymbol{\dot{\theta}}_{r}$ is defined
as
$\boldsymbol{\dot{\theta}}_{r}=\boldsymbol{\dot{\theta}}_{d}-\boldsymbol{\Lambda}\boldsymbol{e}$,
and
$\boldsymbol{s}=\boldsymbol{\dot{\theta}}-\boldsymbol{\dot{\theta}}_{r}=\boldsymbol{\dot{e}}+\boldsymbol{\Lambda}\boldsymbol{e}$
indicates the sliding surface. Furthermore, $\boldsymbol{K}$ and
$\boldsymbol{\Lambda}$ represent symmetric positive definite gains while,
$\boldsymbol{Y}_{S}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\dot{\theta}}_{r},\boldsymbol{\ddot{\theta}}_{r})$
is known as the Slotine-Li regressor.

In order to derive this regressor for SPRs,
$\boldsymbol{M}(\boldsymbol{\theta})$,
$\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})$, and
$\boldsymbol{g}(\boldsymbol{\theta})$ are substituted into Eq. (18). By this
means, the following relation is derived:

$\displaystyle\boldsymbol{n}_{S}+{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\boldsymbol{n}_{d}}=\boldsymbol{n}_{S_{p}}+\sum\limits_{i=1}^{k}\boldsymbol{n}_{S_{i}},$
(19a)
$\displaystyle\boldsymbol{n}_{S_{p}}=\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right){\boldsymbol{\ddot{\theta}}}_{r}+\left(S\left({{}^{0}\mathrm{\boldsymbol{\omega}}}\right)~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right){\boldsymbol{\dot{\theta}}}_{r}-m_{p}~{}S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)\boldsymbol{g}_{0},$
(19b)
$\displaystyle\begin{split}&\boldsymbol{n}_{S_{i}}={\boldsymbol{J}_{\omega_{i}}}^{T}\left(\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{J}_{\omega_{i}}\right)\boldsymbol{\ddot{\theta}}_{r}+\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{\dot{J}}_{\omega_{i}}+S\left(\boldsymbol{J}_{\omega_{i}}\boldsymbol{\dot{\theta}}\right)~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}\boldsymbol{J}_{\omega_{i}}\right)\boldsymbol{\dot{\theta}}_{r}+\right.{\cdot}\cdot\cdot\\\
&\hskip
56.9055pt\left.-m_{i}~{}S(^{0}\mathrm{\boldsymbol{\rho}}_{i})~{}\boldsymbol{g}_{0}\right).\end{split}$
(19c)

Analogous to Eq. (12), it is clear that
${}^{0}\mathrm{\boldsymbol{\omega}}_{r_{i}}=\boldsymbol{J}_{\omega_{i}}\boldsymbol{\dot{\theta}}_{r}$
and
${}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}=\boldsymbol{J}_{\omega_{i}}\boldsymbol{\ddot{\theta}}_{r}+\boldsymbol{\dot{J}}_{\omega_{i}}\boldsymbol{\dot{\theta}}_{r}$.
Furthermore, for SPRs, it may be considered that
$\boldsymbol{\dot{\theta}}_{r}={{}^{0}\mathrm{\boldsymbol{\omega}}_{r}}$ and
$\boldsymbol{\ddot{\theta}}_{r}={{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r}}$.
Hence, the following relation is derived by substituting these formulas into
Eq. (21):

$\displaystyle\boldsymbol{n}_{S_{i}}={\boldsymbol{J}_{\omega_{i}}}^{T}\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}+~{}S(^{0}\mathrm{\boldsymbol{\omega}}_{i})\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\omega}}_{r_{i}}\right)-m_{i}~{}S(^{0}\mathrm{\boldsymbol{\rho}}_{i})~{}\boldsymbol{g}_{0}\right),$
(20a)
$\displaystyle\boldsymbol{n}_{S_{p}}=\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right){{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r}}+\left(S\left({{}^{0}\mathrm{\boldsymbol{\omega}}}\right)~{}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right){{}^{0}\mathrm{\boldsymbol{\omega}}_{r}}-m_{p}~{}S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)\boldsymbol{g}_{0}.$
(20b)

To derive the S-L regressor from equation (20), one may use
${}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}=~{}^{0}\mathrm{\boldsymbol{R}}_{i}~{}^{i}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}$,
${}^{0}\mathrm{\boldsymbol{\omega}}_{r_{i}}=~{}^{0}\mathrm{\boldsymbol{R}}_{i}~{}^{i}\mathrm{\boldsymbol{\omega}}_{r_{i}}$,
${}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}=~{}^{0}\mathrm{\boldsymbol{R}}_{i}~{}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}{{}^{0}\mathrm{\boldsymbol{R}}_{i}}^{T}$,
and Eq. (11). Therefore, different parts of equation of (20a) will be
rewritten as follows:

${}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}=~{}^{0}\mathrm{\boldsymbol{R}}_{i}\left(~{}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{i}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}\right),$
(21a) $\displaystyle
S(^{0}\mathrm{\boldsymbol{\omega}}_{i})\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{0}\mathrm{\boldsymbol{\omega}}_{r_{i}}\right)=~{}^{0}\mathrm{\boldsymbol{R}}_{i}\left(S(^{i}\mathrm{\boldsymbol{\omega}}_{i})\left({}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{i}\mathrm{\boldsymbol{\omega}}_{r_{i}}\right)\right),$
(21b) $\displaystyle-
m_{i}~{}S(^{0}\mathrm{\boldsymbol{\rho}}_{i})~{}\boldsymbol{g}_{0}=-m_{i}~{}^{0}\mathrm{\boldsymbol{R}}_{i}~{}S\left({}^{i}\mathrm{\boldsymbol{\rho}}_{i}\right)~{}{{}^{0}\mathrm{\boldsymbol{R}}_{i}}^{T}~{}\boldsymbol{g}_{0}.$
(21c)

Considering
${}^{i}\mathrm{\boldsymbol{g}_{0}}=~{}{{}^{0}\mathrm{\boldsymbol{R}}_{i}}^{T}~{}\boldsymbol{g}_{0}$,
and using
$S\left({}^{i}\mathrm{\boldsymbol{\rho}}_{i}\right)~{}^{i}\mathrm{\boldsymbol{g}_{0}}=-S\left({}^{i}\mathrm{\boldsymbol{g}_{0}}\right)~{}^{i}\mathrm{\boldsymbol{\rho}}_{i}$,
Eq. (21c) will be rewritten as:

$-m_{i}~{}S(^{0}\mathrm{\boldsymbol{\rho}}_{i})~{}\boldsymbol{g}_{0}=~{}^{0}\mathrm{\boldsymbol{R}}_{i}~{}S\left({}^{i}\mathrm{\boldsymbol{g}_{0}}\right)\left(m_{i}~{}^{i}\mathrm{\boldsymbol{\rho}}_{i}\right).$
(22)

A similar process may be applied to the derivation of the S-L regression form
of the moving platform dynamic formulation. Notice that
${}^{p}\mathrm{\boldsymbol{\dot{\omega}}}_{r}={{{}^{0}\mathrm{\boldsymbol{R}}}_{p}}^{T}~{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r}$,
${}^{p}\mathrm{\boldsymbol{\omega}}_{r}={{}^{0}\mathrm{\boldsymbol{R}}_{p}}^{T}~{}^{0}\mathrm{\boldsymbol{\omega}}_{r}$,
${}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}=~{}^{0}\mathrm{\boldsymbol{R}}_{p}~{}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}{{}^{0}\mathrm{\boldsymbol{R}}_{p}}^{T}$,
and
${}^{p}\mathrm{\boldsymbol{g}_{0}}={{{}^{0}}\mathrm{\boldsymbol{R}}_{p}}^{T}~{}\boldsymbol{g}_{0}$.
Therefore, the dynamic formulation of the SPRs with respect to the robot’s
inertial parameters may be rewritten as:

$\displaystyle\boldsymbol{n}_{S_{i}}={\boldsymbol{J}_{\omega_{i}}}^{T}~{}^{0}\mathrm{\boldsymbol{R}}_{i}\left({}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{i}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}+S(^{i}\mathrm{\boldsymbol{\omega}}_{i})\left({}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}~{}^{i}\mathrm{\boldsymbol{\omega}}_{r_{i}}\right)+S\left({}^{i}\mathrm{\boldsymbol{g}_{0}}\right)\left(m_{i}~{}^{i}\mathrm{\boldsymbol{\rho}}_{i}\right)\right),$
(23a)
$\displaystyle\boldsymbol{n}_{S_{p}}=~{}^{0}\mathrm{\boldsymbol{R}_{p}}\left({}^{p}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}^{p}\mathrm{\boldsymbol{\dot{\omega}}}_{r}\right)+S\left({{}^{0}\mathrm{\boldsymbol{\omega}}}\right){{}^{0}\mathrm{\boldsymbol{R}_{p}}}\left({}^{p}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}~{}^{p}\mathrm{\boldsymbol{\omega}}_{r}\right)+S\left({}^{p}\mathrm{\boldsymbol{g}_{0}}\right)\left(m_{p}~{}^{p}\mathrm{\boldsymbol{\rho}}_{p}\right).$
(23b)

On the other hand, in order to transform the first and second terms of
equations of (23a) and (23b) to linear forms, it may be proved that [52, 56]:

$\displaystyle{{}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}}~{}^{i}\mathrm{\boldsymbol{\dot{\omega}}}_{r_{i}}=~{}^{i}\mathrm{\boldsymbol{\tilde{\dot{\omega}}}}_{r_{i}}~{}^{i}\mathrm{\boldsymbol{\bar{I}}}_{\mathcal{A}_{i}},$
(24a)
$\displaystyle{{}^{i}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{i}}}~{}^{i}\mathrm{\boldsymbol{\omega}}_{r_{i}}=~{}^{i}\mathrm{\boldsymbol{\tilde{\omega}}}_{r_{i}}~{}^{i}\mathrm{\boldsymbol{\bar{I}}}_{\mathcal{A}_{i}},$
(24b)

in which, ${}^{i}\mathrm{\boldsymbol{\bar{I}}}_{\mathcal{A}_{i}}$ and
${}^{i}\mathrm{\boldsymbol{\tilde{\omega}}}_{i}$ are defined as:

${}^{i}\mathrm{\boldsymbol{\bar{I}}}_{\mathcal{A}_{i}}=[I_{xx\mathcal{A}_{i}},I_{xy\mathcal{A}_{i}},I_{xz\mathcal{A}_{i}},I_{yy\mathcal{A}_{i}},I_{yz\mathcal{A}_{i}},I_{zz\mathcal{A}_{i}}],$
(25a)
${}^{i}\mathrm{\boldsymbol{\tilde{\omega}}}_{r_{i}}=\begin{bmatrix}{\omega_{r}}_{x_{i}}&{\omega_{r}}_{y_{i}}&{\omega_{r}}_{z_{i}}&0&0&0\\\
0&{\omega_{r}}_{x_{i}}&0&{\omega_{r}}_{y_{i}}&{\omega_{r}}_{z_{i}}&0\\\
0&0&{\omega_{r}}_{x_{i}}&0&{\omega_{r}}_{y_{i}}&{\omega_{r}}_{z_{i}}\end{bmatrix},$
(25b)

Now, substitute (24) into (23). The linear S-L regressor form of SPRs with
respect to the inertial parameters may be derived as:

${\boldsymbol{J}_{\omega}}^{T}\boldsymbol{\tau}={\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}\boldsymbol{n}_{S}+\boldsymbol{n}_{d}}=\boldsymbol{Y}_{S}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\dot{\theta}}_{r},\boldsymbol{\ddot{\theta}}_{r})\boldsymbol{\pi},$
(26)

in which, the S-L regressor $\boldsymbol{Y}_{S}$ is defined as follows:

$\displaystyle\boldsymbol{Y}_{S}=\begin{bmatrix}\boldsymbol{Y}_{S_{p}}&,\boldsymbol{Y}_{{S}_{i}}&,...&,\boldsymbol{Y}_{S_{n}}\end{bmatrix},$
(27a)
$\displaystyle\boldsymbol{Y}_{S_{p}}=\begin{bmatrix}{}^{0}\mathrm{\boldsymbol{R}}_{p}~{}S\left({}^{p}\mathrm{\boldsymbol{g}_{0}}\right)&,\left({}^{0}\mathrm{\boldsymbol{R}}_{p}~{}^{p}\mathrm{\boldsymbol{\tilde{\dot{\omega}}}}_{r}+S\left({{}^{0}\mathrm{\boldsymbol{\omega}}}\right)~{}^{0}\mathrm{\boldsymbol{R}}_{p}~{}^{p}\mathrm{\boldsymbol{\tilde{\omega}}}_{r}\right)\end{bmatrix},$
(27b)
$\displaystyle\boldsymbol{Y}_{S_{i}}={\boldsymbol{J}_{\omega_{i}}}^{T}~{}^{0}\mathrm{\boldsymbol{R}}_{i}\begin{bmatrix}S\left({}^{i}\mathrm{\boldsymbol{g}_{0}}\right)&,\left({}^{i}\mathrm{\boldsymbol{\tilde{\dot{\omega}}}}_{r_{i}}+S(^{i}\mathrm{\boldsymbol{\omega}}_{i})~{}^{i}\mathrm{\boldsymbol{\tilde{\omega}}}_{r_{i}}\right)\end{bmatrix}.$
(27c)

and the inertial parameters $\boldsymbol{\pi}$ are defined as:

$\displaystyle\boldsymbol{\pi}=\begin{bmatrix}\boldsymbol{\pi}_{p}&\boldsymbol{\pi}_{i}&...&\boldsymbol{\pi}_{n}\end{bmatrix}^{T}~{},~{}\in\mathbb{R}^{9k},$
(28a)
$\displaystyle\boldsymbol{\pi}_{p}=\begin{bmatrix}m_{p}~{}^{p}\mathrm{\boldsymbol{\rho}}_{p}&{}^{p}\mathrm{\boldsymbol{\bar{I}}}_{\mathcal{A}_{p}}\end{bmatrix}^{T},$
(28b)
$\displaystyle\boldsymbol{\pi}_{i}=\begin{bmatrix}m_{i}~{}^{i}\mathrm{\boldsymbol{\rho}}_{i}&{}^{i}\mathrm{\boldsymbol{\bar{I}}}_{\mathcal{A}_{i}}\end{bmatrix}^{T}.$
(28c)

A careful examination of Eq. (28), confirms that, in SPRs, the first moment
and the moment of inertia are the only inertial parameters in vector
$\boldsymbol{\pi}$, so that the pure masses of the links do not directly
contribute to the dynamics. Moreover, in order to derive linear regressor
form, it is enough to substitute
$\boldsymbol{\ddot{\theta}}_{r}=\boldsymbol{\ddot{\theta}}$ and
$\boldsymbol{\dot{\theta}}_{r}=\boldsymbol{\dot{\theta}}$ in Eq. (27), which
leads to
${}^{p}\mathrm{\boldsymbol{\tilde{\dot{\omega}}}}_{r}=~{}^{p}\mathrm{\boldsymbol{\tilde{\dot{\omega}}}}$
and
${}^{p}\mathrm{\boldsymbol{\tilde{\omega}}}_{r}=~{}^{p}\mathrm{\boldsymbol{\tilde{\omega}}}$,
as well as
${}^{i}\mathrm{\boldsymbol{\tilde{\dot{\omega}}}}_{r_{i}}=~{}^{i}\mathrm{\boldsymbol{\tilde{\dot{\omega}}}}_{i}$
and
${}^{i}\mathrm{\boldsymbol{\tilde{\omega}}}_{r_{i}}=~{}^{i}\mathrm{\boldsymbol{\tilde{\omega}}}_{i}$.

###  3.2 Unique Regressor Reduction

Careful examinations of regressor forms stated in Eq. (27) reveal the
stringent requirement of order reduction to eliminate the zero or linearly
dependent elements in the regressor. In practice, although using a reduced
regressor in adaptive model-based controllers does not improve the performance
of the controller, it significantly decreases the required real-time
computational process. On the other hand, in the calibration schemes in which
linear regression form of robot dynamics is used, it is inevitable to use a
reduced regressor to avoid having a rank-deficient observation matrix and to
make elements of the inertial parameters fully identifiable.

For this means, we want to eliminate the zero or linearly dependent elements
in the obtained regressor. For this purpose, the method mentioned in Ref.
[57], which has a unique solution, is used. To this end, one may represent the
observation matrix of SPRs as:

$\boldsymbol{W}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\ddot{\theta}})=\begin{bmatrix}\boldsymbol{Y}(t_{1})^{T}&...&\boldsymbol{Y}(t_{k})^{T}\end{bmatrix}^{T}~{},~{}\in\mathbb{R}^{jm\times
9k},$ (29)

in which $j$ represents the number of observations. If $j$ is sufficiently
large, the condition $jm\geq 9k$ shall be met for the system to be observable.
Hence, the reduced regressor matrix $\boldsymbol{Y}_{r}$ and the BIPs
$\boldsymbol{\pi}_{r}$ shall be found such that to preserve the full rank $p$
of the observation matrix $W$, in order for the system to be observable. In
such a case, it may be proved that there is a unique transformation matrix
$\boldsymbol{B}\in\mathbb{R}^{p\times 9k}$ and a matrix $\boldsymbol{S}$,
spanning the row space of the observation matrix such that there exist a
generalized inverse
$\boldsymbol{B}^{\dagger}=\boldsymbol{S}\boldsymbol{B}^{T}\left(\boldsymbol{B}\boldsymbol{S}\boldsymbol{B}^{T}\right)^{-1}$.
In order to derive the $\boldsymbol{B}$ matrix, it suffices to calculate the
reduced-row echelon form of $\boldsymbol{W}$, which is the upper triangular
matrix $\boldsymbol{B}_{E}$. By eliminating the zero rows of
$\boldsymbol{B}_{E}$, the matrix $\boldsymbol{B}$ is derived. By this means,
$\boldsymbol{Y}_{r}\in\mathbb{R}^{m\times p}$ and
$\boldsymbol{\pi}_{r}\in\mathbb{R}^{p}$ are derived as:

$\displaystyle\boldsymbol{Y}_{r}=\boldsymbol{Y}\boldsymbol{B}^{\dagger},$
(30a) $\displaystyle\boldsymbol{\pi}_{r}=\boldsymbol{B}\boldsymbol{\pi}.$
(30b)

It should be noted that, the $\boldsymbol{B}_{E}$ matrix is only a function of
the kinematic parameters of the robot, and has numerical values. Thus, to
calculate it, $rref$ command in MATLAB can be used for the above mentioned
calculations.

##  4 Examples

To verify the validity of the formulation presented in this paper on different
SRRs, the literature was re-examined to select suitable case studies.
According to different kinematic architectures, some of the notable SPRs may
be listed as:

  * 1.

2-DOF SPRs: SPRs with 5R structures, their various configurations have been
widely mentioned in the literature [31, 52]. In addition, SPRs with as 7-bars
[58], with 8-bars [59], RR-RRR-RRR [60], and 2-RRR [61] may be listed.

  * 2.

3-DOF SPRs: SPRs with 3-RRR structures [62, 39], 3-RRP [50], 3-RRS [63], and
3-PRR [51].

In this paper, two distinguished SPRs, namely, the ARAS-Diamond (2-DOF 5R)
[64], and the standard 3-RRR, are selected as the case studies in this paper.
The reasons for choosing these robots are as following:

  1. 1.

Evaluation of SPRs with different kinematic structures, one example with a 5R
structure and the other with a 3-RRR structure. Kinematic analysis of these
robots will show how Jacobian matrices and their derivatives (in fact, the
terms of angular velocity and acceleration) for each link can be derived.

  2. 2.

Investigation of different approaches to the description of the orientation of
the moving platform in the task space. It will be shown that the use of Euler
angles requires minor modifications to the proposed dynamic formulation.

In the next section, the kinematic analysis of the two case studies is
examined.

###  4.1 ARAS-Diamond Robot

The ARAS-Diamond robot is a PR developed to perform the minimally invasive
vitreoretinal eye surgery. According to the robot’s spherical structure, all
the links have a pure rotational motion about the remote center of motion
(RCM). The kinematic details of this robot are given in details in [64], and
in this article, only its important issues are reviewed.

####  4.1.1 Robot Geometry

The kinematic structure of the ARAS-Diamond SPR is depicted in Fig. 2. Similar
to [64], the position of this point in the spherical coordinate system is
considered as the generalized coordinate. Task space variables
$\boldsymbol{\theta}=[\phi,\gamma]^{T}$ are sufficient to describe the
position of this point, since the ARAS-Diamond robot structure is designed
such that all the links are enclosed in a sphere. As a result, adopting
spherical coordinates instead of Cartesian coordinates leads to a simpler
kinematic analysis [64].

Figure 2:  Schematic of the ARAS-Diamond SPR

As illustrated in Fig. 2, the geometric parameters of the robot may be
specified by $\alpha$ and $\beta$, and the four unit-vectors of
$\boldsymbol{\hat{a}}$, $\boldsymbol{\hat{b}}$, $\boldsymbol{\hat{c}}$, and
$\boldsymbol{\hat{d}}$ represent the directions from the RCM point to the
revolute joints of the robot as:

$\displaystyle\boldsymbol{\hat{a}}=[0,0,1]^{T}~{}~{},~{}~{}\boldsymbol{\hat{b}}=\boldsymbol{R}_{z}\left(q_{2}+\frac{\pi}{2}\right)\boldsymbol{R}_{x}(\alpha)~{}\boldsymbol{\hat{a}},$
(31a)
$\displaystyle\boldsymbol{\hat{c}}=\boldsymbol{R}_{z}\left(q_{1}+\frac{\pi}{2}\right)\boldsymbol{R}_{x}(\alpha)~{}\boldsymbol{\hat{a}}~{}~{},~{}~{}\boldsymbol{\hat{d}}=\boldsymbol{R}_{z}(\phi)\boldsymbol{R}_{y}(\gamma)\boldsymbol{\hat{a}}.$
(31b)

####  4.1.2 Differential Kinematic Analysis

The inverse kinematics of the ARAS-Diamond robot may be expressed as follows
[64]:

$\displaystyle q_{1}$
$\displaystyle=\phi+\arccos{\left(\frac{\cos{\beta}-\cos{\gamma}\cdot\cos{\alpha}}{\sin{\gamma}\cdot\sin{\alpha}}\right)},$
(32a) $\displaystyle q_{2}$
$\displaystyle=\phi-\arccos{\left(\frac{\cos{\beta}-\cos{\gamma}\cdot\cos{\alpha}}{\sin{\gamma}\cdot\sin{\alpha}}\right)}.$
(32b)

In order to derive the Jacobian matrix, the time derivative of (32) is
computed. Accordingly, $\dot{q}_{1}$ and $\dot{q}_{2}$ may be represented as:

$\displaystyle\dot{q}_{1}=\dot{\phi}+{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}h}~{}\dot{\gamma},$
(33a)
$\displaystyle\dot{q}_{2}=\dot{\phi}-{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}h}~{}\dot{\gamma},$
(33b)

where, scalar parameter $h$ is given in Appendix A. Consequently, by arranging
(33) into a matrix form, the Jacobian matrix is given as:

$\boldsymbol{J}_{\omega}=\begin{bmatrix}1&+h\\\ 1&-h\end{bmatrix}.$ (34)

In order to derive passive joint Jacobians, which map the velocity from the
task-space to the passive joints
$\dot{\boldsymbol{q}}_{p}=[\dot{\hat{C}},\dot{\hat{B}}]^{T}$, we must compute
$\dot{\hat{C}}$ and $\dot{\hat{B}}$. It can be proved that:

$\dot{\hat{B}}=-\dot{\hat{C}}={\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}s}~{}\dot{\gamma},$
(35)

in which, the scalar parameter $s$ is given in Appendix A. As a result, the
Jacobian matrix of the passive angles, is obtained as:

$\boldsymbol{J}_{\omega_{p}}=\begin{bmatrix}0&-{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}s}\\\
0&+{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>(36)

####  4.1.3 Jacobian Analysis of Each Link

In order to calculate the angular velocity of each link of the robot, it is
split into two identical serial arms. Hence, the angular velocity of each link
may be derived as follows:

${}^{0}\mathrm{\boldsymbol{\omega}_{1}}=\dot{q}_{2}\cdot\boldsymbol{\hat{a}},$
(37a)
${}^{0}\mathrm{\boldsymbol{\omega}_{2}}=\dot{q}_{1}\cdot\boldsymbol{\hat{a}},$
(37b)
${}^{0}\mathrm{\boldsymbol{\omega}_{3}}=\dot{q}_{2}\cdot\boldsymbol{\hat{a}}-\dot{\hat{B}}\cdot\boldsymbol{\hat{b}}=~{}^{0}\mathrm{\boldsymbol{\omega}_{1}}-\dot{\hat{B}}\cdot\boldsymbol{\hat{b}},$
(37c)
${}^{0}\mathrm{\boldsymbol{\omega}_{4}}=\dot{q}_{1}\cdot\boldsymbol{\hat{a}}+\dot{\hat{C}}\cdot\boldsymbol{\hat{c}}=~{}^{0}\mathrm{\boldsymbol{\omega}_{2}}+\dot{\hat{C}}\cdot\boldsymbol{\hat{c}}.$
(37d)

Therefore, the Jacobian matrix of each link is given by:

$\boldsymbol{J}_{\omega_{1}}=\begin{bmatrix}\boldsymbol{\hat{a}}&-h\boldsymbol{\hat{a}}\end{bmatrix},~{}~{}\boldsymbol{J}_{\omega_{2}}=\begin{bmatrix}\boldsymbol{\hat{a}}&+h\boldsymbol{\hat{a}}\end{bmatrix},$
(38)
$\boldsymbol{J}_{\omega_{3}}=\boldsymbol{J}_{\omega_{1}}+\begin{bmatrix}\textbf{0}_{3\times
1}&-s\boldsymbol{\hat{b}}\end{bmatrix},~{}~{}\boldsymbol{J}_{\omega_{4}}=\boldsymbol{J}_{\omega_{2}}+\begin{bmatrix}\textbf{0}_{3\times
1}&-s\boldsymbol{\hat{c}}\end{bmatrix},$ (39)

in which, $\textbf{0}_{3\times 1}$ denotes the $3\times 1$ zero vector.

####  4.1.4 Acceleration Analysis

The derivative of the Jacobian matrix of the first and second links are easily
be obtained as:

$\boldsymbol{\dot{J}}_{\omega_{1}}=\begin{bmatrix}\textbf{0}_{3\times
1}&-\dot{h}\boldsymbol{\hat{a}}\end{bmatrix},~{}~{}\boldsymbol{\dot{J}}_{\omega_{2}}=\begin{bmatrix}\textbf{0}_{3\times
1}&+\dot{h}\boldsymbol{\hat{a}}\end{bmatrix},$ (40)

where $\dot{h}=c~{}\dot{\gamma}$, and the scalar parameter $c$ is given in
Appendix A. Furthermore, the derivative of the Jacobian matrices of the third
and fourth links, requires the time derivatives of unit vectors
$\boldsymbol{\hat{c}}$ and $\boldsymbol{\hat{d}}$ and the scalar parameter
$s$. The time derivative of $s$ is computed using Maple symbolic manipulation,
which yields the expression of Eq. (62). Thence, the derivative of the
Jacobian matrices of the third and fourth links are obtained as:

$\boldsymbol{\dot{J}}_{\omega_{3}}=\boldsymbol{\dot{J}}_{\omega_{1}}+\begin{bmatrix}\textbf{0}_{3\times
1}&-\left(\dot{s}\cdot\boldsymbol{\hat{b}}+s\cdot\boldsymbol{\dot{\hat{b}}}\right)\end{bmatrix},~{}~{}\boldsymbol{\dot{J}}_{\omega_{4}}=\boldsymbol{\dot{J}}_{\omega_{2}}+\begin{bmatrix}\textbf{0}_{3\times
1}&-\left(\dot{s}\cdot\boldsymbol{\hat{c}}+s\cdot\boldsymbol{\dot{\hat{c}}}\right)\end{bmatrix}.$
(41)

###  4.2 The 3-RRR Spherical Parallel Manipulator

The 3-RRR spherical parallel manipulator is a symmetrical 3-DOF mechanism
composed of three identical kinematic chains. Each kinematic chain is itself
composed of a proximal and a distal link, and three revolute joints. The
proximal links are driven by actuators, while distal links and the moving
platform are connected together with passive revolute joints. The structure of
the 3-RRR manipulator is depicted in Fig. 3. The kinematic characteristics of
this robot are mentioned in details in [47], and in this article, only its
important issues are reviewed.

Figure 3:  Schematic of a typical 3-RRR spherical parallel manipulator

####  4.2.1 Robot Geometry

For kinematic analysis of the 3-RRR spherical parallel manipulator, the
orientation of the moving platform is described using $ZYX$ fixed-body Euler
angles. Therefore,
$\boldsymbol{\theta}=[\theta_{1},\theta_{2},\theta_{3}]^{T}$ are considered as
the task space variables, Thus, the rotation matrix of the moving platform may
be derived as
${}^{0}\mathrm{\boldsymbol{R}}_{p}=\boldsymbol{R}_{z}(\theta_{1})\boldsymbol{R}_{y}(\theta_{2})\boldsymbol{R}_{x}(\theta_{3})$.

In the 3-RRR manipulator, unit vectors $\boldsymbol{\hat{u}}_{i}$,
$\boldsymbol{\hat{v}}_{i}$, and $\boldsymbol{\hat{w}}_{i}$, for $\rm i=1,2,3$,
all intersect at the CR point, which is defined as the origin of the base
coordinate system. Therefore, the unit vector of the primary and the
intermediate revolute joints can be formulated as:

$\displaystyle\boldsymbol{\hat{u}}_{i}=\boldsymbol{R}_{z}(\lambda_{i})\boldsymbol{R}_{x}(\gamma-\pi)[0,0,1]^{T},$
(42a)
$\displaystyle\boldsymbol{\hat{w}}_{i}=\boldsymbol{R}_{z}(\lambda_{i})\boldsymbol{R}_{x}(\gamma-\pi)\boldsymbol{R}_{z}(q_{i})\boldsymbol{R}_{x}(\alpha_{1_{i}})[0,0,1]^{T}.$
(42b)

Moreover, $\boldsymbol{\hat{v}}_{i}$ may be derived as follows:

$\displaystyle{{\boldsymbol{\hat{v}}}_{i}}^{*}=\boldsymbol{R}_{z}(\eta_{i})\boldsymbol{R}_{x}(-\beta)[0,0,1]^{T},$
(43a)
$\displaystyle\boldsymbol{\hat{v}}_{i}=~{}^{0}\mathrm{\boldsymbol{R}}_{p}~{}{{\boldsymbol{\hat{v}}}_{i}}^{*},$
(43b)

in which, ${\boldsymbol{\hat{v}}_{i}}^{*}$ represents the unit vector
${\boldsymbol{\hat{v}}_{i}}$ in the initial configuration of the moving
platform.

####  4.2.2 Differential Kinematic Analysis

Before beginning the Jacobian analysis of the 3-RRR manipulator, it should be
noted that by choosing the Euler angles as a way to describe the moving
platform orientation, the angular velocity of the moving platform would not be
equal to the rate of change of the Euler angles,
$\boldsymbol{\dot{\theta}}=[\dot{\theta}_{1},\dot{\theta}_{2},\dot{\theta}_{3}]^{T}$.
Instead, this relationship between these two vectors would be defined as:

${{}^{0}\mathrm{\boldsymbol{\omega}}}=\boldsymbol{E}\boldsymbol{\dot{\theta}},$
(44)

in which, $\boldsymbol{E}(\theta_{1},\theta_{2},\theta_{3})$ relates the rates
of the Euler angles to the angular velocity of the moving platform. In the
$ZYX$ fixed body Euler angles, this matrix is given by:

$\boldsymbol{E}=\begin{bmatrix}0&-\sin(\theta_{1})&\cos(\theta_{1})\cos(\theta_{2})\\\
0&\cos(\theta_{1})&\sin(\theta_{1})\cos(\theta_{2})\\\
1&0&-\sin(\theta_{2})\end{bmatrix}.\\\ $ (45)

Therefore, the angular velocity of the moving platform may be derived as the
sum of its successive angular rotations as:

${{}^{0}\mathrm{\boldsymbol{\omega}}}=\dot{q}_{i}\cdot\boldsymbol{\hat{u}}_{i}+\dot{\psi}_{i}\cdot\boldsymbol{\hat{w}}_{i}+\dot{\zeta}_{i}\cdot\boldsymbol{\hat{v}}_{i}.$
(46)

In this equation, $\dot{q}_{i}$ and $\dot{\psi}_{i}$ are derived by dot-
multiplying both sides of the equation of (46) in
$\left(\boldsymbol{\hat{v}}_{i}\times\boldsymbol{\hat{w}}_{i}\right)$ and
$\left(\boldsymbol{\hat{u}}_{i}\times\boldsymbol{\hat{v}}_{i}\right)$,
respectively, which results in:

$\displaystyle\dot{q}_{i}=\frac{\left(\boldsymbol{\hat{v}}_{i}\times\boldsymbol{\hat{w}}_{i}\right)}{\left(\boldsymbol{\hat{v}}_{i}\times\boldsymbol{\hat{w}}_{i}\right)\cdot\boldsymbol{\hat{u}}_{i}}\cdot{{}^{0}\mathrm{\boldsymbol{\omega}}}~{}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}=\boldsymbol{J}_{\omega_{i}}~{}\boldsymbol{\dot{\theta}}}~{}~{},~{}~{}\rm
for~{}~{}i=1,2,3,$ (47a)
$\displaystyle\dot{\psi}_{i}=\frac{\left(\boldsymbol{\hat{u}}_{i}\times\boldsymbol{\hat{v}}_{i}\right)}{\left(\boldsymbol{\hat{u}}_{i}\times\boldsymbol{\hat{v}}_{i}\right)\cdot\boldsymbol{\hat{w}}_{i}}\cdot{{}^{0}\mathrm{\boldsymbol{\omega}}}~{}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}=\boldsymbol{J}_{\omega_{p_{i}}}~{}\boldsymbol{\dot{\theta}}}~{}~{},~{}~{}\rm
for~{}~{}i=1,2,3.$ (47b)

Now, in order to derive the Jacobian matrices from equations of (47a) and
(47b), the following parameters are defined for the sake of simplification:

$\displaystyle\boldsymbol{p}_{1_{i}}=\boldsymbol{\hat{v}}_{i}\times\boldsymbol{\hat{w}}_{i},$
(48a)
$\displaystyle\boldsymbol{p}_{2_{i}}=\boldsymbol{\hat{u}}_{i}\times\boldsymbol{\hat{v}}_{i},$
(48b) $\displaystyle
h_{i}=\left(\boldsymbol{\hat{v}}_{i}\times\boldsymbol{\hat{w}}_{i}\right)\cdot\boldsymbol{\hat{u}}_{i}=\boldsymbol{p}_{1_{i}}\cdot\boldsymbol{\hat{u}}_{i}.$
(48c)

Finally, using equations of (44), (47), and (48), each row of the input-output
Jacobian and the passive Jacobian matrices are derived as:

$\displaystyle\boldsymbol{J}_{\omega_{i}}~{}={h_{i}}^{-1}~{}{{\boldsymbol{p}}_{1_{i}}}^{T}~{}\boldsymbol{E},~{}~{}\rm{for}~{}~{}i=1,2,3,$
(49a)
$\displaystyle\boldsymbol{J}_{{\omega_{p}}_{i}}={h_{i}}^{-1}~{}{{\boldsymbol{p}}_{2_{i}}}^{T}~{}\boldsymbol{E},~{}~{}\rm{for}~{}~{}i=1,2,3.$
(49b)

####  4.2.3 Jacobian Analysis of Links

The angular velocity of the proximal and distal links of each kinematic chain
may be written as:

${}^{0}\mathrm{\boldsymbol{\omega}}_{1_{i}}=\dot{q}_{i}\cdot\boldsymbol{\hat{u}}_{i}~{}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color@gray@fill{0}=\boldsymbol{J}_{\omega_{1_{i}}}~{}\boldsymbol{\dot{\theta}}},$
(50a)
${}^{0}\mathrm{\boldsymbol{\omega}}_{2_{i}}=~{}^{0}\mathrm{\boldsymbol{\omega}}_{1_{i}}+\dot{\psi}_{i}\cdot\boldsymbol{\hat{w}}_{i}~{}{\color[rgb]{0,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@gray@stroke{0}\pgfsys@color<EMAIL_ADDRESS>(50b)

Therefore, using equations (47a) and (47b), each row of the Jacobian matrix of
the proximal and distal links are formulated as follows:

$\displaystyle\boldsymbol{J}_{\omega_{1_{i}}}={\boldsymbol{\hat{u}}_{i}}~{}\boldsymbol{J}_{\omega_{i}},$
(51a)
$\displaystyle\boldsymbol{J}_{\omega_{2_{i}}}=\boldsymbol{J}_{1_{i}}+{\boldsymbol{\hat{w}}_{i}}~{}\boldsymbol{J}_{\omega_{p_{i}}}.$
(51b)

####  4.2.4 Acceleration Analysis

In order to derive the acceleration terms in the proposed dynamic formulation,
it is necessary to obtain the time derivative of $\dot{q}_{i}$ and
$\dot{\psi}_{i}$. Thus, the time derivative of each row of the corresponding
Jacobian matrices $\boldsymbol{J}_{\omega}$ and $\boldsymbol{J}_{\omega_{p}}$
is computed symbolically as:

$\boldsymbol{\dot{J}}_{\omega_{i}}=\frac{{\boldsymbol{\dot{p}}_{1_{i}}}^{T}\boldsymbol{E}+{\boldsymbol{p}_{1_{i}}}^{T}\boldsymbol{\dot{\omega}}}{h_{i}}-\frac{{\boldsymbol{p}_{1_{i}}}^{T}\boldsymbol{E}~{}\dot{h}_{i}}{{h_{i}}^{2}},$
(52)
$\boldsymbol{\dot{J}}_{{\omega_{p}}_{i}}=\frac{{\boldsymbol{\dot{p}}_{2_{i}}}^{T}\boldsymbol{E}+{\boldsymbol{p}_{2_{i}}}^{T}\boldsymbol{\dot{E}}}{h_{i}}-\frac{{\boldsymbol{p}_{2_{i}}}^{T}\boldsymbol{E}~{}\dot{h}_{i}}{{h_{i}}^{2}},$
(53)

In these equations, the method of calculating the time derivatives of vectors
of $\boldsymbol{p}_{1_{i}}$ and $\boldsymbol{p}_{2_{i}}$, and the value of
scalar ${h}_{i}$ is given in Appendix B. Therefore, the time derivative of the
Jacobian matrix of the proximal and the distal links may be represented by:

$\displaystyle\boldsymbol{\dot{J}}_{\omega_{1_{i}}}=\boldsymbol{\hat{u}}_{i}~{}\boldsymbol{\dot{J}}_{\omega_{i}},$
(54a)
$\displaystyle\boldsymbol{\dot{J}}_{\omega_{2_{i}}}=\boldsymbol{\dot{J}}_{\omega_{1_{i}}}+\left(\boldsymbol{\dot{\hat{w}}}_{i}~{}\boldsymbol{J}_{\omega_{p_{i}}}+\boldsymbol{\hat{w}}_{i}~{}\boldsymbol{\dot{J}}_{\omega_{p_{i}}}\right),$
(54b)

in which, $\boldsymbol{\dot{\hat{w}}}_{i}$ is given in the Appendix B.

####  4.2.5 Dynamic Formulations

As mentioned earlier, the angular velocity of the moving platform is related
to the Euler angles rate with
${{}^{0}\mathrm{\boldsymbol{\omega}}}=\boldsymbol{E}\boldsymbol{\dot{\theta}}$.
In the Jacobian analysis of each link, the effect of the $\boldsymbol{E}$
matrix has been considered. Thus, the terms related to the dynamics of the
moving platform given in Eq. (10a), are rewritten as follows:

${\boldsymbol{\mathcal{J}}_{\omega}}^{T}\boldsymbol{\tau}=\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right){{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}}+S\left({{}^{0}\mathrm{\boldsymbol{\omega}}}\right)\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right){{}^{0}\mathrm{\boldsymbol{\omega}}}-m_{i}~{}S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)\boldsymbol{g}_{0},$
(55)

in which each row of the Jacobian matrix ${\boldsymbol{\mathcal{J}}_{\omega}}$
is defined by
${\boldsymbol{\mathcal{J}}_{\omega}}_{i}={h_{i}}^{-1}~{}{{\boldsymbol{p}}_{1_{i}}}^{T}$.
Although the Eq. (55) has an explicit form, it is written based on
${{}^{0}\mathrm{\boldsymbol{\omega}}}$ and
${{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}}$ terms, while explicit dynamics
should be in terms of $\boldsymbol{\dot{\theta}}$ and
$\boldsymbol{\ddot{\theta}}$ to have the same force distribution as the
dynamics of each link. As a result, using the properties of
${}^{0}\mathrm{\boldsymbol{\omega}}=\boldsymbol{E}\boldsymbol{\dot{\theta}}$
and
${{}^{0}\mathrm{\boldsymbol{\dot{\omega}}}}=\boldsymbol{E}\boldsymbol{\ddot{\theta}}+\boldsymbol{\dot{E}}\boldsymbol{\dot{\theta}}$,
and multiplying $\boldsymbol{E}^{T}$ to the left side of the Eq. (55), the
explicit dynamic of the moving platform based on $\boldsymbol{\dot{\theta}}$
and $\boldsymbol{\ddot{\theta}}$, may be written as follows:

${\boldsymbol{J}_{\omega}}^{T}\boldsymbol{\tau}=\boldsymbol{M}_{p}(\boldsymbol{\theta})\boldsymbol{\ddot{\theta}}+\boldsymbol{C}_{p}(\boldsymbol{\theta},\boldsymbol{\theta})\boldsymbol{\dot{\theta}}+\boldsymbol{g}_{p}(\boldsymbol{\theta}).$
(56)

In this representation, each row of the Jacobian matrix
$\boldsymbol{J}_{\omega_{i}}=\boldsymbol{\mathcal{J}}_{{\omega}_{i}}\boldsymbol{E},~{}\rm{for}~{}i=1,2,3$,
is equal to each row of the Jacobian matrix of the whole manipulator, given in
equation (49a). Moreover, the explicit dynamic of the moving platform may be
represented by the following matrices:

$\displaystyle\boldsymbol{M}_{p}=\boldsymbol{E}^{T}\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right)\boldsymbol{E},$
(57a)
$\displaystyle\boldsymbol{C}_{p}=\boldsymbol{E}^{T}\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right)\boldsymbol{\dot{E}}+\boldsymbol{E}^{T}\left(S(\boldsymbol{E}\boldsymbol{\dot{\theta}})\left({}^{0}\mathrm{\boldsymbol{I}}_{\mathcal{A}_{p}}\right)\right)\boldsymbol{E},$
(57b)
$\displaystyle\boldsymbol{g}_{p}=-\boldsymbol{E}^{T}\left(m_{i}~{}S\left({}^{0}\mathrm{\boldsymbol{\rho}}_{p}\right)\boldsymbol{g}_{0}\right).$
(57c)

The same process must be followed for the derivation of the corresponding
terms related to the moving platform in the regressors. Therefore, it is
enough to use
${}^{0}\mathrm{\boldsymbol{\omega}}_{r}=\boldsymbol{E}\boldsymbol{\dot{\theta}}_{r}$
and
${}^{0}\mathrm{\boldsymbol{\dot{\omega}}}_{r}=\boldsymbol{E}\boldsymbol{\ddot{\theta}}_{r}+\boldsymbol{\dot{E}}\boldsymbol{\dot{\theta}}_{r}$
and multiply the left side of equation (27b) by $\boldsymbol{E}^{T}$.

##  5 Verification

In order to verify the dynamic formulation proposed in this paper, two sides
of the following equations are compared to each other for a typical trajectory
$\boldsymbol{\theta}$:

$\displaystyle\boldsymbol{M}(\boldsymbol{\theta})\boldsymbol{\ddot{\theta}}~{}+\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})\boldsymbol{\dot{\theta}}~{}+\boldsymbol{g}(\boldsymbol{\theta})=\boldsymbol{Y}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\ddot{\theta}})\boldsymbol{\pi}=\boldsymbol{Y}_{r}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\ddot{\theta}})\boldsymbol{\pi}_{r},$
(58a)
$\displaystyle\boldsymbol{M}(\boldsymbol{\theta})\boldsymbol{\ddot{\theta}}_{r}+\boldsymbol{C}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}})\boldsymbol{\dot{\theta}}_{r}+\boldsymbol{g}(\boldsymbol{\theta})=\boldsymbol{Y}_{S}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\dot{\theta}}_{r},\boldsymbol{\ddot{\theta}}_{r})\boldsymbol{\pi}=\boldsymbol{Y}_{S_{r}}(\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\dot{\theta}}_{r},\boldsymbol{\ddot{\theta}}_{r})\boldsymbol{\pi}_{r}.$
(58b)

For the verification process, each robot’s explicit dynamics is both coded in
MATLAB and modeled in the MSC-ADAMS® package. In the latter case, a CAD model
of the corresponding robot is used, as shown in Fig. 4a and Fig. 4b. By
applying the desired trajectory $\boldsymbol{\theta}=\boldsymbol{\theta}_{d}$
to both models separately and comparing the resulting output torques of the
actuators, one may conclude that the dynamic formulation is verified if the
differences are negligible.

(a) ARAS-Diamond

(b) 3-RRR

Figure 4: Considered Models in MSC-ADAMS®

###  5.1 ARAS-Diamond Robot Verification

In order to verify the resulted dynamic formulation of the ARAS-Diamond robot,
a third-order polynomial trajectory for the end-effector is considered in the
task space, all of which takes about one second. In the designed trajectory,
$\phi$ changes from $\phi_{0}=0$ to $\phi_{f}=120^{\circ}$, while $\gamma$
varies from $\gamma_{0}=70^{\circ}$ to $\gamma_{f}=10^{\circ}$. Furthermore,
the considered parameters of the ARAS-Diamond model are also reported in Table
3. By applying this trajectory to the explicit dynamic formulation of the
robot in MATLAB and the robot’s model in MSC-ADAMS®, the required actuators
torques are determined as shown in Fig. 5a. The difference between the torques
generated by both models is shown in Fig. 5b.

(a) Actuator torques computed through two models  (b) Error between the
actuator torques computed through two models

Figure 5: ARAS-Diamond explicit dynamics verification

As shown in Figs. 5a and 5b, the explicit dynamic formulation of the ARAS-
Diamond robot is verified with an accuracy of approximately $10^{-4}~{}N.m$.
This further confirms the accuracy of the derived kinematic and dynamic
formulations. However, it should be noted that the main reason caused behind
the validation error is the inaccuracy in measurement and parameter settings
in the MSC-ADAMS® package. For a more definitive verification, other
trajectories were tested, such as a sinusoidal and a multi-sine trajectory. In
all these cases, as expected, the resulting error remain in the order of
$10^{-4}~{}N.m$.

Additionally, in order to verify the linear regressor form of the dynamic
formulation and the corresponding reduced regressor form, a random trajectory
($\boldsymbol{\theta},\boldsymbol{\dot{\theta}},\boldsymbol{\ddot{\theta}}$)
is generated in the feasible workspace. Similarly, for the validation of the
Slotine-Li regressor and its corresponding reduced regressor, a random
trajectory for
($\boldsymbol{\theta},\boldsymbol{\dot{\theta}},{\boldsymbol{\dot{\theta}}_{r}},\boldsymbol{\ddot{\theta}}_{r}$)
is considered in the feasible workspace of the robot. In this study, the
numerical difference between the left-hand sides of the equations of (58a) and
(58b), representing the explicit dynamics of the robot, and their right-hand
sides, are calculated and reported in Figs. 6a and 6b, respectively.

(a) Linear form verification  (b) S-L regressor verification

Figure 6: ARAS-Diamond linear regressors verification

As it can be seen in these figures, the linear form of the dynamics, the
Slotine-Li regressor, as well as their corresponding reduced forms differ from
the explicit dynamics of the ARAS-Diamond robot with an order of $10^{-13}$
$N.m$. This provides another validation of the proposed formulations.

###  5.2 3-RRR Spherical Parallel Manipulator Verification

The same method described in section 5.1 is adopted here in order to verify
the proposed dynamic formulation of the 3-RRR spherical parallel manipulator.
For this purpose, a third-order polynomial trajectory is considered for the
moving platform. In this trajectory, the values of $\boldsymbol{\theta}$
changes from $\boldsymbol{\theta}_{0}=[0,0,0]^{T}$ to
$\boldsymbol{\theta}_{f}=[10^{\circ},30^{\circ},20^{\circ}]^{T}$ in one
second. Besides, the parameters of the considered 3-RRR spherical parallel
manipulator model have also been reported in Table 4. The results of the
dynamic verification and the validation errors are shown in Figs. 7a and 7b,
respectively.

(a) Linear form verification  (b) S-L regressor verification

Figure 7: 3-RRR manipulator explicit dynamics verification

In addition, the reduced regressors and the linear and Slotine-Li regressors
were compared with the explicit dynamics of the manipulator over a random
trajectory within the robot feasible workspace. To prevent the article from
becoming bulky, the error plots are not re-reported. The results show
$10^{-14}~{}N.m$ accuracy between the results, and are available to everyone
at the Github page.

##  6 Conclusions

In this paper, different forms of dynamic formulations of spherical parallel
robots (SPRs) including explicit dynamics, linear and Slotine-Li (S-L)
regressors were formulated to be used in the design of model-based controllers
and dynamic identification schemes. To this end, the implicit dynamic of SPRs
was first formulated using the principle of virtual work in task-space, and
then by an extension, their explicit dynamic formulation was derived. The
linear and S-L regressor forms of SPRs were then obtained using explicit
dynamic, and by using the Gauss-Jordan procedure, regressor forms are reduced
to a unique and closed-form structure. Finally, to verify the proposed
formulations, two SPR case studies, namely, the ARAS-Diamond robot and the
3-RRR spherical manipulator examined. The results of the explicit dynamics,
linear regression form of robots’ dynamics, S-L regressor, and the
corresponding reduced form regressors were verified by comparing them with
those obtained by MSC-ADAMS® package. The proposed method opens the
possibility of implementing a wide range of adaptive model-based controllers
and regressor-based identification schemes on SPRs.

## Declaration of Competing Interest

The authors declare that they have no conflict of interest.

## Acknowledgments

The authors appreciate the support from Iranian National Science Foundation
(INSF) under grant number 99028112. Moreover, the authors greatly appreciate
Mr. Sina Allahkaram, Mr. Rohollah Khorambakht, and Mr. Omid Mehdizade for
their excellent feedbacks during this research.

##  Appendix A Kinematic Parameters of the ARAS-Diamond

The $h$ scalar parameter in equation (33) is defined as follows:

$h=\frac{\cot\alpha-\cos\hat{A}\cdot\cot\gamma}{\sin\hat{A}}.$ (59)

It was stated that equation of $\dot{\hat{B}}=-\dot{\hat{C}}=s~{}\dot{\gamma}$
may be derived in such a way that $s$ is expressed as:

$s=\frac{\cos\gamma\cdot\sin\hat{A}+h\sin\gamma\cdot\cos\hat{A}}{\cos\hat{B}\cdot\sin\beta}.$
(60)

Furthermore, $c$ scalar parameter in the equation of
$\dot{h}=c~{}\dot{\gamma}$ may be derived as:

$c={\frac{h\cdot\sin\gamma\left(\cos\alpha\cdot\cos\hat{A}-\sin\alpha\cdot\cos\gamma\right)-\sin\hat{A}\cdot\cos\hat{A}\cdot\sin\alpha}{\sin^{2}\gamma\cdot\sin\alpha\cdot\sin^{2}\hat{A}}}.$
(61)

In order to evaluate the derivative of the Jacobian matrix of the third and
the fourth links in equation of (41), it is necessary to compute the
derivative of $s$, which yields to:

$\dot{s}=\frac{{\dot{s}}_{n}}{{\dot{s}}_{d}},$ (62)

in which,

$\begin{split}{\dot{s}}_{n}=&+h\dot{\gamma}\cdot\cos\hat{B}\left(-h\sin\hat{A}\cdot\sin\gamma+\cos\hat{A}\cdot\cos\gamma\right)+s\dot{\gamma}\cdot\sin\hat{B}\left(+h\cos\hat{A}\cdot\sin\gamma+\sin\hat{A}\cdot\cos\gamma\right)\\\
&+\cos\hat{B}\left(\dot{\gamma}\left(+h\cos\gamma\cdot\cos\hat{A}-\sin\hat{A}\cdot\sin\gamma\right)+c\dot{\gamma}\cdot\sin\gamma\cdot\cos\hat{A}\right),\end{split}$
(63)

${\dot{s}}_{d}={\cos^{2}\hat{B}}\cdot\sin\beta.$ (64)

##  Appendix B Kinematic Parameters of the 3-RRR Manipulator

As mentioned before, the acceleration formulations of the 3-RRR manipulator
are based on the derivative of the vectors of $\boldsymbol{p}_{1_{i}}$,
$\boldsymbol{p}_{2_{i}}$, and the scalar parameter of $h_{i}$. Using equations
of (42) and (43), the following formulas are easily extractable:

$\displaystyle\boldsymbol{\dot{\hat{u}}}_{i}=0,$ (65a)
$\displaystyle\boldsymbol{\dot{\hat{v}}}_{i}=~{}^{0}\mathrm{\boldsymbol{\dot{R}}_{p}}~{}{\boldsymbol{\hat{v}}_{i}}^{*},$
(65b)
$\displaystyle\boldsymbol{\dot{\hat{w}}}_{i}=\boldsymbol{R}_{z}(\lambda_{i})\boldsymbol{R}_{x}(\gamma-\pi)\boldsymbol{\dot{R}}_{z}(q_{i})\boldsymbol{R}_{x}(\alpha_{1_{i}})[0,0,1]^{T},$
(65c)

in which, $\boldsymbol{\dot{R}}_{z}$ and
${}^{0}\mathrm{\boldsymbol{\dot{R}}_{p}}$ denote the time derivative of the
rotation matrices of $\boldsymbol{R}_{z}$ and
${}^{0}\mathrm{\boldsymbol{R}}_{p}$, respectively. Therefore, according to Eq.
(48), the following derivatives may easily be determined:

$\displaystyle\boldsymbol{\dot{p}}_{1_{i}}=\boldsymbol{\dot{\hat{v}}}_{i}\times\boldsymbol{\hat{w}}+\boldsymbol{\hat{v}}\times\boldsymbol{\dot{\hat{w}}}_{i},$
(66a)
$\displaystyle\boldsymbol{\dot{p}}_{2_{i}}=\boldsymbol{\hat{u}}\times\boldsymbol{\dot{\hat{v}}}_{i},$
(66b)
$\displaystyle\dot{h}_{i}=\boldsymbol{\dot{p}}_{1_{i}}\cdot\boldsymbol{\hat{u}}.$
(66c)

##  Appendix C Parameters for Verification

Table 3: Considered parameters of ARAS-Diamond  Symbol | Description | Value
---|---|---
$\alpha=\beta$ | Angular length of links |  $45^{\circ}$ deg
${m}$ | Mass of links |  $[0.117,0.112,0.155,0.145]^{T}$ kg
${}^{1}\mathrm{\boldsymbol{\rho}}_{1}$ | CM of link1 |  $[0.098,0,0.232]^{T}$m
${}^{2}\mathrm{\boldsymbol{\rho}}_{2}$ | CM of link2 |  $0.087,0,0.210]^{T}$m
${}^{3}\mathrm{\boldsymbol{\rho}}_{3}$ | CM of link3 |  $[0.107,0,0.254]^{T}$m
${}^{4}\mathrm{\boldsymbol{\rho}}_{4}$ | CM of link4 |  $[0.078,0,0.188]^{T}$m
${}^{1}\mathrm{\boldsymbol{I}}_{1}$ | MI of link1 |  $diag(6.440,6.350,1.716)10^{-4}$ kg.$m^{2}$
${}^{2}\mathrm{\boldsymbol{I}}_{2}$ | MI of link2 |  $diag(5.359,5.284,0.150)10^{-4}$ kg.$m^{2}$
${}^{3}\mathrm{\boldsymbol{I}}_{3}$ | MI of link3 |  $diag(9.849,9.342,0.610)10^{-4}$ kg.$m^{2}$
${}^{4}\mathrm{\boldsymbol{I}}_{4}$ | MI of link4 |  $diag(7.577,7.496,2.348)10^{-4}$ kg.$m^{2}$
Table 4: Considered parameters of the considered 3-RRR SPR  Symbol | Description | Value
---|---|---
$\boldsymbol{\eta}=\boldsymbol{\lambda}$ | Structural angles |  $[0,120^{\circ},240^{\circ}]^{T}$ deg
$\beta$ | Base regular pyramid |  $\arccos(\frac{\sqrt{3}}{3})$ deg
$\gamma$ | Moving platform regular pyramid |  $\arcsin(\frac{\sqrt{3}}{3})$ deg
$\alpha_{1_{i}}$ | Proximal links length |  $80^{\circ}$ deg
$\alpha_{2_{i}}$ | Distal links length |  $\alpha_{2_{i}}=70^{\circ}$ deg
$m_{p}$ | Mass of moving platform |  $0.604$ kg
$m_{1_{1}}=m_{1_{2}}=m_{1_{3}}$ | Mass of proximal links |  $0.501$ kg
$m_{2_{1}}=m_{2_{2}}=m_{2_{3}}$ | Mass of distal links |  $0.389$ kg
${}^{p}\mathrm{\boldsymbol{\rho}}_{p}$ | CM of moving platform |  $\left[0,0,0.084\right]^{T}$ m
${}^{1}\mathrm{\boldsymbol{\rho}}_{1_{1}}=~{}^{1}\mathrm{\boldsymbol{\rho}}_{1_{2}}=~{}^{1}\mathrm{\boldsymbol{\rho}}_{1_{3}}$ | CM of proximal links |  $\left[0,-0.117,0.139\right]^{T}$ m
${}^{2}\mathrm{\boldsymbol{\rho}}_{2_{1}}=~{}^{2}\mathrm{\boldsymbol{\rho}}_{2_{2}}=~{}^{2}\mathrm{\boldsymbol{\rho}}_{2_{3}}$ | CM of distal links |  $\left[0,-0.093,0.133\right]^{T}$ m
${}^{p}\mathrm{\boldsymbol{I}}_{p}$ | MI of moving platform |  $diag(0.003,0.001,0.001)$ kg.$m^{2}$
${}^{1}\mathrm{\boldsymbol{I}_{1_{1}}}=~{}^{1}\mathrm{\boldsymbol{I}_{1_{2}}}=~{}^{1}\mathrm{\boldsymbol{I}_{1_{3}}}$ | MI of proximal links |  $diag(0.003,0.003,0)$ kg.$m^{2}$
${}^{2}\mathrm{\boldsymbol{I}_{2_{1}}}=~{}^{2}\mathrm{\boldsymbol{I}_{2_{2}}}=~{}^{2}\mathrm{\boldsymbol{I}_{2_{3}}}$ | MI of distal links |  $diag(0.001,0.001,0)$ kg.$m^{2}$

## References

## References

  * Bai et al. [2019] S. Bai, X. Li, and J. Angeles, “A review of spherical motion generation using either spherical parallel manipulators or spherical motors,” _Mechanism and Machine Theory_ , vol. 140, pp. 377 – 388, 2019.
  * Li et al. [2015] H. Li, J. Luo, C. Huang, Q. Huang, and S. Xie, “Design and control of 3-dof spherical parallel mechanism robot eyes inspired by the binocular vestibule-ocular reflex,” _Journal of Intelligent & Robotic Systems_, vol. 78, no. 3-4, pp. 425–441, 2015.
  * Bataleblu et al. [2016] A. Bataleblu, M. Motaharifar, E. Abedlu, and H. D. Taghirad, “Robust $h$$\infty$ control of a 2rt parallel robot for eye surgery,” in _2016 4th International Conference on Robotics and Mechatronics (ICROM)_. IEEE, 2016, pp. 136–141.
  * Angeles and Lee [1988] J. Angeles and S. K. Lee, “The formulation of dynamical equations of holonomic mechanical systems using a natural orthogonal complement,” _Journal of Applied Mechanics_ , vol. 55, no. 1, pp. 243–244, mar 1988.
  * Khalil and Bennis [1995] W. Khalil and F. Bennis, “Symbolic calculation of the base inertial parameters of closed-loop robots,” _The International Journal of Robotics Research_ , vol. 14, no. 2, pp. 112–128, apr 1995.
  * Codourey [1998] A. Codourey, “Dynamic modeling of parallel robots for computed-torque control implementation,” _The International Journal of Robotics Research_ , vol. 17, no. 12, pp. 1325–1336, dec 1998.
  * Dasgupta and Mruthyunjaya [1998] B. Dasgupta and T. Mruthyunjaya, “Closed-form dynamic equations of the general stewart platform through the newton–euler approach,” _Mechanism and Machine Theory_ , vol. 33, no. 7, pp. 993–1012, oct 1998.
  * Wang and Gosselin [1998] J. Wang and C. M. Gosselin, “A new approach for the dynamic analysis of parallel manipulators,” _Multibody System Dynamics_ , vol. 2, no. 3, pp. 317–334, 1998.
  * Tsai [1999a] L.-W. Tsai, “Solving the inverse dynamics of a stewart-gough manipulator by the principle of virtual work,” _Journal of Mechanical Design_ , vol. 122, no. 1, pp. 3–9, dec 1999.
  * Khalil and Guegan [2004] W. Khalil and S. Guegan, “Inverse and direct dynamic modeling of gough–stewart robots,” _IEEE Transactions on Robotics_ , vol. 20, no. 4, pp. 754–762, aug 2004.
  * Khalil and Ibrahim [2007] W. Khalil and O. Ibrahim, “General solution for the dynamic modeling of parallel robots,” _Journal of Intelligent and Robotic Systems_ , vol. 49, no. 1, pp. 19–37, mar 2007.
  * Abdellatif and Heimann [2009] H. Abdellatif and B. Heimann, “Computational efficient inverse dynamics of 6-DOF fully parallel manipulators by using the lagrangian formalism,” _Mechanism and Machine Theory_ , vol. 44, no. 1, pp. 192–207, jan 2009.
  * Díaz-Rodríguez et al. [2010] M. Díaz-Rodríguez, V. Mata, Á. Valera, and Á. Page, “A methodology for dynamic parameters identification of 3-DOF parallel robots in terms of relevant parameters,” _Mechanism and Machine Theory_ , vol. 45, no. 9, pp. 1337–1356, sep 2010.
  * Oftadeh et al. [2010] R. Oftadeh, M. M. Aref, and H. D. Taghirad, “Explicit dynamics formulation of stewart-gough platform: A newton-euler approach,” in _2010 IEEE/RSJ International Conference on Intelligent Robots and Systems_. IEEE, oct 2010.
  * Park et al. [2018] F. C. Park, B. Kim, C. Jang, and J. Hong, “Geometric algorithms for robot dynamics: A tutorial review,” _Applied Mechanics Reviews_ , vol. 70, no. 1, jan 2018.
  * Müller [2019] A. Müller, “Dynamics modeling of topologically simple parallel kinematic manipulators: A geometric approach,” _Applied Mechanics Reviews_ , vol. 72, no. 3, dec 2019.
  * Tsai [1999b] L.-W. Tsai, _Robot analysis: the mechanics of serial and parallel manipulators_. John Wiley & Sons, 1999\.
  * Angeles [2007] J. Angeles, _Fundamentals of Robotic Mechanical Systems_. Springer US, 2007.
  * Shah et al. [2013] S. V. Shah, S. K. Saha, and J. K. Dutt, “Dynamics of tree-type robotic systems,” in _Dynamics of tree-type robotic systems_. Springer, 2013, pp. 73–88.
  * Taghirad [2013] H. D. Taghirad, _Parallel Robots_. CRC Press, feb 2013.
  * Briot et al. [2015] S. Briot, W. Khalil _et al._ , “Dynamics of parallel robots,” _From rigid bodies to flexible elements. Springer_ , 2015.
  * Staicu [2019] S. Staicu, _Dynamics of Parallel Robots_. Springer International Publishing, 2019.
  * Paccot et al. [2009] F. Paccot, N. Andreff, and P. Martinet, “A review on the dynamic control of parallel kinematic machines: Theory and experiments,” _The International Journal of Robotics Research_ , vol. 28, no. 3, pp. 395–416, mar 2009.
  * Craig et al. [1987] J. J. Craig, P. Hsu, and S. S. Sastry, “Adaptive control of mechanical manipulators,” _The International Journal of Robotics Research_ , vol. 6, no. 2, pp. 16–28, 1987.
  * Spong and Ortega [1990] M. W. Spong and R. Ortega, “On adaptive inverse dynamics control of rigid robots,” _IEEE Transactions on Automatic Control_ , vol. 35, no. 1, pp. 92–95, 1990.
  * Grotjahn et al. [2004] M. Grotjahn, B. Heimann, and H. Abdellatif, “Identification of friction and rigid-body dynamics of parallel kinematic structures for model-based control,” _Multibody System Dynamics_ , vol. 11, no. 3, pp. 273–294, 2004\.
  * Wu et al. [2010] J. Wu, J. Wang, and Z. You, “An overview of dynamic parameter identification of robots,” _Robotics and Computer-Integrated Manufacturing_ , vol. 26, no. 5, pp. 414 – 419, 2010.
  * Slotine and Li [1987] J.-J. E. Slotine and W. Li, “On the adaptive control of robot manipulators,” _The International Journal of Robotics Research_ , vol. 6, no. 3, pp. 49–59, 1987.
  * Malosio et al. [2012] M. Malosio, S. P. Negri, N. Pedrocchi, F. Vicentini, M. Caimmi, and L. M. Tosatti, “A spherical parallel three degrees-of-freedom robot for ankle-foot neuro-rehabilitation,” in _2012 Annual international conference of the IEEE engineering in medicine and biology society_. IEEE, 2012, pp. 3356–3359.
  * Hesar et al. [2014] M. E. Hesar, M. Masouleh, A. Kalhor, M. Menhaj, and N. Kashi, “Ball tracking with a 2-DOF spherical parallel robot based on visual servoing controllers,” in _2014 Second RSI/ISM International Conference on Robotics and Mechatronics (ICRoM)_. IEEE, oct 2014.
  * Safaryazdi et al. [2017] A. Safaryazdi, M. Zarei, O. Abolghasemi, and M. T. Masouleh, “Experimental study on the model-based control of a 2-degree-of-freedom spherical parallel robot camera stabilizer based on multi-thread programming concept,” _Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science_ , vol. 232, no. 10, pp. 1882–1897, may 2017\.
  * Danaei et al. [2017a] B. Danaei, M. Alipour, A. Arian, M. T. Masouleh, and A. Kalhor, “Control of a two degree-of-freedom parallel robot as a stabilization platform,” in _2017 5th RSI International Conference on Robotics and Mechatronics (ICRoM)_. IEEE, oct 2017.
  * Rad et al. [2020] S. A. Rad, M. G. Tamizi, M. Azmoun, M. T. Masouleh, and A. Kalhor, “Experimental study on robust adaptive control with insufficient excitation of a 3-DOF spherical parallel robot for stabilization purposes,” _Mechanism and Machine Theory_ , vol. 153, p. 104026, nov 2020.
  * Bataleblu et al. [2020] A. Bataleblu, R. Khorrambakht, and H. D. Taghirad, “Robust H$\infty$-based control of ARAS-diamond: A vitrectomy eye surgery robot,” _Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science_ , p. 095440622097933, dec 2020.
  * Saafi et al. [2014] H. Saafi, M. A. Laribi, and S. Zeghloul, “Redundantly actuated 3-RRR spherical parallel manipulator used as a haptic device: improving dexterity and eliminating singularity,” _Robotica_ , vol. 33, no. 5, pp. 1113–1130, jul 2014.
  * Birglen et al. [2002] L. Birglen, C. Gosselin, N. Pouliot, B. Monsarrat, and T. Laliberte, “SHaDe, a new 3-DOF haptic device,” _IEEE Transactions on Robotics and Automation_ , vol. 18, no. 2, pp. 166–175, apr 2002.
  * Liu et al. [2020] L. Liu, X. Song, J. Liu, W. Chen, and G. Yang, “Dynamic modeling and control methods of a novel electromagnetic-driven spherical motion generator,” in _2020 15th IEEE Conference on Industrial Electronics and Applications (ICIEA)_. IEEE, nov 2020.
  * Li et al. [2018] X. Li, J. Liu, W. Chen, and S. Bai, “Integrated design, modeling and analysis of a novel spherical motion generator driven by electromagnetic principle,” _Robotics and Autonomous Systems_ , vol. 106, pp. 69–81, aug 2018.
  * Li et al. [2019] X. Li, S. Bai, and O. Madsen, “Dynamic modeling and trajectory tracking control of an electromagnetic direct driven spherical motion generator,” _Robotics and Computer-Integrated Manufacturing_ , vol. 59, pp. 201–212, oct 2019.
  * Arian et al. [2016] A. Arian, B. Danaei, and M. T. Masouleh, “Kinematics and dynamics analysis of a 2-DOF spherical parallel robot,” in _2016 4th International Conference on Robotics and Mechatronics (ICROM)_. IEEE, oct 2016.
  * Wu et al. [2014] G. Wu, S. Caro, S. Bai, and J. Kepler, “Dynamic modeling and design optimization of a 3-DOF spherical parallel manipulator,” _Robotics and Autonomous Systems_ , vol. 62, no. 10, pp. 1377–1386, oct 2014.
  * Gallardo et al. [2003] J. Gallardo, J. Rico, A. Frisoli, D. Checcacci, and M. Bergamasco, “Dynamics of parallel manipulators by means of screw theory,” _Mechanism and Machine Theory_ , vol. 38, no. 11, pp. 1113–1131, nov 2003.
  * Ruggiu [2010] M. Ruggiu, “Kinematic and dynamic analysis of a two-degree-of-freedom spherical wrist,” _Journal of Mechanisms and Robotics_ , vol. 2, no. 3, jul 2010.
  * Enferadi and Tootoonchi [2010] J. Enferadi and A. A. Tootoonchi, “Inverse dynamics analysis of a general spherical star-triangle parallel manipulator using principle of virtual work,” _Nonlinear Dynamics_ , vol. 61, no. 3, pp. 419–434, mar 2010.
  * Enferadi and Saffar [2018] J. Enferadi and V. Saffar, “A virtual power algorithm for dynamics analysis of a 3-RRcP spherical parallel robot using the screw theory,” _Australian Journal of Mechanical Engineering_ , vol. 18, no. 3, pp. 351–363, oct 2018.
  * Staicu [2009] S. Staicu, “Recursive modelling in dynamics of agile wrist spherical parallel robot,” _Robotics and Computer-Integrated Manufacturing_ , vol. 25, no. 2, pp. 409–416, apr 2009.
  * Abedloo et al. [2014] E. Abedloo, A. Molaei, and H. D. Taghirad, “Closed-form dynamic formulation of spherical parallel manipulators by gibbs-appell method,” in _2014 Second RSI/ISM International Conference on Robotics and Mechatronics (ICRoM)_. IEEE, 2014, pp. 576–581.
  * Akbarzadeh et al. [2012] A. Akbarzadeh, J. Enferadi, and M. Sharifnia, “Dynamics analysis of a 3-RRP spherical parallel manipulator using the natural orthogonal complement,” _Multibody System Dynamics_ , vol. 29, no. 4, pp. 361–380, jul 2012.
  * Gregorio and Parenti-Castelli [2003] R. D. Gregorio and V. Parenti-Castelli, “Dynamics of a class of parallel wrists,” _Journal of Mechanical Design_ , vol. 126, no. 3, pp. 436–441, oct 2003.
  * Akbarzadeh and Enferadi [2010] A. Akbarzadeh and J. Enferadi, “A virtual work based algorithm for solving direct dynamics problem of a 3-RRP spherical parallel manipulator,” _Journal of Intelligent & Robotic Systems_, vol. 63, no. 1, pp. 25–49, nov 2010.
  * Zarkandi [2021] S. Zarkandi, “Task-based torque minimization of a 3-PRR spherical parallel manipulator,” _Robotica_ , pp. 1–30, jun 2021.
  * Danaei et al. [2017b] B. Danaei, A. Arian, M. T. Masouleh, and A. Kalhor, “Dynamic modeling and base inertial parameters determination of a 2-DOF spherical parallel mechanism,” _Multibody System Dynamics_ , vol. 41, no. 4, pp. 367–390, jun 2017.
  * Leboutet et al. [2021] Q. Leboutet, J. Roux, A. Janot, J. R. Guadarrama-Olvera, and G. Cheng, “Inertial parameter identification in robotics: A survey,” _Applied Sciences_ , vol. 11, no. 9, p. 4303, may 2021.
  * Spong and Vidyasagar [2008] M. W. Spong and M. Vidyasagar, _Robot dynamics and control_. John Wiley & Sons, 2008.
  * Harandi et al. [2021] M. R. J. Harandi, S. Khalilpour, H. D. Taghirad, and J. G. Romero, “Adaptive control of parallel robots with uncertain kinematics and dynamics,” _Mechanical Systems and Signal Processing_ , vol. 157, p. 107693, 2021.
  * Codourey and Burdet [1997] A. Codourey and E. Burdet, “A body-oriented method for finding a linear form of the dynamic equation of fully parallel robots,” in _Proceedings of international conference on robotics and automation_ , vol. 2. IEEE, 1997, pp. 1612–1618.
  * Klodmann et al. [2015] J. Klodmann, D. Lakatos, C. Ott, and A. Albu-Schäffer, “A closed-form approach to determine the base inertial parameters of complex structured robotic systems,” _IFAC-PapersOnLine_ , vol. 48, no. 1, pp. 316 – 321, 2015, 8th Vienna International Conferenceon Mathematical Modelling.
  * Nie et al. [2020] L. Nie, H. Ding, A. Kecskeméthy, J. Gan, J. Wang, and K. lon Ting, “Singularity and branch identification of a 2 degree-of-freedom (DOF) seven-bar spherical parallel manipulator,” _Mechanical Sciences_ , vol. 11, no. 2, pp. 381–393, oct 2020.
  * Wiitala and Stanisic [1998] J. M. Wiitala and M. M. Stanisic, “Design of an overconstrained and dextrous spherical wrist,” _Journal of Mechanical Design_ , vol. 122, no. 3, pp. 347–353, dec 1998.
  * Kong [2010] X. Kong, “Forward displacement analysis of a 2-dof RR-RRR-RRR spherical parallel manipulator,” in _Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications_. IEEE, jul 2010.
  * Duan et al. [2016] X. Duan, Y. Yang, and B. Cheng, “Modeling and analysis of a 2-DOF spherical parallel manipulator,” _Sensors_ , vol. 16, no. 9, p. 1485, sep 2016.
  * Gosselin and Hamel [1994] C. M. Gosselin and J.-F. Hamel, “The agile eye: a high-performance three-degree-of-freedom camera-orienting device,” in _Proceedings of the 1994 IEEE international conference on robotics and automation_. IEEE, 1994, pp. 781–786.
  * Du et al. [2017] Y. Du, R. Li, D. Li, and S. Bai, “An ankle rehabilitation robot based on 3-RRS spherical parallel mechanism,” _Advances in Mechanical Engineering_ , vol. 9, no. 8, p. 168781401771811, aug 2017.
  * Molaei et al. [2015] A. Molaei, E. Abedloo, H. D. Taghirad, and Z. Marvi, “Kinematic and workspace analysis of diamond: An innovative eye surgery robot,” in _2015 23rd Iranian Conference on Electrical Engineering_ , 2015, pp. 882–887.