**Kinematics and Robot Design I, KaRD2018**

Editor

**Raffaele Di Gregorio**

MDPI • Basel • Beijing • Wuhan • Barcelona • Belgrade • Manchester • Tokyo • Cluj • Tianjin

*Editor* Raffaele Di Gregorio University of Ferrara Italy

*Editorial Office* MDPI St. Alban-Anlage 66 4052 Basel, Switzerland

This is a reprint of articles from the Special Issue published online in the open access journal *Robotics* (ISSN 2218-6581) (available at: https://www.mdpi.com/journal/robotics/special issues/KARD).

For citation purposes, cite each article independently as indicated on the article page online and as indicated below:

LastName, A.A.; LastName, B.B.; LastName, C.C. Article Title. *Journal Name* **Year**, *Volume Number*, Page Range.

**ISBN 978-3-0365-1018-7 (Hbk) ISBN 978-3-0365-1019-4 (PDF)**

© 2021 by the authors. Articles in this book are Open Access and distributed under the Creative Commons Attribution (CC BY) license, which allows users to download, copy and build upon published articles, as long as the author and publisher are properly credited, which ensures maximum dissemination and a wider impact of our publications.

The book as a whole is distributed by MDPI under the terms and conditions of the Creative Commons license CC BY-NC-ND.

## **Contents**



## **About the Editor**

**Raffaele Di Gregorio** is currently Full Professor of Machine Mechanics at the Engineering Department of the University of Ferrara, Italy. He received an M.Sc. degree in nuclear engineering, an M.Sc. degree in mechanical engineering and an M.Sc. degree in automotive engineering from the Polytechnic University of Turin in 1982, 1985 and 1988, respectively, and a Ph.D. degree in applied mechanics from the University of Bologna, Italy, in 1992. In 1983, he received a grant of the Italian Automotive Technical Association (ATA) for spending one year as a research fellow at the FIAT Research Center, Orbassano (Italy). Between 1984 and 1992, he served as officer of the Technical Corp in the Italian Army; first, at the Military School of Turin, and successively, at the STAVECO (Military Vehicle Factory) of Bologna. In 1993, he taught at the ITIS O. Belluzzi of Bologna, Italy. Since 1994, he has been part of the Engineering Department of the University of Ferrara, Italy. His research interests include kinematics and dynamics of mechanisms and machines, biomechanics, robotics, vibration mechanics and vehicle mechanics. He has been author and co-author of about 80 technical papers published in refereed international journals, and as many papers published in conference proceedings. He has been "observer/member" of the IFToMM Technical Committee "Computational Kinematics" since 2007, and "member" of the IFToMM Permanent Commission "Standardization of Terminology" since 2009. Moreover, he is an ASME member and served as "general member" of the ASME Mechanisms and Robotics Committee between 2007 and 2012; since 2013, he has continued to serve this Committee as a past member. In these roles, he has actively participated in the organization of International Conferences on Mechanisms and/or Robotics and served as chair of the ASME—Mechanisms & Robotics' Honors and Awards Sub-Committee from 2014 to 2016. As well as being editorial board member of many international journals, he serves as associate editor of "ACTAPRESS International Journal of Robotics and Automation", and "Mechanism and Machine Theory", and served as associate editor of the "ASME Journal of Mechanisms and Robotics" from July 2014 to October 2020. Furthermore, he has been "Guest Editor" of the Special Issue series "Kinematics and Robot Design" published by the journal "MDPI Robotics" since 2018 and "Editor in Chief" of the "Journal of Mechanical Engineering and Automation" since 2012. An updated list of his publication together with more details can be found on the websites:


## **Preface to "Kinematics and Robot Design I, KaRD2018"**

Kinematics is intimately related to nearly all the design aspects of robotic/automatic systems. Even though the motion description is an ancient science, which received the name "kinematics" by Ampere ` [1] in 1834, its study never stopped [2] and is still an alive field of research whose results have direct effects on the design of many everyday devices. Topics such as analysis and synthesis of mechanisms, robot modeling and simulation, robot control, mobility and singularity analysis, performance measures, accuracy analysis, path planning and obstacle avoidance, collaborative robotics, novel manipulator architectures, metamorphic mechanisms, compliant mechanism analysis and synthesis, micro/nano-manipulator design, origami-based robotics, medical and rehabilitation robotics, bioinspired robotics, etc., deal with kinematics. All these topics have a deep social impact and somehow delineate future perspectives of human welfare, which attract big economic interest. Therefore, the presence of many serial conferences and publications devoted to mechanism kinematics and its applications, which involve a numerous scientific community, is no surprise. The Special Issue series on "Kinematics and Robot Design" (KaRD series) is one of these serial publications.

The KaRD series is hosted by the open access journal "MDPI Robotics" and aims at creating an open environment where researchers can present their works and discuss all the topics focused on the many aspects that involve kinematics in the design of robotic/automatic systems by using also supplementary multimedia materials uploaded during the submission. Even though the KaRD series publishes one Special Issue per year, all the received papers are peer-reviewed as soon as they are submitted and, if accepted, they are immediately published on MDPI Robotics and appear on the website of the KaRD issue. The open access nature of this series allows the authors to easily share their papers and the accompanying supplementary materials with the reference scientific community.

"Kinematics and Robot Design I, KaRD2018" (https://www.mdpi.com/journal/robotics/special issues/KARD) is the first issue of the KaRD series. It received 22 papers and, after the peer-review process, accepted only 14 papers. The accepted papers cover some theoretical and many design/applicative aspects. This volume collects 14 such accepted papers and is organized as follows. The first paper [3] deals with the use of dual quaternion in spacecraft robotics; whereas, the successive two [4,5] deal with self-motion in PKMs and spherical PKMs, respectively. Then, the fourth paper [6] deals with the modeling of link flexibility in manipulators, and the fifth [7] with balancing. The sixth [8] and the seventh [9] address specific design issues, and the next three [10–12] deal with performance evaluation and optimal design of manipulators. Eventually, the last four papers [13–16] deal with particular applicative issues.


**Raffaele Di Gregorio** *Editor*

## *Article* **Spacecraft Robot Kinematics Using Dual Quaternions**

#### **Alfredo Valverde \*,† and Panagiotis Tsiotras †**

School of Aerospace Engineering, Georgia Institute of Technology, Atlanta, GA 30313, USA; tsiotras@gatech.edu

**\*** Correspondence: avalverde3@gatech.edu † These authors contributed equally to this work.

Received: 30 July 2018; Accepted: 10 October 2018; Published: 12 October 2018

**Abstract:** In recent years, there has been a growing interest in servicing orbiting satellites. In most cases, in-orbit servicing relies on the use of spacecraft-mounted robotic manipulators to carry out complicated mission objectives. Dual quaternions, a mathematical tool to conveniently represent pose, has recently been adopted within the space industry to tackle complex control problems during the stages of proximity operations and rendezvous, as well as for the dynamic modeling of robotic arms mounted on a spacecraft. The objective of this paper is to bridge the gap in the use of dual quaternions that exists between the fields of spacecraft control and fixed-base robotic manipulation. In particular, we will cast commonly used tools in the field of robotics as dual quaternion expressions, such as the Denavit-Hartenberg parameterization, or the product of exponentials formula. Additionally, we provide, via examples, a study of the kinematics of different serial manipulator configurations, building up to the case of a completely free-floating robotic system. We provide expressions for the dual velocities of the different types of joints that commonly arise in industrial robots, and we end by providing a collection of results that cast convex constraints commonly encountered by space robots during proximity operations in terms of dual quaternions.

**Keywords:** spacecraft; robotics; dual quaternions; kinematics

#### **1. Introduction**

Robots are increasingly present in our daily lives, with their many uses ranging from simple vacuuming devices to complex manufacturing robotic arms. This growth is sustained by the continuous development of faster and better software and hardware, as well as strong theoretical advances in the areas of kinematics, dynamics, computer vision, sensing, etc. The space industry, owing to obvious reasons having to do with the unfriendliness of the space environment to humans, relies heavily on the use of robotics systems. In fact, interplanetary robotic exploration is at the core of NASA's Jet Propulsion Laboratory, and a wide variety of companies and governmental agencies are currently developing space-rated robotic manipulation systems for on-orbit satellite servicing [1,2].

The field of robotics is a well-established one. Lately, in the field of fixed-base robotics, progress in the area of kinematics and dynamics has mainly focused on ease of use, and speed and performance improvements [3,4]. The combination between the study of robots and their use in space, i.e., space robotics, must find common ground between the techniques used in both. For example, quaternions are the representation of choice when it comes to attitude parameterization for spacecraft control and estimation, while SE(2)/SE(3) and the Spatial Vector Algebra [5] are the dominant tools of choice in the fixed-base robotic community. Therefore, with the recent advent of dual quaternions, it is only natural to explore the use of a pose (i.e., position and attitude) representation tool for spacecraft control and estimation in order to study robotic systems mounted on a spacecraft.

Dual quaternion algebra is an extension of the well-known quaternion algebra. The former is used to study rigid body pose while the latter is used extensively to study just the attitude of a rigid body. Dual quaternions have recently seen a proliferation in their use for spacecraft control [6–9]. Several factors have contributed to the recent interest in dual quaternions in spacecraft control. First, the similarities between quaternion and dual quaternion-based spacecraft controllers and estimators [10] make dual quaternions an appealing tool for the practitioner who is familiar with the (standard) quaternion algebra. Next, dual quaternions naturally encode position information, thus avoiding the artificial separation of rotational and translational motion during control, which becomes essential during proximity operations or robotic servicing missions. More recently, dual quaternions have been used extensively for the dynamic modeling of ground-based robotic manipulators, providing an even stronger argument towards their use for dynamic modeling of spacecraft-mounted robotic manipulators [11].

While dual quaternions have been used for serial robot kinematic design [12–14], and for kinematic manipulation of points, vectors, lines, screws and planes [15], few references incorporate velocity information into their study of kinematics. Leclercq et al. [16] studied robot kinematics in the context of human motion using dual quaternions, yielding one of the most complete references to study kinematic chains with dual quaternions. More recently, Quiroz-Omaña and Adorno [17] have made use of dual quaternions in the context of robotic manipulation on a non-holonomic base. The methodologies exhibited in [16,17], however, do not take advantage of the well-known and convenient dual quaternion expression for kinematics, which could avoid manually taking time derivatives of pose expressions. A possible reason for this is the lack of a systematic manner to represent the combined linear and angular velocities of joints in dual algebra, and instead relying on the explicit derivative of pose-like expressions.

Works in the fields of dynamics and spacecraft control have settled on an understanding of the construction of dual velocities [18,19], which can be extended to provide generic expressions for the dual velocities of rigid bodies, or even of the different types of joints that may appear in a serial kinematic chain. In fact, Özgür and Mezouar [20] make use of said representation of dual velocity, commonly given by an expression of the form *ω* = *ω* + *v*, to perform kinematic control on a robotic arm, yielding a clever representation of the Jacobian matrix that uses dual quaternion screws. Their approach, however, has a fixed base and requires the use of base-frame coordinates—as opposed to body-frame coordinates, which are commonly used in the study of spacecraft motion—to describe the Plücker lines associated to the different joints of the system.

Given the significant interest that dual quaternions have garnered in the last decade in the realm of space applications, it is pertinent to contribute to the literature a straightforward treatment of kinematics with an emphasis on space-based robotic operations. In this paper, we aim to extend the study of robot kinematics using dual quaternions, mainly by lifting the condition that the robotic base must be fixed, allowing it instead to move freely in the three-dimensional space. Additionally, we consider the possibility of incorporating different types of joints, and provide the formulas for the dual velocity of each different type of joint. Along the way, we provide some important well-known results, such as the derivation of the famous quaternion kinematic law, and the aforementioned dual quaternion equivalent, as well as a collection of results that capture convex constraints using dual quaternions. While the latter expressions have been used in the field of Entry, Descent, and Landing (EDL), their incorporation in robotic manipulation for in-orbit servicing missions is also extremely beneficial in order to ensure safety and robustness.

This paper is structured as follows: Section 2 provides the mathematical tools necessary to use quaternion and dual quaternion algebras. Section 3 provides an overview of the most common kinematic tools in the robotics fields in dual quaternion form. Section 4 provides the development of the kinematic equations of motion using dual quaternions, and in Section 5 we provide a brief summary of some important constraint expressions for robotic manipulation cast using dual quaternions. Such constraints arise naturally in many in-orbit servicing missions. Addressing these constraints in a numerically efficient manner (e.g., casting them as convex constraints) leads to safe and elegant solutions of the in-orbit servicing problem.

#### **2. Mathematical Preliminaries**

In this section we give an introduction to quaternion and dual quaternion algebras, which provide convenient mathematical frameworks for attitude and pose representations respectively. Next, we provide the theoretical foundations required to study the kinematics of rigid bodies, and in particular how they pertain to serial manipulators.

#### *2.1. Quaternions*

The group of quaternions, as defined by Hamilton in 1843, extends the well-known imaginary unit *j*, which satisfies *j* <sup>2</sup> = −1. This non-abelian group is defined by Q<sup>8</sup> - {−1, *i*, *j*, *k* : *i* <sup>2</sup> = *j* <sup>2</sup> = *k*<sup>2</sup> = *ijk* = −1}. The algebra constructed from Q<sup>8</sup> over the field of real numbers is the quaternion algebra defined as H - {*q* = *q*<sup>0</sup> + *q*1*i* + *q*<sup>2</sup> *j* + *q*3*k* : *i* <sup>2</sup> = *j* <sup>2</sup> = *<sup>k</sup>*<sup>2</sup> = *ijk* = −1, *<sup>q</sup>*0, *<sup>q</sup>*1, *<sup>q</sup>*2, *<sup>q</sup>*<sup>3</sup> ∈ R}. This defines an associative, non-commutative, division algebra.

In practice, quaternions are often referred to by their scalar and vectors parts as *q* = (*q*0, *q*), where *q*<sup>0</sup> ∈ R and *q* = [*q*1, *q*2, *q*3] <sup>T</sup> ∈ R3. The properties of the quaternion algebra are summarized in Table 1. Filipe and Tsiotras [7] also conveniently define a multiplication between real 4-by-4 matrices and quaternions, denoted by the ∗ operator, which resembles the well-known matrix-vector multiplication by simply representing the quaternion coefficients as a vector in R4. In other words, given *<sup>a</sup>* = (*a*0, *<sup>a</sup>*) ∈ H and a matrix *<sup>M</sup>* ∈ R4×<sup>4</sup> defined as

$$M = \begin{bmatrix} M\_{11} & M\_{12} \\ M\_{21} & M\_{22} \end{bmatrix} \\ \text{ \text{\textquotedblleft}} \\ \text{\textquotedblright} \\ \tag{1}$$

where *<sup>M</sup>*<sup>11</sup> ∈ R, *<sup>M</sup>*<sup>12</sup> ∈ R1×3, *<sup>M</sup>*<sup>21</sup> ∈ R3×<sup>1</sup> and *<sup>M</sup>*<sup>22</sup> ∈ R3×3, then

$$M \* a \stackrel{\triangle}{=} (M\_{11}a\_0 + M\_{12}\overline{a}\_\prime M\_{21}a\_0 + M\_{22}\overline{a}) \in \mathbb{H}.\tag{2}$$


**Table 1.** Quaternion Operations.

Since any rotation can be described by three parameters, the unit norm constraint is imposed on quaternions for attitude representation. *Unit* quaternions are closed under multiplication, but not under addition. A quaternion describing the orientation of frame X with respect to frame Y, denoted by *q*X/Y, satisfies *q*∗ X/Y*q*X/Y = *q*X/Y*q*<sup>∗</sup> X/Y = 1, where 1 - (1, 0¯3×1). This quaternion can be constructed as *q*X/Y = (cos(*φ*/2), *n*¯ sin(*θ*/2)), where *n*¯ and *θ* are the *unit* Euler axis, and Euler angle of the rotation respectively. It is worth emphasizing that *q*∗ Y/X = *q*X/Y, and that *q*X/Y and −*q*X/Y represent the same rotation. Furthermore, given quaternions *q*Y/X and *q*Z/Y, the quaternion describing the rotation from X to Z is given by *q*Z/X = *q*Y/X*q*Z/Y. For completeness purposes, we define 0 -(0, 0¯3×1).

Three-dimensional vectors can also be interpreted as special cases of quaternions. Specifically, given *s*¯ <sup>X</sup> ∈ R3, the coordinates of a vector expressed in frame X, its quaternion representation is given

by *s*<sup>X</sup> = (0,*s*¯ <sup>X</sup>) ∈ H*v*, where H*<sup>v</sup>* is the set of *vector* quaternions defined as H*<sup>v</sup>* - {(*q*0, *q*) ∈ H : *q*<sup>0</sup> = 0} (see Reference [19] for further information). The change of the reference frame for a vector quaternion is achieved by the adjoint operation, and is given by *s*<sup>Y</sup> = *q*∗ Y/X*s*<sup>X</sup>*q*Y/X. Additionally, given *<sup>s</sup>* ∈ H*v*, we can define the operation [ · ] <sup>×</sup> : H*<sup>v</sup>* → R4×<sup>4</sup> as

$$[\mathbf{s}]^\times = \begin{bmatrix} 0 & 0\_{1\times 3} \\ 0\_{3\times 1} & [\overline{\mathbf{s}}]^\times \end{bmatrix}, \quad \text{where} \quad [\overline{\mathbf{s}}]^\times = \begin{bmatrix} 0 & -s\_3 & s\_2 \\ s\_3 & 0 & -s\_1 \\ -s\_2 & s\_1 & 0 \end{bmatrix}. \tag{3}$$

For quaternions *a* = (*a*0, *a*) and *b* = (*b*0, *b*), the left and right quaternion multiplication operators -·<sup>L</sup> , -·<sup>R</sup> : <sup>H</sup> <sup>→</sup> <sup>R</sup>4×<sup>4</sup> will be defined as

$$\left[\left[a\right]\_{\iota} \* b \stackrel{\triangle}{=} \left[b\right]\_{\iota} \* a \stackrel{\triangle}{=} ab\right,\tag{4}$$

where

$$\begin{aligned} \left[a\right]\_{\mathbb{L}} = \begin{bmatrix} a\_0 \ \vdots - a\_1 & -a\_2 & -a\_3 \\ \vdots & \vdots & \cdots & \vdots & \cdots \\ a\_1 \ \vdots & a\_0 & -a\_3 & a\_2 \\ \vdots & & \\ a\_2 \ \vdots & a\_3 & a\_0 & -a\_1 \\ \vdots & & & \\ a\_3 \ \vdots & -a\_2 & a\_1 & a\_0 \end{bmatrix} = \begin{bmatrix} a\_0 & -\overline{a}^r \\ \overline{a} & a\_0 \mathbb{I}\_3 + [\overline{a}]^\times \end{bmatrix} \tag{5} \end{aligned} \tag{6}$$

$$[b]\_{\mathbf{x}} = \begin{bmatrix} b\_0 \ \vdots \ -b\_1 \ -b\_2 \ -b\_3 \\ \vdots \ -\vdots \ -\vdots \\ b\_1 \ \vdots \ 0\_0 \ b\_3 \ -b\_2 \\ b\_2 \ \vdots \ -b\_3 \ \ b\_0 \ \ b\_1 \\ b\_3 \ \vdots \ \vdots \ -b\_1 \ \ b\_0 \end{bmatrix} = \begin{bmatrix} b\_0 & -\overline{\mathcal{B}}^r \\ \overline{\mathcal{B}} & b\_0 \mathbb{I}\_3 - [\overline{\mathcal{B}}]^\times \end{bmatrix}.\tag{6}$$

#### *2.2. Dual Quaternions*

We define the dual quaternion group as

$$\begin{aligned} \mathbb{Q}\_d &:= \{-1, i, j, k, \mathfrak{e}, \mathfrak{e}i, \mathfrak{e}j, \mathfrak{e}k : \mathfrak{i}^2 = j^2 = k^2 = \mathrm{i}jk = -1, \\ \mathfrak{e}i &= \mathrm{i}\mathfrak{e}, \mathfrak{e}j = \mathfrak{j}\mathfrak{e}, \mathfrak{e}k = k\mathfrak{e}, \mathfrak{e} \neq \mathfrak{0}, \mathfrak{e}^2 = \mathbf{0} \}. \end{aligned} \tag{7}$$

The dual quaternion algebra arises as the algebra of the dual quaternion group Q*<sup>d</sup>* over the field of real numbers, and is denoted as H*d*. When dealing with the modeling of mechanical systems, it is convenient to present this algebra as H*<sup>d</sup>* = {*q* = *qr* + *qd* : *qr*, *qd* ∈ H}, where is the dual unit. We call *qr* the real part, and *qd* the dual part of the dual quaternion *q*.

Filipe and Tsiotras [7,8,19,21] have laid out much of the groundwork in terms of the notation and basic properties of dual quaternions for spacecraft problems. The main properties of the dual quaternion algebra are listed in Table 2. Filipe and Tsiotras [7] also conveniently define a multiplication between matrices and dual quaternions, denoted by the operator, that resembles the well-known real matrix-vector multiplication by simply representing the dual quaternion coefficients as a vector in R8. In other words, given *<sup>a</sup>* = *ar* + *ad* ∈ H*<sup>d</sup>* and a matrix *<sup>M</sup>* ∈ R8×<sup>8</sup> defined as

$$\mathbf{M} = \begin{bmatrix} M\_{11} & M\_{12} \\ M\_{21} & M\_{22} \end{bmatrix} \text{ \,\,\,} \tag{8}$$

where *<sup>M</sup>*11, *<sup>M</sup>*12, *<sup>M</sup>*21, *<sup>M</sup>*<sup>22</sup> ∈ R4×4, then

$$\mathcal{M} \star a \stackrel{\triangle}{=} (M\_{11} \ast a\_r + M\_{12} \ast a\_d) + \varepsilon (M\_{21} \ast a\_r + M\_{22} \ast a\_d) \in \mathbb{H}\_d. \tag{9}$$


**Table 2.** Dual Quaternion Operations.

Analogous to the set of vector quaternions H*v*, we can define the set of vector dual quaternions as H*<sup>v</sup> <sup>d</sup>* - {*<sup>q</sup>* = *qr* + *qd* : *qr*, *qd* ∈ H*v*}. For vector dual quaternions we will define the skew-symmetric operator [ · ] <sup>×</sup> : H*<sup>v</sup> <sup>d</sup>* → R8×8,

$$[\mathbf{s}]^\times = \begin{bmatrix} [\mathbf{s}\_r]^\times & \mathbf{0}\_{4\times 4} \\ [\mathbf{s}\_d]^\times & [\mathbf{s}\_r]^\times \end{bmatrix}. \tag{10}$$

For dual quaternions *a* = *ar* + *ad* and *b* = *br* + *bd* ∈ H*d*, the left and right dual quaternion multiplication operators - · L, -· <sup>R</sup> : <sup>H</sup>*<sup>d</sup>* <sup>→</sup> <sup>R</sup>8×<sup>8</sup> are defined as

$$ab \stackrel{\triangle}{=} \begin{bmatrix} a \\ \end{bmatrix}\_{\sqcup} \star b \stackrel{\triangle}{=} \begin{bmatrix} b \\ \end{bmatrix}\_{\ltimes} \star a,\tag{11}$$

where

$$\begin{array}{c} \begin{bmatrix} \mathbf{a} \end{bmatrix} \mathbf{l} = \begin{bmatrix} \begin{bmatrix} a\_{\mathrm{r}} \end{bmatrix} \mathbf{l} & \mathbf{0}\_{4 \times 4} \\ \begin{bmatrix} a\_{\mathrm{d}} \end{bmatrix} & \begin{bmatrix} a\_{\mathrm{r}} \end{bmatrix} \end{array} \quad \text{and} \quad \begin{bmatrix} \mathbf{b} \end{bmatrix} \mathbf{l} = \begin{bmatrix} \begin{bmatrix} \mathbf{b} \mathbf{r} \end{bmatrix} \mathbf{l} & \mathbf{0}\_{4 \times 4} \\ \begin{bmatrix} \mathbf{b} \end{bmatrix} \mathbf{l} & \begin{bmatrix} \mathbf{b} \mathbf{r} \end{bmatrix} \end{array} . \end{array} \tag{12}$$

Since rigid body motion has six degrees of freedom, a dual quaternion needs two constraints to parameterize it. The dual quaternion describing the relative pose of frame B relative to frame I is given by *q*B/I = *q*B/I,*<sup>r</sup>* + *q*B/I,*<sup>d</sup>* = *q*B/I + <sup>1</sup> <sup>2</sup> *q*B/I*r*<sup>B</sup> B/I, where *r*<sup>B</sup> B/I is the position quaternion describing the location of the origin of frame B relative to that of frame I, expressed in B-frame coordinates. It can be easily observed that *<sup>q</sup>*B/I,*<sup>r</sup>* · *<sup>q</sup>*B/I,*<sup>r</sup>* <sup>=</sup> <sup>1</sup> and *<sup>q</sup>*B/I,*<sup>r</sup>* · *<sup>q</sup>*B/I,*<sup>d</sup>* <sup>=</sup> <sup>0</sup>, where <sup>0</sup> = (0, 0¯), providing the two necessary constraints. Thus, a dual quaternion representing a pose transformation is a *unit* dual quaternion, since it satisfies *q* · *q* = *q*∗*q* = **1**, where **1** - 1 + 0. Additionally, we also define **0** -0 + 0.

Similar to the standard quaternion relationships, the frame transformations laid out in Table 3 can be easily verified.

**Table 3.** Unit Dual Quaternion Operations.


In Reference [19] it was proven that for a dual unit quaternion *q* ∈ H*d*, *q* and −*q* represent the same frame transformation, property inherited from the space of quaternions. Therefore, as is done in practice for quaternions, dual quaternions can be subjected to properization, which is the action of redefining a dual quaternion so that the scalar part of the quaternion is always positive. Formally, we can define the properization of a dual quaternion *q* = *qr* + *qd* as

$$
\mathfrak{q} := -\mathfrak{q} \quad \text{if} \quad (\mathfrak{q}\_r)\_0 < 0, \tag{13}
$$

where (*qr*)<sup>0</sup> is the scalar part of *qr*. Just like in the case of quaternions, dual quaternions also inherit the so-called *unwinding phenomenon*, first described in [22], which is most important in control applications.

A useful equation is the generalization of the velocity of a rigid body in dual form, which contains both the linear and angular velocity components. The dual velocity of the Y-frame with respect to the Z-frame, expressed in X-frame coordinates, is defined as

$$
\omega^{\chi}\_{\chi/\mathbb{Z}} = \mathfrak{q}^{\*}\_{\chi/\mathbb{Z}} \omega^{\chi}\_{\chi/\mathbb{Z}} \mathfrak{q}\_{\chi/\mathbb{Y}} = \omega^{\chi}\_{\chi/\mathbb{Z}} + \mathfrak{e} \left( \mathfrak{v}^{\chi}\_{\chi/\mathbb{Z}} + \omega^{\chi}\_{\chi/\mathbb{Z}} \times r^{\chi}\_{\chi/\mathbb{Y}} \right),
\tag{14}$$

where *ω*<sup>X</sup> Y/Z = (0, *ω*¯ <sup>X</sup> Y/Z) and *v*<sup>X</sup> Y/Z = (0, *v*¯X Y/Z), *ω*¯ <sup>X</sup> Y/Z and *v*¯X Y/Z ∈ R<sup>3</sup> are respectively the angular and linear velocity of the Y-frame with respect to the Z-frame expressed in X-frame coordinates, and *r*<sup>X</sup> X/Y = (0,*r*¯X X/Y), where *r*¯X X/Y ∈ R<sup>3</sup> is the position vector from the origin of the Y-frame to the origin of the X-frame expressed in X-frame coordinates. In particular, from Equation (14) we observe that the dual velocity of a rigid body assigned to frame B with respect to an inertial frame I, expressed in B-frame coordinates is given as *ω*<sup>B</sup> B/I = *ω*<sup>B</sup> B/I + *v*<sup>B</sup> B/I. However, if we wanted to express this same dual velocity in inertial frame coordinates, as per Equation (14) we would get *ω*<sup>I</sup> B/I = *ω*<sup>I</sup> B/I + (*v*<sup>I</sup> B/I + *ω*<sup>I</sup> B/I × *r*<sup>I</sup> I/B). We will formally introduce frame transformations next.

#### *2.3. Frame Transformations Using Dual Quaternions*

As is common in the study of kinematics, frame transformations are vital for the determination of velocities and accelerations with respect to different frames. A dual velocity, or dual acceleration, can be described by a dual vector quaternion *<sup>s</sup>*<sup>X</sup> ∈ H*<sup>v</sup> <sup>d</sup>* expressed in X-frame coordinates as *s*<sup>X</sup> *s*<sup>X</sup> *<sup>r</sup>* + *s*<sup>X</sup> *d*, where *s*<sup>X</sup> *<sup>r</sup>*, *s*<sup>X</sup> *<sup>d</sup>* ∈ H*v*. As noted for Equation (14), frame transformations are given by the adjoint operation as

*s*<sup>Y</sup> = *q*∗ Y/X*s*<sup>X</sup> *q*Y/X = (*q*Y/X + <sup>1</sup> 2 *r* X Y/X*q*Y/X)∗(*s* X *<sup>r</sup>* + *s* X *<sup>d</sup>*)(*q*Y/X + <sup>1</sup> 2 *r* X Y/X*q*Y/X) = (*q*∗ Y/X + <sup>1</sup> <sup>2</sup> *q*<sup>∗</sup> Y/X*r* X∗ Y/X)(*s* X *<sup>r</sup>* + *s* X *<sup>d</sup>*)(*q*Y/X + <sup>1</sup> 2 *r* X Y/X*q*Y/X) = (*q*∗ Y/X <sup>−</sup> <sup>1</sup> <sup>2</sup> *q*<sup>∗</sup> Y/X*r* X Y/X)(*s* X *<sup>r</sup>* + *s* X *<sup>d</sup>*)(*q*Y/X + <sup>1</sup> 2 *r* X Y/X*q*Y/X) = (*q*∗ Y/X <sup>−</sup> <sup>1</sup> <sup>2</sup> *q*<sup>∗</sup> Y/X*r* X Y/X)(*s* X *rq*Y/X + (*s* X *<sup>d</sup>q*Y/X + *s* X *r* 1 2 *r* X Y/X*q*Y/X)) = *q*∗ Y/X*s* X *rq*Y/X <sup>−</sup> ( <sup>1</sup> <sup>2</sup> *q*<sup>∗</sup> Y/X*r* X Y/X*s* X *rq*Y/X) + (*q*<sup>∗</sup> Y/X*s* X *<sup>d</sup>q*Y/X + *q*<sup>∗</sup> Y/X*s* X *r* 1 2 *r* X Y/X*q*Y/X) = *s* Y *<sup>r</sup>* + (*s* Y *<sup>d</sup>* + <sup>1</sup> <sup>2</sup> *q*<sup>∗</sup> Y/X*s* X *rq*Y/X*q*<sup>∗</sup> Y/X*r* X Y/X*q*Y/X <sup>−</sup> <sup>1</sup> <sup>2</sup> *q*<sup>∗</sup> Y/X*r* X Y/X*q*Y/X*q*<sup>∗</sup> Y/X*s* X *rq*Y/X) = *s* Y *<sup>r</sup>* + (*s* Y *<sup>d</sup>* + <sup>1</sup> 2 *s* Y *rr* Y Y/X <sup>−</sup> <sup>1</sup> 2 *r* Y Y/X*s* Y *r*) = *s* Y *<sup>r</sup>* + (*s* Y *<sup>d</sup>* + <sup>1</sup> 2 *s* Y *rr* Y Y/X <sup>−</sup> <sup>1</sup> 2 (*r* Y Y/X)∗(*s* Y *<sup>r</sup>*)∗).

By the definition of the cross product of two quaternion quantities given in Table 1, we get that

$$\begin{split} \mathbf{s}^{\boldsymbol{\chi}} &= \boldsymbol{q}^{\*}\_{\boldsymbol{\chi}/\mathbf{s}} \mathbf{s}^{\boldsymbol{\chi}} \boldsymbol{q}\_{\boldsymbol{\chi}/\mathbf{x}} \\ &= \boldsymbol{s}^{\boldsymbol{\chi}}\_{r} + \boldsymbol{\varepsilon} (\mathbf{s}^{\boldsymbol{\chi}}\_{d} + \mathbf{s}^{\boldsymbol{\chi}}\_{r} \times \boldsymbol{r}^{\boldsymbol{\chi}}\_{\boldsymbol{\chi}/\mathbf{x}}) \\ &= \boldsymbol{s}^{\boldsymbol{\chi}}\_{r} + \boldsymbol{\varepsilon} (\mathbf{s}^{\boldsymbol{\chi}}\_{d} + \mathbf{r}^{\boldsymbol{\chi}}\_{\boldsymbol{\chi}/\mathbf{y}} \times \boldsymbol{s}^{\boldsymbol{\chi}}\_{r}). \end{split} \tag{15}$$

Analogously, the transformation of a dual vector *s*<sup>Y</sup> *s*<sup>Y</sup> *<sup>r</sup>* + *s*<sup>Y</sup> *<sup>d</sup>* can be easily derived using the procedure described above to be:

$$\begin{split} \mathbf{s}^{\chi} &= \boldsymbol{q}\_{\chi/\mathbf{s}} \mathbf{s}^{\chi} \boldsymbol{q}\_{\chi/\mathbf{s}}^{\*} \\ &= \mathbf{s}\_{r}^{\chi} + \boldsymbol{\varepsilon} (\mathbf{s}\_{d}^{\chi} + \mathbf{s}\_{r}^{\chi} \times \boldsymbol{r}\_{\chi/\mathbf{r}}^{\chi}) \\ &= \mathbf{s}\_{r}^{\chi} + \boldsymbol{\varepsilon} (\mathbf{s}\_{d}^{\chi} + \mathbf{r}\_{\chi/\mathbf{s}}^{\chi} \times \mathbf{s}\_{r}^{\chi}). \end{split} \tag{16}$$

As is standard notation, we can define the group adjoint operation for *unit* dual quaternions as

$$\text{Ad}\_q \mathfrak{s} \stackrel{\triangle}{=} q \mathfrak{s} \mathfrak{q}^{-1} = q \mathfrak{s} \mathfrak{q}^\*.\tag{17}$$

Therefore, using this notation, the frame transformations derived above can be cast as

$$\mathbf{s}^{\chi} = \mathrm{Ad}\_{\mathfrak{q}\_{\chi/\chi}} \mathbf{s}^{\chi} \tag{18}$$

$$\mathbf{s}^{\times} = \mathrm{Ad}\_{\mathfrak{q}^{\times}\_{\mathbb{Y}/\chi}} \mathbf{s}^{\times} = \mathrm{Ad}\_{\mathfrak{q}\_{\mathbb{X}/\mathbb{Y}}} \mathbf{s}^{\times} \tag{19}$$

The power of dual quaternions goes beyond the ability to represent pose and transform dual velocities and accelerations. In fact, dual quaternions can natively—without constructs that fall outside the algebra—encode the most typical geometric objects such as points, lines and planes. The reader is referred to the literature to find such parameterizations and the correct dual quaternion transformation [15,16].

#### *2.4. Derivation of Fundamental Kinematic Laws*

In this section we will derive both the quaternion and dual quaternion kinematic laws. We will make the time dependence explicit only when necessary for clarity.

The three-dimensional attitude kinematics evolve as

$$
\dot{q}\_{\chi\chi} = \frac{1}{2} q\_{\chi\chi} \omega\_{\chi\chi}^{\chi} = \frac{1}{2} \omega\_{\chi\chi}^{\chi} q\_{\chi\chi\chi} \tag{20}
$$

where *ω*<sup>Z</sup> X/Y - (0, *ω*<sup>Z</sup> X/Y) ∈ H*<sup>v</sup>* and *<sup>ω</sup>*<sup>Z</sup> X/Y ∈ R<sup>3</sup> is the angular velocity of frame X with respect to frame Y expressed in Z-frame coordinates. On the other hand, the dual quaternion kinematics can be expressed as [7]

$$
\dot{\boldsymbol{\sigma}}\_{\boldsymbol{\chi}/\boldsymbol{\chi}} = \frac{1}{2} \boldsymbol{\sigma}\_{\boldsymbol{\chi}/\boldsymbol{\chi}} \boldsymbol{\omega}\_{\boldsymbol{\chi}/\boldsymbol{\chi}}^{\boldsymbol{\chi}} = \frac{1}{2} \boldsymbol{\omega}\_{\boldsymbol{\chi}/\boldsymbol{\chi}}^{\boldsymbol{\chi}} \boldsymbol{\sigma}\_{\boldsymbol{\chi}/\boldsymbol{\chi}}.\tag{21}
$$

**Lemma 1.** *The attitude of a rigid body evolves as q*˙X/Y = <sup>1</sup> <sup>2</sup> *q*X/Y*ω*<sup>X</sup> X/Y*, as stated in Equation* (20)*.*

**Proof.** Denote the infinitesimal rotation about axis *u*ˆ by Δ*θ*. The quaternion that represents this rotation is constructed as *δq*X/Y(Δ*t*) - (cos (Δ*θ*/2), *u*ˆ sin (Δ*θ*/2)). Therefore, *q*X/Y(*t* + Δ*t*) = *q*X/Y(*t*)*δq*X/Y(Δ*t*). Then, for a small rotation angle, *δq*X/Y(Δ*t*) = (1, *u*ˆΔ*θ*/2). Substituting into the previous expression for *q*X/Y(*t* + Δ*t*), we obtain

$$\begin{split} q\_{\mathbb{X}\vee\mathbb{Y}}(t+\Delta t) &= q\_{\mathbb{X}\vee\mathbb{Y}}(t) \left( 1, \hat{\mathfrak{u}}\Delta\theta/2 \right) \\ &= q\_{\mathbb{X}\vee\mathbb{Y}}(t) \left( 1 + (0, \hat{\mathfrak{u}}\Delta\theta/2) \right) \\ &= q\_{\mathbb{X}\vee\mathbb{Y}}(t) + \frac{1}{2} q\_{\mathbb{X}\vee\mathbb{Y}}(t) \hat{\mathfrak{u}}\Delta\theta. \end{split} \tag{22}$$

Manipulating the expression and dividing by Δ*t*, we obtain

$$\frac{q\_{\chi\times\chi}(t+\Delta t) - q\_{\chi\times\chi}(t)}{\Delta t} = \frac{1}{2} q\_{\chi\times\chi}(t) \hat{u} \frac{\Delta \theta}{\Delta t'} \tag{23}$$

and invoking the limit as Δ*t* → 0 yields

$$\dot{q}\_{\chi\chi}(t) = \frac{1}{2} q\_{\chi\chi}(t) \omega\_{\chi\chi}^{\chi}(t),\tag{24}$$

where we have defined the angular velocity as *ω*<sup>X</sup> X/Y *u*ˆ ˙ *θ*, i.e., the rate of rotation about the instantaneous Euler axis.

**Lemma 2.** *The pose of a rigid body evolves as q*˙ X/Y = <sup>1</sup> <sup>2</sup>*q*X/Y*ω*<sup>X</sup> X/Y*, as stated in Equation* (21)*.*

**Proof.** Taking the derivative of *q*X/Y = *q*X/Y + <sup>1</sup> <sup>2</sup> *q*X/Y*r*<sup>X</sup> X/Y we get

$$\begin{split} \dot{q}\_{\chi\chi} &= \dot{q}\_{\chi\chi} + \varepsilon \left( \frac{1}{2} \dot{q}\_{\chi\chi} r\_{\chi\chi}^{\chi} + \frac{1}{2} q\_{\chi\chi} r\_{\chi\chi}^{\chi} \right) \\ &= \frac{1}{2} q\_{\chi\chi\uparrow} \boldsymbol{\omega}\_{\chi\chi}^{\chi} + \varepsilon \left( \frac{1}{4} q\_{\chi\chi\uparrow} \boldsymbol{\omega}\_{\chi\chi}^{\chi} r\_{\chi\chi}^{\chi} + \frac{1}{2} q\_{\chi\chi\uparrow} \dot{r}\_{\chi\chi}^{\chi} \right) \\ &= \frac{1}{2} q\_{\chi\chi\uparrow} \boldsymbol{\omega}\_{\chi\chi}^{\chi} + \varepsilon \left( \frac{1}{4} q\_{\chi\chi\downarrow} \boldsymbol{\omega}\_{\chi\chi}^{\chi} r\_{\chi\chi}^{\chi} + \frac{1}{2} q\_{\chi\chi\uparrow} \left( \boldsymbol{\omega}\_{\chi\chi}^{\chi} - \boldsymbol{\omega}\_{\chi\chi}^{\chi} \times r\_{\chi\chi}^{\chi} \right) \right. \\ &= \frac{1}{2} q\_{\chi\chi\uparrow} \boldsymbol{\omega}\_{\chi\chi}^{\chi} + \varepsilon \left( \frac{1}{2} q\_{\chi\chi\uparrow} \boldsymbol{r}\_{\chi\chi}^{\chi} + \frac{1}{4} q\_{\chi\chi\uparrow} \boldsymbol{\omega}\_{\chi\chi}^{\chi} r\_{\chi\chi}^{\chi} - \frac{1}{2} q\_{\chi\chi\uparrow} \left( \boldsymbol{\omega}\_{\chi\chi}^{\chi} \times r\_{\chi\chi}^{\chi} \right) \right), \end{split} \tag{25}$$

where we used the fact that *v*<sup>X</sup> X/Y d*r*<sup>X</sup> X/Y/d*t* = *r*˙ X X/Y + *ω*<sup>X</sup> X/Y ×*r*<sup>X</sup> X/Y. Using the definition of the cross product, we know that *ω*<sup>X</sup> X/Y × *r*<sup>X</sup> X/Y = <sup>1</sup> <sup>2</sup> (*ω*<sup>X</sup> X/Y*r*<sup>X</sup> X/Y − (*r*<sup>X</sup> X/Y)∗(*ω*<sup>X</sup> X/Y)∗) = <sup>1</sup> <sup>2</sup> (*ω*<sup>X</sup> X/Y*r*<sup>X</sup> X/Y − *r*<sup>X</sup> X/Y*ω*<sup>X</sup> X/Y). Evaluating this cross product into the above expression yields

= <sup>1</sup> <sup>2</sup> *q*X/Y*ω*<sup>X</sup> X/Y + ( <sup>1</sup> <sup>2</sup> *q*X/Y*v*<sup>X</sup> X/Y + <sup>1</sup> <sup>4</sup> *q*X/Y*ω*<sup>X</sup> X/Y*r* X X/Y <sup>−</sup> <sup>1</sup> <sup>4</sup> *q*X/Y(*ω*<sup>X</sup> X/Y*r* X X/Y − *r* X X/Y*ω*<sup>X</sup> X/Y)) = <sup>1</sup> <sup>2</sup> *q*X/Y*ω*<sup>X</sup> X/Y + <sup>1</sup> <sup>2</sup> *q*X/Y*v*<sup>X</sup> X/Y + <sup>1</sup> <sup>4</sup> *q*X/Y*r* X X/Y*ω*<sup>X</sup> X/Y = <sup>1</sup> <sup>2</sup> *q*X/Y*ω*<sup>X</sup> X/Y + <sup>1</sup> <sup>2</sup> *q*X/Y*v*<sup>X</sup> X/Y + <sup>1</sup> <sup>4</sup> *q*X/Y*r* X X/Y*ω*<sup>X</sup> X/Y + <sup>2</sup> <sup>1</sup> <sup>4</sup> *q*X/Y*r* X X/Y*v*<sup>X</sup> X/Y, since <sup>2</sup> = 0 = <sup>1</sup> <sup>2</sup> *q*X/Y(*ω*<sup>X</sup> X/Y + *v*<sup>X</sup> X/Y) + <sup>1</sup> 2 1 <sup>2</sup> *q*X/Y*r* X X/Y(*ω*<sup>X</sup> X/Y + *v*<sup>X</sup> X/Y) = <sup>1</sup> <sup>2</sup> (*q*X/Y <sup>+</sup> <sup>1</sup> <sup>2</sup> *q*X/Y*r* X X/Y)(*ω*<sup>X</sup> X/Y + *v*<sup>X</sup> X/Y) = <sup>1</sup> <sup>2</sup>*q*X/Y*ω*<sup>X</sup> X/Y, (26)

proving the desired result.

**Remark 1.** *The spatial kinematic equation q*˙X/Y = <sup>1</sup> 2*ω*<sup>Y</sup> X/Y*q*X/Y *can be immediately derived as a direct consequence of the adjoint transformation equation ω*<sup>X</sup> X/Y = *q*<sup>∗</sup> X/Y*ω*<sup>Y</sup> X/Y*q*X/Y*, which implies q*X/Y*ω*<sup>X</sup> X/Y = *ω*<sup>Y</sup> X/Y*q*X/Y*.*

**Remark 2.** *The spatial kinematic equation q*˙ X/Y = <sup>1</sup> 2*ω*<sup>Y</sup> X/Y*q*X/Y*can be immediately derived as a direct consequence of the adjoint transformation equation ω*<sup>X</sup> X/Y = *q*<sup>∗</sup> X/Y*ω*<sup>Y</sup> X/Y*q*X/Y*, which implies q*X/Y*ω*<sup>X</sup> X/Y = *ω*<sup>Y</sup> X/Y*q*X/Y*.*

#### **3. Robot Kinematics Using Dual Quaternions**

#### *3.1. Dual Quaternion Notation*

The forward kinematics of a robot can be easily laid out in dual quaternion form. In general, a dual quaternion encoding the relationship between two frames A and B is given as

$$
\sigma\_{\mathbb{W}/\mathbb{A}} = q\_{\mathbb{W}/\mathbb{A}} + \varepsilon \frac{1}{2} q\_{\mathbb{W}/\mathbb{A}} r\_{\mathbb{W}/\mathbb{A}'}^{\mathbb{V}} \tag{27}
$$

$$
\sigma\_{\mathbb{R}/\mathbb{A}} = q\_{\mathbb{R}/\mathbb{A}} + \varepsilon\_{\mathbb{Z}}^{\frac{1}{2}} r\_{\mathbb{R}/\mathbb{A}}^{\mathbb{A}} q\_{\mathbb{R}/\mathbb{A} \mathbb{A}} \tag{28}
$$

where *q*B/A is the quaternion that represents the attitude change in going from reference frame A, to reference frame B. The position vectors *r*<sup>B</sup> B/A and *r*<sup>A</sup> B/A represent the position vector from the origin of frame A to the origin of frame B expressed in frame B, and frame A coordinates, respectively. Notice that Equations (27) and (28) can be equivalently expressed as follows:

$$\text{Rotational First:} \quad q\_{\mathbb{u}/\mathbb{A}} = (q\_{\mathbb{u}/\mathbb{A}} + \varepsilon \mathbb{O}) (1 + \varepsilon \frac{1}{2} r\_{\mathbb{u}/\mathbb{A}}^{\mathbb{u}}),\tag{29}$$

$$\text{Translation First:} \quad q\_{\mathbb{N}/\mathbb{A}} = (1 + \epsilon \frac{1}{2} r\_{\mathbb{N}/\mathbb{A}}^{\wedge}) (q\_{\mathbb{N}/\mathbb{A}} + \epsilon \mathbb{O}), \tag{30}$$

leading to an intuitive decomposition of the underlying operations. In the forward kinematics, Equation (29) implies that the frame rotation is carried out first, and then a translation is carried out relative to the new frame. Equation (30) denotes a translation in the base frame, followed by an attitude change of the resulting frame. Throughout this work we will use the *translation first* approach.

#### *3.2. Product of Exponentials Formula in Dual-Quaternion Form*

The product of exponentials formula has been long used to study the forward kinematics of robots. Reference [23] has a thorough introduction to the topic, with many examples. In this section we lay out the main results that cast the product of exponentials (POE) formula in dual quaternion form. In particular, [20] has made use of the dual quaternion formalism to perform geometric control on a fixed-base robotic arm, where the forward kinematics of the robot are expressed using the POE formula.

As commonly used in robotics, the exponential operation takes an element of the Lie algebra for a given Lie group, and renders a group element. For the dual quaternion case, let the set of parameters (*θ*, *<sup>s</sup>*) ∈ <sup>D</sup> × H*<sup>v</sup> <sup>d</sup>*, where D = {*<sup>a</sup>* + *ad* : *<sup>a</sup>*, *ad* ∈ R and <sup>2</sup> = <sup>0</sup>} is the set of dual numbers, parametrize a screw motion as shown in Figure 1. In particular, *θ* and *s* are given by

$$
\theta = \theta + \epsilon d, \qquad \theta \in \mathcal{D}, \qquad \theta, d \in \mathbb{R}, \tag{31}
$$

$$\mathbf{s} = \ell + \epsilon m, \qquad \mathbf{s} \in \mathbb{H}\_{d'}^{\upsilon} \qquad \ell, m \in \mathbb{H}^{\upsilon}, \tag{32}$$

where *θ* is the angle of the screw motion, *d* is the translation along the screw axis, is the unit screw axis of the joint, and *m* is the moment vector of the screw axis of direction with respect to the origin of the local inertial frame. This implies that

$$m = r\_{\nu 1} \times \ell\_\star \tag{33}$$

where the point *P* lies on the screw axis. In robotic systems, the exponential mapping is commonly used to evaluate the forward kinematics of fixed-base robotic systems. We summarize the dual quaternion exponential mapping in the following lemma [14,20].

**Figure 1.** Screw motion parametrized by *θ* and *s*.

*Robotics* **2018**, *7*, 64

**Lemma 3.** *The exponential operation,* exp : <sup>D</sup> × H*<sup>v</sup> <sup>d</sup>* → H*<sup>d</sup> for a given pair* (*θ*, *<sup>s</sup>*) ∈ <sup>D</sup> × H*<sup>v</sup> <sup>d</sup> defined as in Equations (31) and (32) is given as*

$$\begin{split} q &= \exp\left(\frac{1}{2}\theta\mathfrak{s}\right), \quad q \in \mathbb{H}\_{d} \\ &= \cos\left(\frac{1}{2}\theta\right) + \mathfrak{s}\sin\left(\frac{1}{2}\theta\right) \\ &= \left(\cos\left(\frac{1}{2}\theta\right), \ell\sin\left(\frac{1}{2}\theta\right)\right) + \mathfrak{e}\left(-\frac{1}{2}d\sin\left(\frac{1}{2}\theta\right), \frac{1}{2}d\ell\cos\left(\frac{1}{2}\theta\right) + m\sin\left(\frac{1}{2}\theta\right)\right). \end{split} \tag{34}$$

**Proof.** Since *θ* = *θ* + *d* ∈ D, we have that

$$\cos\left(\frac{1}{2}\theta\right) = \cos\left(\frac{1}{2}\theta\right) + \epsilon \frac{d}{2}\left(-\sin(\frac{1}{2}\theta)\right) \tag{35}$$

$$\sin\left(\frac{1}{2}\theta\right) = \sin\left(\frac{1}{2}\theta\right) + \epsilon \frac{d}{2}\cos\left(\frac{1}{2}\theta\right). \tag{36}$$

It follows that

$$\mathbf{q} = \cos\left(\frac{1}{2}\theta\right) + \mathbf{s}\sin\left(\frac{1}{2}\theta\right) \tag{37}$$

$$\epsilon = \cos\left(\frac{1}{2}\theta\right) - \epsilon \frac{d}{2}\sin\left(\frac{1}{2}\theta\right) + (\ell + \epsilon m)\left(\sin\left(\frac{1}{2}\theta\right) + \epsilon \frac{d}{2}\cos\left(\frac{1}{2}\theta\right)\right),\tag{38}$$

which yields the desired result upon expansion.

**Remark 3.** *By comparing Equations* (28) *and (34), it can be deduced that the effect of a joint motion can be characterized by an equivalent rotation and a translation. In particular, by equating the real parts of the dual quaternions, we have that*

$$q\_{\mathbb{II}^{\lambda}} = \left(\cos\left(\frac{1}{2}\theta\right), \; \ell \sin\left(\frac{1}{2}\theta\right)\right),\tag{39}$$

*and from the dual parts*

$$\,\_{2}^{1}r\_{\text{ll/}\lambda}^{\lambda}q\_{\text{ll/}\lambda} = \left(-\frac{1}{2}d\sin\left(\frac{1}{2}\theta\right), \,\_{2}^{1}d\ell\cos\left(\frac{1}{2}\theta\right) + m\sin\left(\frac{1}{2}\theta\right)\right).\tag{40}$$

*Equivalently, r*<sup>A</sup> B/A *can be described as*

$$r\_{\mathbb{1}^\lambda}^\wedge = \left(0, d\ell + m\sin(\theta) + (\cos(\theta) - 1)m \times \ell\right). \tag{41}$$

The inverse to the exponential mapping is the logarithmic mapping, ln : H*<sup>d</sup>* → H*d*, which is defined as

$$
\ln \mathfrak{q} = \frac{1}{2} \theta \mathfrak{s} = \frac{1}{2} \theta \ell + \varepsilon \frac{1}{2} (\theta m + d\ell). \tag{42}
$$

Appendix A.6. of [20] explains how to retrieve {*θ*, *d*, , *m*} given a dual quaternion, *q*.

Given the dual quaternion from the inertial (base) frame to the end effector, at the robots's home configuration, *q*e,0/I, and parameter *s<sup>i</sup>* for each of the *n* joints of a robot at its home configuration, the product of exponentials formula yields

$$\boldsymbol{\mathfrak{q}}\_{\boldsymbol{s}/\boldsymbol{1}} = \exp\left(\frac{1}{2}\boldsymbol{\theta}\_{1}\mathbf{s}\_{1}\right) \dots \exp\left(\frac{1}{2}\boldsymbol{\theta}\_{\boldsymbol{n}}\mathbf{s}\_{\boldsymbol{n}}\right) \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{\alpha}\cap\boldsymbol{\nu}}\tag{43}$$

where joint 1 is closest to the base and joint *n* is closest to the end-effector. The exponential formula is effectively changing the spatial frame, as opposed to the body frame of the end-effector. Besides its simplicity to compute forward kinematics, the POE formula is straightforward to compute for a given configuration once the type of joint is known and the geometric properties of the robot are selected.

As this point, it is worth emphasizing that in regards to the moving frames used in space operations, the use of an inertial frame with respect to which one can perform spatial kinematics, as was done in [20], is impractical. Since the satellite base is constantly in motion, local-frame parameterizations of pose transformations across the links of the manipulator are preferred. Therefore, we favor the use of the forward-moving pose representations to express the location of the end-effector frame. We show next how to use the Denavit-Hartenberg parameterization in dual quaternions to capture such a transformation.

#### *3.3. Denavit-Hartenberg Parameters in Dual Quaternion Form*

The Denavit-Hartenberg parameters, commonly referred to as DH parameters, are four geometric quantities that allow identifying the relative pose of a joint with respect to another in a systematic manner. We will denote a set of DH parameters as {*di*, *θi*, *ai*, *αi*} for joint *i*. The parameters *di* and *θ<sup>i</sup>* are commonly referred to as *joint* parameters, while *ai* and *α<sup>i</sup>* are known as the *link* parameters. A complete description of the DH parameters for R and P joint types, and several examples of their use are provided in [24]. In [24] a thorough description of the orientation of the frames is also provided, to which the reader is referred. In [25], Gan et al. have used dual quaternions in combination with the DH parameter convention to capture the pose transformation between joints. For completeness, we provide these equations herein, making use of Figure 2.

**Figure 2.** Denavit-Hartenberg parameters.

In words, the transformation from the reference frame assigned to the proximal joint (i.e., closer to the base of the robot) of a given link *i*, to the reference frame assigned to its distal joint (i.e., closer to the end effector), is described in terms of the DH parameters as:


Mathematically, we can write this as the composition of four elementary dual quaternion operations, and summarize it further into two composite dual quaternions as

$$\mathfrak{q}\_{l/l=1} = \left(\mathbb{1} + \varepsilon r\_{\text{int},l/l=1}^{\text{int}1}\right) \left(q\_{\text{int},\text{in},1} + \varepsilon \mathbb{0}\right) \left(\mathbb{1} + \varepsilon r\_{\text{int},l/\text{in},1}^{\text{int}2}\right) \left(q\_{l/\text{in},2} + \varepsilon \mathbb{0}\right) \tag{44}$$

$$
\sigma\_{\text{tot}} = (q\_{\text{tot},2/\text{int},1} + \varepsilon r\_{\text{int},1/\text{-}1}^{\text{int},1} q\_{\text{tot},2/\text{int},1}) (q\_{\text{tot},2} + \varepsilon r\_{\text{int},2/\text{int},1}^{\text{int},2} q\_{\text{tot},2}) \tag{45}
$$

where

$$r\_{\rm int,l/l=1}^{\rm ut,l} = \left(0, [0, 0, d\_i]^\dagger\right) \tag{46}$$

$$\sigma\_{\!\!\!\!\!\!\/}a\_{\!\!\!\!\/}\_{\!\!\!\/} = \left(\cos\theta\_{\!\!\!\/}\_{\!\!\!\/} / 2, [0, 0, \sin\theta\_{\!\!\/} / 2]^{\!\!\!\/} \right) \tag{47}$$

$$\tau\_{\text{in};2,\text{out},1}^{\text{in},2} = \left(0, [a\_{\text{i}}, 0, 0]^{\text{r}}\right) \tag{48}$$

$$q\_{\cup u \cup \mathbb{1}^\perp} = (\cos \mathfrak{a}\_{\mathbf{i}} / 2, [\sin \mathfrak{a}\_{\mathbf{i}} / 2, 0, 0]^\top) \tag{49}$$

Notice that while this is compact and readable up to multiplication of the dual quaternions, the same cannot be said about the end result compared to its homogeneous transformation matrix (HTM) counterpart. In fact, if we express *q*i/i-1 component-wise, and cast it as a vector in R<sup>8</sup> which is the typical representation of dual quaternions for numerical purposes, and compute the equivalent HTM, we get the following:

$$\begin{aligned} \boldsymbol{q}\_{i\wedge 1} &= \begin{bmatrix} \cos(a/2)\cos(\theta/2) \\ \sin(a/2)\cos(\theta/2) \\ \sin(a/2)\sin(\theta/2) \\ \cos(a/2)\sin(\theta/2) \\ -\frac{1}{2}a\_i\sin(a\_i/2)\cos(\theta\_i/2) - \frac{1}{2}d\_i\cos(a\_i/2)\sin(\theta\_i/2) \\ \frac{1}{2}a\_i\cos(a\_i/2)\cos(\theta\_i/2) - \frac{1}{2}d\_i\sin(a\_i/2)\sin(\theta\_i/2) \\ \frac{1}{2}a\_i\cos(a\_i/2)\sin(\theta\_i/2) + \frac{1}{2}d\_i\sin(a\_i/2)\cos(\theta\_i/2) \\ \frac{1}{2}d\_i\cos(a\_i/2)\cos(\theta\_i/2) - \frac{1}{2}d\_i\sin(a\_i/2)\sin(\theta\_i/2) \end{bmatrix} \tag{50} \\ T\_{i\wedge 1} &= \begin{bmatrix} \cos\theta\_i & \sin\theta\_i & 0 & -a\_i \\ -\cos\alpha\_i\sin\theta\_i & \cos\alpha\_i\cos\theta\_i & \sin\alpha\_i\cdot & -d\_i\sin\alpha\_i \\ \sin\alpha\_i\sin\theta\_i & -\sin\alpha\_i\cos\theta\_i & \cos\alpha\_i\cdot & -d\_i\cos\alpha\_i \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{51} \end{aligned} \tag{51}$$

While the HTM is more readable and faster to code, it uses 16 doubles and a multi-dimensional array to store the information and operate in the underlying algebra.

**Remark 4.** *Since the transformations associated to θ<sup>i</sup> and di are about zi*−<sup>1</sup> *and the operations associated to α<sup>i</sup> and ai happen about xi, both stages of the DH transformation can be interpreted in the context of screw theory. Hence, the operation described by Equation (44) can be equivalently expressed as the composition of exponential operations given by*

$$q\_{\cup \cup \cdot} = \exp(\frac{1}{2}\theta\_1 \mathbf{s}\_1) \exp(\frac{1}{2}\theta\_2 \mathbf{s}\_2),\tag{52}$$

*where θ*<sup>1</sup> = *θ<sup>i</sup>* + *di and s*<sup>1</sup> = (0, [0, 0, 1] <sup>T</sup>) + 0 *and θ*<sup>2</sup> = *α<sup>i</sup>* + *ai and s*<sup>2</sup> = (0, [1, 0, 0] <sup>T</sup>) + 0*.*

#### **4. Manipulator Kinematics Using Dual Quaternions**

In this section we provide examples to demonstrate how one can develop the kinematic equations for different types of serial manipulators using dual quaternions.

#### *4.1. Example: Forward Kinematics with an Inertially Fixed Base*

The serial RR configuration in Figure 3 will be used as an example of how to use dual quaternions for forward kinematics. Notice that the pose of the end effector with respect to the inertial frame is given by

$$
\mathfrak{q}\_{\bullet/1} = \mathfrak{q}\_{1/1} \mathfrak{q}\_{2/1} \mathfrak{q}\_{\bullet/2}.\tag{53}
$$

For the sake of exposition, these are given by

$$\mathfrak{q}\_{1/1} = (1 + \epsilon \frac{1}{2} r\_{1/1}^{\mathfrak{l}}) (q\_{1/1} + \epsilon \mathfrak{d}),\tag{54}$$

$$q\_{2/1} = (1 + \epsilon \frac{1}{2} r\_{2/1}^\flat) (q\_{2/1} + \epsilon \mathbf{0}),\tag{55}$$

$$\boldsymbol{\mathfrak{q}}\_{\boldsymbol{\mathfrak{q}}/2} = (\boldsymbol{1} + \boldsymbol{\varepsilon}\_{\boldsymbol{\mathfrak{T}}}^{\boldsymbol{1}} \boldsymbol{r}\_{\boldsymbol{\mathfrak{e}}/2}^{\boldsymbol{1}}) (\boldsymbol{q}\_{\boldsymbol{\mathfrak{e}}/2} + \boldsymbol{\varepsilon} \mathbf{0}),\tag{56}$$

where the *translation-first* approach has been used. Each of these quantities can be easily determined from the geometry of the problem. The position quaternions are given by *r*<sup>Y</sup> X/Y = (0,*r*¯Y X/Y), and

$$
\vec{r}\_{1\uparrow} = [0, 0, 0]^\dagger,\tag{57}
$$

$$
\vec{r}\_{z/1}^{\mathbf{r}} = [l\_1, 0, 0]^{\mathbf{r}},\tag{58}
$$

$$
\vec{r}\_{\ast/2}^{\pm} = [l\_2, 0, 0]^{\mp},\tag{59}
$$

while the quaternions are given by

$$q\_{1\parallel} = \left(\cos a\_1 / 2, \left[0, 0, \sin a\_1 / 2\right]^\dagger\right),\tag{60}$$

$$q\_{1\parallel} = \left(\cos a\_2 / 2, [0, 0, \sin a\_2 / 2]^\top\right),\tag{61}$$

$$q\_{\circ/2} = \mathbf{1}.\tag{62}$$

**Figure 3.** Robot arm configuration.

The time derivative of the dual quaternion yields information about the angular and linear velocity of the end-effector. In particular, we have that for a dual quaternion:

*Robotics* **2018**, *7*, 64

$$
\dot{\mathfrak{q}}\_{\chi\chi} = \frac{1}{2} \mathfrak{q}\_{\chi\chi} \omega^{\chi}\_{\chi\chi} = \frac{1}{2} \omega^{\chi}\_{\chi\chi} \mathfrak{q}\_{\chi\chi\chi} \tag{63}
$$

where the first equality in Equation (63) is associated with a body-frame time derivative, and the second equality in Equation (63) is associated with a spatial-frame time derivative.

With these definitions in mind, we compute the time-rate of change of the pose of the end-effector as

$$
\dot{\boldsymbol{q}}\_{o/1} = \dot{\boldsymbol{q}}\_{1/1} \boldsymbol{q}\_{2/1} \boldsymbol{q}\_{o/2} + \boldsymbol{q}\_{1/1} \dot{\boldsymbol{q}}\_{2/1} \boldsymbol{q}\_{o/2} + \boldsymbol{q}\_{1/1} \boldsymbol{q}\_{2/1} \dot{\boldsymbol{q}}\_{o/2} \tag{64}
$$

$$
\sigma\_{\epsilon} = \frac{1}{2} \boldsymbol{\mathfrak{q}}\_{1/1} \boldsymbol{\omega}\_{1/1}^{\flat} \boldsymbol{\mathfrak{q}}\_{2/1} \boldsymbol{\mathfrak{q}}\_{o/2} + \boldsymbol{\mathfrak{q}}\_{1/1} \frac{1}{2} \boldsymbol{\mathfrak{q}}\_{2/1} \boldsymbol{\omega}\_{2/1}^{\flat} \boldsymbol{\mathfrak{q}}\_{o/2} + \boldsymbol{\mathfrak{q}}\_{1/1} \boldsymbol{\mathfrak{q}}\_{2/1} \frac{1}{2} \boldsymbol{\mathfrak{q}}\_{o/2} \boldsymbol{\omega}\_{o/2}^{\ast}.\tag{65}
$$

Then, using Equation (63), we get that the dual velocity of the end effector with respect to the inertial frame is given by

*ω*e e/I = 2*q*<sup>∗</sup> e/I*q*˙ e/I = *q*∗ e/I*q*1/I*ω*<sup>1</sup> 1/I*q*2/1*q*e/2+*q*<sup>∗</sup> e/I*q*1/I*q*2/1*ω*<sup>2</sup> 2/1*q*e/2+*q*<sup>∗</sup> e/I*q*1/I*q*2/1*q*e/2 =**0** *ω*e e/2 = *q*∗ e/2*q*<sup>∗</sup> 2/1*q*<sup>∗</sup> 1/I*q*1/I*ω*<sup>1</sup> 1/I*q*2/1*q*e/2+*q*<sup>∗</sup> e/2*q*<sup>∗</sup> 2/1*q*<sup>∗</sup> 1/I*q*1/I*q*2/1*ω*<sup>2</sup> 2/1*q*e/2 = *q*∗ e/2*q*<sup>∗</sup> 2/1*ω*<sup>1</sup> 1/I*q*2/1*q*e/2+*q*<sup>∗</sup> e/2*ω*<sup>2</sup> 2/1*q*e/2 = Ad*q*<sup>∗</sup> e/2*q*<sup>∗</sup> 2/1*ω*<sup>1</sup> 1/I+Adq<sup>∗</sup> e/2*ω*<sup>2</sup> 2/1 = Ad(*q*2/1*q*e/2)∗*ω*<sup>1</sup> 1/I+Ad(qe/2)∗*ω*<sup>2</sup> 2/1 = Ad(*q*2/1*q*e/2)<sup>∗</sup> *ξ*<sup>1</sup> 1/I, Ad(qe/2)<sup>∗</sup> *ξ*<sup>2</sup> 2/1 *α*¯˙ (66) = *J* B (*q*, *ξ*)*α*¯˙ , (67)

where *J*<sup>B</sup>(*q*, *ξ*) is the Jacobian expressed in the body frame and

$$
\mathfrak{A} = \begin{bmatrix} \mathfrak{a}\_1 \\ \mathfrak{a}\_2 \end{bmatrix} \quad \text{and} \quad \mathfrak{A} = \begin{bmatrix} \mathfrak{a}\_1 \\ \mathfrak{a}\_2 \end{bmatrix}. \tag{68}
$$

The elements *ξ<sup>i</sup>* are the dual quaternion screws for each of the joints. In general, the screws for revolute and prismatic joints are listed in Table 4 for each of the three axes, and these are independent of the current robot configuration.

**Table 4.** Screw (*ξi*) for revolute and prismatic joints.


#### *4.2. Example: Forward Kinematics of a Floating Double Pendulum with End-Effector*

Given the floating double pendulum shown in Figure 4, we want to model its kinematics. The difference with respect to the one shown in Figure 3 is that the first revolute joint is free to translate in 2D space.

The kinematic equations of motion can thus be derived as follows using a geometric description of the forward kinematics

$$
\mathfrak{q}\_{s/1} = \mathfrak{q}\_{1/1} \mathfrak{q}\_{2/1} \mathfrak{q}\_{s/2'} \tag{69}
$$

where *q*1/I, *q*2/1, *q*e/2 are given by Equations (54)–(56). However, *r*¯I 1/I = [*u*, *v*, 0] <sup>T</sup> determines the translation of the first revolute joint in 2D. It is clear that

d *r*¯ I 1/I = *r*¯˙I 1/I = *v*¯ I 1/I = [*u*˙, *v*˙, 0] <sup>T</sup> (70)

**Figure 4.** Robot arm configuration.

In this case, the time evolution of *q*1/I is given by

$$
\dot{\boldsymbol{q}}\_{1/1} = \frac{1}{2} \boldsymbol{\omega}\_{1/1}^{\boldsymbol{\upiota}} \boldsymbol{q}\_{1/1} \tag{71}
$$

as before, but we redefine the dual velocity as dictated by the definition in Equation (14) as

$$
\omega\_{1/1}^l = \omega\_{1/1}^l + \mathfrak{e} \left( v\_{1/1}^l - \omega\_{1/1}^l \times r\_{1/1}^l \right). \tag{72}
$$

The relationship derived earlier

$$
\omega\_{\ast\_{\ast/1}}^{\ast} = \mathbf{Ad}\_{\mathbf{q}\_{\ast/2}^{\ast}\mathbf{q}\_{2/1}^{\ast}} \omega\_{\ast\_{1/1}}^{\ast} + \mathbf{Ad}\_{\mathbf{q}\_{\ast/2}^{\ast}} \omega\_{\ast\_{2/1}}^{\ast}
$$

still holds. However, *ω*<sup>1</sup> 1/I must be computed from our knowledge of *ω*<sup>I</sup> 1/I. While in quaternion and vector notation this might be troublesome, the expression using dual quaternions is simple and given by

$$
\omega\_{1/1}^l = \mathfrak{q}\_{1/1}^\* \omega\_{1/1}^l \mathfrak{q}\_{1/1} = \operatorname{Ad}\_{\mathfrak{q}\_{1/1}^\*} \omega\_{1/1}^l. \tag{73}
$$

#### *4.3. Manipulator on an Orbiting Spacecraft*

For the general case, the robot base can move with six degrees of freedom, reinforcing the need for a convenient pose representation tool such as dual quaternions. Following an approach analogous to that proposed by Adorno in [26], in this section we will provide explicit expressions for the Jacobian matrix for different types of joints.

The kinematics of the robotic base, attached to frame B, would still be governed by the equation

$$
\dot{q}\_{\text{n}/\text{l}} = \frac{1}{2} q\_{\text{n}/\text{l}} \omega\_{\text{n}/\text{l}}^{\text{n}} \tag{74}
$$

while the kinematics of the joints depend on the type of joint. The dual velocities for the joints depend on frame positioning and on the selection of the generalized coordinates. In Table 5, we provide example generalized coordinates and their corresponding dual velocities. Simple numerical derivatives can yield the dual acceleration of the joint. It is worth emphasizing that for a 3 − 2 − 1/*ψ* − *θ* − *φ* rotation, the matrix *M*(*φ*i/i-1, *θ*i/i-1, *ψ*i/i-1 ) will correspond to

$$M(\boldsymbol{\varPhi}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}\boldsymbol{\upell}}\boldsymbol{\uptheta}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}\boldsymbol{\upell}}\boldsymbol{\upmu}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}}) = \begin{bmatrix} 1 & 0 & -\sin(\boldsymbol{\theta}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}}) \\ 0 & \cos(\boldsymbol{\upphi}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}}) & \cos(\boldsymbol{\uptheta}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}})\sin(\boldsymbol{\uptheta}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}}) \\ 0 & -\sin(\boldsymbol{\uptheta}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}}) & \cos(\boldsymbol{\uptheta}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}})\cos(\boldsymbol{\uptheta}\_{\boldsymbol{\upell}\cup\boldsymbol{\upell}}) \end{bmatrix}. \tag{75}$$

In general, we can identify the pose of a satellite-mounted end-effector by

$$\boldsymbol{q}\_{s/1} = \boldsymbol{q}\_{\mathbb{I}\backslash\mathbb{I}} \boldsymbol{q}\_{\mathbb{O}\backslash\mathbb{I}} \boldsymbol{q}\_{\mathbb{O}\backslash\mathbb{O}} \left(\prod\_{i=1}^{n-1} \boldsymbol{q}\_{i\backslash i\vdash i} \right) \boldsymbol{q}\_{s/u^{\mathbb{I}}} \tag{76}$$

where *q*O/B represents the pose transformation from the body frame of the satellite, B, to the frame at the base of the satellite manipulator, denoted by *O*; frame i represents the joint frame attached to the i-th link, one of the n bodies composing the manipulator, at the location of the proximal joint; and e is the end-effector frame that is rigidly attached to the last link of the serial manipulator, n − 1. For clarity, an example of the product operator ∏ used on dual quaternions is given by

$$\prod\_{i=1}^{2} q\_{i/4} = q\_{1/0} q\_{2/1} \,\text{.}\tag{77}$$

Additionally, using the definition of frames described above, the first link of the manipulator is link 0 and its connecting joint to the satellite base is frame 0.

Then, since *q*O/B and *q*e/n-1 are constant, the kinematics can be derived following the procedure of previous sections as

*<sup>q</sup>*˙ e/I <sup>=</sup> *<sup>q</sup>*˙ B/I*q*O/B*q*0/O n−<sup>1</sup> ∏i=1 *<sup>q</sup>*i/i-1 *<sup>q</sup>*e/n-1 <sup>+</sup> *<sup>q</sup>*B/I*q*O/B*q*˙ 0/O n−<sup>1</sup> ∏i=1 *<sup>q</sup>*i/i-1 *q*e/n-1 + *q*B/I*q*O/B*q*0/O n−1 ∑ k=1 *<sup>q</sup>*k-1/0*q*˙ k/k-1*q*n-1/k *q*e/n-1 = <sup>1</sup> <sup>2</sup>*q*B/I*ω*<sup>B</sup> B/I*q*O/B*q*0/O n−<sup>1</sup> ∏i=1 *<sup>q</sup>*i/i-1 *q*e/n-1 + *q*B/I*q*O/B 1 <sup>2</sup>*q*0/O*ω*<sup>0</sup> 0/O n−<sup>1</sup> ∏i=1 *<sup>q</sup>*i/i-1 *q*e/n-1 + *q*B/I*q*O/B*q*0/O n−1 ∑ k=1 *q*k-1/0 1 <sup>2</sup>*q*k/k-1*ω*<sup>k</sup> k/k-1*q*n-1/k *q*e/n-1. (78)

Multiplying by 2*q*∗ e/I on the left, we get

$$\begin{split} \boldsymbol{\omega}^{\*}\_{\boldsymbol{s}/\mathbb{I}} = \boldsymbol{q}^{\*}\_{\boldsymbol{s}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{n}/\mathbb{I}} \boldsymbol{\omega}^{\mathbb{I}}\_{\boldsymbol{0}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{0}/\mathbb{I}} \left( \prod\_{i=1}^{n-1} \boldsymbol{q}\_{i/\mathbb{I}} \right) \boldsymbol{q}\_{\boldsymbol{s}/\mathbb{n} \boldsymbol{1}} &+ \boldsymbol{q}^{\*}\_{\boldsymbol{s}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{n}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{0}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{0}/\mathbb{I}} \boldsymbol{w}^{\boldsymbol{0}}\_{\boldsymbol{0}/\mathbb{I}} \left( \prod\_{i=1}^{n-1} \boldsymbol{q}\_{i/\mathbb{I}} \right) \boldsymbol{q}\_{\boldsymbol{s}/\mathbb{n} \boldsymbol{1}} \\ &+ \boldsymbol{q}^{\*}\_{\boldsymbol{s}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{n}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{0}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{s}/\mathbb{I}} \sum\_{k=1}^{n-1} \left( \boldsymbol{q}\_{k \boldsymbol{s}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{k}/\mathbb{I}} \boldsymbol{w}^{\boldsymbol{k}}\_{\boldsymbol{k}/\mathbb{I}} \boldsymbol{q}\_{\boldsymbol{s}/\mathbb{I}} \right) \boldsymbol{q}\_{\boldsymbol{s}/\mathbb{n} \boldsymbol{1}} \end{split} \tag{79}$$

and carrying out the dual quaternion multiplications to simplify the expression yields

$$
\omega^\*\_{\ast/\mathbb{I}} = \mathfrak{q}\_{\ast/\mathbb{I}}^\* \omega^\*\_{\mathbb{I}\wedge\mathbb{I}} \mathfrak{q}\_{\ast/\mathbb{I}} + \mathfrak{q}\_{\ast/\mathbb{I}}^\* \omega^\*\_{\mathbb{I}\vee\mathbb{I}} \mathfrak{q}\_{\ast/\mathbb{I}} + \sum\_{\mathbf{k}=1}^{n-1} \mathfrak{q}\_{\ast/\mathbb{k}}^\* \omega^\*\_{\mathbb{k}/\mathbb{k}\cdot\mathbb{I}} \mathfrak{q}\_{\ast/\mathbb{k}}.\tag{80}
$$


**Table 5.** Generalized coordinates and dual velocities for different joint types.

In this form, it is straightforward to identify that in Equation (80), the first term yields the motion of the end-effector due to the motion of the base. The second and third terms provide the effect of the motion of the end-effector due to joint motion. We can now manipulate Equation (80) towards a more familiar structure

$$
\omega^\*\_{\ast \vee} = \left[ \boldsymbol{q}^\*\_{\ast \vee \mathbb{I}} \right] \boldsymbol{1} \left[ \boldsymbol{q}\_{\ast \vee \mathbb{I}} \right] \boldsymbol{\ast} \star \boldsymbol{\omega}^{\mathbb{I}}\_{\mathbb{I}\mathbb{I}} + \left[ \boldsymbol{q}^\*\_{\ast \vee \mathbb{I}} \right] \boldsymbol{1} \left[ \boldsymbol{q}\_{\ast \vee \mathbb{I}} \right] \boldsymbol{\ast} \star \boldsymbol{\omega}^{\mathbb{I}}\_{\mathbb{I}\mathbb{I}} + \sum\_{\mathbf{k}=1}^{n-1} \left[ \boldsymbol{q}^\*\_{\ast \mathbb{I}} \right] \boldsymbol{1} \left[ \boldsymbol{q}\_{\ast \vee \mathbb{I}} \right] \boldsymbol{1} \star \boldsymbol{\omega}^{\mathbb{I}}\_{\mathbb{I}\mathbb{I}\mathbb{I}}.\tag{81}
$$

Defining the vector of generalized coordinates as the vertical concatenation of the individual joint generalized coordinates, we can write

$$\begin{split} \boldsymbol{\omega}\_{\boldsymbol{s}|\boldsymbol{u}}^{\*} &= \left\llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}}^{\*} \right\rrbracket\_{1} \left\llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}} \right\rrbracket\_{\mathbb{R}} \ast \boldsymbol{\omega}\_{\mathbb{W}}^{\mathbb{R}} + \left\llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}}^{\*} \right\rrbracket\_{1} \left\llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}} \right\rrbracket\_{\mathbb{R}} \zeta\_{\boldsymbol{s}} \,\mathring{\boldsymbol{n}}\_{\mathbb{s}} + \sum\_{\mathbf{k}=1}^{n-1} \left\llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}}^{\*} \right\rrbracket\_{1} \left\llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}} \right\rrbracket\_{\mathbb{R}} \,\mathring{\boldsymbol{n}}\_{\mathbb{k}} \\ &= \left\llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}}^{\*} \right\rrbracket\_{1} \llbracket \boldsymbol{q}\_{\boldsymbol{s}|\boldsymbol{u}} \rrbracket\_{\mathbb{R}} \ast \boldsymbol{\omega}\_{\mathbb{w}|\boldsymbol{u}}^{\mathbb{R}} + \boldsymbol{J}(\boldsymbol{q}\_{\boldsymbol{s}}^{\*} \boldsymbol{\xi}) \,\mathring{\boldsymbol{n}}. \end{split} \tag{82}$$

Here, we have defined the body-frame Jacobian associated to joint motion as

$$J(q,\zeta) \triangleq \left[ \left\llbracket \begin{subarray}{c} q\_{s/0}^{\*} \end{subarray} \right\rrbracket\_{1} \left\llbracket \begin{subarray}{c} q\_{s/0} \end{subarray} \right\rrbracket\_{\mathbb{R}^{5}} \zeta\_{\mathbb{R}^{5}}, \dots, \; \left\llbracket \begin{subarray}{c} q\_{s/0}^{\*} \end{subarray} \right\rrbracket\_{1} \left\llbracket q\_{s/0} \right\rrbracket\_{\mathbb{R}^{5}} \zeta\_{\mathbb{R}^{5}}, \dots, \; \left\llbracket \begin{subarray}{c} q\_{s/n}^{\*} \end{subarray} \right\rrbracket\_{1} \left\llbracket q\_{s/n} \right\rrbracket\_{\mathbb{R}^{5}} \right].\tag{83}$$

The general term of the Jacobian mapping matrix, *q*∗ e/k L *<sup>q</sup>*e/k <sup>R</sup>*ζ*<sup>k</sup> , where *ζ*<sup>k</sup> is a screw matrix as defined in Table 6, is an improvement upon the more typical, adjoint-based methodology due to the ability of *ζ*<sup>k</sup> to capture more than one degree of freedom in each of its different columns. For the case in which the adjoint formula Ad*q*<sup>∗</sup> e/k *ξ*<sup>k</sup> is used, as in Equation (67), then *ξ*<sup>k</sup> necessarily corresponds to one single generalized coordinate. In other words, the screws for the cylindrical, spherical and Cartesian joints would need to be separated into different columns, each of which has its adjoint operation applied independently.

For example, it would be easy to demonstrate that for a cylindrical (*d* = 2), spherical (*d* = 3) or Cartesian joints (*d* = 3),

$$\frac{\partial \boldsymbol{\omega}^{\boldsymbol{\circ}}\_{\boldsymbol{\circ}/\boldsymbol{\circ}}}{\partial \boldsymbol{\hat{u}}\_{\boldsymbol{k}}} \equiv \llbracket \boldsymbol{q}^{\boldsymbol{\circ}}\_{\boldsymbol{\circ}/\boldsymbol{\circ}} \rrbracket\_{\boldsymbol{\circ}} \llbracket \boldsymbol{q}\_{\boldsymbol{\circ}/\boldsymbol{\circ}} \rrbracket\_{\boldsymbol{k}} \boldsymbol{\upvarepsilon} \in \mathbb{R}^{8 \times d},\tag{84}$$

but

$$\frac{\partial \boldsymbol{\omega}^{\boldsymbol{\up}}\_{\boldsymbol{\up}/\boldsymbol{\up}}}{\partial \dot{\boldsymbol{d}}\_{\boldsymbol{k}}} \neq \text{Ad}\_{q^{\boldsymbol{\up}}\_{\boldsymbol{\up}/\boldsymbol{\up}}} \mathbf{f}\_{\boldsymbol{k}} \in \mathbb{H}\_{\mathbf{d}'} \tag{85}$$

for any physically intuitive *<sup>ξ</sup>*<sup>k</sup> ∈ H*<sup>v</sup> d*.


**Table 6.** Screw matrix for different joint types.

#### **5. Convex Constraints Using Dual Quaternions**

When performing robotic operations, the incorporation of constraints is important where the safety of users, or a payload, is concerned. The dual quaternion framework is amenable to the incorporation of several convex constraints, which are of particular interest due to the availability of specialized codes to solve convex problems efficiently. The following presentation of convex constraints could be used in combination with a control approach such as the one proposed in [11], which is based on the differential dynamic programming algorithm.

In [27], the authors use dual quaternions as a pose parametrization representation to model convex state constraints for a powered landing scenario. In this section, we repurpose these same constraints for a space robotic servicing mission. The dual quaternion-based constraints will be provided without proof of convexity, since this is done in [27]. However, some properties of quaternions and some definitions are in order for a proper description of the results.

**Lemma 4.** *Given the quaternion <sup>q</sup>* ∈ H *and quaternions <sup>r</sup>* = (0,*r*¯) ∈ H*<sup>v</sup> and <sup>y</sup>* = (0, *<sup>y</sup>*¯) ∈ H*v, the following equalities hold:*

$$(rq)\cdot(yq) = r\cdot y = (qr)\cdot(qy)\tag{86}$$

**Proof.** Using the definition of the quaternion dot product given in Table 1, the expression on the left becomes

$$\begin{aligned} (rq) \cdot (yq) &= \frac{1}{2} \left[ (rq)^\* yq + (yq)^\* rq \right] \\ &= \frac{1}{2} \left[ q^\* r^\* yq + q^\* y^\* r q \right] \\ &= \frac{1}{2} q^\* \left[ r^\* y + y^\* r \right] q \\ &= q^\* (r \cdot y) q, \text{ and since } r \cdot y = (\bar{r} \cdot \bar{y}, 0\_{3 \times 1}) = (\bar{r} \cdot \bar{y}) \mathbf{1} \\ &= (\bar{r} \cdot \bar{y}) q^\* q \\ &= (\bar{r} \cdot \bar{y}) \mathbf{1} \\ &= r \cdot y. \end{aligned} \tag{87}$$

The second equality can be proven in the same manner.

*Robotics* **2018**, *7*, 64

For the following facts, let us define

$$E\_{\rm u} \stackrel{\Delta}{=} \begin{bmatrix} \mathbb{I}\_{4} & \mathbb{O}\_{4 \times 4} \\ \mathbb{O}\_{4 \times 4} & \mathbb{O}\_{4 \times 4} \end{bmatrix} \tag{88}$$

and

$$E\_d \stackrel{\Delta}{=} \begin{bmatrix} 0\_{4 \times 4} & 0\_{4 \times 4} \\ 0\_{4 \times 4} & \mathbb{I}\_4 \end{bmatrix} . \tag{89}$$

**Lemma 5.** *Consider the dual quaternion q*B/A = *q*B/A + <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A*. Then, <sup>q</sup>*B/A ◦ *<sup>q</sup>*B/A = (<sup>1</sup> <sup>+</sup> <sup>1</sup> <sup>4</sup> *r*<sup>B</sup> B/A2, 03×1) + <sup>0</sup>

**Proof.** By definition, *<sup>q</sup>*B/A ◦ *<sup>q</sup>*B/A = (*q*B/A <sup>+</sup> <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A) ◦ (*q*B/A <sup>+</sup> <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A) = *<sup>q</sup>*B/A · *<sup>q</sup>*B/A + ( <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A) · ( 1 <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A) + 0. By the unit norm constraint of the unit quaternions and applying Lemma 4 on the second summand, *<sup>q</sup>*B/A ◦ *<sup>q</sup>*B/A = (<sup>1</sup> <sup>+</sup> <sup>1</sup> 4 *r*B B/A · *r*<sup>B</sup> B/A, 03×1) + 0, from which the result follows.

**Lemma 6.** *Consider the dual quaternion q*B/A = *q*B/A + <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A*. Then, q*B/A ◦ (*Eu q*B/A) = **1***.*

**Proof.** Using the definition of *Eu*, we have *q*B/A ◦ (*Eu q*B/A) = *q*B/A ◦ (*q*B/A + 0) = *q*B/A · *q*B/A + 0. The result follows from the unit constraint of a unit quaternion.

**Lemma 7.** *Consider the dual quaternion q*B/A = *q*B/A + <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A*. Then, q*B/A ◦ (*Ed q*B/A) = <sup>1</sup> <sup>4</sup> *r*<sup>B</sup> B/A<sup>2</sup> + 0*.*

**Proof.** Using the definition of *Ed*, we have *q*B/A ◦ (*Ed <sup>q</sup>*B/A) = *<sup>q</sup>*B/A ◦ (<sup>0</sup> <sup>+</sup> <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A)=( <sup>1</sup> <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A) · ( 1 <sup>2</sup> *q*B/A*r*<sup>B</sup> B/A) + 0. The result follows from application of Lemma 4.

**Lemma 8.** *Consider r*<sup>B</sup> B/A ≤ *<sup>δ</sup>. Then, <sup>q</sup>*B/A ◦ *<sup>q</sup>*B/A <sup>≤</sup> <sup>1</sup> <sup>+</sup> <sup>1</sup> <sup>4</sup> *<sup>δ</sup>*2*.*

**Proof.** From Lemma 5, it follows that *<sup>q</sup>*B/A ◦ *<sup>q</sup>*B/A <sup>=</sup> <sup>1</sup> <sup>+</sup> <sup>1</sup> <sup>4</sup> *r*<sup>B</sup> B/A<sup>2</sup> <sup>≤</sup> <sup>1</sup> <sup>+</sup> <sup>1</sup> <sup>4</sup> *<sup>δ</sup>*2.

**Corollary 1.** *Given the bound r*<sup>B</sup> B/A ≤ *δ, it follows that q*B/A ◦ *q*B/A ∈ 1, 1 + <sup>1</sup> 4 *δ*2 *, which is a closed and bounded set.*

It is worth emphasizing that in Lemmas 5 and 8 the bijective mapping between the circle product and the real-line is implied. In other words, since the circle product between two dual quaternions *a* ◦ *b* = *s***1** for some *s* ∈ R, it will be commonly interpreted as *a* ◦ *b* = *s* for simplicity of exposition.

We are now ready to introduce three types of constraints in terms of dual quaternions:


For this, we will use notation consistent with [27]. Additionally, we require two auxiliary frames. We will define G as fixed on a gripper, and A as fixed on the target (say, an asteroid, or an object of interest) to be captured.

**Proposition 1.** *Consider the domain* <sup>D</sup> <sup>=</sup> {*q*G/A <sup>∈</sup> <sup>H</sup>*<sup>d</sup>* : *<sup>q</sup>*G/A ◦ *<sup>q</sup>*G/A <sup>≤</sup> <sup>1</sup> <sup>+</sup> <sup>1</sup> <sup>4</sup> *<sup>δ</sup>*2}*. The line of sight constraint depicted in Figure 5 can be encoded as*

$$r\_{\text{A/G}}^{\text{ci}} \cdot \mathcal{Y}^{\text{c}} \ge \|r\_{\text{A/G}}^{\text{ci}}\| \cos \theta\_{\text{A}} \tag{90}$$

*and it requires that the angle between r*<sup>G</sup> A/G *and y*ˆG *remains less than θ. Using dual quaternions, this constraint can be equivalently expressed as*

$$-q\_{\text{G/A}} \circ (M\_H \star q\_{\text{G/A}}) + 2||E\_d q\_{\text{G/A}}|| \cos \theta \le 0,\tag{91}$$

*where*

$$M\_H = \begin{bmatrix} 0\_{4 \times 4} & \left[ \mathcal{Y}^c \right]\_{\mathbb{R}}^\top \\ \left[ \hat{\mathcal{Y}}^c \right]\_{\mathbb{R}} & 0\_{4 \times 4} \end{bmatrix},\tag{92}$$

*and it is convex over* D*.*

**Proposition 2.** *Consider the domain* <sup>D</sup> <sup>=</sup> {*q*G/A <sup>∈</sup> <sup>H</sup>*<sup>d</sup>* : *<sup>q</sup>*G/A ◦ *<sup>q</sup>*G/A <sup>≤</sup> <sup>1</sup> <sup>+</sup> <sup>1</sup> <sup>4</sup> *<sup>δ</sup>*2}*. The approach slope constraint depicted in Figure 6, and the upper-and-lower bounded approach constraint depicted in Figure 7, can be encoded as*

$$\|r\_{\mathbf{G}/\mathbf{A}}^{\boldsymbol{\wedge}} \cdot \mathcal{Z}^{\boldsymbol{\wedge}} \ge \|r\_{\mathbf{G}/\mathbf{A}}^{\boldsymbol{\wedge}}\| \cos \phi,\tag{93}$$

*and it requires that the angle between r*<sup>A</sup> G/A *and z*ˆA *remains less than φ. Using dual quaternions, this constraint can be equivalently expressed as*

$$-\boldsymbol{q}\_{\mathrm{G}/\mathrm{A}} \circ \left(\boldsymbol{M}\_{\mathrm{G}} \star \boldsymbol{q}\_{\mathrm{G}/\mathrm{A}}\right) + 2||\boldsymbol{E}\_{d}\boldsymbol{q}\_{\mathrm{G}/\mathrm{A}}|| \cos \phi \leq 0,\tag{94}$$

*where*

$$M\_{\rm G} = \begin{bmatrix} 0\_{4 \times 4} & \left\| \mathbb{}^{\lambda} \right\|\_{\rm L}^{\rm r} \\ \left\| \mathbb{B}^{\lambda} \right\|\_{\rm L} & 0\_{4 \times 4} \end{bmatrix} \tag{95}$$

*and it is convex over* D*.*

**Proposition 3.** *Consider the domain* <sup>D</sup> <sup>=</sup> {*q*B/I <sup>∈</sup> <sup>H</sup>*<sup>d</sup>* : *<sup>q</sup>*B/I ◦ *<sup>q</sup>*B/I <sup>≤</sup> <sup>1</sup> <sup>+</sup> <sup>1</sup> <sup>4</sup> *<sup>δ</sup>*2}*. The attitude constraint depicted in Figure 8 can be encoded as*

$$\left(\mathfrak{H}^{\mathfrak{l}} \cdot \left(q\_{\mathfrak{u}/\mathfrak{l}}\mathfrak{h}^{\mathfrak{u}}q\_{\mathfrak{u}/\mathfrak{l}}^{\ast}\right) \right) \geq \cos\psi \,\,\_{\mathfrak{l}}\tag{96}$$

*and it requires that the angle between the inertially fixed vector n*ˆ <sup>I</sup> *and the body fixed vector n*ˆ <sup>B</sup> *remains less than ψ. Using dual quaternions, this constraint can be equivalently expressed as*

$$\mathfrak{q}\_{\mathfrak{u}/\mathfrak{l}} \circ (M\_A \star \mathfrak{q}\_{\mathfrak{u}/\mathfrak{l}}) + \cos \psi \le 0,\tag{97}$$

*where*

$$M\_A = \begin{bmatrix} \left[ \hat{\mathbb{1}}^t \right]\_\text{L} \left[ \hat{\mathbb{1}}^u \right]\_\text{x} & 0\_{4 \times 4} \\ 0\_{4 \times 4} & 0\_{4 \times 4} \end{bmatrix}' \tag{98}$$

*and it is convex over* D*.*

**Figure 5.** Line-of-sight constraint during grappling.

**Figure 6.** Approach slope constraint.

**Figure 7.** Upper-and-lower bounds constraint.

**Figure 8.** General attitude constraint with respect to inertial directions.

#### **6. Conclusions**

In this paper we have explored the use of dual quaternions for robot modeling. In particular, the main contribution of this paper is a generalizable framework to capture the kinematics of

spacecraft-mounted robotic manipulators using a dual quaternion approach. We took a bare-bones approach that built up to a convenient description of the end-effector's dual velocity, making use of a more intuitive forward kinematics methodology than the existing methods in the literature. Previous works on robot kinematics using dual quaternions provided either strict geometry-dependent approaches or were only applicable to fixed-base robots. The work presented herein is highly relevant in combination with the latest literature in dynamic modeling of robot manipulators using dual quaternions. Additionally, in our study of kinematics, we developed a convenient and simple-to-implement representation of the body-frame Jacobian matrix. The proposed form of the Jacobian exploits a convenient matrix representation of the adjoint dual quaternion transformation so that, in combination with the newly proposed form of the screw matrix, it avoids the artificial separation of the contribution by the generalized speeds of a given joint. Finally, we have provided a summary, and re-interpretation, of several existing results on the topic of dual quaternions, emphasizing their applicability on spacecraft-mounted robots. These included results on the exponential and logarithmic maps, an exposition on the use of the DH parameters, and finally the casting of the dual quaternion representation of constraints (originally developed for EDL purposes) interpreted in the context of a gripper-target system on-board a spacecraft.

Future work in this area will aim at implementing kinematic control laws for end-effector pose control when the based is not fixed to an inertial reference frame. This should be possible by following the steps in Özgür and Mezouar [20], and through the use of the Generalized Jacobian Matrix [28].

**Author Contributions:** Both authors contributed equally in the preparation of the manuscript.

**Funding:** This research was performed, in part, at the Jet Propulsion Laboratory, California Institute of Technology, under contract with the National Aeronautics and Space Administration, and funded through the internal Research and Technology Development program under award number SP.17.0004.008 RSA. This research was also performed under National Science Foundation award NRI1426945.

**Acknowledgments:** The authors would like to thank David S. Bayard, from the G&C section at the Jet Propulsion Laboratory for valuable conversations that improved the content of this article.

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

#### **Abbreviations**

The following abbreviations are used in this manuscript:


#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Hexapods with Plane-Symmetric Self-Motions**

#### **Georg Nawratil**

Institute of Discrete Mathematics and Geometry, Vienna University of Technology, Wiedner Hauptstrasse 8-10/104, 1040 Vienna, Austria; nawratil@geometrie.tuwien.ac.at; Tel.: +43-1-58801-104362; Fax: +43-1-58801-9104362

Received: 30 April 2018; Accepted: 5 June 2018; Published: 8 June 2018

**Abstract:** A hexapod is a parallel manipulator where the platform is linked with the base by six legs, which are anchored via spherical joints. In general, such a mechanical device is rigid for fixed leg lengths, but, under particular conditions, it can perform a so-called self-motion. In this paper, we determine all hexapods possessing self-motions of a special type. The motions under consideration are so-called plane-symmetric ones, which are the straight forward spatial counterpart of planar/spherical symmetric rollings. The full classification of hexapods with plane-symmetric self-motions is achieved by formulating the problem in terms of algebraic geometry by means of Study parameters. It turns out that besides the planar/spherical symmetric rollings with circular paths and two trivial cases (butterfly self-motion and two-dimensional spherical self-motion), only one further solution exists, which is the so-called Duporcq hexapod. This manipulator, which is studied in detail in the last part of the paper, may be of interest for the design of deployable structures due to its kinematotropic behavior and total flat branching singularities.

**Keywords:** hexapod; self-motion; spatial symmetric rolling; plane-symmetric motion; Duporcq manipulator

#### **1. Introduction**

In planar kinematics, the instantaneous pole P traces the so-called fixed/moving polode in the fixed/moving system during the constrained motion of a given mechanism. It is well known that this motion can also be generated by the rolling of the moving polode *φ* along the fixed polode *φ*<sup>0</sup> without sliding. If the polodes are symmetric with respect to the pole tangent t, then the motion is called planar symmetric rolling (cf. Figure 1, left). In 1826, this motion was first (with the exception of the already known symmetric circle rolling yielding the limacons of Pascal) studied by Quetelet [1], who pointed out the following property (cf. [2]): *The path* x *of a point* X *under this special planar motion can be generated by the reflexion of a point* <sup>X</sup><sup>0</sup> *of the fixed system on each tangent of <sup>φ</sup>*0*.* This can also be reformulated as follows: <sup>x</sup> *can be obtained by a central dilation with center* <sup>X</sup><sup>0</sup> *and scale factor* <sup>2</sup> *(i.e., central doubling) of* <sup>X</sup>0*'s pedal-curve* f *with respect to <sup>φ</sup>*0*.* A detailed study of the planar symmetric rolling was done by Bereis [3], Bottema [4] and Tölke (cf. [2] and the references given therein).

The spherical counterpart of this motion is called spherical symmetric rolling and was extensively studied by Tölke in a series of papers, which are summarized and referenced in [2]. The spherical version of the above given characterization also holds true for the spherical symmetric rolling (cf. Figure 1, right).

**Figure 1.** Sketch of the planar symmetric rolling (**left**) and the spherical symmetric rolling (**right**). The pedal-point of the fixed point <sup>X</sup><sup>0</sup> with respect to the pol-tangent <sup>t</sup> is denoted by <sup>F</sup>.

From another perspective, a planar/spherical symmetric rolling can also be generated by reflecting the fixed system in a 1-parametric continuous set of lines/great circles. This point of view is of importance for the spatial generalization of symmetric rollings, which can be done in multiple ways:


**Remark 1.** *Note that the term plane-symmetric motion was also used in [10] (§3.3) for a superset of the above described motions, which is characterized by the sole property that "the same equation describes the motion and its inverse, but with respect to reference systems that are a reflection of each other". In order to avoid confusions, we point out that we do not mean this superset by using this wording.*

**Figure 2.** Sketch of the line-symmetric motion (**left**) and the spatial symmetric rolling (**right**). For the illustrations, the basic surface Γ of the line-symmetric motion and the fixed axode Φ<sup>0</sup> of the spatial symmetric rolling have been chosen as tangent-surfaces of a straight cubic circle c. F denotes the pedal-point of the fixed point <sup>X</sup><sup>0</sup> with respect to (left) the generator <sup>g</sup> of <sup>Γ</sup> and (right) the tangent-plane *<sup>τ</sup>* along the instantaneous axis p of rotation, respectively.

#### *1.1. Review on Plane-Symmetric Motions*

The basic properties of this motion type are reported in [8] (§8 of Ch. 4). Given is a 1-parametric continuous set of planes *τ*(*t*), where the parameter *t* can be seen as time. By reflecting the fixed frame <sup>0</sup> on the plane *τ*(*t*), we obtain the pose *<sup>t</sup>* <sup>0</sup> of the plane-symmetric motion.

Let us consider to infinitesimal neighboring poses *<sup>t</sup>* <sup>0</sup> and *<sup>t</sup>*+Δ*<sup>t</sup>* <sup>0</sup> of the plane-symmetric motion. Now, one can transform *<sup>t</sup>* <sup>0</sup> into *<sup>t</sup>*+Δ*<sup>t</sup>* <sup>0</sup> by a reflexion on *<sup>τ</sup>*(*t*) followed by a further reflexion on *τ*(*t* + Δ*t*). It is well known that this is a pure rotation about the line of intersection of *τ*(*t*) and *τ*(*t* + Δ*t*). Moreover, this is exactly a torsal ruling of the developable surface enveloped by the given 1-parametric set of planes. As a consequence, the fixed axode Φ<sup>0</sup> is a developable surface (It is well known (e.g., [11] (Thms. 5.1.7 and 6.1.3)) that every developable surface is composed of cylindrical, conical or tangent-surfaces) and the corresponding moving axode Φ is obtained by reflecting Φ<sup>0</sup> in <sup>Φ</sup>0's tangent-plane *<sup>τ</sup>* along the instantaneous axis p of rotation (cf. Figure 2, right). Now, the path x of a point <sup>X</sup> under a plane-symmetric motion can be generated by the reflexion of a point <sup>X</sup><sup>0</sup> on each tangent-plane *<sup>τ</sup>* of <sup>Φ</sup>0; i.e., x can be obtained by a central doubling of X0's pedal-curve f with respect to Φ's tangent-planes.

Due to all these properties, the plane-symmetric motion seems to be the straightforward spatial counterpart of the planar/spherical symmetric rolling. Therefore, we call a plane-symmetric motion also a *spatial symmetric rolling*.

As far as the author knows, these spatial symmetric rollings are only explicitly mentioned in a practical example by Kunze and Stachel [12], who pointed out that the relative motion of opposite systems of a threefold-symmetric Bricard linkage (e.g., the *invertible cube* of Schatz) is a plane-symmetric one. Clearly, this also holds for the more general class of plane-symmetric Bricard linkages [13], where the two opposite systems not containing a rotation-axis spanning the plane of symmetry also possess a plane-symmetric relative motion during the overconstrained motion of the closed 6R-chain.

#### *1.2. Motivation and Outline*

One of the author's main research interests are hexapods with self-motions, i.e., overconstrained parallel manipulators where the platform is linked with the base by six legs, which are anchored via spherical red joints (Due to the spherical joints at the platform and the base, each leg can rotate about its carrier line without changing the pose of the platform. These uncontrolled leg-movements are not meant by the term *self-motion*). All these mechanical devices are solutions to the still unsolved problem posed by the French Academy of Science for the *Prix Vaillant* of the year 1904, which is also known as Borel–Bricard problem and reads as follows [14]: *"Determine and study all displacements of a rigid body in which distinct points of the body move on spherical paths."* In order to avoid trivial solutions of the problem, the following assumption should hold for the remainder of the article.

**Assumption 1.** *The platform anchor points* <sup>m</sup>1, ... , <sup>m</sup><sup>6</sup> *of the hexapod as well as the corresponding base anchor points* <sup>M</sup>1,..., <sup>M</sup><sup>6</sup> *should span in each case at least a plane.*

It is well known that so-called architecturally singular hexapods (A hexapod is called architecturally singular if the six legs belong in each relative pose of the platform with respect to the base to a linear line complex) possess self-motions in each pose (over C). These special solutions to the Borel–Bricard problem are already well studied (A review on this topic is given in [15] (Section 3.1)). The approaches for the determination of non-architecturally singular hexapods recorded in the literature (Note that we do not claim that the following list of given references is complete), can roughly be divided into the following two groups:

	- (a) linear mapping between platform and base [16–22],
	- (b) symmetry properties of platform and base [20–24],
	- (c) special topology (e.g., octahedral structure [25]),

or a combination of these assumptions (e.g., [20–22])

	- (a) line-symmetric self-motion [9],
	- (b) type II Darboux–Mannheim self-motion [26],
	- (c) Schoenflies self-motion [27],
	- (d) translational self-motion [28],
	- (e) self-motion of maximal degree [29],

or more generally characterizations like *linear relations between direction cosines* [30–33].

Note that these assumptions are done in order to reduce the complexity of the problem, as one has to deal with 30 design parameters (24 for the geometry and six leg lengths, whereby the number of 30 can be reduced by one due to the freedom of scaling) and six degrees of freedom.

We want to follow the second approach by assuming that the self-motions are symmetric rollings. Therefore, this paper closes a gap as line-symmetric self-motions and point-symmetric (Point-symmetric motions are obtained by reflecting the fixed system in a 1-parametric continuous set of points and according to [7] (Section 8), these motions are pure translations) self-motions are already well-studied [9,28]. In addition, this motion-type seems to be a good candidate for self-motions, due to the following property implied by the symmetry of the motion:

**Theorem 1.** *If a point* <sup>A</sup> *of the moving system traces a spherical curve with center* <sup>B</sup><sup>0</sup> *during a plane-symmetric motion, then also the point* <sup>B</sup> *of the moving system has a spherical trajectory about the point* <sup>A</sup>0*, where* <sup>A</sup> *and* <sup>A</sup><sup>0</sup> *as well as* B *and* B0*, are plane-symmetric points of the moving and fixed frame with respect to the tangent-plane <sup>τ</sup> along the instantaneous axis* p *of rotation. As a consequence, the set of points with spherical trajectories is indirectly congruent to the set of corresponding sphere centers.*

In the remainder of the paper, we call the replacement of the point pair (A,B0) by (B,A0) the *"symmetric leg-replacement"*.

**Remark 2.** *Clearly, the lower dimensional version of Theorem 1 is also true for the planar/spherical symmetric rolling. Moreover, Theorem 1 also holds for point-symmetric motions, if "plane-reflection" is substituted by "point-reflection". A similar result holds for line-symmetric motions; one only has to replace "plane-reflection" by "line-reflection" and "indirectly congruent" by "directly congruent" (see e.g., [9]).*

The paper is structured as follows: We start with the discussion of planar/spherical symmetric rolling motions with circular paths in Section 2.1. In Section 2.2, we formulate the problem of determining hexapods with plane-symmetric self-motions in terms of algebraic geometry by means of Study parameters. Based on this description, the problem is solved in Section 3. One of the obtained solutions is the so-called *Duporcq hexapod*, which is discussed in more detail in Section 4. The paper is closed by a conclusion (cf. Section 5).

#### **2. Preliminary Considerations and Preparatory Work**

As far as the author knows, no hexapods with plane-symmetric self-motions are reported in the literature so far. From known results in planar/spherical kinematics, which are reviewed in the next subsection, we can immediately construct such hexapods.

#### *2.1. Planar/Spherical Symmetric Rollings with Circular Paths*

Clearly, a pure rotation is a planar/spherical symmetric rolling where every point of the moving system traces a circle. Besides this trivial case, which we meet again under the notation of a so-called butterfly self-motions (cf. later given Theorem 4), the following planar/spherical symmetric rollings with circular trajectories exist:

• The planar symmetric rolling motions with points running on circular paths are well known due to the study of Bereis [3]. In this case, the polodes are either ellipses or hyperbolas and the focals (two real, two complex) of the moving ellipse/hyperbola are running on circles. They are the Burmester points of this motion. These motion can be realized by the mechanisms illustrated in Figure 3.

**Figure 3.** Twin-crank mechanisms with non-counter-rotating cranks (**left**): In this case, the polodes are ellipses. Twin-crank mechanism with counter-rotating cranks (**right**): In this case, the polodes are hyperbolas.

• Unfortunately, the considerations of Bereis cannot be generalized straightforward to the sphere (cf. [2] (p. 195)), as in spherical kinematics six Burmester points exist (e.g., [8] (p. 216)). However, we can do the reasoning in a different way. Due to [28] (Theorem 6), one can assume without loss of generality that only two points of a moving body can have spherical trajectories. According to the spherical version of Theorem 1, a second point is also running on a circle due to the symmetric leg-replacement (With the exceptional case that the first leg is orthogonal to the pole tangent, but

this will not yield a closed loop; i.e., a spherical parallel manipulator). Thus, we can only end up with a spherical isogram illustrated in Figure 4, which is studied in more detail in [34].

**Figure 4.** As on the sphere points can be replaced by their antipodes, it can easily be seen that every spherical conic can be interpreted as a spherical ellipse (e.g., [35] (Section 10.1)). The left and the right figure show the same symmetric rolling motion. If we replace <sup>A</sup> and <sup>A</sup><sup>0</sup> by their antipodal points <sup>A</sup> and A0, respectively, and look on the sphere from the right side, then we get the figure illustrated on the right-hand side.

From the discussed planar and spherical case, one can easily construct hexapods with plane-symmetric self-motions (see Figure 5).

**Remark 3.** *Note that the hexapods of Figure 5 do not only possess the illustrated plane-symmetric self-motions, but also the already mentioned butterfly self-motions (cf. later given Theorem 4).*

**Figure 5.** Hexapods with plane-symmetric self-motions, where the platform (green) and the base (blue) are both planar. The axodes of the self-motions are cylinders (**left**) and cones (**right**), respectively, but we only illustrated the planar/spherical directrices of these singular quadrics to see better their connection to the planar/spherical symmetric rolling displayed in Figures 3 and 4, respectively.

#### *2.2. Mathematical Framework*

For the algebraic formulation of our problem, we want to use Study parameters (*e*<sup>0</sup> : *e*<sup>1</sup> : *e*<sup>2</sup> : *e*<sup>3</sup> : *f*<sup>0</sup> : *f*<sup>1</sup> : *f*<sup>2</sup> : *f*3), which are nothing else than homogenized dual unit-quaternions + *ε* with

$$\mathfrak{C} = \mathfrak{e}\_0 + \mathfrak{e}\_1 \mathbf{i} + \mathfrak{e}\_2 \mathbf{j} + \mathfrak{e}\_3 \mathbf{k} \quad \text{and} \quad \mathfrak{F} = f\_0 + f\_1 \mathbf{i} + f\_2 \mathbf{j} + f\_3 \mathbf{k}, \tag{1}$$

where **i**, **j**, **k** are the well-known quaternionic units and *ε* the dual unit with the property *ε*<sup>2</sup> = 0.

Now, all real points of the seven-dimensional Study parameter space *P*7, which are located on the so-called Study quadric Ψ : ∑<sup>3</sup> *<sup>i</sup>*=<sup>0</sup> *ei fi* = 0, correspond to a Euclidean displacement with exception of the three-dimensional subspace *E* of Ψ given by *e*<sup>0</sup> = *e*<sup>1</sup> = *e*<sup>2</sup> = *e*<sup>3</sup> = 0, as its points cannot fulfill the condition *<sup>N</sup>* = 0 with *<sup>N</sup>* = *<sup>e</sup>*<sup>2</sup> <sup>0</sup> + *<sup>e</sup>*<sup>2</sup> <sup>1</sup> + *<sup>e</sup>*<sup>2</sup> <sup>2</sup> + *<sup>e</sup>*<sup>2</sup> <sup>3</sup>. The translation vector **<sup>t</sup>** := (*t*1, *<sup>t</sup>*2, *<sup>t</sup>*3)*<sup>T</sup>* and the rotation matrix **R** := (*rij*) of the corresponding Euclidean displacement **x** → **Rx** + **t** are given by:

$$t\_1 t\_1 = 2(\varepsilon\_0 f\_1 - \varepsilon\_1 f\_0 + \varepsilon\_2 f\_3 - \varepsilon\_3 f\_2), \quad t\_2 = 2(\varepsilon\_0 f\_2 - \varepsilon\_2 f\_0 + \varepsilon\_3 f\_1 - \varepsilon\_1 f\_3), \quad t\_3 = 2(\varepsilon\_0 f\_3 - \varepsilon\_3 f\_0 + \varepsilon\_1 f\_2 - \varepsilon\_2 f\_1), \quad t\_4 = 2(\varepsilon\_0 f\_4 - \varepsilon\_1 f\_3 - \varepsilon\_3 f\_2 - \varepsilon\_2 f\_1)$$

and

$$\mathbf{R} = \begin{pmatrix} \mathfrak{e}\_0^2 + \mathfrak{e}\_1^2 - \mathfrak{e}\_2^2 - \mathfrak{e}\_3^2 & 2(\mathfrak{e}\_1\mathfrak{e}\_2 - \mathfrak{e}\_0\mathfrak{e}\_3) & 2(\mathfrak{e}\_1\mathfrak{e}\_3 + \mathfrak{e}\_0\mathfrak{e}\_2) \\ 2(\mathfrak{e}\_1\mathfrak{e}\_2 + \mathfrak{e}\_0\mathfrak{e}\_3) & \mathfrak{e}\_0^2 - \mathfrak{e}\_1^2 + \mathfrak{e}\_2^2 - \mathfrak{e}\_3^2 & 2(\mathfrak{e}\_2\mathfrak{e}\_3 - \mathfrak{e}\_0\mathfrak{e}\_1) \\ 2(\mathfrak{e}\_1\mathfrak{e}\_3 - \mathfrak{e}\_0\mathfrak{e}\_2) & 2(\mathfrak{e}\_2\mathfrak{e}\_3 + \mathfrak{e}\_0\mathfrak{e}\_1) & \mathfrak{e}\_0^2 - \mathfrak{e}\_1^2 - \mathfrak{e}\_2^2 + \mathfrak{e}\_3^2 \end{pmatrix},$$

if the normalizing condition *N* = 1 is fulfilled.

Clearly, the reflection on a plane is an orientation-reversing congruence transformation, which cannot be described directly by the Study parameters. Therefore, we follow the approach of Selig and Husty [7] (Section 8), which is as follows: We start with a reflexion on a fixed plane; say the *xy*-plane of the fixed frame 0. By this plane-reflection of 0, we obtain 0. In addition, we apply the reflexion on the plane *<sup>τ</sup>*(*t*), which finally yields the pose *<sup>t</sup>* 0. As the composition of two plane-reflexions is again a direct congruence transformation, we can describe the plane-symmetric motions in this way. If *τ*(*t*) and the *xy*-plane of <sup>0</sup> are


This yields that the plane-symmetric motions are given by *e*<sup>3</sup> = *f*<sup>0</sup> = *f*<sup>1</sup> = *f*<sup>2</sup> = 0. Moreover, it should be noted that the Study condition is fulfilled identically, thus the set of plane-symmetric motions corresponds to a three-dimensional generator space *P* of Ψ which intersects *E* in a line. Based on this description, we analyze the relation between plane-symmetric motions and line-symmetric ones in the next theorem:

**Theorem 2.** *A plane-symmetric motion is also a line-symmetric one if and only if there exists a linear relation αe*<sup>0</sup> + *βe*<sup>1</sup> + *γe*<sup>2</sup> + *δ f*<sup>3</sup> = 0 *with* (*α*, *β*, *γ*, *δ*) = (0, 0, 0, 0) *between the remaining Study parameters.*

**Proof.** For the proof, we need an algebraic characterization of line-symmetric motions in terms of Study parameters. It is well-known that there always exist, a Cartesian frame in the moving system in a way that *e*<sup>0</sup> = *f*<sup>0</sup> = 0 holds for a line-symmetric motion. Then, (*e*<sup>1</sup> : *e*<sup>2</sup> : *e*<sup>3</sup> : *f*<sup>1</sup> : *f*<sup>2</sup> : *f*3) are the Plücker coordinates of the generators of the basic surface with respect to the fixed frame.

A change of the moving system can be achieved by a so-called right multiplication; i.e., ( + *ε* )◦ ( + *ε* ) where ◦ stands for the quaternionic multiplication. If we denote this product by + *ε* , the corresponding entries *g*<sup>0</sup> and *h*<sup>0</sup> read as follows (under consideration of *e*<sup>3</sup> = *f*<sup>0</sup> = *f*<sup>1</sup> = *f*<sup>2</sup> = 0):

$$\mathfrak{g}\_0 := r\_0 \mathfrak{e}\_0 - r\_1 \mathfrak{e}\_1 - r\_2 \mathfrak{e}\_2, \qquad h\_0 := s\_0 \mathfrak{e}\_0 - s\_1 \mathfrak{e}\_1 - s\_2 \mathfrak{e}\_2 - r\_3 f\_3. \tag{2}$$

If *δ* = 0 holds, then we set *r*<sup>0</sup> = *α*, *r*<sup>1</sup> = −*β*, *r*<sup>2</sup> = −*γ* and *s*<sup>0</sup> = *s*<sup>1</sup> = *s*<sup>2</sup> = *r*<sup>3</sup> = 0. For *δ* = 0, we set *s*<sup>0</sup> = *α*, *s*<sup>1</sup> = −*β*, *s*<sup>2</sup> = −*γ*, *r*<sup>3</sup> = −*δ* and *r*<sup>0</sup> = *r*<sup>1</sup> = *r*<sup>2</sup> = 0. For both cases, we get *g*<sup>0</sup> = *h*<sup>0</sup> = 0, which finishes the sufficiency of the linear relation between *e*0,*e*1,*e*2, *f*3.

Its necessity can also be seen from Equation (2), as without such a linear relation, the condition *g*<sup>0</sup> = *h*<sup>0</sup> = 0 can only be fulfilled for *r*<sup>0</sup> = *r*<sup>1</sup> = *r*<sup>2</sup> = *r*<sup>3</sup> = 0, which yields a contradiction as has to differ from the zero-quaternion.

A further important theorem in this context is the following:

**Theorem 3.** *A plane-symmetric motion is also a line-symmetric one if and only if it is a planar motion or a spherical motion.*

**Proof.** If the linear relation equals *f*<sup>3</sup> = *αe*<sup>0</sup> + *βe*<sup>1</sup> + *γe*2, then it can easily be checked by direct computations that the point (*γ*, −*β*, −*α*) is mapped to the point (*γ*, −*β*, *α*) for all *e*0,*e*1,*e*<sup>2</sup> fulfilling *N* = 1. Therefore, (*γ*, −*β*, *α*) is the center of the spherical motion.

If the linear relation equals *αe*<sup>0</sup> + *βe*<sup>1</sup> + *γe*<sup>2</sup> = 0, then it can easily be checked by direct computations that the direction (*γ*, −*β*, −*α*) is mapped to the direction (*γ*, −*β*, *α*) for all *e*0,*e*1,*e*<sup>2</sup> fulfilling *N* = 1. Therefore, the direction (*γ*, −*β*, *α*) remains fixed under the motion. Moreover, the translation vector (*t*1, *t*2, *t*3) is orthogonal to this direction, which already proves that the motion is planar.

These two theorems imply the following statement:

**Corollary 1.** *If we embed the planar and spherical symmetric rollings into SE(3), then they can also be seen as line-symmetric motions.*

Therefore, the self-motions of the hexapods illustrated in Figure 5 are plane-symmetric and line-symmetric at the same time. This raises also the question of whether self-motions exist, which are plane-symmetric but not line-symmetric. The answer is given within the next section.

#### **3. Plane-Symmetric Self-Motions**

The coordinate vector of the base point <sup>M</sup>*<sup>i</sup>* with respect to the fixed system is given by **<sup>M</sup>***<sup>i</sup>* = (*Ai*, *Bi*, *Ci*)*T*. The position of the corresponding platform anchor point <sup>m</sup>*i*(*t*) is obtained by reflecting a point <sup>m</sup>*i*,0 with fixed coordinates **<sup>m</sup>***<sup>i</sup>* = (*ai*, *bi*, *ci*)*<sup>T</sup>* in a 1-parametric continuous set of planes *τ*(*t*). Instead of these reflexions, we use direct isometries based on the Study representation described in Section 2.2 (i.e., *e*<sup>3</sup> = *f*<sup>0</sup> = *f*<sup>1</sup> = *f*<sup>2</sup> = 0). Therefore, the locus of the corresponding platform anchor point <sup>m</sup>*<sup>i</sup>* with respect to the fixed frame can be parametrized as **Rm***<sup>i</sup>* <sup>+</sup> **<sup>t</sup>** with **<sup>m</sup>***<sup>i</sup>* = (*ai*, *bi*, <sup>−</sup>*ci*)*T*.

The condition that the point <sup>m</sup>*<sup>i</sup>* is located on a sphere centered in <sup>M</sup>*<sup>i</sup>* with radius *di* is a quadratic homogeneous equation in the Study parameters according to Husty [36]. For our setup, this so-called sphere condition Λ*<sup>i</sup>* has the following form:

$$\begin{aligned} \Lambda\_{i}: \quad & (a\_{i}^{2} + b\_{i}^{2} + c\_{i}^{2} + A\_{i}^{2} + B\_{i}^{2} + \mathbb{C}\_{i}^{2} - d\_{i}^{2})N - 4(c\_{i} + \mathbb{C}\_{i})c\_{0}f\_{3} + 4(b\_{i} + B\_{i})c\_{1}f\_{3} - 4(a\_{i} + A\_{i})c\_{2}f\_{3} \\ & - 2(a\_{i}A\_{i} + b\_{i}B\_{i} - c\_{i}\mathbb{C}\_{i})c\_{0}^{2} - 2(a\_{i}A\_{i} - b\_{i}B\_{i} + c\_{i}\mathbb{C}\_{i})c\_{1}^{2} + 2(a\_{i}A\_{i} - b\_{i}B\_{i} - c\_{i}\mathbb{C}\_{i})c\_{2}^{2} \\ & - 4(c\_{i}B\_{i} + b\_{i}\mathbb{C}\_{i})c\_{0}c\_{1} + 4(c\_{i}A\_{i} + a\_{i}\mathbb{C}\_{i})c\_{0}c\_{2} - 4(b\_{i}A\_{i} + a\_{i}B\_{i})c\_{1}c\_{2} + 4f\_{3}^{2} = 0. \end{aligned} \tag{3}$$

It corresponds to a quadric in the three-dimensional projective space *P*<sup>3</sup> with homogenous coordinates (*e*<sup>0</sup> : *e*<sup>1</sup> : *e*<sup>2</sup> : *f*3). The symmetric leg-replacement (cf. Theorem 1) can also easily be seen within this formula, as it is invariant under the following permutations: *Ai* ↔ *ai*, *Bi* ↔ *bi*, *Ci* ↔ *ci*. Due to this symmetry, we only have to find spatial rolling motions where three points have a spherical trajectory. This means that the corresponding three quardrics Λ1, Λ<sup>2</sup> and Λ<sup>3</sup> of *P*<sup>3</sup> have to have a curve in common, which can be a


In the following subsections these cases are discussed separately.

#### *3.1. Intersection Curve Is a Straight Line*

It is well-known that straight lines in the Study quadric correspond with either rotations about a line or straight translations. As the second option is not possible due to the sphere condition, we are only left with the rotation case. In the first step, we ask under which conditions two quadrics Λ<sup>1</sup> and Λ<sup>2</sup> have a straight line in common.

• **General Case:** Let us assume that <sup>M</sup><sup>1</sup> <sup>=</sup> <sup>M</sup><sup>2</sup> and <sup>m</sup>1(*t*) <sup>=</sup> <sup>m</sup>2(*t*) hold. Clearly, the straight line in *<sup>P</sup>*<sup>3</sup> has to correspond with a rotation about the line <sup>G</sup> spanned by <sup>M</sup><sup>1</sup> and <sup>M</sup>2. Therefore, the line <sup>g</sup>(*t*) spanned by m1(*t*) and m2(*t*) generates either a hyperboloid, cone or cylinder of revolution with axis G. Moreover, all these poses of the platform points have to be obtained by plane-reflexions of the points <sup>m</sup>1,0 and <sup>m</sup>2,0, respectively. This already implies that the 1-parametric set of planes *<sup>τ</sup>*(*t*) has to be a pencil of planes with axis <sup>G</sup>. Therefore, the leg lengths *<sup>d</sup>*<sup>1</sup> and *<sup>d</sup>*<sup>2</sup> are given by

$$d\_i = dist(\mathbb{M}\_i, \mathfrak{m}\_{i,0}) = \sqrt{(A\_i - a\_i)^2 + (B\_i - b\_i)^2 + (C\_i - c\_i)^2},\tag{4}$$

which is already the necessary and sufficient condition for the two quadrics Λ<sup>1</sup> and Λ<sup>2</sup> to have a straight line in common.

• **Special Case:** As the case <sup>M</sup><sup>1</sup> <sup>=</sup> <sup>M</sup><sup>2</sup> and <sup>m</sup>1(*t*) = <sup>m</sup>2(*t*) cannot arise (legs are identical), we only have to discuss one further case due to the symmetric leg-replacement. Without loss of generality, we can assume <sup>M</sup><sup>1</sup> <sup>=</sup> <sup>M</sup><sup>2</sup> and <sup>m</sup>1(*t*) = <sup>m</sup>2(*t*). Now, <sup>m</sup>1(*t*) = <sup>m</sup>2(*t*) has to trace a circle about the line G, which in fact implies the same condition given in Equation (4) for *<sup>i</sup>* <sup>=</sup> 1, 2.

Under consideration of the notation that (M*i*, m*i*) and (M*i*+3, m*i*+3) are coupled by the symmetric leg-replacement (for *i* = 1, 2, 3), we can immediately formulate the following theorem.

**Theorem 4.** *Up to symmetric leg-replacements, the three quadrics* Λ1*,* Λ<sup>2</sup> *and* Λ<sup>3</sup> *have a line in common if and only if Equation (4) holds for <sup>i</sup>* <sup>=</sup> 1, 2, 3 *and* <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> *are collinear. The corresponding self-motion of the hexapod is a butterfly self-motion about the line spanned by* <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup>3*, where* <sup>M</sup>*<sup>i</sup>* <sup>=</sup> <sup>m</sup>*i*+<sup>3</sup> *holds for <sup>i</sup>* <sup>=</sup> 1, 2, 3*.*

As these butterfly self-motions (cf. Figure 6, left) are trivial, they are not of further interest.

**Figure 6.** In all three illustrations, the plane of symmetry is always a vertical projecting plane; **left**: butterfly self-motion of a hexapod. Note that not necessarily the three legs obtained by the symmetric leg-replacements have to be added, but any legs where neither <sup>M</sup>*<sup>i</sup>* or <sup>m</sup>*i*(*t*) is collinear with <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> for *<sup>i</sup>* <sup>=</sup> 4, 5, 6; **center**: situation after performing the <sup>Δ</sup>-transform; **right**: two-dimensional spherical self-motion.

#### *3.2. Intersection Curve Is a Conic*

As the conic is a planar curve, there has to exist a linear relation between the homogenous coordinates (*e*<sup>0</sup> : *e*<sup>1</sup> : *e*<sup>2</sup> : *f*3) of *P*3. Therefore, we can apply the Theorems 2 and 3, which imply that we can only end up with planar/spherical symmetric rollings already discussed in Section 2.1.

#### *3.3. Intersection Curve Is Cubic*

A necessary condition that Λ1, Λ<sup>2</sup> and Λ<sup>3</sup> have a cubic curve in common is that the intersection of two quadrics split up into a line and this cubic. Therefore, condition Equation (4) has to hold. It can easily be checked that Λ*<sup>i</sup>* splits up into two planes:

$$
\Lambda\_i: \quad 4(\mathcal{C}\_i \mathfrak{e}\_0 - B\_i \mathfrak{e}\_1 + A\_i \mathfrak{e}\_2 - f\_0)(\mathfrak{e}\_i \mathfrak{e}\_0 - b\_i \mathfrak{e}\_1 + a\_i \mathfrak{e}\_2 - f\_0) = 0 \tag{5}
$$

under consideration of Equation (4). Therefore, the cubic has to split up into three lines, which all correspond to plane-symmetric butterfly self-motions already described in Theorem 4. As a consequence, no further discussion of this case is necessary.

#### *3.4. Intersection Curve Is Quartic*

We start with the following lemma, which helps to exclude the discussion of special cases arising.

**Lemma 1.** *If* <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> *are collinear and* <sup>m</sup><sup>1</sup> <sup>=</sup> <sup>m</sup><sup>2</sup> <sup>=</sup> <sup>m</sup><sup>3</sup> *holds (under consideration of symmetric leg-replacements), then the hexapod can only have the following plane-symmetric self-motions:*


**Proof.** If the carrier line <sup>G</sup> of <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> is always identical with the reflected carrier line <sup>g</sup> of <sup>m</sup>4, <sup>m</sup>5, <sup>m</sup>6, then it is clear that the motion can only be a butterfly motion (cf. Figure 6, left).

Moreover, it is trivial, that the motion can only be a planar one if G is always parallel to g (<sup>⇒</sup> planar symmetric rolling of Section 2.1).

Now, we discuss the remaining case that, during the plane-symmetric self-motion, one configuration exists, where G and g intersect in one point C. As the first three legs are always in a pencil of lines, one can make a so-called Δ-transform [37] (without changing the self-motion) such that <sup>M</sup><sup>1</sup> <sup>=</sup> <sup>C</sup> holds. This results in the following relations (cf. Figure 6, center):

$$
\overline{M\_1 M\_4} = \overline{m\_4 M\_4} \quad \text{and} \quad \overline{m\_1 m\_4} = \overline{M\_1 m\_4}.\tag{6}
$$

Under consideration of the plane-symmetric setup, these conditions can only be fulfilled if


This finishes the proof.

**Remark 4.** *Note that, for the two-dimensional spherical self-motion, the collinearity condition of* <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> *is not necessary. For the leg lengths of Equation (4) and* <sup>m</sup><sup>1</sup> <sup>=</sup> <sup>m</sup><sup>2</sup> <sup>=</sup> <sup>m</sup>3, *the three quadrics* <sup>Λ</sup>1*,* <sup>Λ</sup><sup>2</sup> *and* <sup>Λ</sup><sup>3</sup> *have already a plane in common due to Equation (5).*

If Λ1, Λ<sup>2</sup> and Λ<sup>3</sup> have a quadric curve in common, they are contained within a pencil of quadrics, which is already spanned by two of them. Therefore, we make the following ansatz:

$$
\Sigma: \quad \lambda\_1 \Lambda\_1 + \lambda\_2 \Lambda\_2 + \Lambda\_3 = 0 \quad \text{with} \quad \lambda\_1 \lambda\_2 \neq 0. \tag{7}
$$

*Robotics* **2018**, *7*, 27

In order to simplify the resulting direct computations, we can select the fixed frame in a clever way based on the following lemma:

**Lemma 2.** *By applying symmetric leg-replacements, we can assume that* <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> *span a plane (under consideration of Assumption 1).*

**Proof.** If <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> are collinear (span the line <sup>G</sup>), we apply the symmetric leg-replacement to the *<sup>i</sup>*th leg for *<sup>i</sup>* <sup>∈</sup> {1, 2, 3}. Due to Assumption 1, at least one of the <sup>M</sup>*i*+<sup>3</sup> are not located on <sup>G</sup>, thus, after a renumeration of anchor points, the lemma holds.

Due to Lemma 2, we can assume without loss of generality that the origin of the fixed frame equals <sup>M</sup>*i*, that <sup>M</sup>*<sup>j</sup>* is located on the positive <sup>x</sup>-axis of the fixed frame and that <sup>M</sup>*<sup>k</sup>* is located in the xy-plane of the fixed frame for pairwise distinct *<sup>i</sup>*, *<sup>j</sup>*, *<sup>k</sup>* <sup>∈</sup> {1, 2, 3}. As <sup>M</sup>1, <sup>M</sup>2, <sup>M</sup><sup>3</sup> is a triangle there always exist at least four (This number results from the fact that each triangle has at least two acute angles, whose two vertices can be used as <sup>M</sup>*i*) choices for *<sup>i</sup>*, *<sup>j</sup>*, *<sup>k</sup>* in a way that <sup>M</sup>*<sup>k</sup>* is located in the 1st quadrant of the xy-plane. After a may necessary renumeration, we can assume:

$$\mathbf{M}\_1 = (0,0,0)^T, \quad \mathbf{M}\_2 = (A\_2,0,0)^T, \quad \mathbf{M}\_3 = (A\_3,B\_3,0)^T,\tag{8}$$

with *A*<sup>2</sup> > 0, *A*<sup>3</sup> > 0 and *B*<sup>3</sup> > 0. Moreover, by selecting the unit-length in a suitable way, we can achieve *A*<sup>2</sup> = 1.

Based on this choice of the fixed frame, we inspect the coefficients of the linear combination Σ given in Equation (7) with respect to the Study parameters. We denote the coefficient of *e<sup>i</sup>* 0*e j* 1*ek* 2 *f l* 3 by <sup>Σ</sup>*ijkl*. From <sup>Σ</sup><sup>1100</sup> = −4*c*3*B*3, we get *<sup>c</sup>*<sup>3</sup> = 0. Moreover, we can compute *<sup>d</sup>*<sup>2</sup> <sup>3</sup> from Σ2000. Then, Σ<sup>0200</sup> equals 4*b*3*B*3, which implies *b*<sup>3</sup> = 0. From Σ<sup>1100</sup> = 4*λ*2*c*2, we get *c*<sup>2</sup> = 0. Now, Σ<sup>1001</sup> = 4*λ*1*c*<sup>1</sup> yields *c*<sup>1</sup> = 0. Then, we express *A*<sup>3</sup> and *B*<sup>3</sup> from Σ<sup>0101</sup> and Σ0011, which results in

$$A\_3 = -a\_3 - \lambda\_1 a\_1 - \lambda\_2 a\_2 - \lambda\_2, \qquad B\_3 = -\lambda\_1 b\_1 - \lambda\_2 b\_2. \tag{9}$$

Moreover, we can set *λ*<sup>1</sup> = −1 − *λ*<sup>2</sup> due to Σ0002. Then, we are only left with the following two conditions arising from Σ<sup>0110</sup> and Σ0020, respectively:

$$-a\_3b\_1 - a\_3b\_1\lambda\_2 + a\_3\lambda\_2 b\_2 - \lambda\_2 b\_2 = 0, \quad -a\_3^2 + a\_3a\_1 + a\_3a\_1\lambda\_2 - a\_3\lambda\_2 a\_2 - a\_3\lambda\_2 + \lambda\_2 a\_2 = 0. \tag{10}$$

Eliminating *λ*<sup>2</sup> out of these equations by resultant method yields:

$$a\_3(a\_3 - 1)(a\_3b\_1 - a\_3b\_2 - b\_1a\_2 + a\_1b\_2). \tag{11}$$

Therefore, we distinguish the following cases:

	- (a) *b*<sup>1</sup> = *b*2: now, the condition simplifies to *b*1(*a*<sup>1</sup> − *a*2) = 0. As *b*<sup>1</sup> = 0 implies *B*<sup>3</sup> = 0 a contradiction, we set *a*<sup>1</sup> = *a*2. Then, Equation (10) imply *λ*<sup>2</sup> = −*a*3, which results in the conditions of Lemma 1.
	- (b) *b*<sup>1</sup> = *b*2: Under this assumption, we can solve this equation for *a*3. A further two cases have to be distinguished:

$$
\lambda\_2 = \frac{(b\_1 a\_2 - b\_2 a\_1) b\_1}{(b\_1 - b\_2)(b\_2 a\_1 - b\_1 a\_2 - b\_2)}.\tag{12}
$$

It can easily be checked that the obtained solution corresponds to the hexapod's platform and base illustrated in Figure 7, which are also known as Duporcq's complete quadrilaterals [38]. In the remainder of the paper, this interesting solution, which is discussed/studied in more detail in the next section, is called *Duporcq hexapod*. Based on this notation, we can formulate the following theorem.

**Theorem 5.** *Besides the trivial cases mentioned in Lemma 1, the quadrics* Λ1*,* Λ<sup>2</sup> *and* Λ<sup>3</sup> *belong to a pencil if and only if they correspond to sphere conditions of three legs of a Duporcq hexapod (which are not identical under symmetric leg-replacements).*

**Figure 7.** Illustration of Duporcq's complete quadrilaterals: The base (**left**) is congruent with the platform (**right**).

#### **4. Duporcq Hexapod**

Due to the results obtained in Section 3 and Theorems 2 and 3, we can conclude that only the Duporcq hexapod of Theorem 5 possesses plane-symmetric self-motions, which are neither planar nor spherical motions. Therefore, we discuss this hexapod in more detail in this section.

In [38], Duporcq describes the following remarkable motion: *Let* <sup>M</sup>1, ... , <sup>M</sup><sup>6</sup> *and* <sup>m</sup>1, ... , <sup>m</sup><sup>6</sup> *be the vertices of two complete quadrilaterals, which are congruent. Moreover, the vertices are labeled in a way that* <sup>m</sup>*<sup>i</sup> is the opposite vertex of* <sup>M</sup>*<sup>i</sup> for <sup>i</sup>* ∈ {1, ... , 6} *(cf. Figure 7). Then, there exists a 2-parametric line-symmetric motion where each* <sup>m</sup>*<sup>i</sup> is running on spheres centered in* <sup>M</sup>*i.*

It is well known [39] (Section 1) that this is an architecturally singular hexapod and that one can remove any leg without changing the direct kinematics of the mechanism. The resulting pentapod is called *Duporcq pentapod* and its line-symmetric self-motions were also studied in [39]. For the coordinatisation of the platform points and base points used in Section 3.4, the 2-parametric line-symmetric self-motion fulfills *e*<sup>0</sup> = *f*<sup>0</sup> = 0 (cf. [39] (Section 4)).

**Remark 5.** *Note that the theoretic results of Section 4 are visualized on the basis of the following example:*

$$a\_1 = \frac{3}{2}, \quad a\_2 = b\_1 = 3, \quad b\_2 = \frac{9}{4}, \quad d\_1^2 = \frac{17}{2}, \quad d\_2^2 = \frac{33}{2}.\tag{13}$$

*This input data implies*

$$a\_3 = \frac{15}{2}, \quad A\_3 = \frac{8}{7}, \quad B\_3 = \frac{6}{7}, \quad d\_3^2 = \frac{13231}{196},\tag{14}$$

*with respect to the coordinatisation of the platform points and base points used in Section 3.4.*

#### *4.1. Plane-Symmetric Self-Motions of the Duporcq Hexapod*

First of all, it should be pointed out that the plane-symmetric self-motions of the Duporcq manipulator were not known until now. They can be computed as follows: We express *f*<sup>3</sup> from the condition Λ<sup>2</sup> − Λ<sup>1</sup> (which is linear in *f*3). Plugging the resulting expression into Λ<sup>1</sup> implies a homogenous quartic equation Υ in *e*0,*e*1,*e*2, which already represents the plane-symmetric self-motion (cf. Figure 8, left).

In the following, we are interested in the transition poses between this one-dimensional plane-symmetric self-motion and the above-mentioned two-dimensional line-symmetric one. Therefore, we only have to intersect the quartic curve Υ with *e*<sup>0</sup> = 0, which yields four of these so-called *branching singularities* [40]. These four transition poses are totally flat configurations of the Duporcq hexapod (cf. Table 1, Figure 8, red left and Figure 9).

**Remark 6.** *Note that a further prominent example of a hexapod, which possesses flat poses during its self-motion, is Bricard's flexible octahedron of type 3 (cf. [41]).*

*Moreover, it should be mentioned that the Duporcq hexapod is a kinematotropic mechanism (according to the notation of Wohlhart [42]). To the best of the author's knowledge, only one further hexapod with this property is known so far, which is the so-called Wren platform (see [42] (Section 3) and [21] (Section 2.2)).*

**Figure 8.** (**left**:) the quartic Υ is displayed under consideration of the normalization condition *N* = 1. For the example at hand, it consists of two components (as antipodal points yield the same displacement). Intersection points of the displayed spherical curve with the equator plane yield the branching singularities between plane-symmetric and line-symmetric self-motions. They are numbered from left to right by 1 to 4. (**right**): visualization of the surfaces Ξ*<sup>i</sup>* under the assumption that *u*<sup>0</sup> = 0 corresponds to the ideal plane. The surface Ξ*<sup>i</sup>* is a cylinder in direction of the *ui*-axis (for *i* = 1, 2, 3).



**Figure 9.** The four flat transition poses numbered from left to right by 1 to 4.

For the example at hand, the fixed axode can be described in the dual representation (If *ax* + *by* + *cz* + *d* = 0 is the equation of the plane of symmetry, then its dual representation is given by the homogenous quadruplet (*u*<sup>0</sup> : *u*<sup>1</sup> : *u*<sup>2</sup> : *u*3)=(*d* : *a* : *b* : *c*) according to [11] (Section 6.2)) as the intersection of the following three surfaces displayed in Figure 8, right:

$$\begin{aligned} \Xi\_1: \quad &178596u\_3^2u\_2^2 + 45924u\_0^4 + 69696u\_3^4 + 464508u\_2^3u\_0 + 293436u\_2u\_3^2u\_0 \\ &+ 573049u\_2^2u\_0^2 + 124921u\_3^2u\_0^2 + 108900u\_2^4 + 276336u\_2u\_0^3 = 0, \\ \Xi\_2: \quad &108900u\_1^4 + 592944u\_1^3u\_0 + 39204u\_3^2u\_1^2 + 688345u\_1^2u\_0^2 + 361152u\_3^2u\_1u\_0 \\ &- 309932u\_1u\_0^3 + 18724u\_0^4 + 831744u\_3^2u\_0^2 = 0, \\ \Xi\_3: \quad &264u\_1^2 + 709u\_1u\_0 + 198u\_2u\_1 + 912u\_2u\_0 + 326u\_0^2 = 0. \end{aligned}$$

Based on these surfaces, it can be checked (e.g., by computing the Hilbert-polynomial) that the fixed axoide corresponds to an algebraic curve of degree 4 in the dual representation. This curve can easily be parametrized as follows (two branches):

$$u\_0 = 1, \quad u\_2 = -\frac{264u\_1^2 + 709u\_1 + 326}{6(33u\_1 + 152)}, \quad u\_3 = \pm \frac{\sqrt{w}}{6(33u\_1 + 152)},\tag{16}$$

with *<sup>w</sup>* = <sup>300932</sup>*u*<sup>1</sup> − <sup>18724</sup> − <sup>688345</sup>*u*<sup>2</sup> <sup>1</sup> − <sup>592944</sup>*u*<sup>3</sup> <sup>1</sup> − <sup>108900</sup>*u*<sup>4</sup> <sup>1</sup>. Moreover it can be seen (cf. Figure 8, right) that the curve has two components. The left one is obtained for *u*<sup>1</sup> ∈ [0.07650139; 0.27046582] and the right one for *u*<sup>1</sup> ∈ [−3.17251656; −2.61929914]. Note that the borders of the two intervals are the roots of *w*, which can be computed explicitly, but, in order to avoid too long expressions, we displayed them numerically.

Based on the parametrization given in Equation (16), one can easily calculate (cf. [11] (Equation (6.8))) the curve of regression of the fixed axode, which is also displayed in Figure 10.

**Figure 10.** Trajectories of the platform points during the plane-symmetric self-motion between the flat poses 1 and 2 (**left**) and the flat poses 3 and 4 (**right**). Moreover, the fixed axodes Φ<sup>0</sup> are displayed, which look like cones upon the first viewing. However, a blow up (in the lower left corner and upper right corner, respectively) of the region of the supposed vertex shows the line of regression c of <sup>Φ</sup>0. For the illustrated self-motion, the tangents of c in the two end points span the carrier plane (xy-plane) of the flat poses. If one considers the complete self-motion, then c has four cusps (obtained by reflecting the illustrated curve at the xy-plane).

#### *4.2. Point-Symmetric Self-Motions of the Duporcq Hexapod*

Finally, we want to correct a statement given in [39] (Remark 4), where it is stated that


The first statement is true in contrast to the second one. In fact, the pure translational self-motion (which can be considered as point-symmetric self-motion) has two branching singularities, where they can switch into a 2-parametric line-symmetric self-motion. This can easily be seen as follows:

For the coordinatisation of the platform points and base points used in Section 3.4, the 1-parametric point-symmetric motion fulfills *e*<sup>0</sup> = *e*<sup>1</sup> = *e*<sup>2</sup> = *f*<sup>3</sup> = 0. It can be computed by expressing *f*<sup>1</sup> from Λ<sup>2</sup> − Λ<sup>1</sup> (which is linear in *f*1). Plugging the resulting expression into Λ<sup>1</sup> implies a homogenous quadratic equation in *e*3, *f*0, *f*2, which already represents the point-symmetric self-motion. By the additional condition *f*<sup>0</sup> = 0, we obtain the two mentioned branching singularities, which are again totally flat configurations of the Duporcq hexapod ( cf. Table 2 and Figure 11).

**Table 2.** The Study parameters of the two flat transition poses illustrated in Figure 11. As they result as roots of a polynomial of degree 2, they can be computed explicitly, but in order to avoid too long expressions they are again displayed numerically.


**Figure 11.** The first and second flat pose (**left** and **center**, respectively) and the translational self-motion between them (**right**). This circular translation can also be seen as a point-symmetric motion, where the corresponding curve (half-circle) is illustrated in red.

Finally it should be noted that there is no branching singularity between plane-symmetric self-motions and point-symmetric self-motions as *e*<sup>0</sup> = *e*<sup>1</sup> = *e*<sup>2</sup> = *e*<sup>3</sup> = 0 has to hold, which contradicts the normalizing condition *N* = 1. Summed up one can say, that the Duporcq hexapod is a twofold kinematotropic mechanism, as there are branching singularities between the two-dimensional line-symmetric self-motion and the one-dimensional


Due to its kinematotropic behavior and its total flat branching singularities the Duporcq manipulator is possibly of interest for the design of deployable structures.

#### **5. Conclusions**

This paper gives a complete classification of hexapods with plane-symmetric self-motions. It turns out that besides the planar/spherical symmetric rollings with circular paths and two trivial cases (butterfly self-motion and two-dimensional spherical self-motion), only one further solution exists, which is the so-called Duporcq hexapod. This is the only manipulator possessing plane-symmetric self-motions, which are neither planar nor spherical motions (and therefore also no line-symmetric motions). Moreover, the Duporcq hexapod is may be of interest for the design of deployable structures due to its kinematotropic behavior and total flat branching singularities.

**Funding:** The author is supported by Grant No. P 24927-N25 of the Austrian Science Fund FWF within the project "Stewart Gough platforms with self-motions".

**Conflicts of Interest:** The author declares no conflict of interest.

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Kinematics Analysis of a Class of Spherical PKMs by Projective Angles**

**Giovanni Legnani 1,2,\* and Irene Fassi <sup>2</sup>**


Received: 4 July 2018; Accepted: 17 September 2018; Published: 20 September 2018

**Abstract:** This paper presents the kinematics analysis of a class of spherical PKMs Parallel Kinematics Machines exploiting a novel approach. The analysis takes advantage of the properties of the projective angles, which are a set of angular conventions of which their properties have only recently been presented. Direct, inverse kinematics and singular configurations are discussed. The analysis, which results in the solution of easy equations, is developed at position, velocity and acceleration level.

**Keywords:** projective angles; spherical PKM; direct kinematics; inverse kinematics

#### **1. Introduction**

Spherical PKMs Parallel Kinematics Machines are a class of parallel manipulators whose mobile platform may rotate around one fixed point. They typically have 3 DOF Degrees of Freedom. They have been studied for a long time [1,2].

It is possible to identify two big classes of spherical PKMs. In the first one (class A), the spherical motion is guaranteed by the convergence in one point of the rotation axes of all of the joints. In the PKM of the second class (class B), the mobile platform is connected to the ground by a spherical or a universal joint that is placed in the center of rotation and the motion is transmitted to it by external legs that may have revolute joints of which the axes do not pass for the center of the rotations.

Among the spherical PKMs belonging to the first class, one of the most popular is the agile eye, which was firstly proposed by Gosselin and was then also adopted by others [2–7]. Its structure is presented in Figure 1. It has three identical legs, each with three revolute joints which have axes that all converge in the same point around which the end-effector rotates. This PKM exhibits an excellent rotational ability and it can assume a compact structure (Figure 2). However, as discussed in the following sections, this PKM is over constrained and, thus, requires high manufacturing and assembly precision to ensure a correct motion without overloading the structure with undesired internal stresses.

The properties of the projective angles can be used to describe the 3D rotation motion of any rigid body and, in this sense, are general. It is a particular angular convention with pros and cons, as with any other convention (Euler angles, quaternions . . . ).

The application to PKM is particularly convenient to the class of spherical manipulators based on rotational joints forming cardan sequences, because in this case, the angles of the angular convention coincide with the joint angles of the PKM.

**Figure 1.** The kinematic structure of the agile eye.

**Figure 2.** The agile eye (Adapted from [7]).

One example of the second class is the 3-DOF 3SPS/S that is presented in [8–11], which has three legs with spherical-prismatic-spherical-joints and one additional spherical joint connecting the mobile platform to the fixed base. Another example is described in [12,13], and it is shown in Figure 3. This PKM (better described in the following paragraphs of this paper) can be considered a non-overconstrained version of the agile-eye. The legs are serial kinematic chains for which standard methodologies for their analysis are available [14,15].

Several approaches have been developed for the synthesis of the different spherical PKMs. For example, Kong and Gosselin [16,17] proposed the adoption of the screw theory. Fang and Tsai [18] developed a family of spherical PKMs with legs of identical structure, while Karouia and Hervé [19] developed spherical PKMs with legs with different structures. A list with the classification of different spherical manipulators has been suggested by Hess-Coelho [20], which includes a methodology to evaluate their performances. Many other parallel orientation mechanisms have been described in numerous papers (e.g., [3,21–31]). Generally, the first joint of each leg is actuated, however some manipulators adopt transmissions based on parallelograms [31,32].

Analogous concepts were used to design non-redundant PKM with decoupled rotational and translational motion [33] and 2D orientating mechanisms [34,35].

**Figure 3.** A non-overconstrained version of the agile-eye.

The concept of projective angles has been introduced by [36] and represents a useful approach for the kinematic analysis of PKMs. In [12], this concept has been applied to the angular position analysis of a non-overconstrained variation of the agile eye.

The present paper extends the abovementioned approach to the full kinematic analysis of some spherical PKMs, resulting in a set of easily solvable equations, at position, velocity and acceleration level. Specifically, the proposed approach will be used to solve the direct and inverse kinematics of spherical manipulators, belonging to the two mentioned classes (class A, B).

#### **2. Materials and Methods**

#### *2.1. The Agile Eye*

The 3RRR agile eye (Figures 1 and 2) is a particular version of a spherical PKM in which the axes of the rotational joints of each link form an angle of 90◦ and they all converge in one point, which is the centre of rotation.

The mobility of the agile-eye can be studied by the well know Grubler-Kutzbach formula. Having seven bodies and thus, a total of 42 DoF (degrees of freedom) and nine revolute joints for a total of 45 constrains, this means that there are six redundant constrains since the PKM clearly has 3 DoF.

The motion is possible because all of the joint axes converge in one point. The redundant constraints can be removed in several ways by changing the nature of the joints. Recently, a new non-overconstrained version of the agile-eye (Figure 3) was presented in [12].

The mobile platform is connected to the fixed base by three legs having a series of three revolute and three prismatic joints. The first revolute joint of each leg is actuated; in addition, a spherical joint is also present and connects the fixed base and the mobile platform. The PKM is of type 3RRRPPP/S. The joint actuator coordinates of this PKM are the rotations of the actuators that are connected to the first joint of each leg:

$$Q = \begin{bmatrix} \mathfrak{a}\_1 \\ \mathfrak{a}\_2 \\ \mathfrak{a}\_3 \end{bmatrix} \tag{1}$$

where the subscript *i* = 1, 2, 3 indicates the leg. The rotations of the non-actuated joints are represented by the angles *β<sup>i</sup>* and *γi*. The choice of the name for the angles *α<sup>i</sup>* and *βi*, which is identical to those that we will use for the definitions of the projective angles (see the next section), is justified by the analogies that will be discussed further in this paper.

This PKM can be considered a variant of the agile-eye because the sequences of the revolute joints are the same. The prismatic joints remove the over constraints by leaving three additional translation degrees of freedom which are removed by the spherical joint.

The direct and the inverse kinematics studies the relation between the attitude of the mobile platform and the rotation of the joint actuators, and since the sequence of the joints is the same in the two platforms, their equation may be written in a unified way. Recently, a solution of the position analysis of the PKM of Figure 3 which was based on the concept of the projective angles was presented [12]. Moreover, the possibility to also use projective angles for velocity and acceleration analysis has been proposed in [13]. By joining these results, it is possible to propose a methodology for a full kinematic analysis of the presented class of spherical PKM.

#### *2.2. The Projective Angles*

The angular position (attitude) of one body may be represented by the rotation matrix expressing the angular position of a frame that is attached on the body with respect to a fixed frame.

We indicate by X, Y and Z the fixed axes, and by U, V and W the mobile axes (Figures 4–6). The rotation matrix is then:

$$\mathbf{R} = [\mathbf{u}, \mathbf{v}, \mathbf{w}] = \begin{bmatrix} u\_x & v\_x & w\_x \\ u\_y & v\_y & w\_y \\ u\_z & v\_z & w\_z \end{bmatrix} \tag{2}$$

**Figure 4.** Definition of the projective angles *α<sup>i</sup>* and of the auxiliary angles *βi*.

**Figure 5.** A 3D model to show the projective angles *α<sup>i</sup>* and of the auxiliary angles *βi*.

**Figure 6.** Visualization of the projective angles on the xy, yz and xz plane; in this example, the projective angles assume the value: 60◦, 30◦, 45◦.

The projective angles *α*1, *α*<sup>2</sup> and *α*<sup>3</sup> are defined as follows (Figures 5 and 6):


The definition of the following auxiliary angles *β*1, *β*<sup>2</sup> and *β*<sup>3</sup> is also necessary for the discussion (Figure 4).


and so, the angular position of the mobile frame is:

$$\mathbf{R} = \begin{bmatrix} \mathbf{U} & \mathbf{V} & \mathbf{W} \\ \mathbf{U} & \mathbf{V} & \mathbf{W} \\ \end{bmatrix} = \begin{bmatrix} \cos a\_3 \cos \beta\_3 & -\sin \beta\_1 & \sin a\_2 \cos \beta\_2 \\ \sin a\_3 \cos \beta\_3 & \cos a\_1 \cos \beta\_1 & -\sin \beta\_2 \\ -\sin \beta\_3 & \sin a\_1 \cos \beta\_1 & \cos a\_2 \cos \beta\_2 \end{bmatrix} \tag{3}$$

It is important to note that, by construction, cos(*βi*) > 0.

The projective angles of the mobile frame may by extracted from the rotation matrix **R** as:

$$\mathbf{A} = \begin{bmatrix} \alpha\_1 \\ \alpha\_2 \\ \alpha\_3 \end{bmatrix} = \begin{bmatrix} \operatorname{atan2}(v\_{z\_{\mathcal{I}}}, v\_{\mathcal{Y}}) \\ \operatorname{atan2}(w\_{x\_{\mathcal{I}}}, w\_z) \\ \operatorname{atan2}(u\_{\mathcal{Y}}, u\_x) \end{bmatrix} \tag{4}$$

where atan2(a,b) is the four quadrant extension of the arctangent function atan(a/b). The possibility of using atan2 rather than other inverse trigonometric function (e.g., atan) eliminates the ambiguity of the identification of the correct quadrant and the risk of division by 0.

Therefore, knowing the angular position of the mobile frame (i.e., the rotation matrix R), the projective angles may be easily evaluated. The inverse operation (i.e., determining **R** when the projective angles are known) will be discussed further in this paper (Section 2.6).

#### *2.3. Inverse Kinematics of the Spherical PKM*

To study the mentioned spherical PKM, a fixed frame and a mobile frame were established, as shown in Figures 1–3. To simplify the analysis, the coordinate axes are chosen coincidently to the rotation axis of some revolute joints. The XYZ axis of the fixed base frame are parallel with the axes of the actuated joints, while the UVW axes of the mobile frame are parallel with the axis of the joints *γ<sup>i</sup>* of the mobile frame. The inverse kinematics of the considered spherical PKM can be solved by realizing that the joints of each leg constitute a Cardanic sequence. With reference to Figures 3 and 4, we get:

leg 1: rotations *α*1*β*1*γ*<sup>1</sup> around the following axis sequence XZY,

leg 2: rotations *α*2*β*2*γ*<sup>2</sup> around YXZ,

leg 3: rotations *α*3*β*3*γ*<sup>3</sup> around ZYX.

The rotation matrix **R** expressing the attitude of the mobile platform can easily be evaluated by considering each different leg. For leg 1, we got:

$$\mathbf{R} = \mathbf{R}\_1 = \begin{bmatrix} \cos \beta\_1 \cos \gamma\_1 & -\sin \beta\_1 & \cos \beta\_1 \sin \gamma\_1 \\ \cos a\_1 \sin \beta\_1 \cos \gamma\_1 + \sin a\_1 \sin \gamma\_1 & \cos a\_1 \cos \beta\_1 & \cos a\_1 \sin \beta\_1 \sin \gamma\_1 - \sin a\_1 \cos \gamma\_1 \\ \sin a\_1 \sin \beta\_1 \cos \gamma\_1 - \cos a\_1 \sin \gamma\_1 & \sin a\_1 \cos \beta\_1 & \sin a\_1 \sin \beta\_1 \sin \gamma\_1 + \cos a\_1 \cos \gamma\_1 \end{bmatrix} \tag{5}$$

and similar equations may be written for legs 2 and 3, which lead to the matrices **R**<sup>2</sup> and **R**3. By indicating the rotation matrix as:

$$\mathbf{R} = \begin{bmatrix} u\_x & v\_x & w\_x \\ u\_y & v\_y & w\_y \\ u\_z & v\_z & w\_z \end{bmatrix} = \begin{bmatrix} r\_{11} & r\_{12} & r\_{13} \\ r\_{21} & r\_{22} & r\_{23} \\ r\_{31} & r\_{32} & r\_{33} \end{bmatrix} \tag{6}$$

the joint rotations can easily be determined, obtaining two solutions for each leg.

For leg 1 we got:

$$\begin{cases} a\_{11} = \operatorname{atan2}(r\_{32}, r\_{22})\\ \beta\_{11} = \operatorname{asin}(-r\_{12})\\ \gamma\_{11} = \operatorname{atan2}(r\_{13}, r\_{11}) \end{cases}, \left\{ \begin{array}{l} a\_{12} = \operatorname{atan2}(-r\_{32}, -r\_{22})\\ \beta\_{12} = \pi - \operatorname{asin}(-r\_{12})\\ \gamma\_{12} = \operatorname{atan2}(-r\_{13}, -r\_{11}) \end{array} \right. \tag{7}$$

and similar equations may be written for legs 2 and 3. The relations between the two solutions for the *i*-th leg is:

$$\begin{cases} \alpha\_{i2} = \alpha\_{i1} + \pi \\ \beta\_{i2} = \pi - \beta\_{i1} \\ \gamma\_{i2} = \gamma\_{i1} + \pi \end{cases} \tag{8}$$

and the inverse kinematics is therefore solved by selecting the equations that were associated with the first joint of each leg:

$$Q = \begin{bmatrix} a\_1 \\ a\_2 \\ a\_3 \end{bmatrix} = \begin{bmatrix} \operatorname{atan2}(v\_{z\prime}, v\_y) + k\_1\pi \\ \operatorname{atan2}(w\_{x\prime}, w\_z) + k\_2\pi \\ \operatorname{atan2}(u\_{y\prime}, u\_x) + k\_3\pi \end{bmatrix} \quad k\_i = 0, 1 \tag{9}$$

A total of 8 possible solutions were found. Kinematic singularities are present for the configurations for which the atan2 function is not defined, i.e., atan2(0,0) which happens when the second joint angle of one leg is ±90 degrees and so cos(*βi*) = 0.

#### *2.4. Direct Kinematics*

To solve the direct kinematics (find the matrix **R** when the joint coordinates *α<sup>i</sup>* are known), we can write the rotation matrix of the mobile platform by choosing one column for each of the matrix of each leg (Equation (5) for leg 1 and similar equations for the other legs). More precisely, we can bring the second column from R1, the third column from R2 and the first one from R3.

$$\mathbf{R} = \begin{bmatrix} \mathbf{U} & \mathbf{V} & \mathbf{W} \end{bmatrix} = \begin{bmatrix} \cos a\_3 \cos \beta\_3 & -\sin \beta\_1 & \sin a\_2 \cos \beta\_2 \\\\ \sin a\_3 \cos \beta\_3 & \cos a\_1 \cos \beta\_1 & -\sin \beta\_2 \\\\ -\sin \beta\_3 & \sin a\_1 \cos \beta\_1 & \cos a\_2 \cos \beta\_2 \end{bmatrix} \tag{10}$$

assuming cos(*βi*) = 0 and dividing each column by the corresponding cos(*βi*), we got:

$$\mathbf{R'} = \begin{bmatrix} \mathbf{U'} & \mathbf{V'} & \mathbf{W'} \end{bmatrix} = \begin{bmatrix} \cos a\_3 & -a' & \sin a\_2 \\ \sin a\_3 & \cos a\_1 & -b' \\ -c' & \sin a\_1 & \cos a\_2 \end{bmatrix} \tag{11}$$

with *a*' = tg*β*1, *b*' = tg*β*<sup>2</sup> and c' = tg*β*3.

Since we are considering the direct kinematics, the angles α<sup>i</sup> are given, while *a*', *b*' and *c*' can be computed by the conditions of orthogonality of the three columns:

$$\mathbf{V}' \cdot \mathbf{W}' = 0, \; \mathbf{W}' \cdot \mathbf{U}' = 0, \; \mathbf{U}' \cdot \mathbf{V}' = 0 \tag{12}$$

that can be expressed as:

$$\begin{cases} a' \sin a\_2 + b' \cos a\_1 - \cos a\_2 \sin a\_1 = 0 \\ b' \sin a\_3 + c' \cos a\_2 - \cos a\_3 \sin a\_2 = 0 \\ c' \sin a\_1 + a' \cos a\_3 - \cos a\_1 \sin a\_3 = 0 \end{cases} \tag{13}$$

that in matrix form is:

$$
\begin{bmatrix}
\sin a\_2 & \cos a\_1 & 0 \\
0 & \sin a\_3 & \cos a\_2 \\
\cos a\_3 & 0 & \sin a\_1
\end{bmatrix}
\begin{bmatrix}
a' \\ b' \\ c'
\end{bmatrix} = \begin{bmatrix}
\cos a\_2 \sin a\_1 \\
\cos a\_3 \sin a\_2 \\
\cos a\_1 \sin a\_3
\end{bmatrix} \tag{14}
$$

which is a linear system with respect to *a*', *b*' and *c*', of which the solution is:

$$\begin{cases} \begin{array}{c} a' = \frac{\cos a\_2 \sin a\_3 - \cos a\_1 \cos a\_3 \sin a\_2 \sin a\_1}{\Delta} \\ b' = \frac{\cos a\_3 \sin a\_1 - \sin a\_2 \cos a\_1 \sin a\_3 \cos a\_2}{\Delta} \\ c' = \frac{\cos a\_1 \sin a\_2 - \cos a\_3 \cos a\_2 \sin a\_1 \sin a\_3}{\Delta} \end{array} \tag{15}$$

where Δ = cos *α*<sup>3</sup> cos *α*<sup>2</sup> cos *α*<sup>1</sup> + sin *α*<sup>3</sup> sin *α*<sup>2</sup> sin *α*1, which is the determinant of the linear system that must not be zero for the invertibility of the matrix. Moreover, the determinant must be positive (Δ > 0) because the mobile frame is right (for Δ < 0 we get a left frame, while Δ = 0 results in a singular configuration).

From Equation (15), the value of the angles *β<sup>i</sup>* is immediately found:

$$\begin{aligned} \beta\_1 = \text{atan}(a') + k\_1 \pi\_\prime \ \beta\_2 = \text{atan}(b') + k\_2 \pi\_\prime \ \beta\_3 = \text{atan}(c') + k\_3 \pi\_\prime \end{aligned} \tag{16}$$

with *ki* = 0, 1 and so the direct kinematics has 8 different solutions and matrix **R** (Equation (10)) is determined.

*Robotics* **2018**, *7*, 59

By only considering the right frames, the singular configurations happened for the following angular position of the mobile platform:

$$\mathbf{R} = \mathbf{R\_{a}} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{bmatrix} \tag{17}$$

$$\mathbf{R} = \mathbf{R\_b} = \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{bmatrix} \tag{18}$$

$$\mathbf{R} = \mathbf{R\_c} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & -1 \\ -1 & 0 & 0 \end{bmatrix} \tag{19}$$

$$\mathbf{R} = \mathbf{R\_d} = \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & 1 \\ -1 & 0 & 0 \end{bmatrix} \tag{20}$$

which happens for cos(*βi*) = 0 and sin(*βi*) = ±1. For these configurations, the actuated joint angles *α<sup>i</sup>* may assume any value.

#### *2.5. Projective Angles and Spherical PKM*

An analysis of the definition of the projective angles and of the kinematics of the considered spherical PKM highlights several analogies.

It is worth noting that Equations (4) and (9) are very similar and that they coincide for *ki* = 0. It is therefore possible to conclude that if for the PKM we choose the solution with cos(*βi*) > 0, the joint coordinates of the PKM coincide with the projective angles of the mobile platform.

Similarly, the procedure that was adopted to solve the direct kinematics of the PKM can be adopted to compute the angular position of one frame which corresponds to an assigned value of the projective angles *αi*. In this case, however, we must always assume cos(*βi*) > 0, and so the solution is unique.

Finally, if we describe the angular position of the mobile platform using the projective angles *A*, their relation to the joint coordinates *Q* is:

$$\mathbf{A} = \mathbf{Q} + \begin{bmatrix} \mathbf{k}\_1 \pi \\ \mathbf{k}\_2 \pi \\ \mathbf{k}\_3 \pi \end{bmatrix}, \text{ ki} = \mathbf{0}, \text{ 1} \tag{21}$$

and so

$$J = \frac{\partial A}{\partial Q} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \tag{22}$$

According to the above equations, and adopting the projective angle convention, the PKM can be considered 'decoupled', in the sense that each actuator influences just one of the end-effector coordinates [37]. Therefore, for *ki* = 0, the joint coordinates of the PKM coincide with the projective angles of the mobile frame and also the angle *β<sup>i</sup>* that was used in the description of the projective angles and in the spherical PKM (2nd joint of each leg) have the same values. If the 2nd solution is chosen for the PKM, its angles *α<sup>i</sup>* and *β<sup>i</sup>* differ from those of the projective angles by 180◦ (see Equation (21) for analogy). Of course, due to the non-integrability of the angular velocity vector Ω it is:

$$
\dot{A} = \dot{Q} \text{ but } \Omega \neq \dot{Q} \tag{23}
$$

because it is impossible to define a set of angular coordinates representing a 3D orientation of one body which has a time derivative that coincides with its angular velocity Ω [37–39].

A broader analysis of velocity and acceleration is found in the next sections. The analysis will be performed with reference to the abovementioned PKMs; by remembering Equation (21), the results are immediately extended to the projective angles.

We may conclude that the projective angles are a sort of "intrinsic" notation to study the considered spherical PKMs.

#### *2.6. From Projective Angle to Rotation Matrix*

Considering the analogies between the kinematic of the spherical PKM and the projective angles, the rotation matrix R that is associated with a set of projective angles *A* is found by Equations (10) and (16) assuming *k*<sup>1</sup> = *k*<sup>2</sup> = *k*<sup>3</sup> = 0 since, by definition of the projective angles, the cosine of the angles *β<sup>i</sup>* are positive.

#### *2.7. Velocity Analysis*

Since the legs of the PKM form a Cardanic sequence, the velocity analysis is easily developed. The solution proposed in the following can be applied both to the spherical PKM under study and to the projective angles.

By considering the different legs, we have a first rotation α around one Cartesian axis, a second *β* rotation around an axis rotated by *α* and, finally, a third rotation γ around one axis which depends on *α* and *β*. For instance, for leg 1, the three rotation axes are defined by the following unit vectors *a*<sup>11</sup> = [1 0 0]t , *a*<sup>12</sup> = [0 − sin*α*<sup>1</sup> cos*α*1] <sup>t</sup> and *<sup>a</sup>*<sup>13</sup> = [−sin*β<sup>i</sup>* cos*α*<sup>1</sup> cos*β<sup>i</sup>* sinα<sup>1</sup> cos*βi*] t ; therefore, for the three legs, and representing the angular velocity of the frame by Ω = *ω<sup>x</sup> ω<sup>y</sup> ω<sup>z</sup> T* , we obtain the following results .

$$
\Omega \Omega = a\_{i1}\dot{a}\_i + a\_{i2}\dot{\beta}\_i + a\_{i3}\dot{\gamma}\_{i3} \tag{24}
$$

And so, for leg 1, it is:

$$
\begin{bmatrix}
\omega\_{\chi} \\
\omega\_{y} \\
\omega\_{z}
\end{bmatrix} = \begin{bmatrix}
1 & 0 & -\sin\beta\_{1} \\
0 & -\sin\alpha\_{1} & \cos\alpha\_{1}\cos\beta\_{1} \\
0 & \cos\alpha\_{1} & \sin\alpha\_{1}\cos\beta\_{1}
\end{bmatrix} \begin{bmatrix}
\dot{\alpha}\_{1} \\
\dot{\beta}\_{1} \\
\dot{\gamma}\_{1}
\end{bmatrix} \tag{25}
$$

and similar equations may be written for legs 2 and 3. The above presented equations may be inverted as:

$$
\begin{bmatrix}
\dot{a}\_1\\ \dot{\beta}\_1\\ \dot{\gamma}\_1
\end{bmatrix} = \begin{bmatrix}
1 & \cos a\_1 \frac{\sin \beta\_1}{\cos \beta\_1} & \sin a\_1 \frac{\sin \beta\_1}{\cos \beta\_1} \\
0 & -\sin a\_1 & \cos a\_1 \\
0 & \frac{\cos a\_1}{\cos \beta\_1} & \frac{\sin a\_1}{\cos \beta\_1}
\end{bmatrix} \begin{bmatrix}
\omega\_x\\ \omega\_y\\ \omega\_z
\end{bmatrix} \tag{26}
$$

By considering the first row of the matrix of Equation (26) and the analogous equations for leg 2 and 3, the velocity of the actuated joints is then obtained by the angular velocity of the mobile platform:

$$\dot{Q} = \begin{bmatrix} \dot{a}\_1 \\ \dot{a}\_2 \\ \dot{a}\_3 \end{bmatrix} = \begin{bmatrix} 1 & \cos a\_1 \frac{\sin \beta\_1}{\cos \beta\_1} & \sin a\_1 \frac{\sin \beta\_1}{\cos \beta\_1} \\\\ \sin a\_2 \frac{\sin \beta\_2}{\cos \beta\_2} & 1 & \cos a\_2 \frac{\sin \beta\_2}{\cos \beta\_2} \\\\ \cos a\_3 \frac{\sin \beta\_3}{\cos \beta\_3} & \sin a\_3 \frac{\sin \beta\_3}{\cos \beta\_3} & 1 \end{bmatrix} \begin{bmatrix} \omega\_x \\ \omega\_y \\ \omega\_z \end{bmatrix} = \text{C} \Omega \tag{27}$$

while the angular velocity of the end-effector is obtained by the angular velocity of the actuators by inverting the equation:

$$
\boldsymbol{\Omega} = \begin{bmatrix} \omega\_{\boldsymbol{x}} \\ \omega\_{\boldsymbol{y}} \\ \omega\_{\boldsymbol{z}} \end{bmatrix} = \begin{bmatrix} -\frac{\cos a\_{2} \sin a\_{3}}{\Lambda \tan \beta\_{1}} & \frac{\sin a\_{1} \sin a\_{3}}{\Lambda \tan \beta\_{2}} & \frac{\cos a\_{1} \cos a\_{2}}{\Lambda \tan \beta\_{3}} \\\\ \frac{\cos a\_{2} \cos a\_{3}}{\Lambda \tan \beta\_{1}} & -\frac{\cos a\_{3} \sin a\_{1}}{\Lambda \tan \beta\_{2}} & \frac{\sin a\_{1} \sin a\_{2}}{\Lambda \tan \beta\_{3}} \\\\ \frac{\sin a\_{2} \sin a\_{3}}{\Lambda \tan \beta\_{1}} & \frac{\cos a\_{1} \cos a\_{3}}{\Lambda \tan \beta\_{2}} & -\frac{\cos a\_{1} \sin a\_{2}}{\Lambda \tan \beta\_{3}} \end{bmatrix} \begin{bmatrix} \dot{\boldsymbol{a}}\_{1} \\ \dot{\boldsymbol{a}}\_{2} \\ \dot{\boldsymbol{a}}\_{3} \end{bmatrix} = \boldsymbol{\mathcal{C}}^{-1} \boldsymbol{\dot{Q}} \tag{28}
$$

where Δ = cos *α*<sup>3</sup> cos *α*<sup>2</sup> cos *α*<sup>1</sup> + sin *α*<sup>3</sup> sin *α*<sup>2</sup> sin *α*1.

Equations (27) and (28) are defined for all of the non-singular configurations (for direct or inverse kinematics), which implies:

$$
\Delta \neq 0, \cos \beta\_i \neq 0 \text{ and } \tan \beta\_i \neq 0 \tag{29}
$$

#### *2.8. Acceleration Analysis*

The acceleration analysis may be developed by starting from the velocity relation Equation (27) which synthetically reads: .

$$Q = \mathbb{C}\Omega\tag{30}$$

by a derivation with respect to the time, we found that the joint actuators acceleration was necessary to give an angular acceleration . Ω to the end-effector:

$$
\ddot{Q} = \dot{\mathcal{C}}\Omega + \mathcal{C}\dot{\Omega} \tag{31}
$$

and inversely, the angular acceleration of the mobile platform is:

$$
\dot{\Omega} = \mathbb{C}^{-1} \left( \ddot{\mathbb{Q}} - \dot{\mathbb{C}} \Omega \right) \tag{32}
$$

With

$$\dot{\mathbf{C}} = \sum\_{i=1}^{3} \frac{\partial \mathbf{C}}{\partial \alpha\_{i}} \dot{\alpha}\_{i} + \sum\_{i=1}^{3} \frac{\partial \mathbf{C}}{\partial \beta\_{i}} \dot{\beta}\_{i} = \mathbf{C}\_{a} + \mathbf{C}\_{b} \tag{33}$$

where Ca and Cb are:

$$\mathbf{C\_{a}} = \begin{bmatrix} 0 & -\dot{\alpha}\_{1}\sin\alpha\_{1}\tan\beta\_{1} & \dot{\alpha}\_{1}\cos\alpha\_{1}\tan\beta\_{1} \\ \dot{\alpha}\_{2}\cos\alpha\_{2}\tan\beta\_{2} & 0 & -\dot{\alpha}\_{2}\sin\alpha\_{2}\tan\beta\_{2} \\ -\dot{\alpha}\_{3}\sin\alpha\_{3}\tan\beta\_{3} & \dot{\alpha}\_{3}\cos\alpha\_{3}\tan\beta\_{3} & 0 \end{bmatrix} \tag{34}$$

The time derivatives of the angles *β<sup>i</sup>* to be inserted in Cb are easily obtained from Equation (26) and those for legs 2 and 3 as:

$$
\begin{bmatrix}
\dot{\beta}\_1\\ \dot{\beta}\_2\\ \dot{\beta}\_3
\end{bmatrix} = \begin{bmatrix}
0 & -\sin\alpha\_1 & \cos\alpha\_1\\ \cos\alpha\_2 & 0 & -\sin\alpha\_2\\ -\sin\alpha\_3 & \cos\alpha\_3 & 0
\end{bmatrix} \begin{bmatrix}
\omega\_x\\ \omega\_y\\ \omega\_z
\end{bmatrix} \tag{35}
$$

The proposed solution can be applied both to the spherical PKM under study and to the projective angles.

#### **3. Results**

This paper has presented a methodology for the full kinematics analysis of a class of spherical PKMs. This methodology takes advantage of the properties of the projective angles for which the analysis is extended to velocity and acceleration. All of the solutions are found and the singular cases are discussed.

#### **4. Discussion**

The properties of the projective angles can be used to describe the 3D rotation motion of any rigid body and, in this sense, this notation is general. It is a particular angular convention with pros and cons, as with any other convention (Euler angles, quaternions ... ). The application to PKM is particularly convenient to the class of spherical manipulators based on rotational joints forming cardan sequences because, in this case, the angles of the angular convention coincide with the joint angles of the PKM. In this context, the paper highlights the numerous analogies between the direct and inverse kinematics of the PKM and the relations between the rotation matrix describing the orientation of the end-effector and the projective angles of the frame that were associated with it. We may conclude that the projective angles are a sort of "intrinsic" notation to study the considered spherical PKMs.

The paper solves this relation for angular position, velocity and acceleration.

The proposed methodology is an alternative solution to those that were proposed by classical papers.

The inverse kinematics analysis of the agile eye, as reported in [1], results, for any actuated joint, in a quadratic equation of the tangent of the angle of the corresponding joint rotation. With the proposed methodology, if we adopt the projection angles as angular convention, we do not need to perform calculations because the actuated joint rotation coincides with the projective angles of the mobile frame, therefore there is no need to perform calculations.

The direct analysis of the agile eye is reported in [2] and results in a polynomial of degree 8 which leads to 8 real solutions. When adopting the methodology that was proposed in this paper, it is necessary to solve a 3 × 3 linear system instead and optionally to add ±180◦ to the angles to generate the different solutions.

The problem that was addressed in the paper has multiple solutions, both for direct and inverse kinematics. The chosen solution can be selected according to common robotic practice: each solution corresponds to a different assembly configuration. Different configurations can be reached by crossing a singular configuration. Since this operation may create control problems in the execution of trajectories generally, at each time, the "most close" configuration with respect to the current configuration is chosen. So, for direct kinematics, if **R** is the actual configuration at time *T* and **R**1', **R**2', ... are the different solutions for *t* = *T* + *dT*, the *i*-th solution chosen is the one that minimizes **R** − **R***i* . A similar approach can be applied to the inverse kinematics minimizing the rotation of the motors to reach the next pose. This also ensures the absence of discontinuity in the joint motion.

If the angular position of the end-effector is represented by projective angles, the Jacobian matrix is the identity matrix and therefore, in the domain of the projective angles, the PKM can be defined as decoupled.

**Author Contributions:** Conceptualization, G.L. and I.F.; Writing—Original Draft Preparation, G.L. and I.F., Writing-Review & Editing G.L., Project Administration, I.F.

**Funding:** Project Evolut and UniBS ex 60%.

**Acknowledgments:** The 3D model of Figure 5 was designed and fabricated by Giulio Spagnuolo (ITIA-CNR). His cooperation is greatly appreciated.

**Conflicts of Interest:** The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, and in the decision to publish the results.

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Non-Linear Lumped-Parameter Modeling of Planar Multi-Link Manipulators with Highly Flexible Arms**

**Ivan Giorgio 1,2,\*,† and Dionisio Del Vescovo 1,2,†**


Received: 28 June 2018; Accepted: 21 September 2018; Published: 25 September 2018

**Abstract:** The problem of the trajectory-tracking and vibration control of highly flexible planar multi-links robot arms is investigated. We discretize the links according to the Hencky bar-chain model, which is an application of the lumped parameters techniques. In this approach, each link is considered as a kinematic chain of rigid bodies, and suitable springs are added in order to model bending resistance. The control strategy employed is based on an optimal input pre-shaping and a feedback of the joint angles to treat the effects of undesired disturbances. Some numerical examples are given to show the potentialities of the proposed control, and a comparison with a standard collocated Proportional-Derivative (PD) control strategy is performed. In particular, we study the cases of a linear and a parabolic trajectory with a polynomial time law chosen to minimize the onset of possible vibrations.

**Keywords:** nonlinear flexible beams; discrete modeling; underactuated robots; optimal preshaping input

#### **1. Introduction**

Although the literature on flexible robotic manipulators is very varied and covers different aspects of the dynamic analysis and control of these mechanical systems [1–6], in industrial practice, the robotic arms are still treated as rigid multi-body systems. Only in aerospace, for evident weight issues, this strong assumption has long since been removed. In this context, however, moderately flexible links are considered to simplify the analysis and synthesis of rest-to-rest motion, trajectory-tracking and vibration control, resulting in a degradation of performance.

In this paper, we want to address the problem of considering planar multi-link highly flexible robotic arms whose transversal deflections are very large, and therefore, no linearization procedure is adoptable (refer to [7,8] for some relevant real applications). For these systems, it is possible to model the links with the continuous non-linear beam model of Euler–Bernoulli, i.e., the elastica theory [9–15]. However, as this continuous one-dimensional model is characterized by infinite degrees of freedom, it is rather difficult to analyze the manipulator's motion and to design the related control. For this reason, usually a spatial discretization of the continuous model is resorted to. Typically, three methods of discretization are used: the assumed modes technique; the Finite Element Method (FEM); and the lumped parameters method. The assumed modes approach is an intrinsically linear method, and therefore, it is applicable only to a one-link system with small flexibility or multi-link systems in which the task time is much greater than the characteristic period of oscillation of the first modes. The latter assumption is strongly requested because a progressive linearization must be carried out in the neighborhood of the generic current configuration, which indeed varies with the motion [16,17]. The finite element method can be seen as a special case of the assumed

modes technique, but it can be generalized to the nonlinear case and can therefore cover also the cases taken into account for the present study. As an example, we mention Du et al. [18], who address the problem of a non-linear 3D flexible manipulator with FE analysis. The discretization by lumped parameters [19,20] is one of the earliest methods and is characterized by an extreme simplicity of modeling and computational advantages. Moreover, being intrinsically nonlinear, it does not introduce any approximation due to some kind of linearization [21,22]. Although the finite element method converges faster than that of lumped parameters and requires a lower number of degrees of freedom to obtain the same accuracy, to deal with nonlinear cases, it is necessary to make use of a specific, rather complex formulation, which could be familiar to experts of computational mechanics, but less accessible to a larger audience (see, e.g., [23]). It should be noted, indeed, that the commercial FEM codes are rather lacking in dealing with the problem of large deflections of beams, to the best of the authors' knowledge. There are many papers that analyze the accuracy of the lumped parameters approach from different points of view, and in all of them, it is possible to find that the error in the approximation with such a method is inversely proportional at least to the first power of the number of elements used [24,25]. In the case of a cantilever beam subject to flexural oscillations, the inverse square law for the error can be verified without difficulty [26]. This means that with a rather simple modeling method, it is possible to reach the desired degree of accuracy simply by appropriately selecting the number of elements; a thumb rule is to use 13 elements per wave-length to be analyzed [26]. In the past, often the lumped-parameter approach was underestimated because assigning spring lumped constants was considered not straightforward [3]. Unfortunately, this is the result of a certain compartmentalization of expertise that sometimes occurs [27]. Indeed, it is widely known to those dealing with beam homogenization how to properly assign these discretized constants of stiffness [28–33].

In this paper, we will use the lumped parameters approach because of its simplicity and versatility. In this formulation, an elastic rod is discretized into a set of rigid segments, which are free to rotate relative to their adjacent neighbors. Springs located in these joints give the system the ability to resist bending. The case study can be classified as an under-actuated system. Indeed, the considered multi-link arm is subject to a lower number of actuators than degrees of freedom. The particular formulation adopted, among the various advantages, could make use of widely established results in classical robotics for this type of problem since in fact the model adopted is a kinematic chain of rigid bodies (see, e.g., [34–36] and the references therein).

System flexibility leads to vibration and, in turn, to an imprecise positioning due mainly to a non-minimum phase character of the system. As an illustrative numerical example, we consider a control strategy for the problem of the trajectory-tracking in the framework of the input shaping control [37–39] with a feedback for the stabilization of the response. In particular, to obtain the command torques, instead of using proper filtering as is usually done, we formulate an optimal control problem with the aim of minimizing the positioning error of the tip manipulator (see, e.g., [40]). This variational approach has been adopted for trajectory planning both for flexible [41,42] and for rigid arms [6]. Herein, instead of obtaining a trajectory with the desired mechanical characteristics, the best possible input command is found to follow a given trajectory.

The paper is organized as follows: Section 2 is devoted to describing the adopted discrete method, which is applied to a planar two-link flexible arm. Section 3 reports on numerical simulations for some trajectory-tracking cases and a comparison with a standard control approach. The paper ends with the conclusions and some future perspectives.

#### **2. Dynamic Modeling of the Flexible Robot Manipulator**

To address the complex problem of trajectory control of the tip for flexible robot manipulators, we propose to study an elemental prototype case whose behavior is rich enough to easily extend the obtained results to more generalized situations, namely more links or manipulators subject to a 3D motion (see, e.g., [43] for the analogous 3D formulation). Specifically, a planar horizontal robot

manipulator constituted of two highly flexible links is considered. Each link of the manipulator is characterized by a length *<sup>i</sup>* (with *i* = {1, 2}), a uniform distribution of stiffness and mass density and is driven by an actuator, with mass *mhi*, inertia *Jhi* and supplying a torque *τi*. The manipulator eventually may carry a tip payload of mass *mp* and inertia *Jp*.

To model this system, we consider a lumped-parameter discretization. Since the manipulator is made up of two links, which can be modeled in the range of large deflections by the elastica theory, we adopt the well-known Hencky technique [28,29,43–45] to discretize the system and, then, using a more comfortable Lagrangian mechanical system, to study the motion of the robot and to design the trajectory tracing. Therefore, the considered discrete system consists of two articulated chains of *ni* rigid rods of length *η* connected to each other by means of zero-torque hinges, also known as 'pseudo-joints'. At each joint of the same link, a rotational spring is placed in order to model the resistance to being bent of the arm (see Figure 1). In other words, the torques provided by these springs represent the spatial discretization of the internal actions of the links, namely the bending moment. The Lagrangian coordinates, which describe the configurations of the manipulator are Φ*j*(*t*) (with *j* = {1, 2, ... *n*<sup>1</sup> + *n*2}). In particular, they represent the orientation of the rigid rods with respect to the *x*-axis. Moreover, the following definitions are useful to specify the angles of the actuation:

$$\begin{cases} \theta\_1 = \Phi\_1\\ \theta\_2 = \Phi\_{n\_1+1} - \Phi\_{n\_1} \end{cases} \tag{1}$$

for the two links, and the relative angles:

$$\begin{cases} \boldsymbol{\varphi}\_{h-1}^{(1)} = \boldsymbol{\Phi}\_{h} - \boldsymbol{\Phi}\_{h-1} & \text{with } h = 2, \dots, n\_1 \\ \boldsymbol{\varphi}\_{k-1-n\_1}^{(2)} = \boldsymbol{\Phi}\_{k} - \boldsymbol{\Phi}\_{k-1} & \text{with } k = n\_1 + 2, \dots, n\_1 + n\_2 \end{cases} \tag{2}$$

which are relevant to define the deformation energy of the links whose label is reported between parentheses as a superscript. Indeed, the relative angles can be used to describe a discrete point-wise curvature. The two links prior to deformation are straight. Their mass is discretized with lumped masses *mi* at the boundaries of each rigid segment by dividing the mass of each segment at its ends. The position of each point mass can be written as:

$$\begin{cases} x\_j(t) = \sum\_{k=1}^j \eta \cos(\Phi\_k) \\ y\_j(t) = \sum\_{k=1}^j \eta \sin(\Phi\_k) \end{cases} \tag{3}$$

and by a differentiation with respect to time, the velocities of the point masses are given by:

$$\begin{cases} \dot{x}\_j(t) = -\sum\_{k=1}^j \eta \dot{\Phi}\_k \sin(\Phi\_k) \\ \dot{y}\_j(t) = \sum\_{k=1}^j \eta \Phi\_k \cos(\Phi\_k) \end{cases} \tag{4}$$

The equations of the motion can be derived from the Lagrangian:

$$
\mathbb{X} = \mathbb{X} - \mathbb{Y} \tag{5}
$$

where K and Ψ are the kinetic and potential energies of the system, respectively. Particularly, the kinetic energy can be obtained by the sum of three contributions, i.e., a term due to the links:

$$\mathcal{R}\_{\ell} = \sum\_{j=1}^{n\_1+n\_2} \frac{1}{2} m\_j \left\{ \left[ \sum\_{k=1}^j \eta \dot{\Phi}\_k \sin(\Phi\_k) \right]^2 + \left[ \sum\_{k=1}^j \eta \dot{\Phi}\_k \cos(\Phi\_k) \right]^2 \right\} \tag{6}$$

a term due to the two actuators:

$$\mathcal{A}\_{h} = \frac{1}{2} J\_{h1} \Phi\_1^2 + \frac{1}{2} m\_{h2} \left( \dot{x}\_{n\_1}^2 + \dot{y}\_{n\_1}^2 \right) + \frac{1}{2} J\_{h2} \Phi\_{n\_1+1}^2 \tag{7}$$

and the last term for the payload:

$$\mathcal{R}\_{\mathcal{P}} = \frac{1}{2} m\_{\mathcal{P}} \left( \dot{\mathbf{x}}\_{n\_1 + n\_2}^2 + \dot{y}\_{n\_1 + n\_2}^2 \right) + \frac{1}{2} J\_{\mathcal{P}} \dot{\Phi}\_{n\_1 + n\_2}^2 \tag{8}$$

The elastic potential energy Ψ is assumed to be:

$$\Psi = \sum\_{i=1}^{2} \sum\_{j=1}^{n\_i - 1} \kappa\_{b^j\_j}^{(i)} \left[ 1 - \cos(\varphi\_j^{(i)}) \right] \tag{9}$$

where a lumped bending stiffness *κ* (*i*) *b j* = *Y J<sup>i</sup>* /*η* associated with the rotational springs is introduced using the elastic modulus of the beam's material, *Y*, and the second moment of the area of the beam's cross-section, *J<sup>i</sup>* [46,47]. Note that the potential energy in Equation (9) is positive definite, and in the continuum limit, i.e., for *η* tending to zero, the expression (9) becomes an energy density, which is quadratic in the curvature of the beam axis [46], in accord with the elastica theory. As a first approximation, we also consider a viscous dissipation (see, e.g., [48,49]), introducing the Rayleigh dissipation function:

$$\mathcal{R} = \sum\_{i=1}^{2} \sum\_{j=1}^{n\_i - 1} \frac{1}{2} c\_{b^{(j)}}^{(i)} \left(\phi\_j^{(i)}\right)^2 \tag{10}$$

*c* (*i*) *b j* being a lumped viscous coefficient. This type of dissipation can be associated with the rate of the bending deformation; thus with similar reasoning used for the elastic bending mode deformation, it is possible to evaluate the lumped dissipation with the expression: *c* (*i*) *b j* = *Cv J<sup>i</sup>* /*η*, where the material parameter *Cv* is the viscous coefficient of the beam material, which can be experimentally identified (see, e.g., [50]).

**Figure 1.** Discrete system for the planar two-link flexible robot.

The Euler–Lagrange equations of motion, thus, are:

$$\frac{\partial}{\partial t} \left( \frac{\partial \mathcal{K}}{\partial \Phi\_i} \right) - \frac{\partial \mathcal{K}}{\partial \Phi\_i} + \frac{\partial \mathcal{K}}{\partial \Phi\_i} + \frac{\partial \mathcal{K}}{\partial \Phi\_i} = Q\_i \quad \text{for } i = 1 \dots n\_1 + n\_2 \tag{11}$$

The virtual work of the torques applied by actuators at the basis of each link is:

$$
\delta \mathcal{W} = \tau\_1 \delta \theta\_1 + \tau\_2 \delta \theta\_2 = \tau\_1 \delta \Phi\_1 + \tau\_2 \left(\delta \Phi\_{n\_1 + 1} - \delta \Phi\_{n\_1}\right) \tag{12}
$$

hence, the only generalized forces different from zero are:

$$Q\_1 = \tau\_1, \quad Q\_{n\_1+1} = \tau\_2, \quad Q\_{n\_1} = -\tau\_2 \tag{13}$$

One of the performance specifications in a control system should be a satisfactory regulation against disturbances. Here, to test the effectiveness of the proposed control, we take into consideration two kinds of disturbances, due to the actual realization of the actuators, that add up to the torques introduced in Equation (13); specifically, friction torques, which arise at the actuated joints, and cogging torques, typical for electrical motors. The former disturbance is described by a Lund–Grenoble model [51], which is able to capture most of the major nonlinear effects involved in the considered case such as pre-sliding displacement, stick-slip motion, the Stribeck effect, and so forth; the latter disturbance, due to the interaction between the permanent magnets of the rotor and the slots of the stator, is modeled by means of a constitutive relationship, experimentally identified, i.e., a periodic function of the relative position between the stator and the rotor of the motor [52]. An evolution rule for the friction torques *τf i* is assumed as follows:

$$\frac{\mathbf{d}\tau\_{fi}}{\mathbf{d}t} = k\_i \dot{\theta}\_i \left( 1 - \frac{\tau\_{fi}}{\tau\_L(\vartheta\_i)} \text{sign}(\dot{\vartheta}\_i) \right) \tag{14}$$

where *τL*(*ϑ*˙ *<sup>i</sup>*) = *<sup>τ</sup><sup>C</sup>* + (*τ<sup>S</sup>* <sup>−</sup> *<sup>τ</sup>C*) exp − *ϑ*˙ *<sup>i</sup>*/*ν<sup>s</sup>* 2 is the limit torque introduced to take into account the Stribeck effect. In detail, *τ<sup>S</sup>* = 0.2 Nm is the static friction; *τ<sup>C</sup>* = 0.1 Nm is the Coulomb friction torque; and *ν<sup>s</sup>* = 0.1 s−<sup>1</sup> represents the Stribeck velocity. The cogging torques are evaluated as a function of the angles *ϑ<sup>i</sup>* as follows:

$$\pi\_{\rm cgi} = T\_{\rm cg} \sum\_{k=1}^{6} B\_k \sin(n\_p \, k \, \theta\_i) \tag{15}$$

where *Tcg* = 0.1 Nm is the amplitude of the torque, *np* = 2 is the number of poles of the motors and the coefficients of the trigonometric polynomial *Bk* are assumed to be {−0.7937, −0.3586, −0.0341, 0.0039, −0.0016, −0.0064} in the performed simulations.

#### **3. Numerical Examples for Some Trajectory-Tracking Cases**

In this section, a control scheme for trajectory-tracking and vibration control of flexible arms is used to show the potentialities of the proposed formulation. This approach is based on an optimal design of the command torques applied to the actuated joints that aim at following the desired trajectory and reducing vibrations. The control strategy, thus, includes a feedforward control based on such a command input and a feedback control that stabilizes the 2*R* flexible robot along the desired trajectory by a joint-based collocated Proportional-Derivative (PD) controller [39]. Precisely, the optimal control technique is used to produce input profiles for the torques acting on the flexible system as described below. Since the command shaping technique does not require additional sensors or actuators, this technique is particular attractive in order to have a hardware apparatus for the control characterized by minimal equipment.

As a first step, we plan a desired trajectory *xd*(*t*) connecting the ends of each link from arbitrary initial points to desired final points in a given time interval I = [0, *tf* ], i.e., we set *Robotics* **2018**, *7*, 60

*xd*(*t*)=(*xn*1,*d*, *yn*1,*d*, *xn*1+*n*2,*d*, *yn*1+*n*2,*d*). Then, denoting the actual trajectory of the ends of each link, evaluated on the solution of Equation (11) in I without disturbances, with *x*˜(*t*) = (*x*˜*n*<sup>1</sup> , *y*˜*n*<sup>1</sup> , *x*˜*n*1+*n*<sup>2</sup> , *y*˜*n*1+*n*<sup>2</sup> ), the optimal control problem for the design of the input torques can be formulated as follows:

Find the torques *τ*(*t*)=(*τ*1, *τ*2) as real-valued smooth functions defined on I, which minimize the continuous-time cost functional:

$$J(\Phi, \pi, t) = \frac{1}{2} \int\_0^{t\_f} (\ddot{\mathbf{x}} - \mathbf{x}\_d)^\top \mathbf{R} \left(\ddot{\mathbf{x}} - \mathbf{x}\_d\right) d\mathbf{t} \tag{16}$$

subject to the dynamic constraints that *x*˜(*t*) is computed on the solution of Equation (11) with given initial conditions. *R* is a constant diagonal positive definite weight matrix.

In detail, we directly minimize the functional *J* varying the torques *τ*1(*t*) and *τ*2(*t*) instead of solving the Euler–Lagrange equations, which may laboriously be obtainable by means of calculus of variations. Therefore, representing the torques *τ<sup>i</sup>* in a discrete way as follows:

$$\pi\_i(t) = \pi\_{0i}(t) + w(t) \sum\_{h=0}^{n\_d} a\_h^{(i)} p\_h(t) \tag{17}$$

where *τ*0*i*(*t*) is a reference torque, *ph*(*t*) are interpolation functions defined on I and *w*(*t*) is a proper window function, the problem (16) results in finding the coefficients *a* (*i*) *<sup>h</sup>* that minimize the functional *J* evaluated with the approximated shapes *τ*¯*i*(*t*). The particular form chosen for Equation (17) is based on the idea of finding an approximate solution for the considered problem, by starting from the exact solution of a related, simpler problem and then adding a correction. The first term *τ*0*i*(*t*), indeed, is the required torque evaluated for the 2*R* rigid robot, while the other term represents the correction needed to solve the primary problem. In particular, the function *w*(*t*) is conceived of in order to account for a correction of the torques, which tends to zero at the beginning and at the end of the interval I. In this way, a jump in the torques, responsible for the onset of possible vibrations, can be avoided. A possible choice of this function *w*(*t*) is the Welch window, defined as:

$$w(t) = \begin{cases} 4\frac{t}{l\_f} \left(1 - \frac{t}{l\_f}\right) & \text{for } t \in \mathcal{Z} \\ 0 & \text{outside } \mathcal{Z} \end{cases} \tag{18}$$

Indeed, this window is designed, as many others, to moderate the sudden changes of a rectangular window and, thus, to improve dynamic range. Regarding the *ph* functions, thinking of a Taylor expansion properly truncated to express the torque corrections, we consider *ph*(*t*) = *t <sup>h</sup>*. Of course, the corrections can be expressed in alternative ways, for example a truncated Fourier series can also be a valid representation. In both cases, a convergence analysis is needed to determine how many terms should be taken into account to minimize the truncation error.

Once the optimal torques *τid*(*t*) are obtained by solving the problem (16), the complete control strategy can be expressed in the following way:

$$\tau\_i = \tau\_{di} + K\_{Pi}(\theta\_{di} - \theta\_i) + K\_{Di}(\dot{\theta}\_{di} - \dot{\theta}\_i) \tag{19}$$

where (*ϑi*, *ϑ*˙ *<sup>i</sup>*) are related to the actual trajectory for the joint angles, directly measured by the motor encoders, while (*ϑdi*, *ϑ*˙ *di*) correspond to the desired trajectory, which is computed off-line by a numerical simulation of the manipulator performed using the optimal torques *τdi*(*t*) as input. To choose the PD gains, a standard technique can be employed based on setting the natural frequencies, which govern the speed of response, as well as taking into account the saturation of each actuator (for a detailed description see, e.g., [53]).

To illustrate the potentialities of the proposed control strategy, we examine some representative examples in which the manipulator tip is constrained to move along two different paths, namely a straight line segment and a piece of parabolic curve.

In the first case, the desired coordinates for the end effector are assumed to be:

$$\begin{cases} \mathbf{x}\_{n\_1+n\_2,d}(t) = \ell\_1 + \ell\_2 - \mathbf{s}(t)\cos\left(\arctan\left(\frac{\ell\_1}{\ell\_1 + \ell\_2}\right)\right) \\ \mathbf{y}\_{n\_1+n\_2,d}(t) = \mathbf{s}(t)\sin\left(\arctan\left(\frac{\ell\_1}{\ell\_1 + \ell\_2}\right)\right) \end{cases} \tag{20}$$

in which the time function *s*(*t*) is a Peisekah polydyne, which is expressed as follows:

$$s(t) = A\_d \left[ 126 \left( \frac{t}{t\_f} \right)^5 - 420 \left( \frac{t}{t\_f} \right)^6 + 540 \left( \frac{t}{t\_f} \right)^7 - 315 \left( \frac{t}{t\_f} \right)^8 + 70 \left( \frac{t}{t\_f} \right)^9 \right] \tag{21}$$

where *Ad* = 2 <sup>1</sup> + (<sup>1</sup> + 2)<sup>2</sup> and the task time is set to *tf* = 1 s. The well-known time law (21) is chosen because the values of its derivatives with respect to time up to fourth order at the initial and final times are all zero. This feature is particularly desired to avoid exciting vibrations. Here, the initial configuration provides the robotic arm arranged along the *x* axis completely unfolded, while the final arrangement of the arm is characterized by having the end effector in the position of coordinates (0, 1).

In the second case, the desired coordinates for the tip manipulator follow the parabola:

$$\begin{cases} \mathbf{x}\_{n\_1+n\_2,d}(t) = \left(\ell\_1 + \ell\_2\right) - \mathbf{s}(t) \left(\ell\_1 + \ell\_2\right) \\ y\_{n\_1+n\_2,d}(t) = \ell\_1 \mathbf{s}(t)^2 \end{cases} \tag{22}$$

where the function *s*(*t*) is given by Equation (21) with *Ad* = 1 and *tf* = 1.25 s. The initial and final configurations are set up as in the previous case.

In all the cases, we extend the desired time interval for a while in order to stabilize, in the optimization stage, the solution at the final configuration. The desired coordinates of the intermediate joint, (*xn*1,*d*, *yn*1,*d*), have been calculated considering the robotic arm as a 2*R* rigid robot for both cases addressed.

Equations (11) are numerically solved by means of the computing system Simulink considering a 2*R* flexible arm with links of length <sup>1</sup> = <sup>2</sup> = 0.5 m and having a rectangular cross-section of size <sup>50</sup> × 2 mm with a second moment of area *<sup>J</sup>*<sup>1</sup> = *<sup>J</sup>*<sup>2</sup> = 3.33 × <sup>10</sup>−<sup>11</sup> <sup>m</sup>4. The links are discretized using 99 rigid segments. The Young modulus of the links is *Y* = 200 GPa, and the mass of each of them is 0.3925 kg. The viscous coefficients are assumed to be *c* (1) *<sup>b</sup>* = *c* (2) *<sup>b</sup>* = 0.15 Nms. The actuators are characterized by masses *mh*<sup>1</sup> = *mh*<sup>2</sup> = 1 kg and moments of inertia *Jh*<sup>1</sup> = *Jh*<sup>2</sup> = 0.1 kg m2, while the payload has *mp* = 0.1 kg and *Jp* = 0.005 kg m2. For the implementation of the optimal problem, we assume the non-vanishing elements of *R* to be *R*<sup>11</sup> = *R*<sup>22</sup> = 10 and *R*<sup>33</sup> = *R*<sup>44</sup> = 100 to give more importance to the tip error.

Figures 2a and 3a show the torques *τ*0*<sup>i</sup>* evaluated for the 2*R* rigid robot, while Figures 2b and 3b display the second term of Equation (17) obtained as a result of the optimization problem.

The used coefficients of the feedback loops are *KP*<sup>1</sup> = 25 Nm, *KP*<sup>2</sup> = 22 Nm, *KD*<sup>1</sup> = 0.42 Nms and *KD*<sup>2</sup> = 0.22 Nms.

In Figures 4–7 are compiled the results obtained for the two examined cases, respectively for the linear and the parabolic case.

In particular, Figures 4 and 6 show the reference path (dashed black line) for the tip of the arm in which the start and end points are highlighted with a circle and a star, respectively. These figures also exhibit the actual trajectories of the two ends of the links, as well as some intermediate deformed configurations for the links. The deformations of the links are clearly in the range of large deflections, and therefore, any linearization procedure is not allowed in the investigated cases.

**Figure 2.** Linear trajectory case: (**a**) reference rigid torques; (**b**) correction torques.

**Figure 3.** Parabolic trajectory case: (**a**) reference rigid torques; (**b**) correction torques.

**Figure 4.** Stroboscopic motion for linear trajectory case.

**Figure 5.** Linear trajectory case: (**a**) actual torques; (**b**) relative tracking error for the tip.

**Figure 6.** Stroboscopic motion for the parabolic trajectory case.

**Figure 7.** Parabolic trajectory case: (**a**) actual torques; (**b**) relative tracking error for the tip.

Figures 5a and 7a display the actual joint torques resulting from the control strategy of a feedforward with an optimal input command and a feedback of the signals, angles and angular velocities, acquired from the joints. These plots evince the difference between the two joint torques, as well as the power required by the motors and therefore their size. Of course, once the time law (21) has been set, to limit the maximum torque that can be provided, it is possible to change the task time. Thus, we set the task times for the considered cases in order to limit the torques at reliable values.

Figures 5b and 7b exhibit the tip error in following the desired trajectory for the three studied cases. We can see from the graphs that the errors normalized to the full length of the robotic arm were less than 4.5% despite the great deformability of the links and the shortness of the task time. Tables 1 and 2 summarize the coefficients, obtained minimizing the functional *J*, to represent the torques in terms of the interpolation polynomial functions considered for the analyzed cases.


**Table 1.** Optimal torque coefficients for the linear trajectory case.


Link 1 0.8090 1.114 −11.239 −1.681 1.297 19.485 14.592 −6.116 −15.732 Link 2 0.2139 −1.434 2.659 0.0668 −9.700 10.966 3.453 −5.661 −0.2856

The order of the interpolating polynomial was fixed by increasing it subsequently until the error obtained by the optimization process stabilized. To perform the minimization, we employ a MATLAB code that makes use of the function fminsearch.

To estimate the efficiency of the proposed approach, we compare the used control strategy with a standard PD control with a feedback of the angular joints (*ϑi*, *ϑ*˙ *<sup>i</sup>*) using a desired trajectory evaluated for the linear and parabolic rigid cases, respectively, Equations (20) and (22) and the time law (21). Figure 8 shows the relative tracking error of the manipulator tip in both examined cases with the PD feedback gains: *KP*<sup>1</sup> = 25 Nm, *KP*<sup>2</sup> = 22 Nm, *KD*<sup>1</sup> = 4.2 Nms and *KD*<sup>2</sup> = 2.2 Nms. The tracking performances obtained exhibit a maximum relative error of about 30%, much greater than the optimal pre-shaping input approach.

**Figure 8.** Relative tracking error for the tip with collocated PD control: linear trajectory case (**a**); parabolic trajectory case (**b**).

#### **4. Conclusions**

In this article, we propose a lumped parameters modeling approach for flexible robotic manipulators in the nonlinear regime. In this context, the method of the assumption of the modes, typically used, cannot be utilized because the hypotheses on which it is based are inadequate for the given problem. We propose to use this formulation for its great simplicity of modeling and for its intrinsic nonlinear nature, instead of the finite element method, which requires a greater modeling effort even if it has a faster convergence speed. Furthermore, an isogeometric formulation, still not fully affirmed as an alternative to the standard FEM, can also improve the results because at equal accuracy, it requires a lesser number of degrees of freedom and seems to be promising for further advances (see, e.g., [54–56] for recent developments).

The number of degrees of freedom that should be treated in the nonlinear case of large link deflections does not allow us to opt for a well-established control strategy such as online computed-torque; therefore, a different control approach must be developed. We present a control approach based on a pre-shaping input that, instead of using appropriately designed signal filters, produces a feedforward command signal for the motors using an optimal problem in which a functional, properly defined, is minimized on the basis of the positioning error of the end effector of the manipulator. In order to stabilize the response close to the desired one, a feedback signal is used together to make the system less sensitive to external disturbances. The employed control strategy is therefore more suitable to treat a greater number of degrees of freedom and can be implemented with minimal hardware equipment. The system considered is under-actuated, and therefore, it is not possible to obtain a perfect positioning of the manipulator tip. However, the simulated numerical cases show that under very strict operating conditions, it is possible to obtain a trajectory tracking with an error of less than about 4.5%. A comparison with a standard feedback PD control strategy shows that, with the optimal pre-shaping input, it is possible to achieve a better tip positioning.

The optimal problem in this paper has been solved numerically to explore the possibilities offered by the proposed method. The preliminary results achieved are quite encouraging, and therefore, as a future research direction, it would be interesting to address the optimal problem rigorously with the calculus of the variations and, in this way, characterize the minimum error obtainable accurately in the various operating conditions.

**Author Contributions:** I.G. and D.D.V. conceived and designed the experiments; I.G. and D.D.V. performed the experiments; I.G. and D.D.V. analyzed the data; I.G. and D.D.V. contributed analysis tools; I.G. and D.D.V. wrote the paper.

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

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

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Adaptive Balancing of Robots and Mechatronic Systems**

#### **Liviu Ciupitu**

Mechanical Engineering and Mechatronics Department, Politehnica University of Bucharest, 060042 Bucharest, Romania; liviu.ciupitu@gmail.com; Tel.: +40-072-274-5319

Received: 16 September 2018; Accepted: 2 November 2018; Published: 7 November 2018

**Abstract:** Present paper is dealing with the adaptive static balancing of robot or other mechatronic arms that are rocking in vertical plane and whose static loads are variable, by using counterweights and springs. Some simple passive and approximate solutions are proposed, and an example is shown. The results show that a very simple passive solution which is using for gravity compensation a simple translational counterweight (that could be for example the actuating motor itself) articulated by one single bar leads to very good results in case of approximate balancing when the payload has a known variation.

**Keywords:** adaptive; balancing; counterweight; mechatronic system; robot

#### **1. Introduction**

Static balancing of a mechanical system is one of the first demanding steps in the design process of any mechanical system which is moving with relatively small accelerations and which is overcoming relatively large forces, in order to match first of all the need of energy consumption and it is also an important aspect of the overall performance of it [1].

Static balancing can be regarded as the total or partial cancellation of the mechanical effects (force or moment) of static loads to the actuating system of mechanical system, in all configurations, respectively in a finite number of configurations, from functioning domain, under quasi-static conditions [1,2]. The effect of this action is the maintaining of the mechanical system in a rest state at any configuration or at a finite number of configurations respectively, from working space and its actuators are not required to overcome the static loads. The movement inside working space can be done with a power-less actuating system which consumes energy only for overcoming the friction forces and balancing errors. Anyway the friction forces are opposing to the movement, contributing in this way to the maintaining of the mechanical system in a rest state.

The main static load is given by gravitational field of Earth, which is reflecting into the weight forces of all bodies that compose the mechanical system. In the case that weight forces are the only static loads of static balancing operation then the mechanical system is called gravity compensate. Also the effect of these loads to the actuating system is present only in the case that the mechanical system is not working in horizontal plane with respect to gravity field.

Consequently, the potential energy of mechanical system remains constant or approximately constant and the centre of gravity of mechanical system remain fixed with respect to a referential frame or is moving along a horizontal direction or into a horizontal plane with respect to Earth.

Another important observation and hypothesis is that due to the small displacements of the centres of gravity of elements, with respect to the distance from the centre of the Earth to each body mass centres, then the weight forces are constant.

In this case the actuators of mechatronic system are not required to sustain the weight of its moving elements.

But, in the case of a manipulation robot for example, as is also the case of cranes too, the manipulation weight could be variable in steps. As is presented in article [3] for the case of an industrial robot [4] which is designed to manipulate payloads of 16 kg maximum mass, balanced by springs for a middle weight mass of 8 kg, the forces induced in actuating system are amplified about 4 times when the weight is increasing or decreasing from the mean value. In fact, in terms of resistance moments (torques) at shafts of rotating actuators, as is shown in Figure 1a for the most frequent case of an articulated arm, this variation occurs (and has a cosine variation) even the payload has constant weight *Gp*. In case the load has variable weight (as is the case of oil pump-jack systems for example [5] then a more complex variation is possible (Figure 1b—solid curve line 1). A special situation is the one when the variation is known, and it is repeating during one cycle. In this case the adaptive solution could be a passive one (i.e., not actuated). Otherwise the balancing system should adapt in real time by using a local and supplementary actuation system and by aid of a controlling system and the required sensors and transducers [2].

**Figure 1.** (**a**) Rocker arm (**b**) Gravitational moment variation of the variable weight forces.

Many other mechanical systems, which are automatized more and more in these days, becoming in this way mechatronic systems, have to overcome variable payloads or resistant forces during the functioning. Beside the manipulation robots used in palletizing for example [5–9], articulated cranes [10–12] and pump-jack oil pumps [13–15], a large category of ergonomic manipulators [16–18] are facing the variable payload and have to adapt to this condition.

By balancing, another moment which is opposing the load moment (Figure 1b—dotted curve line 2) should be induced in order to compensate or eliminate the effect of load. If the difference between the load moment and the balancing moment is zero, then the system is perfect (exact) balanced in all positions from its work field [19]. If there are only some positions where the difference is zero (Figure 1b—discontinuous curve line 3) then an approximate balancing is obtained [20].

In order to compensate the effects of static loads that depend to displacements, then forces which depend also to displacements should be used. The main candidates are the weight forces represented by counterweights and the elastic forces of springs or gases. Industrial robots are using both of these solutions (Figure 2) for example ABB industrial robot of IRB 6499 RF model [6].

Even in the case of static balancing by using counterweights the overall mass of the mechanical system is increased and from dynamics point of view the situation could become worse than in the case the mechanical system is even unbalanced, this solution is still useful and widely used in engineering because of the simplicity and for mechanical systems which are manipulating large loads, and which are operating at low or moderate dynamics.

As for the adaptation to the variation of the payload in case of robots and automatized mechanical systems many ideas are proposed in scientific papers or patents passed years [2,21–24] but no realization in practice for these domains. If there are some adjustments in order to adapt to the variation of payload they are made off-line [6,9,21] while mechatronic system is in a rest state. On the other hand if the variation is not very large then an approximate simple solution is solving the problem in practice. Anyway the difficulty of static balancing comes from the variation of the payload and in the case of spatial mechanisms of robots or other mechatronic systems became more difficult due to the complexity of the movements.

**Figure 2.** Industrial robot static balanced by counterweight and spring: (**a**) kinematic schema; (**b**) picture of industrial robot.

#### **2. Adaptive Balancing by Using Counterweights**

The method of adding the counterweights involves the increasing of moving masses, overall size, inertia and the stresses of the mechanism links [20]. Some of the mechanical systems [1] accept this method because of operating at low or moderate dynamics, from safety reasons or in cases where the right spring is difficult and costly to be obtained [2], or the spring balancing solution is too complicated to be fitted to [25]. Anyway, an internal mass redistribution so that parts of mechanical systems (actuators, electric motors, other mechanical transmission, either electric or electronic parts from controlling cabinet which could be relocated on the robot body) to act as counterweights like in the case of industrial robots [9], or as is the case of camera stabilizers [26], is first step when the static balancing problem starts [2].

Variation of gravitational moment given by the weight force of the rocking arm <sup>1</sup> (Figure 1a) *G*<sup>1</sup> and by the variable payload *Gp* has the expression:

$$\mathbf{M}\_{\mathcal{S}}(t) = -\mathbf{G}\_1 \bullet \mathbf{C}\_1 \cos \ \boldsymbol{\varrho}(t) - \mathbf{G}\_{\mathcal{P}}(t) \bullet \mathbf{P} \cos \ \boldsymbol{\varrho}(t) = \boldsymbol{f}\_1(t) \cos \ \boldsymbol{\varrho}(t) \tag{1}$$

where:

$$f\_1(t) = c\_1 + c\_2 \text{ G}\_p(t) \tag{2}$$

with:

$$c\_1 = -G\_1 \text{ OC}\_1 = \text{const.} \text{ and } c\_2 = -OP = \text{const.} \tag{3}$$

Then the balancing moment should be:

$$\mathcal{M}\_b = \mathcal{M}\_b(t) = \mathcal{f}\_2(t) \tag{4}$$

so that:

$$f\_2(t) \cong -f\_1(t)\cos\varphi(t)\tag{5}$$

*Robotics* **2018**, *7*, 68

Let suppose the case of the rocking arm <sup>1</sup> which is gravity compensated for its weight *G*<sup>1</sup> and for the weight of the constant part from the variation of payload *Gpc* (Figure 3) by a counterweight mounted fixed on the rocking arm <sup>1</sup> at a proper distance on the opposite side then centre of mass *C*<sup>1</sup> according to origin point *O* (not represented in the following). In this case the constant *c*<sup>1</sup> from Relation (3) became:

$$\mathbf{c}\_1 = -\mathbf{G}\_1 \ \mathbf{O} \mathbf{C}\_1 - \mathbf{G}\_{\text{pc}} \ \mathbf{O} \mathbf{P} = \text{const.} \tag{6}$$

A variation of static load in linear form (as is represented in Figure 3—dashed line) was studied in Reference [25] and will be taken as comparison in Example section. By taking into consideration some frictions in the mechanical system of payload let suppose the variation of payload is known and cyclic with a symmetric variation of second degree evolution during one period of time *T* (Figure 3):

$$\mathbf{G}\_p(t) = \mathbf{G}\_{pc} + 4\frac{\mathbf{G}\_{pv,\text{max}}}{T}t - 4\frac{\mathbf{G}\_{pv,\text{max}}}{T^2}t^2,\text{ where } t \in [0, T] \tag{7}$$

In order to gravity compensate the variable component *Gpv* by using also a supplementary counterweight then 2 possibilities could be taken into consideration: a variable weight of the additional counterweight or a movable counterweight with a fixed weight.

**Figure 3.** Parabolic variation of a cyclic payload.

To make a variable weight for the counterweight is not impossible but is complicated and in order to compensate a continuous variation then liquid weights are needed, which are complicating much more the system and the dynamics became also very important. From practical point of view the changing of the location of the additional counterweight on the balanced element (as is the studied rocking arm <sup>1</sup> in Figure 1a) is a feasible solution when the speeds and accelerations are not very high.

There are also 2 possible ways of moving the additional counterweight <sup>2</sup> relatively to the balanced element: by translating onto it (Figure 4a without bar <sup>3</sup> ) or by rotating around a point which is becoming a joint on it by using an additional bar (Figure 4b without bar <sup>3</sup> ).

Despite of the pretentious prismatic joint the solution with translating counterweight became very popular [4,15] due to the better dynamics of the multi-body system and due to the simplicity of the transmission of the supplementary actuator.

**Figure 4.** Movable counterweight in order to compensate variable payload: (**a**) translational counterweight; (**b**) rocking counterweight.

In case of a known cyclic variation of payload, as it is represented in Figure 3, then a passive adaptive solution is possible to be used that is, a solution which does not require supplementary energy added from the outside of the mechanical system. The simplest solution is presented in Reference [15] by linking the counterweight <sup>2</sup> to the mechanism base through a simple bar denoted by <sup>3</sup> and connected by two joints as is shown in Figure 4a.

In Figure 4a is presented the symmetric solution which is leading to a reduced number of exact balancing positions (maximum three). In this case the gravitational moment which has to be compensated is:

$$\mathcal{M}\_{\mathcal{S}}(t) = -\mathcal{G}\_{\text{pv}}(t)\,\text{OP}\,\cos\,\,\mathfrak{p}(t) = \mathfrak{c}\,f\_{\mathcal{S}}(t),\tag{8}$$

where:

$$\mathbf{G}\_{\mathcal{V}^{\rm l}}(t) = \mathbf{G}\_{\mathcal{V}}(t) - \mathbf{G}\_{\mathcal{V}^{\rm l}} \tag{9}$$

$$\mathcal{L} = -4 \, OP \frac{G\_{pv, \text{max}}}{T} \tag{10}$$

and:

$$f\_3(t) = t \begin{pmatrix} 1 \ -\ \frac{t}{T} \end{pmatrix} \cos \ \varphi(t) \text{ where } t \in [0, T], \tag{11}$$

The balancing moment *M<sup>b</sup>* of counterweight <sup>2</sup> has the expression:

$$\mathcal{M}\_b(t) = \mathcal{G}\_2 \text{ OB}(t) \cos \varphi(t),\tag{12}$$

where in the weight *G*<sup>2</sup> could be count as added the part of the weight of the connecting bar <sup>3</sup> concentrated in point *B* because is fixed one (Figure 3a).

The position of the counterweight on the balanced arm <sup>1</sup> has the expression:

$$
\Delta OB(t) = \sqrt{AB^2 - OA^2 \cos^2 \varphi(t)} - OA \sin \varphi(t) \tag{13}
$$

or:

$$
\int OB^2(t) = OA^2 + AB^2 - 2\ OA \, AB \cos \phi(t) \tag{14}
$$

where:

$$
\zeta = \frac{\pi}{2} - \varrho(t) - \psi(t) \text{ and } \sin\psi(t) = \frac{OA}{AB}\cos\phi(t) \tag{15}
$$

Unbalancing moment *Mu* is given by relation:

$$
\mathcal{M}\_{ll} = \mathcal{M}\_b + \mathcal{M}\_{\mathcal{S}'} \tag{16}
$$

and by comparing relations (12) and (13) with (8)–(11) is obvious that unbalancing cannot be zero which is anyway shown in Example section. But the unbalancing is better than in the case of linear variation of payload at the same conditions.

As for the solution from Figure 4b, with the rocking counterweight, the balancing is also approximate. The position of bar *BC* with respect to reference system *XOY* has a more complicated form (resulted by the solving of positional kinematics of *RRR* dyad composed by elements *AB* and *BC*) because it depends to:


Analytic solving (and numerical one too [27]) leads to two mathematical solutions from kinematics but only one is correct from balancing point of view, the one when *π*/2 < |*ψ*| < *π*.

General and non-symmetric solution from Figure 4b requires an optimization solving too with following design variables:


#### **3. Adaptive Balancing by Using Springs**

There are many papers and patents [1,2] which studied during the time the problem of static balancing by using springs. Most of them consider the problem when the static load is constant and more of that do not take into consideration the spring mass. In any case the simplest and general solution of articulating a spring between the balanced arm and the ground (Figure 5) is leading to an approximate solution [20].

In this way a better idea is to join the spring to the balanced arm so that its weight concentrated in the joint to act as a counterweight too (Figure 5). But as is wrote in many papers and even from the beginning started by Carwardine [28], the solution from Figure 5 requires zero-free-length springs [25] or zero-free-length elastic systems [29].

**Figure 5.** Static balancing by spring.

One of the solution is to remove one of the spring joints and to intercalate some linkages with zero degrees of freedom [20,25]. In case of variable load this solution requires to intercalate linkages with active joints in order to obtain the required adaptation. In Reference [30] is proposed a solution with active prismatic joints. Also in paper [21] is proposed a more complicated solution with prismatic joints. A simple solution with only one adjusting of a joint of spring on vertical direction is proposed in Reference [22]. The adjusting of the other joint of spring (the one joined to the balanced movable arm) is proposed in Reference [23]. Authors of paper [24] propose an interesting idea to adjust the position of the both joins by using the simultaneous adjusting in order to not consume supplementary energy from the outside.

Prismatic joints are always more complicated from maintenance point of view and not only. So revolute joints are more proper and in Figure 6 are represented solutions to relocate spring joints by using active controlled joints.

Joint *C* and *D* are only controlling active joints. Once the adaptation to the variable load *G<sup>p</sup>* is done then joint *A* and joint *B* respectively, are fixed to the arm and to the ground respectively.

Mixed solution with prismatic and revolute joints as active control joints are presented in Figure 7.

Let take as example the simple one degree of freedom relocation of fixed joint *B* by a prismatic joint presented in Figure 8.

**Figure 6.** Adjusting mechanisms with revolute pairs: (**a**) Controlled relocation of joint *A* of spring; (**b**) Controlled relocation of fixed joint *B* of spring.

**Figure 7.** Adjusting mechanisms with revolute and prismatic pairs: (**a**) Controlled relocation of fixed joint *B* of spring; (**b**) Controlled relocation of joint *A* of spring.

**Figure 8.** Controlled relocation of fixed joint *B* of spring by only one active prismatic joint.

Without any reduction of the generality of the study let consider joint *A* on *Ox*<sup>1</sup> axis and also the point of action of payload in same point *A*. In this case the equilibrium equation of rocking arm <sup>1</sup> is given by equation:

$$\left| F\_s \, OA \, \sin(\theta - \varphi\_1) - M\_{\circlearrowright} \right| = 0 \tag{17}$$

where:

$$\mathcal{M}\_{\mathcal{G}1} = \left(m\_1 \, O\mathcal{C}\_1 + m\_p \, O\mathcal{A}\right) \, \text{g} \, \cos \,\, \mathcal{q} \,\, \tag{18}$$

Force of spring is:

$$F\_s = F\_{s0} + k \left(l\_s - l\_{s0}\right),\tag{19}$$

and:

$$\theta = \operatorname{atan} \frac{\mathbf{Y}\_A - \mathbf{Y}\_B}{\mathbf{X}\_A - \mathbf{X}\_B}, \begin{pmatrix} \mathbf{X}\_A \\ \mathbf{Y}\_A \end{pmatrix} = \begin{pmatrix} \cos \varphi\_1 & -\sin \varphi\_1 \\ \sin \varphi\_1 & \cos \varphi\_1 \end{pmatrix} \begin{pmatrix} \mathbf{x}\_{1A} \\ \mathbf{0} \end{pmatrix},\tag{20}$$

$$OA = \sqrt{\mathbf{X}\_A^2 + \mathbf{Y}\_{A'}^2} \text{ } \mathbf{l}\_s = AB \text{ } = \sqrt{(\mathbf{X}\_A - \mathbf{X}\_B)^2 + (\mathbf{Y}\_A - \mathbf{Y}\_B)^2} \text{ } \tag{21}$$

Are known or considered known at the beginning of the synthesis problem:


When a modification of payload occurs then:

$$\mathbf{G}\_{\mathcal{P}}^{\prime} = \mathbf{G}\_{\mathcal{P}} + \Delta \mathbf{G}\_{\mathcal{P}} \text{ or } m\_{\mathcal{P}}^{\prime} = m\_{\mathcal{P}} + \Delta m\_{\mathcal{P}} \tag{22}$$

According with this modification the *Y*-coordinate of point *B* should be changed by controlling the system:

$$Y\_B{}^{\prime} = Y\_B + \Delta Y\_B \tag{23}$$

Accordingly Relations (19)–(21) will became:

$$F\_s \prime = F\_{s0} + k \left( l\_s \prime - l\_{s0} \right) = F\_s + k \,\Delta l\_{s\prime} \tag{24}$$

$$dl\_s' = l\_s + \Delta l\_s = AB' = \sqrt{(X\_A - X\_B)^2 + \left(Y\_A - Y\_B'\right)^2},\tag{25}$$

$$\theta' = \operatorname{atan} \frac{Y\_A - Y\_B'}{X\_A - X\_B'} \,\tag{26}$$

*Robotics* **2018**, *7*, 68

and new balancing equation:

$$\left| F\_s \, ^\prime OA \, \sin(\theta \, ^\prime - \varphi\_1) - M\_{\mathcal{S}1} - \Delta M\_{\mathcal{S}} = 0 \right. \tag{27}$$

where:

$$
\Delta \mathbf{M}\_{\mathcal{K}} = \Delta m\_p \text{ g OA } \cos \,\, \mathbf{p}\_1 = \Delta \mathbf{G}\_p \,\, OA \,\, \cos \,\, \mathbf{p}\_1 \tag{28}
$$

Due to nonlinearity of Equation (27), comes from Relations (24), (25) and (26), it is impossible to get an explicit relation like:

$$Y\_B{}^{\prime} = Y\_B{}^{\prime}(m\_p(t))\tag{29}$$

or

$$
\Delta Y\_B = \Delta Y\_B \text{ (}\Delta m\_\mathcal{P}(t)\text{)}\tag{30}
$$

which is necessary to the control. Only by using a numerical method could solve this problem.

#### **4. Example**

In the case of solution from Figure 4a let suppose that the variable part of payload has the maximum value *Gpv*,max = 4 N (Figure 3) and is acting at distance *OP* = 2 m while the work space of balanced arm <sup>1</sup> is symmetric with respect to the horizontal axis: *ϕ* ∈ [−π/2, π/2]. Suppose that the counterweight <sup>2</sup> has the weight *G*<sup>2</sup> = 3 N and the connecting road <sup>3</sup> has the length *AB* = 2 m and is articulated on vertical direction at distance *OA* = 1 m.

By taking into consideration a parabolic variation of payload as is represented in Figure 3 (red curve) the maximum unbalancing moment is when the position of balanced arm <sup>1</sup> is near the horizontal (*ϕ* = 0.095 [rad]) and has the magnitude of 0.828 Nm (represented by function *h*2(*x*) plotted in red color in graph from Figure 9).

**Figure 9.** Gravitational moment, unbalanced moments and counterweight balancing moments.

The plotted red dashed curve—represented by function *h*1(*x*) in Figure 9—show the variation of unbalancing moment in case o linear variation of static load [30] which has the maximum value about double than in case of parabolic variation (about 1.4 Nm at position *ϕ* = −0.5 rad).

Better balancing obtained in the case of parabolic variation of payload is expressed also by efficaciousness coefficient [19] with an extended definition in Reference [30]:

$$
\varepsilon = 1 - \frac{E\_\varepsilon + E\_a}{E\_a} \tag{31}
$$

where:

*Eb*—energy consumed by actuating system of the balanced robot;

*Ea*—supplementary energy consumed by an additional actuating system in order to obtain active balancing of robot;

*Eu*—energy consumed by actuating system of the unbalanced robot.

In the case of passive balancing the supplementary energy *Ea* is zero and in present example by comparing the other energies without taking into the consideration the frictions the following efficaciousness coefficient are obtained:

$$\varepsilon\_{\text{lirnear}} = 0.632031$$

$$\varepsilon\_{\text{parabolic}} = 0.973446$$

More of that the unbalancing moment in the case of parabolic variation of the payload (red solid curve 3 in Figure 9) has a variation like in Figure 1b, up and down with respect to the horizontal line of perfect balancing, which is a normal and expected variation in case of approximate balancing [20].

#### **5. Conclusions**

In case of the counterweight balancing two new solutions are proposed in Figure 4 (both passive) in order to be used in Robotics and Mechatronics fields.

Passive solution from Figure 4a with a single bar joined between translational counterweight and the ground leads to a surprisingly good balancing with respect to the simplicity of the solution demonstrated by a simulation (Figure 9). On the other hand the solution is compensating also the variation of the payload (Figure 3) while the functioning domain is very large from −90◦ to +90◦ with respect to horizontal plane. In same conditions the compensation of parabolic variation of payload is better than the compensation in the case of linear variation of payload demonstrated either by simulation results (Figure 9) and by the efficaciousness coefficient defined in Relation (31). Complementary passive solution with a rocking counterweight (see Figure 4b) is used in practice for symmetric solution [10–12] but never seen for the general case as is proposed in Figure 4b.

As for the active solutions with counterweight in papers [30,31] are proposed two complementary solutions (translating and rocking) that are using as counterweight the actuating motor of the balanced arm and even the mechanical transmission could be used as counterweight if the weight of actuating motor is not enough (as are added in the case of camera stabilizers [26] the camera battery and the monitor like additional counterweights).

In case of robots it is also possible to remove electric parts from power and control cabinet (like frequency converters for example) and to mount them as counterweights on the mechanical arm. In this case 2 thick cables (with power and with feed-back information) are replaced by only one power cable.

As for the elastic balancing in the case of variable payload four new active solutions with 2 DOF for joints relocation are presented in Figures 6 and 7. Mathematical model of a related solution, with only one degree of freedom for relocation by translation of the ground joint of the spring (Figure 8), is formulated. The advantages of using springs for static balancing are countered in this case of variable payload by the complicated solutions needed for relocation of the spring's joints.

During the functioning some pressure angles or singularity positions may occur in solutions from Figure 4 for a certain kinematic dimensions set, which is limiting the static balancing operation and this will be next study together with the solving of an optimum problem as is announced. As for the solutions with springs the limitation is higher due to the real spring itself as is presented in paper [25]. Starting by this study, additional studies could be made by going to different directions and by taking into account many other subsidiary problems which is closing better to the reality.

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

**Conflicts of Interest:** The author declares no conflict of interest.

#### **References**


© 2018 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Design and Implementation of a Dual-Axis Tilting Quadcopter**

#### **Ali Bin Junaid 1, Alejandro Diaz De Cerio Sanchez 2, Javier Betancor Bosch 2, Nikolaos Vitzilaios <sup>3</sup> and Yahya Zweiri 2,4,\***


Received: 7 August 2018; Accepted: 18 October 2018; Published: 20 October 2018

**Abstract:** Standard quadcopters are popular largely because of their mechanical simplicity relative to other hovering aircraft, low cost and minimum operator involvement. However, this simplicity imposes fundamental limits on the types of maneuvers possible due to its under-actuation. The dexterity and fault tolerance required for flying in limited spaces like forests and industrial infrastructures dictate the use of a bespoke dual-tilting quadcopter that can launch vertically, performs autonomous flight between adjacent obstacles and is even capable of flying in the event of the failure of one or two motors. This paper proposes an actuation concept to enhance the performance characteristics of the conventional under-actuated quadcopter. The practical formation of this concept is followed by the design, modeling, simulation and prototyping of a dual-axis tilting quadcopter. Outdoor flight tests using tilting rotors, to follow a trajectory containing adjacent obstacles, were conducted in order to compare the flight of conventional quadcopter with the proposed over-actuated vehicle. The results show that the quadcopter with tilting rotors provides more agility and mobility to the vehicle especially in narrow indoor and outdoor infrastructures.

**Keywords:** aerial robotics; quadcopters; UAVs; dual-tilting; tilting rotors; over-actuation; flight control; rotorcraft

#### **1. Introduction**

Over the last few decades, the usage and deployment of UAVs (Unmanned Aerial Vehicles) have been growing, from hobby to military applications. Some of those applications include surveying, maintenance and surveillance tasks, transportation and manipulation, search and rescue [1,2]. Rotorcraft UAVs are of particular interest as they offer advanced capabilities such as Vertical Take Off and Landing (VTOL) and high agility. Quadcopters are the most researched and used platforms in this area.

A quadcopter's lift and thrust is generated by four propellers mounted on high-speed, high-power brushless DC motors. Quadcopters use an electronic control system and electronic sensors to stabilize themselves. With their small size and VTOL capability, quadcopters can fly indoors as well as outdoors. Similar to a conventional helicopters, quadcopters can hover but have significant other advantages such as ease of piloting and mechanical simplicity. Recently, there is a rapid growth in quadcopter development due to the high potential used in numerous commercial applications.

For real world applications, quadcopters require more payload capacity and should be more invulnerable and robust towards external disturbances. However, increased payload capacity demands up scaling the platforms which eventually results in decreased maneuverability and agility [3]. As stated in [3], the inertia of the platform is increased and requires larger control moments to achieve higher agility with the increase of the vehicle size. Secondly, the increased weight results in increased propeller size consequently increasing the inertia. The conventional quadcopter possesses such physical constraints with its control on larger scales.

Conventional quadcopters are under-actuated mechanical systems possessing less control inputs than Degrees Of Freedom (DOFs). Over the last decades, different control techniques have been proposed to deal with the quadcopter under-actuation for an effective and more controlled performance [3–5]. Still, the under-actuation of quadcopter has limitations on its flying ability in free or cluttered space.

In a conventional under-actuated quadcopter, actuators failure results in complete destabilization of the vehicle as its control is completely dependent on the symmetry of the lift. To alleviate this problem, several approaches have been proposed in previous studies. In [6], propellers with variable pitch and shifting of the Center of Gravity (COG) are suggested. These approaches enable to achieve the controllability of the vehicle in roll and pitch axes up to some extent. However, the yaw axis still remains uncontrollable. In [7], a bounded control law was proposed in order to have a safe landing for quadcopter in case of actuators failure.

One approach to overcome this issue is to increase the number of rotors. Typical example includes 4Y octocopters [8]. This approach has advantages such as the mechanical simplicity and reliability. However, this approach results in increased weight and increased inertia hence reducing the agility of the vehicle. Furthermore, increased number of rotors results in larger power consumption which immensely impacts the endurance of the aircraft. Nevertheless, standard hexarotors are not fail-safe multi-rotor platforms and cannot hover with five propellers [9].

Apart from the increasing number of rotors approach, other approaches include variation in the types of actuators keeping in consideration the key factors which are the vehicle's size and weight. Cutler et al. [10] showed an effective approach by using propellers with variable pitch. In this approach, while keeping the weight down, the bandwidth of its actuators was increased. However, actuator failure resulting in instability still remains an issue.

Other solutions to overcome the under-actuated problem include tilt-wing mechanisms [11], UAVs with non-parallel fixed thrust directions [12], or tilt-rotor actuations [13]. Similar approach with the dual-axis tilting of the rotors providing the broad range of control bandwidth for the same number of rotors is proposed in [14]. However, most of the platforms were developed and tested in indoor environments with low payload capacities. Furthermore, indoor navigation systems were used to develop the control of the tilting quadcopter. Similar concept of rotor tilting is used in [15,16], however, rotor tilting is limited to single axis only.

In [17], Control Moment Gyroscopes (CMG) were proposed to increase the control system bandwidth by merging a thrust vectoring approach with additional flywheels in order to be used as CMG, and a vane system for thrust vectoring. However, the extra weight of the flywheels and the thrust vectoring vane system results in increased weight of the aircraft and complicates the design of the vehicle. Gress [18] used Opposed Lateral Tilting (OLT) technique for using the gyroscopic effects for governing the pitch attitude of aircraft, using the propellers as gyroscopes. In [19], OLT proved to achieve higher controllability. The detailed model and control strategy for hovering, with experimental evidence is presented in [20]. To implement such control strategies and actuation mechanisms, it is important to keep in mind key factors for the development of such vehicles, which are weight, mechanical simplicity, cost-effectiveness and ability to manufacture the platform in less time.

Nowadays, advances in the fields of Computer Aided Design (CAD) and Rapid Prototyping (RP) have provided the tools to rapidly generate a prototype from a concept. RP technique allows to automatically construct physical models using additive manufacturing technology [21,22]. Mechanical parts or assembly can be quickly manufactured using 3D CAD design. This technique has

emerged as an innovative tool to reduce the time and cost of manufacturing and fabrication by creating 3D product directly from computer aided design providing the ability to perform design validation and analysis [23,24].

This paper presents design and implementation of a novel actuation strategy which was proposed by co-author in [25] in order to increase the agility and control bandwidth of the conventional quadcopters in outdoor scenarios.

The introduction of dual-axis tilting to the propellers produces an over-actuated quadcopter with ability to have 12 control inputs with 6 control outputs. The tilting of propellers provides the necessary gyroscopic effects to provide fast control and action. The proposed tilting rotor solution for quadcopter uses additional 8 servomotors that allow the rotors to tilt in both axes, an over-actuated system can potentially track an arbitrary trajectory over time. As shown in [26,27], with single axis tilting, full controllability over the quad-rotor position and orientation provides possibility of hovering in a tilted configuration. The research here focuses on the design of such platform and conduct initial experiments to test the actuation modules in outdoor urban environment.

The development of the proposed concept is mainly based on arm design of the quadcopter in which each arm is able to generate three-actuation independently, including the rotors to achieve differential thrusting and dual tilting mechanism to provide broad range of control bandwidth. The computer-aided design (CAD) model was designed and analyzed using finite element analysis (FEA) for the structural rigidity and stability. The experiments were performed using the developed platform which achieved full controllability of the quadcopter thus transforming the system into an over-actuated machine. Flight tests were performed in a trajectory having sharp corners between adjacent obstacles in order to compare the behavior of conventional quadcopter configuration and the proposed actuation strategy. The results show that the quadcopter with tilting rotors provides more agility and mobility to the vehicle especially in narrow indoor and outdoor infrastructures.

The paper layout is as follows: first the design approach for the development of quadcopter with over-actuated mechanism along with its electronics to control the mechanisms is presented. Secondly, the modeling and simulation results are presented. Furthermore, the structural analysis of the rapid prototyped parts is presented ensuring the structural stability of the platform. The flight test results of the developed platform for the conventional and over-actuated configuration are presented. Finally, the results are discussed and some conclusions are drawn.

#### **2. Design Approach**

Two servomotors were used to achieve the dual tilting actuation with each rotor. The platform was designed in SolidWorks and manufactured using a ZORTRAX 3D printer [28]. The mechanical design of the quadcopter is shown in Figure 1.

**Figure 1.** CAD model of proposed quadcopter.

The proposed actuation concept of the quadcopter arms and motors is shown in Figures 2 and 3. The dual tilting mechanism of the arms is mainly based on the servomotor which is coupled with the arm through gears in order to compensate the high torque demand for rotation. This mechanism allows the movement of the whole arm around its axis as shown in Figure 2. Another servomotor is mounted in the arm which connected to the motor mount through push-pull mechanism which rotates parallel to the servo lever as shown in Figure 3. The two angles generated by the servomotors constitute towards the configuration of the rotation axes of the propellers.

**Figure 2.** CAD model of proposed dual-tilting arm.

**Figure 3.** Push-pull mechanism for the tilting of rotor.

The gear mechanism for the coupling of servomotor with the arm of the quadcopter is installed with the gear ratio of 1:3 to fulfill the torque requirement for rotating the arm of the quadcopter. The coupling mechanism is shown in Figure 4. For the actuation of dual-axis tilting system, a total of eight servomotors are used for rotating the arms and motor mountings.

**Figure 4.** Gear coupling for the tilting of arm.

#### **3. Modeling and Simulation of Over-Actuated Quadcopter**

#### *3.1. Modeling*

For the development of the mathematical model which defines the dynamics of the dual-axis tilting quadcopter, Newton-Euler formulation has been used to derive the equations. The development process includes the definition of variables and axes reference, formulation using Newton-Euler equations, and including inertia variation [29]. The inertia of the quadcopter has been considered variable due to variation of the rotors position as a result of the tilting. These dynamic equations have been developed using Maple®.

To begin the analysis of the system, three frames have been selected in order to develop the system equations. The first frame is the world frame therefore we refer to it as the frame 1 (World Frame). The next frame is defined to be fixed in the center of gravity of the UAV and is referred as frame 2 (Body Frame). Finally, the third frame is defined to be fixed in each of the rotors and is referred as frame 3 (Rotor Frame), shown in Figure 5. The overall system model diagram is shown in Figure 6. In this paper, kinematics and dynamic modeling of the dual-axis titling system is developed (Propellers and Tilting block, shown in Figure 6), whereas the conventional quadcopter modeling details are standard text book material therefore omitted here.

**Figure 5.** Rotor numbering and reference frames [29].

**Figure 6.** Dual-axis tilting quadcopter modeling diagram.

It is important to set reference frames in each rotor, to get the kinematic and dynamic equations for each rotor in the UAV. To simplify the equations, the four local frames of each rotor have been aligned with respect to the global axis following a rotational relationship with respect to the *Z* axis by 90◦ counter-clockwise. The expression which defines the rotation matrix is shown below as example of the rotation for the rotor 2.

$$
\begin{bmatrix} i\_2 \\ j\_2 \\ k\_2 \end{bmatrix}\_3 = \mathbf{R}\_{\mathbf{Z}} \left( \frac{\pi}{2} \right) \cdot \begin{bmatrix} i\_1 \\ j\_1 \\ k\_1 \end{bmatrix}\_3
$$

Similarly, the rotation matrix is applied for the rotors 3 and 4 with an angular difference of 90◦ counter-clockwise each, which represents 180◦ offset for the rotor 3 and 270◦ offset for the rotor 4. The general rotation matrix for each rotor therefore is defined as:

$$
\begin{bmatrix} i\_i \\ \ j\_i \\ k\_i \end{bmatrix}\_3 = \mathbf{R}\_{\mathbf{Z}}((i-1)\frac{\pi}{2}) \cdot \begin{bmatrix} i\_1 \\ j\_1 \\ k\_1 \end{bmatrix}\_3 \qquad for \quad i = 1 \cdots 48$$

As frame 3 is fixed, every equation is translated from frame 3 to frame 2. As result of translating the local axis of each rotor with respect to frame 2, three matrices for the rotation of each axis are obtained as **RX**, **RY** and **RZ**.

$$\mathbf{R}\_{\mathbf{X}} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(\beta\_i(t)) & -\sin(\beta\_i(t)) \\ 0 & \sin(\beta\_i(t)) & \cos(\beta\_i(t)) \end{bmatrix} \tag{1}$$

$$\mathbf{R}\_{\mathbf{Y}} = \begin{bmatrix} \cos(\eta\_i(t)) & 0 & \sin(\eta\_i(t)) \\ 0 & 1 & 0 \\ -\sin(\eta\_i(t)) & 0 & \cos(\eta\_i(t)) \end{bmatrix} \tag{2}$$

$$\mathbf{R}\_{\mathbf{Z}} = \begin{bmatrix} \cos\left(\frac{\pi}{2} \cdot (i-1)\right) & -\sin\left(\frac{\pi}{2} \cdot (i-1)\right) & 0 \\ \sin\left(\frac{\pi}{2} \cdot (i-1)\right) & \cos\left(\frac{\pi}{2} \cdot (i-1)\right) & 0 \\ 0 & 0 & 1 \end{bmatrix}$$

Finally, the rotation matrix from frame 2 to frame 1 is obtained by three rotation matrices, one in each axis of the frame 1. In this case, the Euler angles are used to identify the orientation of the aircraft. The angles are denoted by *θ*, *ϕ*, *ψ* corresponding to roll, pitch and yaw and representing the angular displacement of the UAV along the *X*, *Y* and *Z* axes respectively. The rotation matrix from the body to the fixed frame is shown in Equation (3).

$$\mathbf{r}^2 \mathbf{R}\_1 = \begin{bmatrix} c(\theta)c(\psi) & -c(\theta)s(\psi) & s(\theta) \\ s(\varphi)s(\theta)c(\psi) + c(\varphi)s(\psi) & -s(\varphi)s(\theta)s(\psi) + c(\varphi)c(\psi) & -s(\varphi)c(\theta) \\ -c(\varphi)s(\theta)c(\psi) + s(\varphi)s(\psi) & c(\varphi)s(\theta)s(\psi) + s(\varphi)c(\psi) & c(\varphi)c(\theta) \end{bmatrix} \tag{3}$$

where *c* and *s* denote to the trigonometric functions *cosine* and *sine* respectively. With these equations the major problem for applying the Newton-Euler equations to our system is sorted. From this point, the calculation of the angular and linear accelerations for the UAV has been done by solving Equation (4). For the calculation of the angular accelerations, the general kinematic equation for the UAV has been used. The Equations (4) and (6) define the angular and linear accelerations of the UAV platform. The motors are rotating the propellers, this represents an angular velocity denoted by Ω.

$$\vec{R}\_B = (I\_B + 4I\_P)^{-1} \cdot \left[ \vec{M}\_T - \sum\_{l=1}^4 (^2\mathbf{R}\_3)\_l I\_P \begin{pmatrix} \vec{\rho}\_l \\ \eta\_l \\ \Omega\_l \end{pmatrix} + (^2\mathbf{R}\_3)\_l \vec{\tau}\_{\rm ext} - \frac{d}{dt}(I\_B)\vec{\omega}\_B - \Theta I\_B \vec{\omega}\_B \right] \tag{4}$$

where **Θ** is the Skew matrix. This is formed by the angular velocity of the platform in three axes [29], it is given as:

$$
\boldsymbol{\Theta} = \begin{bmatrix}
0 & -R(t) & Q(t) \\
R(t) & 0 & -P(t) \\
\end{bmatrix} \tag{5}
$$

$$
\begin{bmatrix} \dot{u} \\ \dot{v} \\ \dot{w} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ -\mathcal{g} \end{bmatrix} + \frac{1}{m} \left[ (^1\mathbf{R\_2}) \cdot \sum\_{i=1}^4 (^2\mathbf{R\_{3i}} \cdot \mathcal{T}\_{P\_i}) \right] \tag{6}
$$

Expanding these equations and considering the rotation matrices, the dynamic equations for forces and torques can be obtained as follows:

⎡ ⎢ ⎣ *Fx Fy Fz* ⎤ ⎥ <sup>⎦</sup> <sup>=</sup> ⎡ ⎢ ⎣ (*kx*<sup>1</sup> + *λx*1) (*k*<sup>∗</sup> *<sup>x</sup>*<sup>2</sup> + *λ*<sup>∗</sup> *<sup>x</sup>*2) (−*kx*<sup>3</sup> + *λx*3) (−*k*<sup>∗</sup> *<sup>x</sup>*<sup>4</sup> − *λ*<sup>∗</sup> *x*4) (*kx*<sup>1</sup> + *λy*1) (*k*<sup>∗</sup> *<sup>x</sup>*<sup>2</sup> + *λ*<sup>∗</sup> *<sup>y</sup>*2) (−*kx*<sup>3</sup> + *λy*3) (−*k*<sup>∗</sup> *<sup>y</sup>*<sup>4</sup> − *λ*<sup>∗</sup> *y*4) (*kz*<sup>1</sup> + *λz*1) (*k*<sup>∗</sup> *<sup>z</sup>*<sup>2</sup> + *λ*<sup>∗</sup> *<sup>z</sup>*4) (−*kz*<sup>3</sup> + *λz*4) (−*k*<sup>∗</sup> *<sup>z</sup>*<sup>4</sup> − *λ*<sup>∗</sup> *z*4) ⎤ ⎥ ⎦ ⎡ ⎢ ⎢ ⎢ ⎣ *T*1 *T*2 *T*3 *T*4 ⎤ ⎥ ⎥ ⎥ ⎦ ⎡ ⎢ ⎣ *τx τy τz* ⎤ ⎥ <sup>⎦</sup> <sup>=</sup> ⎡ ⎢ ⎣ *Tx Ty Tz* ⎤ ⎥ <sup>⎦</sup> <sup>+</sup> ⎡ ⎢ ⎣ *lxx lxy lxz lyx lyy lyz lzx lzy lzz* ⎤ ⎥ ⎦ ⎡ ⎢ ⎣ *IPx IPy IPz* ⎤ ⎥ <sup>⎦</sup> <sup>+</sup> ⎡ ⎢ ⎣ *ρx ρy ρz* ⎤ ⎥ ⎦

The coefficients of the forces and the torques are given in Appendix A.

It is important to mention that the inertia of the system varies due to the tilting rotors and cannot be assumed as constant (time invariant). Therefore, the inertia matrix (Equation (7)) is modeled in this paper as:

$$I\_B = \begin{bmatrix} I\_{xx} & 0 & 0 \\ 0 & I\_{yy} & 0 \\ 0 & 0 & I\_{zz} \end{bmatrix} + \begin{bmatrix} I\_{P\_{\mathcal{X}}^{t}\mathcal{X}^{t}} & 0 & 0 \\ 0 & I\_{P\_{\mathcal{Y}}^{t}\mathcal{Y}^{t}} & 0 \\ 0 & 0 & I\_{P\_{\mathcal{Z}}^{t}\mathcal{Z}^{t}} \end{bmatrix} + m \cdot \begin{bmatrix} y\_{\mathcal{C}}^{2} & 0 & 0 \\ 0 & x\_{\mathcal{C}}^{2} & 0 \\ 0 & 0 & x\_{\mathcal{C}}^{2} + y\_{\mathcal{C}}^{2} \end{bmatrix} \tag{7}$$

Expanding Equation (7) yields the inertia values in the main axis which are given in Appendix B.

#### *3.2. Simulation*

The simulation of the dynamic equations is implemented using Matlab/Simulink© incorporating the motor dynamics, attitude controller for Roll, Pitch and Yaw, and the controller for tilting angles of the rotors (Figure 7). The quadcopter can be simulated to observe the flight behaviour under the influence of different control inputs i.e. attitude commands and tilting rotor angle inputs.

Rectangular path was simulated to observe the performance of UAV using tilting angle of rotors as inputs. In Figure 8, the simulation shows the movement of UAV in a rectangular path with only using the tilting capability of the rotors without changing its attitude. The platform was able to perform sharp cornering maneuvers.

**Figure 7.** Simulink model.

**Figure 8.** Rectangular path movement of UAV with tilting.

The trajectory was followed only using tilt rotor actuation. The rotor tilting angle along the arm (*n*) is used to follow a rectangular trajectory. Each rotor is coupled with the opposite rotor with tilting at angles shown in Figure 9. At each corner, the adjacent rotors are tilted to follow the path. Figure 10 shows the attitude of the UAV i.e., Roll and Pitch and it can be observed that the quadcopter performs the maneuver without changing its attitude.

**Figure 9.** (**a**) Rotor tilting angles along the arm *n*<sup>1</sup> and *n*3; (**b**) Rotor tilting angles along the arm *n*<sup>2</sup> and *n*4.

From Figure 9, rotor angles along the arm *n*<sup>1</sup> and *n*<sup>3</sup> are tilted at 10 degrees without a change in attitude (as observed in Figure 10) and the quadcopter starts moving in that direction. On the corners, the adjacent rotors (*n*<sup>2</sup> and *n*4) are tilted to follow the trajectory.

**Figure 10.** (**a**) Roll angle of the UAV; (**b**) Pitch angle of the UAV.

#### **4. Experimental Setup**

The four brushless motors selected were the Tiger T-MOTOR MN4014-9 400Kv with a 2-blade 15 × 5 Carbon Fiber propellers as shown in Figure 11.

**Figure 11.** (**Left**) Brushless motor; (**Right**) Propeller used for thrust generation.

For the Flight Control of the UAV, ArduPilotMega (APM) was used. APM is an open-source flight controller, able to control autonomous multicopters, fixed-wing aircraft, traditional helicopters and ground rovers. It is based on the Arduino electronics prototyping platform. Apart from the APM, which is mainly controlling the brushless motors and handling the inner loop control of the vehicle, the Arduino Leonardo microcontroller board is used to control the added servomotors. Figure 12 show the controllers used for the proposed vehicle.

**Figure 12.** (**Left**) APM Flight controller; (**Right**) Arduino Leonardo.

The inner-loop control of the quadcopter is handled by the APM. This on-board inner-loop control device deals with control and stabilization required to hover and perform basic maneuvers. The APM board contains the inertial sensors required for the orientation and heading determination and its software includes the inner-loop control algorithm and the basic Graphical User Interface (GUI) for visualization. Generally, the APM input is provided by the RC remote control which allows the user to manually control and fly the multicopter. The TGY-i10 RC Controller was used as the input for the flight controller. GPS module was attached to the APM in order to navigate the aircraft and track its position for post-processing and analysis. The APM attitude controller was fused with the other controller which was aimed for controlling the inputs for the servo motors responsible for the tilting of the rotors. This controller mainly controls the tilting of the servomotors by combining the inputs for the attitude control of the UAV and the tilting commands for the rotors from the pilot. The commands generated by the human pilot using RC Controller are received by the Arduino Leonardo. The pilot has control of the conventional attitude of quadcopter and tilting servomotors. Based on the control inputs from the pilot, Arduino reads in Pulse Position Modulation (PPM) signals from the RC controller and generates commands (PPM signals) of roll, pitch, yaw and throttle to the APM and commands for servomotors simultaneously. This allows the pilot to have full control of all the actuators of the dual-tilting quadcopter. If the pilot wants to perform maneuvers using only tilting, the Arduino generates commands for the servo motors and proportionally generates attitude commands in order to compensate the tilting actuation.

Currently the tilting angle is limited to 10◦ for each servomotor. Unlike the conventional quadcopter, this gives the pilot additional control inputs i.e., tilting of the rotors along with conventional control for increased maneuverability. The altitude during all the flight tests was kept in altitude hold mode. The APM flight controller provides the feature of holding the altitude allowing to hover and maneuver at the desired altitude.

The control implementation here is rather basic since a more sophisticated development is out of the scope of this paper but remains in the future work agenda. The conventional inner loop controller of the APM [30] allows the quadcopter to respond to attitude commands of the pilot which are passed through Arduino Leonardo. Arduino Leonardo allows the control of the attitude and the tilting simultaneously. Figure 13 illustrates the experimental setup for control.

After assembling all the manufactured parts and integrating the related modules for the over-actuated mechanisms for the quadcopter, the final product is shown in Figure 14.

Table 1 presents some of the technical specifications of the developed quadcopter.


**Table 1.** UAV Technical Specifications.

**Figure 14.** Dual-tilting quadcopter prototype.

#### **5. Results and Discussion**

#### *5.1. Flight Test with Conventional Actuation of Quadcopter*

After the successful manufacturing and assembly of the vehicle, flight test was conducted for the conventional under-actuated configuration of the quadcopter in order to validate the design parameters and the dynamic model of the vehicle. Relevant flight variables of interest were analyzed in order to observe the behaviour and attitude for the designed vehicle. The results in Figures 15–17 show the control of each axis.

For each axis, the vehicle performs satisfactorily and flies according to the input angles given by the pilot through RC control. GPS is used for the position feedback as ground truth. The proposed system performs well for the conventional configuration and flight controls and validates the design of the platform and its flight stability for the conventional control. Therefore, it can be concluded that the vehicle is stable and able to maintain its attitude. Moreover, the platform can be used for developing and testing of the flight controls for the over-actuated configuration and performs well with proper control techniques for the over-actuated quadcopter design. With the development of over-actuated quadcopter controller, the manufactured vehicle gives plenty of control authority and high maneuverability due to its capability to incorporate the excess number of control inputs.

**Figure 15.** Roll command tracking of the vehicle.

**Figure 16.** Pitch command tracking of the vehicle.

**Figure 17.** Yaw command tracking of the vehicle.

#### *5.2. Flight Test with Tilting Rotors*

The experimental scenario was created in order to validate the performance of the quadcopter using tilting rotors. As mentioned in Section 3, the quadcopter was simulated to imitate a rectangular trajectory which involves sharp cornering for the vehicle. Real corners (imitating trees in a dense forest) were created in an outdoor flying space, the quadcopter was flown to follow the rectangular trajectory along those corners with tilting and without tilting rotors. Figure 18 shows the track followed by the quadcopter using only tilting angles.

The attitude of the quadcopter during the flight can be observed in Figure 19 which shows that the quadcopter is stabilizing and maintaining its horizontal attitude without contributing in the movement in order to follow the trajectory. The rectangular trajectory including the cornering is achieved using only tilting of the rotors along the arms.

The same trajectory following was performed without using tilting of the rotors, with conventional configuration of the quadcopter. The results of trajectory followed by the quadcopter with conventional configuration is shown in Figure 20.

Comparing of the quadcopter attitude in both cases, i.e. with conventional actuation and with tilting rotor actuation for the same trajectory (Figures 19 and 21), it can be observed that the quadcopter with conventional actuation requires the whole frame to be tilted in order to maintain attitude. Whereas dual tilting actuation quadcopter provides the ability to maneuver in a way regardless of its attitude.

Furthermore, it is evident from the comparison of the trajectory followed by the quadcopter with two different actuation strategies that the quadcopter with tilting actuation of the rotors is able to maneuver efficiently through corners which minimizes the effort of the vehicle movement.

From Figures 18 and 20, it can be noticed that the conventional actuation of the quadcopter limits the motion of the vehicle around sharp corners up to certain extent, requiring a larger turning radius in order to do the cornering. The clearing distance through obstacles using tilting is d = 1.25 m, while with the conventional configuration, d = 2.65 m. It is clear that wider gap is required for the conventional quadcopter to fly through the obstacles whereas with tilting ability, the quadcopter is able to fly more precisely, reducing the clearing distance. The conventional quadcopter would not be able to execute such maneuvers as the under-actuation limits its ability. Tilting provides more controllability and ability to the vehicle as it can move without changing its attitude which helps the developed system to fly through narrow gaps and under trees canopy. The combination of tilting rotors with attitude control provide increased agility and control bandwidth in an urban outdoor scenario where the flying through narrow gaps and obstacles is challenging as compared to under-actuated quadcopter.

**Figure 18.** The real-time trajectory followed by UAV using tilting, d = 1.25 m.

**Figure 19.** Roll and pitch angle of the UAV while maneuvering only with tilting.

**Figure 20.** The real-time trajectory followed by UAV without using tilting, d = 2.65 m.

**Figure 21.** Roll and Pitch angle of the UAV while maneuvering without tilting.

#### **6. Conclusions**

This paper proposes a design and implementation of an over-actuated quadcopter with dual-axis tilting rotors. The CAD model was developed following the manufacturing of the system using rapid prototyping in order to minimize the manufacturing time and cost. The modeling and simulation of the over-actuated system allowed observing the behavior of the platform using different control inputs. The flight test results in outdoor conditions show satisfactory performance of the developed platform. The experiments were performed to observe and compare the capability of over-actuated configuration against conventional configuration which showed that the proposed platform performs better when it comes to flying along corners and between adjacent obstacles, and gives better maneuverability compared to conventional quadcopter.

Integration of dual-axis tilting capability to quadcopters opens different research areas, including developing control and recovery strategies. Quadcopter with dual-tilting actuation will vastly expand its applications in search and rescue missions, detecting missing persons in a wide dense forest area with advantage of being able to fly under trees canopy.

Future work will focus on quantifying the energy consumption and the development of different fail-safe strategies in case of failure of one or two of the rotors. The development of failure strategies will use the full capability of over-actuation presented in the current research.

**Author Contributions:** All authors have made great contributions to the work. A.B.J., J.B.B. and Y.Z. designed and built the platform. A.D.D.C.S., J.B.B. and Y.Z. developed the model and the simulation. A.B.J., A.D.D.C.S. and N.V. conducted the experiments. A.B.J., N.V. and Y.Z. analyzed the data and revised the manuscript.

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

**Acknowledgments:** The authors would like to thank Miguel Guzman and Zineb Chelh for their help in the preliminary platform design and simulation.

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

#### **Abbreviations**

The following abbreviations are used in this manuscript:


#### **Appendix A. Coefficients of the Forces and the Torques**

The coefficients of the force dynamic equation in *x*-axis are as follows:

$$k\_{xi} = \sin(\phi)\sin(\theta)\left[\cos(b\_i)\left[\sin(n\_i)\cos(\psi) - \cos(n\_i)\right] - \sin(b\_i)\sin(\psi)\right] \tag{A1}$$

$$k\_{\rm xi}^{\*} = \sin(\phi)\sin(\theta)\left[\cos(b\_{\rm i})\left[\sin(n\_{\rm i})\cos(\psi) + \cos(n\_{\rm i})\right] + \sin(b\_{\rm i})\sin(\psi)\right] \tag{A2}$$

$$\lambda\_{xi} = \cos(\theta) \left[ \sin(b\_i) \cos(\psi) + \sin(n\_i) \cos(b\_i) + \sin(\psi) \right] \tag{A3}$$

$$
\lambda\_{\rm xi}^{\*} = \cos(\theta) \left[ \sin(b\_{l}) \cos(\psi) - \sin(n\_{l}) \cos(b\_{l}) + \sin(\psi) \right] \tag{A4}
$$

The coefficients of the force dynamic equation in *y*-axis are as follows:

$$k\_{yi} = \sin(\phi)\sin(\theta)\left[\cos(b\_i)\left[\sin(n\_i)\cos(\psi) + \cos(n\_i)\right] - \sin(b\_i)\sin(\psi)\right] \tag{A5}$$

$$k\_{yi}^{\*} = \sin(\phi)\sin(\theta)\left[\cos(b\_i)\left[\sin(n\_i)\cos(\psi) - \cos(n\_i)\right] + \sin(b\_i)\sin(\psi)\right] \tag{A6}$$

$$\lambda\_{yi} = \cos(\phi) \left[ \sin(b\_i) \cos(\psi) + \sin(n\_i) \cos(b\_i) \sin(\psi) \right] \tag{A7}$$

$$
\lambda\_{yi} = \cos(\phi) \left[ \sin(B\_i) \cos(\psi) + \sin(n\_i) \cos(b\_i) \sin(\psi) \right] \tag{A8}
$$

The coefficients of the force dynamic equation in *z*-axis are as follows:

$$k\_{z1} = \sin(\theta) \left[ \sin(\psi) \left[ \sin(n\_1) \cos(b\_1) - \sin(b\_1) \cos(\phi) \right] - \sin(n\_1) \cos(b\_1) \cos(\phi) \cos(\psi) \right] \tag{A9}$$

$$k\_{z2} = \sin(\theta) \left[ \sin(\psi) \left[ \sin(b\_2) + \sin(n\_2) \cos(b\_2) \cos(\phi) \right] - \sin(b\_2) \cos(\phi) \cos(\psi) \right] \tag{A10}$$

$$k\_{\exists 3} = -\sin(\theta) \left[ \sin(\psi) \left[ \sin(n\_3) \cos(b\_3) + \sin(b\_3) \cos(\phi) \right] - \sin(n\_3) \cos(b\_3) \cos(\phi) \cos(\psi) \right] \tag{A11}$$

$$k\_{z4} = \sin(\theta) \left[ \sin(\psi) \left[ \sin(b\_4) + \sin(n\_4) \cos(b\_4) \cos(\phi) \right] - \sin(b\_4) \cos(\phi) \cos(\psi) \right] \tag{A12}$$

$$
\lambda\_{z1} = \cos(n\_1)\cos(b\_1)\cos(\theta)\cos(\phi) - \sin(b\_1)\sin(\phi)\cos(\psi) \tag{A13}
$$

$$\lambda\_{52} = \cos(b\_2) \left[ \sin(n\_2) \sin(\phi) \cos(\psi) - \cos(n\_2) \cos(\phi) \cos(\theta) \right] \tag{A14}$$

$$\lambda\_{\Xi} = -\cos(n\_3)\cos(b\_3)\cos(\theta)\cos(\phi) + \sin(b\_1)\sin(\phi)\cos(\psi) \tag{A15}$$

$$\lambda\_{z4} = -\cos(b\_4) \left[ \sin(n\_4) \sin(\phi) \cos(\psi) - \cos(n\_4) \cos(\phi) \cos(\theta) \right] \tag{A16}$$

The coefficients of the torque dynamic equation in *x*-axis are as follows:

$$\begin{aligned} l\_{xx} &= -\cos(n\_1)IP\_x\ddot{b}\_1 - \sin(n\_2)\sin(b\_2)IP\_x\ddot{b}\_2 + \cos(n\_3)IP\_x\ddot{b}\_3 + \sin(n\_4) \\ \sin(b\_4)IP\_x\ddot{b}\_4 \end{aligned} \tag{A17}$$

$$\begin{split} l\_{xy} &= -\sin(\imath\_1)\sin(b\_1)IP\_y\imath\_1 + \cos(b\_2)IP\_y\imath\_2 + \sin(\imath\_3)\sin(b\_3)IP\_y\imath\_3 - \\ \cos(b\_4)IP\_y &\end{split} \tag{A18}$$

$$\begin{split} l\_{xz} &= -\sin(n\_1)\cos(b\_1)IP\_z\omega\_1 - \sin(b\_2)IP\_z\omega\_2 + \sin(n\_3)\cos(b\_3)IP\_z\omega\_3 + \\ \sin(b\_4)IP\_z\omega\_4 \end{split} \tag{A19}$$

$$
\rho\_{\overline{x}} = QRIB\_{yy} - QRIB\_{zz} - PdIB\_{\overline{x}} \tag{A20}
$$

The coefficients of the torque dynamic equation in *y*-axis are as follows:

$$\begin{aligned} l\_{yx} &= \sin(n\_1)\sin(b\_1)IP\_x\ddot{b}\_1 - \sin(n\_2)IP\_x\ddot{b}\_2 - \sin(n\_3)\sin(b\_3)IP\_x\ddot{b}\_3 + \\ &\sin(n\_4)IP\_x\ddot{b}\_4 \end{aligned} \tag{A21}$$

$$\begin{aligned} l\_{yy} &= -\cos(b\_1)IP\_y\ddot{n}\_1 - \sin(n\_2)\sin(b\_2)IP\_y\ddot{n}\_2 + \cos(b\_3)IP\_y\ddot{n}\_3 + \sin(n\_4) \\ \sin(b\_4)IP\_y\ddot{n}\_4 \end{aligned} \tag{A22}$$

$$\begin{split} l\_{yz} &= \sin(b\_1)IP\_z\omega\_1 - \sin(n\_2)\cos(b\_2)IP\_z\omega\_2 - \sin(b\_3)IP\_z\omega\_3 + \sin(n\_4) \\ &\cos(b\_4)IP\_z\omega\_4 \end{split} \tag{A23}$$

$$
\rho\_y = PRIB\_{zz} - PRIB\_{xx} - QdIB\_y \tag{A24}
$$

The coefficients of the torque dynamic equation in *z*-axis are as follows:

$$l\_{\Xi x} = \sin(n\_1)IP\_{\mathfrak{x}}\ddot{b}\_1 + \sin(n\_2)IP\_{\mathfrak{x}}\ddot{b}\_2 + \sin(n\_3)IP\_{\mathfrak{x}}\ddot{b}\_3 + \sin(n\_4)IP\_{\mathfrak{x}}\ddot{b}\_4\tag{A25}$$

$$\begin{aligned} l\_{zy} &= -\cos(n\_1)\sin(b\_1)IP\_y\vec{n}\_1 - \cos(n\_2)\sin(b\_2)IP\_y\vec{n}\_2 - \cos(n\_3)\sin(b\_3)IP\_y\vec{n}\_3 - \\ \cos(n\_4)\sin(b\_4)IP\_y\vec{n}\_4 \end{aligned} \tag{A26}$$

$$\begin{split} l\_{zz} &= \cos(n\_1)\cos(b\_1)IP\_z\omega\_1 + \cos(n\_2)\cos(b\_2)IP\_z\omega\_2 + \cos(n\_3)\cos(b\_3)IP\_z\omega\_3 + \\ &\cos(n\_4)\cos(b\_4)IP\_z\omega\_4 \end{split} \tag{A27}$$

$$\rho\_z = QPIB\_{xx} - PQIB\_{yy} - RdIB\_z \tag{A28}$$

#### **Appendix B. Inertia Values**

Expanding Equation (7) yields the inertia values in the main axis as follows:

$$\begin{split} I\_{\text{Bxx}} &= \quad I\_{\text{xx}} + 2I\_{\text{Pxx}} + 2I\_{\text{Pzz}} + \lambda \left[ \cos(2\eta\_1) + \cos(2\eta\_2) + \cos(2\eta\_3) + \cos(2\eta\_4) \right] \\ &+ 2m\_PL^2 \end{split} \tag{A29}$$

$$\begin{aligned} I\_{Byy} &= \begin{aligned} I\_{yy} + 2I\_{Pyy} + I\_{Pxx} + I\_{Pzz} - \frac{1}{2}\lambda \left[ \cos(2\eta\_1) + \cos(2\eta\_2) + \cos(2\eta\_3) + \cos(2\eta\_4) \right] \\ &+ \xi \left[ \cos(2\xi\_1) + \cos(2\xi\_2) + \cos(2\xi\_3) + \cos(2\xi\_4) \right] \\ &+ \frac{1}{2}\lambda \left[ \cos(2\eta\_1)\cos(2\xi\_1) + \cos(2\eta\_2)\cos(2\xi\_2) + \cos(2\eta\_3)\cos(2\xi\_3) + \cos(2\eta\_4)\cos(2\xi\_4) \right] \\ &+ 2m\_P L^2 \end{aligned} \tag{A30}$$

$$\begin{aligned} I\_{Bzz} &= \begin{aligned} I\_{zz} + 2I\_{Pyy} + I\_{Pxx} + I\_{Pzz} - \frac{1}{2}\lambda \left[ \cos(2\eta\_1) + \cos(2\eta\_2) + \cos(2\eta\_3) + \cos(2\eta\_4) \right] \\ - \zeta \left[ \cos(2\xi\_1) + \cos(2\xi\_2) + \cos(2\xi\_3) + \cos(2\xi\_4) \right] \\ - \frac{1}{2}\lambda \left[ \cos(2\eta\_1)\cos(2\xi\_1) + \cos(2\eta\_2)\cos(2\xi\_2) + \cos(2\eta\_3)\cos(2\xi\_3) + \cos(2\eta\_4)\cos(2\xi\_4) \right] \\ + 4m\_P L^2 \end{aligned} \tag{A31}$$

where the value of *ζ* and *λ* are defined as follows

$$\begin{aligned} \lambda &= \frac{1}{2} (I\_{Pxx} - I\_{Pzz}) \\ \zeta &= \frac{1}{2} I\_{Pyy} - \frac{1}{4} I\_{Pxx} - \frac{1}{4} I\_{Pzz} \end{aligned} \tag{A32}$$

The last expression to be derived is the time derivative of the inertia matrix which is given by Equations (A29)–(A31). For each principal axis of the inertia, it yields:

$$\begin{split} \frac{d}{dt} \left( I\_{\text{Bxx}} \right) &= -2\lambda \left( \sin(2\eta\_1) \left( \frac{d}{dt} (\eta\_1) \right) \right) - 2\lambda \left( \sin(2\eta\_2) \left( \frac{d}{dt} (\eta\_2) \right) \right) \\ &- 2\lambda \left( \sin(2\eta\_3) \left( \frac{d}{dt} (\eta\_3) \right) \right) - 2\lambda \left( \sin(2\eta\_4) \left( \frac{d}{dt} (\eta\_4) \right) \right) \end{split} \tag{A33}$$

*d dt* (*IByy*) <sup>=</sup> *<sup>λ</sup>* sin(2*η*1) *<sup>d</sup> dt*(*η*1) + *<sup>λ</sup>* sin(2*η*2) *<sup>d</sup> dt*(*η*2) + *<sup>λ</sup>* sin(2*η*3) *<sup>d</sup> dt*(*η*3) +*λ* sin(2*η*4) *<sup>d</sup> dt*(*η*4) <sup>−</sup> *<sup>λ</sup>* sin(2*η*1) cos(2*β*1) *<sup>d</sup> dt*(*η*1) <sup>−</sup> *<sup>λ</sup>* sin(2*η*2) cos(2*β*2) *<sup>d</sup> dt*(*η*2) <sup>−</sup>*<sup>λ</sup>* sin(2*η*3) cos(2*β*3) *<sup>d</sup> dt*(*η*3) <sup>−</sup> *<sup>λ</sup>* sin(2*η*4) cos(2*β*4) *<sup>d</sup> dt*(*η*4) −2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*1) sin(2*β*1) *<sup>d</sup> dt*(*β*1) − 2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*2) sin(2*β*2) *<sup>d</sup> dt*(*β*2) −2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*3) sin(2*β*3) *<sup>d</sup> dt*(*β*3) − 2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*4) sin(2*β*4) *<sup>d</sup> dt*(*β*4) (A34) *d dt* (*IBzz*) <sup>=</sup> *<sup>λ</sup>* sin(2*η*1) *<sup>d</sup> dt*(*η*1) + *<sup>λ</sup>* sin(2*η*2) *<sup>d</sup> dt*(*η*2) + *<sup>λ</sup>* sin(2*η*3) *<sup>d</sup> dt*(*η*3) +*λ* sin(2*η*4) *<sup>d</sup> dt*(*η*4) + *<sup>λ</sup>* sin(2*η*1) cos(2*β*1) *<sup>d</sup> dt*(*η*1) + *<sup>λ</sup>* sin(2*η*2) cos(2*β*2) *<sup>d</sup> dt*(*η*2) +*λ* sin(2*η*3) cos(2*β*3) *<sup>d</sup> dt*(*η*3) + *<sup>λ</sup>* sin(2*η*4) cos(2*β*4) *<sup>d</sup> dt*(*η*4) +2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*1) sin(2*β*1) *<sup>d</sup> dt*(*β*1) + 2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*2) sin(2*β*2) *<sup>d</sup> dt*(*β*2) +2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*3) sin(2*β*3) *<sup>d</sup> dt*(*β*3) + 2 *ζ* + <sup>1</sup> <sup>2</sup>*λ* cos(2*η*4) sin(2*β*4) *<sup>d</sup> dt*(*β*4) (A35)

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Design of a Lockable Spherical Joint for a Reconfigurable 3-URU Parallel Platform**

#### **Matteo Palpacelli, Luca Carbonari, Giacomo Palmieri and Massimo Callegari \***

Department of Industrial Engineering and Mathematical Sciences, Polytechnic University of Marche, 60131 Ancona, Italy; m.c.palpacelli@univpm.it (M.P.); l.carbonari@univpm.it (L.C.); g.palmieri@univpm.it (G.P.) **\*** Correspondence: m.callegari@univpm.it

Received: 13 June 2018; Accepted: 30 July 2018; Published: 2 August 2018

**Abstract:** This article deals with the functional and preliminary design of a reconfigurable joint for robotic applications. Such mechanism is a key element for a class of lower mobility parallel manipulators, allowing a local reconfiguration of the kinematic chain that enables a change in platform's mobility. The mechanism can be integrated in the kinematic structure of a 3-URU manipulator, which shall accordingly gain the ability to change mobility from pure translation to pure rotation. As a matter of fact, special kinematics conditions must be met for the accomplishment of this task. Such peculiar requirements are described and properly exploited for the design of an effective reconfigurable mechanism. A detailed description of the joint operational principle is provided, also showing how to design it when is physically located at the fixed base of the manipulator.

**Keywords:** parallel robot; reconfigurable joint; flexible robotics; mechanism; kinematics

#### **1. Introduction**

Reconfigurable manipulators may represent an answer to the request of flexibility in the nowadays manufacturing industry. A *reconfigurable* or *metamorphic* manipulator is a machine that is able to change its end-effector mobility according to a local change of kinematics. Several methods can be used to modify the kinematic structure of a manipulator; the most common one is the use of lockable joints, i.e., joints with some degrees of freedom (DOF), one of which can be selectively locked in order to reconfigure the resulting mobility. The family of Parallel Kinematics Machines (PKMs) in particular can significantly take profit by the development of reconfigurable joints since a little modification of legs kinematics may lead to substantial modifications of the global mobility. The limited availability of a dextrous workspace is one of the major drawbacks of PKMs, therefore the possibility of locally (or temporarily) modifying the motion capabilities of a particular kinematic structure can trigger a significant interest.

As is well known, many closed loop joints' topologies, typical of PKMs, can present several *assembly* or *working modes*, often characterized by different motion capabilities, corresponding to different branches of the solution robot's kinematics [1–3]. It results that the exploitation of two, three, or even more assembly modes of a parallel kinematic machine could enormously enhance its usability in an industrial application. Some studies focused on the possibility of modifying robot mobility by changing the assembly mode but avoiding the disassembly of the manipulator [4–8]. Further attention has been paid to temporary modification of the kinematics structure, aimed at exploitation of the superior capabilities of under-actuated redundant structures: in such cases a lockable joint properly actuated during motion can improve the ability of performing positioning tasks [9–11]. Moreover, the typical modularity of serial robots can be searched also in reconfigurable PKMs [12,13], where a combination of elemental branches, sometimes provided with lockable joints, can be exploited to assemble manipulators characterized by different motion capabilities. Moreover, a 6-DOF full mobility parallel robot equipped with six motors can also take advantage of lockable joints to behave like a legged manipulator [14], which can perform six-axis machining operations but also walk and reach other working stations. Scientific literature already provides few examples of lockable joints [15–19]; in particular, multiple DOF's kinematic pairs are obtained by the composition of elementary kinematic pairs which are then locked alternately; however, the change of configuration of the joints is often managed manually, without taking care of the behaviour of the manipulator during the transition. In fact, it may happen that the robot passes through an under-constrained configuration, temporarily gaining degrees of freedom: in this case, only an external manual support allows for holding the robot in its pose.

The researchers at the Robotics Lab of the Polytechnic University of Marche in Ancona (Italy) in recent years developed several studies on reconfigurable robots exploiting the concept of lockable joints. Firstly, they focused on the Cylindrical-Prismatic-Universal three legged architecture (3-CPU): it allows the design of a reconfigurable tripod able to perform pure translational or pure rotational motions, depending on the orientation of the axes of the universal joints [20,21]. The switch between the two mobilities by means of a lockable joint was then faced in [22]. Notwithstanding the discussed metamorphic capabilities, the 3-CPU architecture also owns some intrinsic drawbacks. In particular, the main issue that affects such architecture is the need of reconfiguring the passive joints which connect the end-effector to limbs structure: it implies that the lockable mechanism must be part of leg structure, thus making more complex the mechanical design (for the limitation of weight and size of the device) and leading a reduction of the payload.

Consequently, the authors studied different topologies, which have in common with the 3-CPU manipulator the same types of mobilities [23] among them the 3-URU (Universal-Revolute-Universal) architecture was selected to design a novel reconfigurable manipulator [24,25]. The 3-URU manipulator can be derived from the 3-SRU (Spherical-Revolute-Universal) topology: the spherical joint connecting the leg to the fixed platform can be thought as the composition of three revolute joints with concurrent axes; locking one of them selectively, the joint turns into a universal joint with different sequences of rotations. Two of the possible sequences, as described in the following section, provide the mobile platform with the capability to yield motions of pure rotation and pure translation respectively.

#### **2. The 3-URU Reconfigurable Robot**

The main scope of this manuscript is to introduce a novel lockable spherical joint, designed to manage the reconfiguration capabilities of a 3-SRU under-actuated parallel kinematics machine. Such joint is realized as a combination of revolute pairs (see Figure 1); a locking system allows for alternatively locking one of the first two revolute joints, giving the machine different 3-URU kinematic configurations which correspond to different types of mobility. For a deeper understanding of how the joint will affect the robot mobility, a description of its structure is provided in the following.

The kinematic architecture of each leg is composed of a Spherical-Revolute-Universal (SRU) joints chain. The spherical pair, which must be reduced to a universal joint in order to guarantee the functionality of the machine, connects the first body of each leg to the chassis. The second link is connected to the first one by a revolute joint. At last, a universal joint connects the end-effector to the leg. The mutual arrangement of the joints, which is of great importance for the mobility of the moving platform, is shown in Figure 1. As visible, the three spherical pairs are located so that their centers lie on the axes of the fixed reference frame {0} at the same distance, called *a*, from the origin. The three rotations that compose each pair are realized by three perpendicular revolute joints, whose axes concur in a point (namely the center of the spherical pair). At such point, three reference frames have a common origin: such frames, called {*l*1,*i*}, {*l*2,*i*}, {*l*3,*i*} for the *i*-th leg, are fixed to the bodies sequentially connected to the three revolute joints. In the home configuration, Figure 1, where the mobile platform frame {1} is coincident with the fixed frame {0}, it is {*l*1,*i*}≡{*l*2,*i*}≡{*l*3,*i*}. Given the description of local frames, the disposition of the three axes composing the spherical joint can be defined as follows:


**Figure 1.** Setting of joints axes of the reconfigurable 3-URU kinematic architecture.

The locking mechanism is used in this case to produce two different configurations, here called Joints Configuration A and Joints Configuration B (see Figure 1). In configuration *A*, the first rotation of the spherical pair is allowed and, in particular, it represents the actuated degree of freedom of the *i*-th leg. The second rotation is locked, while the third one is free. In configuration *B*, the first rotation is locked, the second one is actuated and the third one is free. As demonstrated in [24,25], such joints setting allows the generation of motions of pure rotation with Joint Configuration A and motions of pure translation with Joint Configuration B without further modification to the arrangement of the passive joints.

The rest of the kinematic chain of each leg is composed by a revolute joint, parallel to the last revolute pair of the reconfigurable spherical joint at a distance *b*, and by a universal joint that connects the second link of the leg to the end-effector. As demonstrated by Palpacelli et al. in [23], the arrangement of the last joint of the chain is also crucial for the definition of end-effector's mobility. In particular, for the reconfigurable 3-URU parallel robot, the last universal joint is arranged so that the first rotation is parallel to previous revolute joint at a distance *c*, thus it is perpendicular to the leg plane *π<sup>i</sup>* (identified by points **A***i*, **B***i*, and **C***i*). The second rotation lies on *π<sup>i</sup>* and is perpendicular to the previous one; on the end effector, such axes are mutually perpendicular and concurrent at the origin of the moving frame {1}. Moreover, such axes coincide with the axes of {1}. With respect to such reference frame, the three attachment points **C***<sup>i</sup>* are identified by vectors {1}**C**<sup>1</sup> = 0 0 −*d T* , *T*

{1}**C**<sup>2</sup> = <sup>−</sup>*<sup>d</sup>* 0 0*<sup>T</sup>* , and {1}**C**<sup>3</sup> = 0 −*d* 0 . The locking mechanism is designed so as to allow alternatively the motion of the first and the second revolute joint. A similar solution was already proposed by authors in [25] for the reconfiguration of a 3-CPU robot. Nonetheless, the mechanical solution proposed in the present article is significantly different since previous design was used to modify the mobility of a passive universal joint. In the present case, instead, the reconfiguration implies that the actuated joints of the robot must be changed. The mechanical design of the reconfigurable joint is obviously affected by that. On the one hand, the need of connecting an actuator to different joints relatively complicates the problem. On the other hand, the fact that the lockable device is attached at the ground frame and it is not moving together with the end effector relaxes the design parameters in terms of weight and dimension, and consequently in terms of costs.

#### **3. Conceptual Design of the Reconfigurable Joint**

The conceptual design is based on a bevel gear coupling, as shown in Figure 2. Such solution is similar to the one proposed by the authors in [23]. However, the present locking mechanism has been re-conceived in order to allow the actuation of the bevel gear *D*, which must be connected to the motor. The motion of the sliding cursor *C* reconfigures the spherical joint alternatively locking one of the rotations of the spherical joint as described in the following paragraphs.

The cursor *C* is driven by an actuator in two different positions, which provide the joint as many different working modes. The cursor has a cylindrical shape with an external splined shaft and an internal splined hub at the top. In the Configuration *A* (Figure 2, top), the cursor *C* engages the splined hub of the fork *B*. In this case *B*, *C* and *D* globally behave like a rigid body. Due to that, the second fork *E* does not rotate with respect to *B*. The body *F* remains free to rotate since it is not constrained anyhow. Such configuration turns to allow rotations about axes *x* and *y* as required by the 3-URU of pure rotation.

If the cursor is moved downwards to Configuration *B* (Figure 2, down), the splined shaft engages with both bodies *A* and *B*. As a consequence, the rotation of *B* remains locked. The rotation of the actuated bevel gear is transmitted instead to the second fork *E*, which now represents the actuated degree of freedom of the leg. Thus, configuration *B* allows an actuated rotation about axis *z* and a free rotation around *y*, exactly as required for the pure translation configuration.

**Figure 2.** Functional scheme of the reconfigurable joint for spherical (**a**) and translational (**b**) motions.

#### **4. Functional Design of the Reconfigurable Joint**

Starting from the concept described in the previous section, a functional mechanical design is here proposed and discussed. The exterior aspect of the joint is sketched in Figure 3. Both the actuator of the leg and the actuator of the switching cursor are located externally, fixed to the ground. This represents a crucially important aspect of the present version of the reconfigurable joint, which makes it a significantly enhanced version of the 3-URU reconfigurable device: in [22], the actuator was dedicated to reconfiguring a passive joint within the kinematic chain, with a series of consequent non-avoidable issues. Firstly, the actuator was moved around in the robot workspace, solidly with the last joint of the leg (thus solidly with the robot end-effector). On the other hand, in the 3-URU case study, there was no need to actuate the reconfigured degree of freedom.

**Figure 3.** Design of the reconfigurable joint.

Such considerations led to a different functional design of the spherical joint, based on a series of spherical links connected by a system of gears, as described in this section. Globally, the mobility is characterized by a rotation of the limb around **r**3,*<sup>i</sup>* that is always free; such rotation is preceded by a first rotation, whose axis can be selected among **r**1,*<sup>i</sup>* or **r**2,*<sup>i</sup>* acting on the switch.

#### *4.1. The Operational Principle*

The joint exploits some bevel gear couplings, as in a previous concept; nevertheless, the rise of new additive manufacturing technologies for fast prototyping of small custom-made parts pushed the authors to adopt different shapes for the design of such gears. In particular, the classical bevel gears previously adopted were extremely binding in terms of dimension and assembly. Thus, a different solution has been adopted with gears obtained from spherical shells in order to maximize the room available within the gears coupling; such space can be used to accommodate the switching cursor. Th components of the joint are assembled on different layers, as shown in Figure 4.

The following lines, making reference to Figure 4a, explain how the reconfigurable joint works:



#### *4.2. The Locking Mechanism*

The whole functionality of the reconfigurable joint is based on a locking mechanism which is able to alternatively lock body 4 to the bevel gear 3 (Joints Configuration A) or to ground 0 (Joints Configuration B). Such mechanism, which is shown in detail in Figure 5 for both joints configurations A and B, is operated as follows:


It is worth mentioning that the locking mechanism shall be moved by a dedicated actuator which must be as simple as possible. The particular task it shall fulfill, in fact, is just to rotate the gear *a* through two given positions, for it is not necessary to assume intermediate poses. As a consequence, a simple rotational pneumatic, hydraulic, or solenoid binary actuator will accomplish the purpose without considerably affecting the cost of the whole robot.

**Figure 4.** Details of the reconfigurable joint arranged for Joints Configuration A (**a**), and for Joints Configuration B (**b**).

**Figure 5.** Nut-screw switching mechanism arranged for Joints Configuration A (**a**), and for Joints Configuration B (**b**).

#### **5. Conclusions**

The article has described the functional design of a reconfigurable universal joint. A switching cursor, which can be driven electronically, is used to change the joint configuration so that two different universal joints can be obtained. Such feature can be exploited to realize a reconfigurable 3-URU manipulator, in which the three universal joints at the fixed base are reconfigurable. A gear system is proposed as a mechanical solution to allow an effective and reliable change of the joint configuration. Future works will be focused on the structural design of the joint, in order to properly design all components in terms of dimensions and materials; such study will start from the static and dynamic analysis of the whole manipulator, in order to assess the forces acting on the joint. In that phase, the joint parts and gears will be also manufactured by rapid prototyping, with the aim of testing their strength and accuracy when assembled in a whole device.

**Author Contributions:** Conceptualization, L.C. and M.P.; Writing—Original Draft Preparation, G.P.; Supervision, M.C.; Project Administration, M.P.

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

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

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Performance-Based Design of the CRS-RRC Schoenflies-Motion Generator**

#### **Raffaele Di Gregorio 1,\*, Mattia Cattai <sup>1</sup> and Henrique Simas <sup>2</sup>**


Received: 22 July 2018; Accepted: 10 September 2018; Published: 15 September 2018

**Abstract:** Rigid-body displacements obtained by combining spatial translations and rotations around axes whose direction is fixed in the space are named Shoenflies' motions. They constitute a 4-dimensional (4-D) subgroup, named Shoenflies' subgroup, of the 6-D displacement group. Since the set of rotation-axis' directions is a bi-dimensional space, the set of Shoenflies' subgroups is a bi-dimensional space, too. Many industrial manipulations (e.g., pick-and-place on a conveyor belt) require displacements that belong to only one Schoenflies' subgroup and can be accomplished by particular 4-degrees-of-freedom (4-DOF) manipulators (Shoenflies-motion generators (SMGs)). The first author has recently proposed a novel parallel SMG of type CRS-RRC 1. Such SMG features a single-loop architecture with actuators on the base and a simple decoupled kinematics. Here, firstly, an organic review of the previous results on this SMG is presented; then, its design is addressed by considering its kinetostatic performances. The adopted design procedure optimizes two objective functions, one (global conditioning index (GCI)) that measures the global performance and the other (CImin) that evaluates the worst local performance in the useful workspace. The results of this optimization procedure are the geometric parameters' values that make the studied SMG have performances comparable with those of commercial SMGs. In addition, a realistic 3D model that solves all the manufacturing doubts with simple and cheap solutions is presented.

**Keywords:** parallel robot; Shoenflies-motion generator; dimensional synthesis; kinetostatic performances; conditioning index

#### **1. Introduction**

Shoenflies' motions are rigid-body displacements obtained by combining spatial translations and rotations around axes with a fixed direction. They constitute a 4-dimensional (4-D) subgroup, named Shoenflies' subgroup, of the 6-D displacement group [1,2]. Since the set of rotation-axis' directions is a bi-dimensional space, the set of Shoenflies' subgroups is a bi-dimensional space, too. Many industrial manipulations (e.g., pick-and-place on a conveyor belt) require displacements that belong to only one Schoenflies' subgroup and can be accomplished by particular 4-degrees-of-freedom (4-DOF) manipulators, named Shoenflies-motion generators (SMGs) [3].

The serial robot SCARA, presented in 1981, is the most known SMG, but many alternative serial architectures can be conceived [3]. The main drawback of serial architectures is the need of actuating

<sup>1</sup> Hereafter, R, P, U, S, and C stand for revolute pair, prismatic pair, universal joint, spherical pair, and cylindrical pair, respectively. With reference to a parallel architecture, which features the frame (base) and the end effector (platform) connected to each other by a number of kinematic chains (limbs), a string of capital letters denotes the sequence of joint types that are encountered by moving from the base to the platform on a limb. The hyphen separates the strings of the limbs and the underlining indicates the actuated joints. A serial architecture has only one limb and is denoted by only one string.

joints that connect mobile links, which brings to increase the mobile masses and, simultaneously, to reduce the dynamic performances. Parallel architectures can solve this issue and parallel SMGs have been presented (see, for instance [4–12]), too. Most of the proposed parallel SMGs feature four limbs (e.g., [5–7,9,12]) and one actuator per limb located on the base. Other parallel SMGs are simply obtained by adding a double Cardan shaft (i.e., a limb of RUPUR type), which connects the base to the platform, in a translational parallel manipulator.

The main drawback of parallel SMGs is their complex multi-loop structure that drastically reduces their workspace, usually brings cumbersome kinematics and control algorithms, and, often, does not allow a full rotation of the end effector (platform). Nevertheless, adopting two-limbed (i.e., single-loop) architectures with serial [4,13] or hybrid [8,11] limbs with two actuators per limb reduces the structure complexity while keeping the actuators on the base. Some design tricks [14,15] can yield end-effector's full rotations, and some architectures [12,13] can give the possibility of decoupling position and orientation (decoupled kinematics), which allows simpler and more intuitive control strategies. Moreover, not-overconstrained architectures [4] make it possible to avoid jamming without using small tolerances during manufacturing.

The first author has recently proposed a novel not-overconstrained parallel SMG of type CRS-RRC [13]. Such SMG features a single-loop architecture with actuators on the base and a simple decoupled kinematics. Here, firstly, an organic review of the previous results on this SMG is presented; then, its design is addressed by considering its kinetostatic performances. This design procedure will yield a realistic 3D model that solves all the manufacturing doubts with simple and cheap solutions.

The paper is organized as follows. Sections 2 and 3 state the notations and review the previous results presented in [13,16]. Section 4 addresses the analysis of the kinetostatic performances and the design based on them. Section 5 discusses the results and Section 6 draws the conclusions.

#### **2. Notations and Background**

Figure 1 shows the SMG of type CRS-RRC presented in [13]. The axes of the R and C pairs are all parallel. The platform is connected to the base through two limbs: one of type CRS and the other of type RRC. The actuated C pair of the CRS limb is obtained by mean of a PR chain with the sliding direction of the P pair parallel to the axis of the R pair. Such a kinematic chain can be actuated by keeping the motors on the base and using commercial components as shown in Figure 2. Also, the second actuated R pair of the RRC limb can be moved from the base by simply using a toothed-belt transmission.

With reference to Figure 1, Obxbybzb is a Cartesian reference fixed to the base; the direction of the zb coordinate axis is the same as the R and C pair axes. In the platform, ap is the constant distance of the center of the S pair from the axis of the passive C pair and is equal to the length of the segment ApA2. Op is the reference point of the platform, and h is the length of the segment ApOp. The coordinates, (xp, yp, zp) T, of Op, measured in Obxbybzb, locate the position of the platform; whereas, the angle, ϕ, between the segment ApA2 and a line parallel to xb and passing through Ap uniquely determines the platform orientation. In the CRS limb, point B2 lies on the axis of the actuated C pair and is fixed to the output link of the C pair. The linear variable of the actuated C pair is the signed distance, d, of B2 from Ob. The plane parallel to the xbyb plane and passing through B2 intersects the axis of the passive R pair at D2, the axis of the passive C pair at Ap, and the axis parallel to the zb axis and passing through the center of the S pair at A2. a3 and a4 are the lengths of the segments B2D2 and D2A2, respectively; whereas, θ<sup>3</sup> and θ<sup>4</sup> are the angular variable of the actuated C pair and the joint variable of the passive R pair, respectively. The point Ap is fixed to the platform. In the RRC limb, the actuated-joint variables are θ<sup>1</sup> and θ2. The xbyb plane intersects the axis of the R pair adjacent to the base at B1, the axis of the other R pair at D1, and the axis of the passive C pair at A1. a0, a1 and a2 are the lengths of the segments ObB1, B1D1 and D1A1, respectively. The RRC limb constrains the platform to perform Schoenflies motions with rotation axis parallel to the zb axis; whereas, the CRS limb controls the coordinate zp of point Op through its linear variable, d, and, independently, the platform orientation through its angular variable, θ3.

**Figure 1.** The Shoenflies-motion generators (SMG) of type CRS-RRC.

**Figure 2.** Constructive scheme of an actuated C pair with motors on the frame.

According to these notations, the 4-tuples **q** = (θ1, θ2, θ3, d)<sup>T</sup> and κ = (xp, yp, zp, ϕ) <sup>T</sup> collect the actuated-joint (input) variables and the platform-pose (output) variables, respectively. The inspection of Figure 1 yields the following closure equations

$$\mathbf{x}\_{\rm p} = \mathbf{a}\_0 + \mathbf{a}\_1 \cos \theta\_1 + \mathbf{a}\_2 \cos \left(\theta\_1 + \theta\_2\right),\tag{1a}$$

$$\mathbf{y}\_P = \mathbf{a}\_1 \sin \theta\_1 + \mathbf{a}\_2 \sin \left(\theta\_1 + \theta\_2\right),\tag{1b}$$

$$\mathbf{z}\_{\mathbb{P}} = \mathbf{d} - \mathbf{h} \tag{1c}$$

$$(\mathbf{x}\_{\text{P}} + \mathbf{a}\_{\text{P}} \cos \varphi - \mathbf{a}\_{3} \cos \theta\_{3})^{2} + (\mathbf{y}\_{\text{P}} + \mathbf{a}\_{\text{P}} \sin \varphi - \mathbf{a}\_{3} \sin \theta\_{3})^{2} = \mathbf{a}\_{4}^{\cdot 2} \tag{1d}$$

If **q** is assigned (direct position analysis (DPA)), Equation (1a–c) yield a unique platform position; whereas, Equation (1d) yields two platform orientations (i.e., the DPA has two solutions that share the same platform position). Vice versa, if κ is assigned (inverse position analysis (IPA)), Equation (1c) yields only one value for d; whereas, Equation (1a,b,d) yield at most four values for (θ1, θ2, θ3) which can be computed through explicit formulas (see [13] for the proof and the formulas), that is, the IPA has at most four solutions which share the same value of d.

The time derivatives of Equation (1a–d) yield

$$\dot{\mathbf{x}}\_{\rm P} = -\left[\mathbf{a}\_1 \sin \theta\_1 + \mathbf{a}\_2 \sin(\theta\_1 + \theta\_2)\right] \dot{\theta}\_1 - \mathbf{a}\_2 \sin(\theta\_1 + \theta\_2) \,\dot{\theta}\_2 \tag{2a}$$

$$\mathbf{j}\_{\mathbf{p}} = [\mathbf{a}\_1 \cos \theta\_1 + \mathbf{a}\_2 \cos(\theta\_1 + \theta\_2)] \dot{\theta}\_1 + \mathbf{a}\_2 \cos(\theta\_1 + \theta\_2) \,\dot{\theta}\_2 \tag{2b}$$

$$
\dot{\mathbf{z}}\_{\mathbb{P}} = \dot{\mathbf{d}} \tag{2c}
$$

$$\left(\mathbf{m}\_{\mathbf{x}}\dot{\mathbf{x}}\_{\mathbf{p}} + \mathbf{m}\_{\mathbf{y}}\dot{\mathbf{y}}\_{\mathbf{p}} + \dot{\boldsymbol{\varphi}}\mathbf{a}\_{\mathbf{p}}(\mathbf{m}\_{\mathbf{y}}\cos\boldsymbol{\varphi} - \mathbf{m}\_{\mathbf{x}}\sin\boldsymbol{\varphi})\right) = \dot{\theta}\_3\,\mathbf{a}\_3(\mathbf{m}\_{\mathbf{y}}\cos\theta\_3 - \mathbf{m}\_{\mathbf{x}}\sin\theta\_3) \tag{2d}$$

where mx = xp + ap cos ϕ − a3 cos θ<sup>3</sup> and my = yp + ap sin ϕ − a3 sin θ3.

Since the RRC limb forbids the platform to perform displacements that do not belong to the above-mentioned Schoenflies' subgroup, the studied SMG has no constraint singularities<sup>2</sup> and . <sup>κ</sup> = (. xp, . yp, . zp, . ϕ T uniquely identifies the platform twist. As a consequence, Equation (2a–d) are sufficient to relate the platform twist to the actuated-joint rates, . **q**, that is, they are the instantaneous input-output relationship (InI/O).

.

The InI/O of a manipulator is a linear mapping between platform twists and actuated-joint rates whose coefficient matrices (Jacobians) only depend on the configuration of the manipulator. The configurations (singularities) where these Jacobians have not full rank make the linear mapping not bijective and have relevant kinetostatic implications [17–21].

According to the above-deduced InI/O, if . **<sup>q</sup>** is assigned, . **<sup>O</sup>**<sup>p</sup> = (. xp, . yp, . zp T is always uniquely determined, but . ϕ is not determined when the segments A2D2 and A2Ap are aligned (i.e., a parallel singularity3 occurs). In addition, if . κ is assigned, only two geometric conditions make one or more actuated-joint rates undetermined (i.e., a serial singularity<sup>4</sup> occurs): (i) the 2-tuple ( . θ1, . θ2) is not

<sup>2</sup> Parallel manipulators with mobility lower than six that are designed to make the platform move inside a given displacement subgroup may have configurations (constraint singularities) where the platform can perform instantaneous displacements that do not belong to that subgroup [17].

<sup>3</sup> Parallel singularities, also named type-II singularities [18], usually occur inside the workspace. They are configurations where the platform can perform instantaneous motions with locked actuators. At a type-II singularity, a load (even infinitesimal) applied to the platform needs infinitely-high generalized torques, in at least one actuator, to be balanced.

<sup>4</sup> Serial singularities, also named type-I singularities [18], lie on (and identify) the workspace boundary. They are configurations where the platform stands still while the actuated joints perform instantaneous motions. At a type-I singularity, the platform can carry loads without needing that the actuators provide generalized torques to balance them.

determined when the segments A1D1 and D1B1 are aligned, and (ii) . θ<sup>3</sup> is not determined when the segments A2D2 and D2B2 are aligned.

#### **3. Workspace Analysis**

According to the adopted notations, the geometric constants of the CRS-RRC SMG, which affect the SMG behavior, are a0, a1, a2, a3, a4, ap, and h (Figure 1). Two of the authors, in [16], analyzed some workspace characteristics of this SMG. Such analysis brought to size some of those constants. This section summarizes and reviews the results deduced in [16].

If the two actuated R pairs of the RRC limb and the linear variable, d, of the actuated C pair are locked (i.e., by keeping zp and A1 fixed), the segments B2Ap (=ObA1 = x2 <sup>p</sup> + y<sup>2</sup> <sup>p</sup>), B2D2 (=a3), D2A2 (=a4), and ApA2 (=ap) behave like frame, input link, coupler, and follower, respectively, of a four-bar linkage. θ<sup>3</sup> and ϕ are input and output variables, respectively, of this four-bar linkage, and the singularities of this four-bar correspond to the above-identified parallel singularity and serial singularity (ii). If this four-bar satisfies Grashof's law [22] and ApA2 is the shortest bar, the platform can perform a complete rotation (i.e., the angle ϕ has no limitation). Nevertheless, only a double-crank four-bar can guarantee a full control of the platform rotation.

Let *<sup>p</sup>* and *<sup>p</sup>* denote the position vector (**A**1–**O**b) and its magnitude (= x2 <sup>p</sup> + y2 <sup>p</sup>), respectively. From an analytic point of view, the four-bar is a double-crank (i.e., the platform can perform a complete rotation fully controlled by θ3) if and only if

$$(\mathbf{a\_P} + p) \le (\mathbf{a\_3} + \mathbf{a\_4}),\tag{3a}$$

$$|\mathbf{a\_p} - p| \ge |\mathbf{a\_3} - \mathbf{a\_4}|,\tag{3b}$$

$$p = \min\{p\_{\prime}, \mathbf{a}\_{3\prime}, \mathbf{a}\_{4\prime}, \mathbf{a}\_{\mathbf{P}}\}. \tag{3c}$$

Inequalities (3a,b) impose that the platform can perform a full rotation and condition (3c) make the four-bar linkage double-crank.

Since there is no reason to have a3 different from a4 and a possible scaling factor does not affect the analysis, the choice a3 = a4 = 1 length unit (l.u.) is adopted. With this assumption, inequality (3b) become |ap − *p*| ≥ 0 and is identically satisfied; whereas, inequality (3a) and condition (3c) become

$$p \le \mathbf{a}\_{\mathbf{P}} \le 2 - p \tag{4}$$

The blue area of Figure 3 indicates the values of the 2-tuple (*p*, ap) that satisfy inequalities (4). Figure 3 shows that the maximum value, *p*Gr, that *p* can assume depends only on ap: when the values of ap increase, *p*Gr increases for ap ≤ 1 and, then, decreases for ap > 1. The maximum value of *p*Gr is 1 l.u. and is obtained with ap = 1 l.u. Since pGr is the radius (see Figure 1) of the circle centered at Ob that is the region (double-crank region) where A1 must be located to have a double-crank linkage, the choice ap = 1 l.u. is adopted to maximize the double-crank region.

**Figure 3.** The blue region indicates the values of the 2-tuple (*p*, ap) that satisfy inequalities (4).

Let Δd (=dmax − dmin) be the maximum linear stroke of the actuated C pair. The reachable workspace [23] referred to Op is a right cylinder with height Δd, whose cross section is the intersection between two circles: one centered at Ob with radius a3 + a4 + ap and the other centered at B1 with radius a1 + a2. The cross section of the reachable workspace is maximized if the smaller circle is located inside the other, that is, if

$$\mathbf{a}\_0 + \mathbf{a}\_1 + \mathbf{a}\_2 \stackrel{<}{\leq} \mathbf{a}\_3 + \mathbf{a}\_4 + \mathbf{a}\_6\tag{5a}$$

or

$$\mathbf{a}\_{\mathcal{B}} + \mathbf{a}\_{\mathsf{4}} + \mathbf{a}\_{\mathsf{P}} \stackrel{\prec}{\leq} \mathbf{a}\_{\mathsf{1}} + \mathbf{a}\_{\mathsf{2}} - \mathbf{a}\_{\mathsf{0}}.\tag{5b}$$

In addition, if such section contains the double-crank region, the dexterous workspace [23] referred to Op is maximum, and it is equal to a right circular cylinder obtained by translating the double-crank region along the zb axis of Δd. This condition is satisfied if

$$\mathbf{p\_{Gr}} + \mathbf{a\_{0}} \stackrel{\prec}{\leq} \mathbf{a\_{1}} + \mathbf{a\_{2}},\tag{6a}$$

$$|\mathbf{a}\_1 - \mathbf{a}\_2| \le \mathbf{a}\_0 - p\_{\mathrm{Gr}} \tag{69}$$

$$\mathfrak{h}\_{\mathbf{C}\mathbf{r}} \overset{\ast}{\leq} \mathfrak{a}\_{\mathfrak{h}} + \mathfrak{a}\_{\mathfrak{k}} + \mathfrak{a}\_{\mathfrak{k}}.\tag{6c}$$

At the border of the double-crank region (i.e., for *p* = *p*Gr), the four-bar linkage can still make the platform perform a complete rotation, but the linkage encounters two times the parallel singularity condition during the platform rotation. Since the integrity of parallel manipulators can be preserved only by keeping them work out and far from parallel singularities, a safe free-from-singularity dexterous workspace requires *p* << *p*Gr.

Outside the double-crank region (i.e., for *p* > *p*Gr), the four-bar linkage does not satisfy Grashof's law any longer; as a consequence, it can only be a rocker-rocker four-bar linkage and the rotation range, Δϕ, of the platform is limited. Figure 4 shows the above-defined not-Grashof four-bar linkage at the configurations corresponding to the extreme values of ϕ. In a rocker-rocker four-bar, the whole Δϕ is swept by moving from a serial singularity (ii) to a parallel singularity (Figure 4a) or vice versa (Figure 4b). In both the cases, Δϕ does not change, but the configurations the mechanism passes through are different. The analysis of Figure 4 gives the following simple analytic formula for Δϕ

$$\Delta\Phi = \pi + \cos^{-1}\left[\frac{(\mathbf{a}\_4 + \mathbf{a}\_\mathbf{p})^2 + \mathbf{p}^2 - \mathbf{a}\_3^2}{2\mathbf{p}(\mathbf{a}\_4 + \mathbf{a}\_\mathbf{p})}\right] - \cos^{-1}\left[\frac{(\mathbf{a}\_3 + \mathbf{a}\_4)^2 - \mathbf{p}^2 - \mathbf{a}\_\mathbf{p}^2}{2\mathbf{p}\,\mathbf{a}\_\mathbf{p}}\right] \tag{7}$$

**Figure 4.** The above-defined four-bar linkage, with a *p* value that makes it a not-Grashof four-bar, at the configurations corresponding to the extreme values of ϕ: (**a**) Δϕ is swept by moving from a serial singularity (ii) to a parallel singularity, and (**b**) vice versa.

Formula (7) highlights that Δϕ depends only on p (i.e., the direction of the position vector *p* does not affect Δϕ) and decreases when p increases. This symmetry with respect to the zb axis and the fact that the decrease of Δϕ with the increase of p is not sharp [16] make wide regions of the reachable workspace that are out of the double-crank region usable for manipulation tasks that need not a complete platform rotation.

#### **4. Kinetostatic-Performance Analysis and Dimensional Synthesis**

The previous sections brought to choose a3 = a4 = ap = 1 l.u. All the other geometric constants (i.e., a0, a1, a2, and h) can be used to match the adoption of a useful workspace adequate to industrial tasks with satisfactory kinetostatic properties. Even though the CRS-RRC SMG can perform some tasks outside the above-defined dexterous workspace, the choice of the useful workspace has to take into account the generality of the industrial tasks of an SMG. Consequently, in this case, the useful workspace is chosen as a right circular cylinder with axis passing through Ob (see Figure 1) and radius, *p*uw, that satisfies the condition *p*uw << *p*Gr, which makes it coincide with a safe free-from-singularity dexterous workspace.

The determination of *p*uw can be done by imposing that the transmission angle [22,24], μ, of the above-defined four-bar linkage has an acceptable value during the platform rotation. In general, tasks that require the application of relevant forces to the gripper during motion (e.g., machining tasks like drilling) need values of |μ − 90| (◦) lower than 50◦ and low friction in the kinematic pairs. Other manipulation tasks with reduced force interaction can accept |μ − 90| values lower than 70◦; whereas, when force interaction is not present (e.g., pick-and-place tasks) |μ − 90| could be even larger than 70◦. The formulas (see [24]) that give the minimum, μmin, and the maximum, μmax, transmission angles, when particularized to the studied case, become (μ ∈ [0◦, 180◦])

$$\mu\_{\rm min} = \cos^{-1}\left[\frac{\mathbf{a}\_4^2 + \mathbf{a}\_\mathbf{p}^2 - \left(\mathbf{p} - \mathbf{a}\_3\right)^2}{2\,\mathbf{a}\_4\,\mathbf{a}\_\mathbf{p}}\right] \tag{8a}$$

$$\mu\_{\text{max}} = \cos^{-1}\left[\frac{\mathbf{a}\_4^2 + \mathbf{a}\_\mathbf{p}^2 - (\mathbf{p} + \mathbf{a}\_3)^2}{2 \ \mathbf{a}\_4 \ \mathbf{a}\_\mathbf{p}}\right] \tag{8b}$$

which, for a3 = a4 = ap = 1 l.u., give the diagrams of Figure 5.

**Figure 5.** The minimum, μmin (Equation (8a)), and the maximum, μmax (Equation (8b)), transmission angles as a function of p for a3 = a4 = ap = 1 (l.u.).

Figure 5 shows that |μ − 90| ≤ 50◦ corresponds to *p* = 0.317 and |μ − 90| ≤ 70◦ corresponds to *p* = 0.653; whereas, for *p* = 0.75, |μ − 90| exceeds 70◦ only in a small neighborhood of μmin which is equal to 14.4◦.

Since SMGs are mainly employed in pick-and-place tasks, the choice *p*uw = 0.75 is adopted by confining the force interaction tasks in region with *p* ≤ 0.653 or with *p* ≤ 0.316 according to the type of task.

A commercial SMG is the pickstar YS02N of Kawasaki [25]. Its useful workspace is a right circular cylinder with a base radius of 300 mm and a height of 200 mm. Hereafter, this right circular cylinder is chosen as useful workspace for the dimensional synthesis of the CRS-RRC SMG. This choice together with the previous choice *p*uw = 0.75 yield 1 (l.u.) = 400 mm, that is, a3 = a4 = ap = 400 mm.

Figure 6 shows the region of the xbyb plane swept by the above-defined four-bar linkage with a3 = a4 = ap = 400 mm when point A1 is moved along the xb axis from Ob (i.e., A1 = (0, 0)) to the border of the useful workspace (i.e., A1 = (300, 0) mm). The whole region swept by the four-bar when the direction of the motion of A1 changes can be obtained by making the region highlighted in Figure 6 rotate around Ob in the xbyb plane. Such rotation yields a circle with a radius of 700 mm. Consequently, by taking into account the physical sizes of the links, the choice a0 = 800 mm is adopted in order to avoid interferences between the frame and the four-bar during motion.

**Figure 6.** Region of the xbyb plane swept during motion by the above-defined four-bar linkage with a3 = a4 = ap = 400 mm and a useful workspace with a base radius of 300 mm.

#### *4.1. Measure of the Kinetostatic Performances*

The matrix form of system (2) (i.e., of the InI/O) is

$$\mathbf{J}\_{\mathbf{k}} \dot{\mathbf{k}} = \mathbf{J}\_{\mathbf{q}} \dot{\mathbf{q}} \tag{9}$$

with

$$\mathbf{J}\_{\mathbf{k}} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ \mathbf{m}\_{\mathbf{k}} & \mathbf{m}\_{\mathbf{y}} & 0 & \mathbf{a}\_{\mathbf{P}} (\mathbf{m}\_{\mathbf{y}} \cos \varphi - \mathbf{m}\_{\mathbf{x}} \sin \varphi) \end{bmatrix} \tag{10a}$$

$$\mathbf{J}\_{\mathbf{q}} = \begin{bmatrix} -\left[\mathbf{a}\_1 \sin \theta\_1 + \mathbf{a}\_2 \sin(\theta\_1 + \theta\_2)\right] & -\mathbf{a}\_2 \sin(\theta\_1 + \theta\_2) & 0 & 0\\ \left[\mathbf{a}\_1 \cos \theta\_1 + \mathbf{a}\_2 \cos(\theta\_1 + \theta\_2)\right] & \mathbf{a}\_2 \cos(\theta\_1 + \theta\_2) & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & \mathbf{a}\_3(\mathbf{m}\_\circ \cos \theta\_3 - \mathbf{m}\_\times \sin \theta\_3) & 0 \end{bmatrix} \tag{10b}$$

Kinetostatic performances of manipulators can be evaluated by using indices built by using the Jacobians **J**<sup>k</sup> and **J**<sup>q</sup> of Equation (9). Two of these indices are the "conditioning index" (CI) [26] of the matrix **J** = (**J**q) <sup>−</sup>1**J**k, which is defined as the inverse of the condition number of **J**, and its average value on the useful workspace, named "global conditioning index" (GCI). The computation of the CI and GCI needs that the entries of the Jacobians **J**<sup>k</sup> and **J**<sup>q</sup> be homogeneous [9,27–29]. Jacobian homogenization can be obtained with the introduction of a characteristic length, λ, through a change of variables [27], even though which λ should be used is an open problem.

In the studied case, the introduction of the new homogeneous variables . κ<sup>h</sup> = . xp λ , . yp λ , . zp λ , . ϕ <sup>T</sup> and . **q**<sup>h</sup> =  . θ1, . θ2, . θ3, . d λ T into Equation (9) yields

$$\mathbf{J}\_{\mathbf{h}} \dot{\mathbf{x}}\_{\mathbf{h}} = \dot{\mathbf{q}}\_{\mathbf{h}} \tag{11}$$

where **J**<sup>h</sup> = (**J**qh) <sup>−</sup>1**J**kh with

$$\mathbf{J}\_{\mathbf{k}\mathbf{h}} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ \frac{\mathbf{m}\_{\mathbf{k}}}{\lambda} & \frac{\mathbf{m}\_{\mathbf{y}}}{\lambda} & 0 & \frac{\mathbf{a}\_{\mathbf{p}}}{\lambda^2} (\mathbf{m}\_{\mathbf{y}} \cos \varphi - \mathbf{m}\_{\mathbf{x}} \sin \varphi) \end{bmatrix} \tag{12a}$$

$$\mathbf{J}\_{\rm ph} = \begin{bmatrix} \frac{-\left[\mathbf{a}\_1 \sin \theta\_1 + \mathbf{a}\_2 \sin(\theta\_1 + \theta\_2)\right]}{\lambda} & -\frac{\mathbf{a}\_2}{\lambda} \sin(\theta\_1 + \theta\_2) & 0 & 0\\ \frac{\left[\mathbf{a}\_1 \cos \theta\_1 + \mathbf{a}\_2 \cos(\theta\_1 + \theta\_2)\right]}{\lambda} & \frac{\mathbf{a}\_2}{\lambda} \cos(\theta\_1 + \theta\_2) & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & \frac{\mathbf{a}\_1}{\lambda^2} (\mathbf{m}\_Y \cos \theta\_3 - \mathbf{m}\_X \sin \theta\_3) & 0 \end{bmatrix} \tag{12b}$$

**J**<sup>h</sup> is a homogeneous Jacobian with dimensionless entries. The condition number, χ, of **J**<sup>h</sup> is, by definition, χ = **J**h **J** −1 <sup>h</sup> where (·) stands for any matrix norm of the argument, if the Frobenius norm [21] is adopted **J**h = trace(**J**h**J**<sup>T</sup> <sup>h</sup>). Consequently, the conditioning index, CI = 1/χ, depends both on the SMG configuration and on the geometric constants a1 and a2 that have not been determined, yet. The CI ranges from 0, at parallel singularities to 1 at isotropic configurations (i.e., SMG configurations where **J**<sup>h</sup> is proportionate to the identity matrix), which are the farthest from parallel singularities. The CI is a local index that measures the kinetostatic performance of the SMG at a configuration; whereas, the GCI (i.e., its average value on the useful workspace) gives a score to the kinetostatic performance of the SMG and could be used to compare different manipulators.

Optimizing the kinetostatic performances of a manipulator by using the CI and the GCI means determining the available geometric constants (in this case, a1 and a2) so that the minimum value, CImin, of the CI and the GCI are as high as possible for that architecture. Such optimization is presented in the following subsection.

#### *4.2. Dimensional Synthesis*

The admissible values of a1 and a2 must satisfy inequalities (6a,b) with a0 = 800 mm and *p*Gr = ap = 400 mm. Moreover, a reasonable choice for the RRC limb would be a2 ≤ a1. All these inequalities are satisfied in the region highlighted in blue of Figure 7.

**Figure 7.** The values of (a1,a2) that satisfy inequalities (6a), (6b) and a2 ≤ a1 with a0 = 800 mm and *p*Gr = ap = 400 mm are those belonging to the blue region.

By setting λ = 400 mm (i.e., equal to the length of ap, a3 and a4 and to the arithmetic mean of the diameter and the height of the useful workspace), a numerical algorithm has been used to compute the GCI and the CImin referred to the useful workspace for each admissible values of (a1, a2). The results of these computations are shown in Figure 8.

**Figure 8.** Kinetostatic performance as a function of a1 and a2: (**a**) global conditioning index (GCI) evaluated on the useful workspace, and (**b**) CImin in the useful workspace.

The analysis of the GCI values displayed in Figure 8a reveals that the maximum GCI is equal to 0.48795 and is obtained with a1 = 869 mm and a2 = 469 mm, which correspond to CImin = 0.28682 (Figure 8b). Also, Figure 8a shows that the maximum GCI falls in a smooth region (more or less flat) which allows large variation of (a1, a2) with small reductions of the GCI.

On the other side, the analysis of the CImin values displayed in Figure 8b reveals that the maximum CImin is equal to 0.29806 and is obtained with a1 = 993 mm and a2 = 593 mm, which correspond to GCI = 0.4763 (Figure 8a). Moreover, Figure 8b shows that also the maximum CImin falls in a smooth region (more or less flat). These results bring to choose a1 = 950 mm and a2 = 600 mm which correspond to a good compromise with GCI = 0.482 and CImin = 0.29743 that are values near enough to their maxima. The chosen values of a1 and a2 yield the minimum CI values at each A1 position inside the useful workspace shown in Figure 9. Figure 9 highlights that most of the useful workspace has CI ≥ 0.45, which makes the CI distribution acceptable.

**Figure 9.** Minimum conditioning index (CI) values at each A1 position inside the useful workspace for a1 = 950 mm and a2 = 600 mm.

#### *4.3. The 3D Model*

The dimensional synthesis, with useful workspace assigned as a right circular cylinder with a radius of 300 mm and a height of 200 mm, brought to choose the following values of the geometric constants: a0 = 800 mm, a1 = 950 mm, a2 = 600 mm, a3 = 400 mm, a4 = 400 mm, and ap = 400 mm. Figure 10 shows the region of the xbyb plane swept by the RRC limb, with a0 = 800 mm, a1 = 950 mm, and a2 = 600 mm, when point A1 is moved on the whole circular boundary of the useful workspace and the limb is assembled in either of the two assembly modes the IPA identifies [13]. The analysis of Figure 10 highlights that no link interference occurs with the chosen geometric data. By combining Figures 6 and 10 the overall region of the xbyb plane that is swept by both the limbs is obtained. Figure 11 shows such region.

**Figure 10.** Region of the xbyb plane swept by the RRC limb, with a0 = 800 mm, a1 = 950 mm, and a2 = 600 mm, when point A1 is moved on the whole circular border of the useful workspace and the limb is assembled in either of the two assembly modes the inverse position analysis (IPA) identifies.

**Figure 11.** Overall region of the xbyb plane that is swept by both the limbs.

In order to solve all the doubts about the actual feasibility of the machine, a CAD model of the CRS-RRC SMG has been built with the chosen geometric data. Figure 12 shows the 3D view (Figure 12a) and the lateral view (Figure 12b) of this model. Such model has an L-shaped base, only commercial actuators that are all mounted on the base, rolling bearings in all the R pairs to avoid jamming of the above-defined four-bar linkage at low transmission angles, a spherical roller bearings that implements the S-pair constraint5, and a linear ball bearing that implements the constraint of the passive C-pair. The bevel gearbox and the toothed belts (Figures 2 and 12) are commercial products, too.

**Figure 12.** CAD model: (**a**) 3D view, and (**b**) lateral view.

<sup>5</sup> In the studied SMG, the S pair has the only role of compensating errors of parallelism among the R-pair axes.

#### **5. Summary of the Results and Discussion**

The kinematic analysis [13] of the CRS-RRC SMG showed that both the DPA and IPA are solvable with simple and explicit formulas, and that platform's translation and rotation are decoupled. Therefore, the control algorithms are easy to implement and require very low computation time, which makes it possible to build a fast online control system.

The above-reviewed workspace analysis (see also Ref. [16]) highlighted that the reachable workspace has axially-symmetric properties. In particular, a safe free-from-singularity dexterous workspace, which is a right circular cylinder, is easy to identify in a wider region of the reachable workspace where the platform can perform complete rotations. Moreover, parallel singularities occur only for two known platform orientations and, in the reachable workspace, they are located on a circle that is the boundary of the dexterous workspace. Thus, the platform can pass through the parallel-singularity locus simply by changing its orientation and, if necessary, can accomplish particular tasks in region where the platform rotation is bounded.

The kinetostatic analysis based on the transmission angle and the conditioning index revealed that the machine can be so dimensioned that the GCI and the CImin are acceptable in a useful workspace, equal to those of commercial SMGs, with transmission angles adequate to the generality of industrial tasks.

The CAD model of the CRS-RRC SMG showed that its manufacture needs only commercial components. This result proves the actual feasibility of the machine with cheap production processes. Moreover, it highlights that the L-shaped base when fixed on a rotating frame allows an easy way for setting up the machine with respect to different machining planes (e.g., belt conveyors).

#### **6. Conclusions**

Kinetostatic indices have been used to complete the dimensional synthesis of the SMG of type CRS-RRC previously presented by the first author. In particular, a safe free-from-singularity useful workspace equal to that of a commercial SMG (the pickstar YS02N of Kawasaki [25]) has been chosen and all the geometric constants of this machine have been determined so that the minimum CI and the GCI are maximized.

Then, the so-determined geometric constants have been used to build a realistic 3D model that involves only commercial components, and implements an original architecture for actuated C pairs that brings all the actuators on the frame.

The obtained results positively close the validation of the machine concept and open to the structural and dynamic analyses/checks necessary to match static and dynamic requirements for an assigned payload. These analyses together with stiffness and accuracy analyses are the next steps of this project.

**Author Contributions:** Data curation, M.C. and H.S.; Formal analysis, R.D.G.; Funding acquisition, R.D.G. and H.S.; Investigation, R.D.G., M.C. and H.S.; Methodology, R.D.G.; Project administration, R.D.G.; Software, M.C.

**Funding:** This work has been developed at the Laboratory of Advanced Mechanics (MECH-LAV) of Ferrara Technopole, supported by FAR2017 UNIFE funds, by Regione Emilia Romagna (District Councillorship for Productive Assets, Economic Development, Telematic Plan) POR-FESR 2007-2013, Attività I.1.1, and by CNPq—Conselho Nacional de Desenvolvimento Científico e Tecnológico (National Council for Scientific and Technological Development), Brazil.

**Conflicts of Interest:** The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, and in the decision to publish the results.

#### **References**

1. Hervé, J.M. The Lie group of rigid body displacements, a fundamental tool for mechanism design. *Mech. Mach. Theory* **1999**, *34*, 719–730. [CrossRef]


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Cable Robot Performance Evaluation by Wrench Exertion Capability**

#### **Giovanni Boschetti \* and Alberto Trevisani**

Department of Management and Engineering, Università degli Studi di Padova, 36100 Vicenza, Italy; alberto.trevisani@unipd.it

**\*** Correspondence: giovanni.boschetti@unipd.it; Tel.: +39-0444-99-8748

Received: 22 February 2018; Accepted: 25 March 2018; Published: 27 March 2018

**Abstract:** Although cable driven robots are a type of parallel manipulators, the evaluation of their performances cannot be carried out using the performance indices already developed for parallel robots with rigid links. This is an obvious consequence of the peculiar features of flexible cables—a cable can only exert a tensile and limited force in the direction of the cable itself. A comprehensive performance evaluation can certainly be attained by computing the maximum force (or torque) that can be exerted by the cables on the moving platform along a specific (or any) direction within the whole workspace. This is the idea behind the index—called the Wrench Exertion Capability (*WEC*)—which can be employed to evaluate the performance of any cable robot topology and is characterized by an efficient and simple formulation based on linear programming. By significantly improving a preliminary computation method for the *WEC*, this paper proposes an ultimate formulation suitable for any cable robot topology. Several numerical investigations on planar and spatial cable robots are presented to give evidence of the *WEC* usefulness, comparisons with popular performance indices are also provided.

**Keywords:** cable driven robot; performance index; Wrench Exertion Capability

#### **1. Introduction**

Cable driven robots, or simply cable robots, are relatively simple parallel manipulators, operating in planar or spatial arrangements, formed by attaching multiple cables to a moving platform, on which the end-effector is fitted. In cable robots, the cables are driven by motors which can extend or retract the cables by winding or unwinding them from pulleys (also called winches or drums). In this sense cables are usually said to be active. Cable robots have several desirable advantages compared to conventional serial and parallel robots. For this reason they have been studied thoroughly since the early 90's [1] and promise to significantly increase performances of today's industrial robots in terms of payload, workspace and dynamic performances: they can be designed to have a very large workspace, a very high load capacity, or to generate very high speed motions [2], always with considerable energy efficiency. Their unique features, arising from parallel kinematics combined to minimal moving masses, make them amongst the most promising robotic devices in the industrial and service field, as it is proved by the ever-growing number of cable robot families that has been developed by research institutions and private companies [3,4].

Very often, cable robots are designed to be redundant (i.e., with more active cables and hence motors, than degrees of freedom (dofs) of the moving platform, see for example, Reference [2]), however, fully actuated (i.e., with a number of active cables equal to the dofs, see for example, Reference [5]) and underactuated (i.e., with less active cables than dofs, see for example, Reference [6]) topologies have been studied too. Moreover, cable robots can exhibit a hybrid design (i.e., with both cables and rigid link mechanisms [3,7]). Redundant cable robots are the sole robots which can

completely restrain the moving platform of a cable robot: in order to fully constrain the moving platform of a cable robot, it is required that the number of cables is greater by one than the number of dofs of the moving platform (see for example, [8]), hence a redundant configuration is needed. The condition on the number of cables is only necessary but not sufficient: a cable robot can be underconstrained, even if the number of cables is greater than the number of dofs. It is typically the case of the so-called cable suspended robots. Generally speaking, a high number of cables may lead to overconstrained configurations (see for example, Reference [2]), while a lower number of cables leads necessarily to underconstrained robots, which must rely on gravity to keep positive tensions in the cables (see for example, References [9,10]). Indeed, contrary to fully constrained or overconstrained cable robots, the underconstrained ones cannot take advantage of redundant cables to set a desired tension distribution in the cables. This makes operating underactuated cable robots particularly challenging.

A major requirement that has to be met in cable robots is ensuring that during operation all the cables are under adequate tension (at least cable slackness must be prevented in all the cables) and that such a tension is below the maximum permissible value related to the torque limits of the winch motors or to the tensile force limits of the cables [5]. In practice, this makes it necessary to take into account explicitly the bilateral bounds on cable tensions reflecting both the unilateral nature of cables as actuators (cables can pull but are unable to push the end-effector) and the additional constraints posed, on the upper bound, by cable and motor physical properties and, on the lower bound, by safety margins or end-effector stiffness requirements [11,12]. The latter requirements usually suggest imposing a lower bound for cables forces greater than 0. Clearly, the evaluation of the performances of a cable robot cannot neglect such peculiarities of cable robots and the complexity arising from the need of keeping bounded cable tensions. As a result, though cable driven robots are basically parallel robots, the traditional performance indices developed for parallel robots (see for example, [13–16]) are inadequate and cannot be employed straightforwardly.

So far, just a few examples of performance indices for cable robots have been proposed in literature. They have mainly been conceived as extensions to cable robots of traditional Jacobian-based performance indices. In [17] an evolution of the Yoshikawa manipulability has been proposed. In [18] the condition number has instead been applied as is, by restricting the analysis to a specific workspace. In [19] the Kinematic Sensitivity Index [20] has been modified in order to achieve the best workspace region of cable robots. An evolution of the isotropy index, called tension factor, has been proposed in [21]: the tension factor is an isotropy index, defined in the joint space, which evaluates the ratio between minimum and maximum cable tensions. Another interesting isotropy index has been defined in [9] for evaluating the inertial properties of two cable robots designed for rehabilitation. In the same work, a maximum isotropic force has been defined in order to find the minimum force that can be exerted in any direction. The index in [8] has been then extended for application to reconfigurable cable robots [22,23].

In [24] a novel approach to cable robot performance evaluation has been proposed and applied to solely redundant cable robots. The approach is based on the computation of the maximum force which can be exerted by the active cables on the moving platform along a specific direction. By extending the reasoning behind such an approach, in [25] a novel performance index called Wrench Exertion Capability (*WEC*) has been firstly introduced. The reason for referring the evaluation to a given direction comes from a typical practical need when designing a cable robot: predicting the maximum force or torque that can be exerted on the moving platform along a direction of interest, usually keeping either null or limited wrench components, both in terms of forces and torques, along the other directions. This is basically what is meant by evaluation of the *WEC* of a cable robot along a direction. In [25] a preliminary formulation of the method has been introduced, as well as a validation restricted to planar cable robots. This paper improves such a formulation and extends it to spatial cable robots therefore setting an ultimate formulation of the method.

The *WEC* appears more versatile than other performance indices since it can be used to perform various analyses. Not only can the *WEC* be employed for maximum force/torque evaluations but also to compute the minimum force/torque values which can be guaranteed throughout the workspace, irrespective of the direction and for isotropy evaluations. All these analyses allow getting considerable insight into cable robot performances and give the possibility to perform comprehensive comparisons among the performances of cable robots with different topologies and alternative cable layouts: indeed, such comparative investigations often need to be carried out since it is apparent that not only are the performances of cable robots influenced by the number of active cables but also by their geometrical arrangement. A challenging example of *WEC* employment is given by some recent recovery strategies in case of cable failure [26,27].

The paper is organized as follows. The *WEC* formulation is first developed in Section 2: the formulation is based on the theory developed in [25] which is here revised and extended to generic spatial robots. In Section 3 three illustrative examples of computation of the *WEC* are provided. Firstly, the *WEC* is employed to compare the performances of two fully actuated planar cable robots with different cable layouts. A comparison is also made with state-of-the-art performance indices. Secondly, performance changes due to variations in the number of cables are investigated by referring to a planar and cable suspended robot. Thirdly, an investigation is proposed to show the benefits related to the use of the *WEC* in the evaluation of the performances of a spatial cable robot. The conclusions are stated in Section 4.

#### **2. Wrench Exertion Capability**

Suppose that for a given pose of the moving platform of a cable robot you were interested in evaluating the maximum force or torque that cables can exert on the platform, along a certain direction. Such an interest could be motivated by a variety of reasons, including, for example, the need to identify the regions of the workspace where the robot best performs in terms of initial acceleration, payload capacity or capability to react to external disturbances (forces or torques). Clearly, the maximum force or torque that the cables can exert on the moving platform, along a given direction, depends on the maximum force that each cable can exert. Less obviously, such a wrench exertion capability also depends on the minimum tension of the cables that must be guaranteed to avoid cable slackness or to meet a desired stiffness requirement for the robot platform. At least, cable tension must be greater than zero to guarantee that cable forces can be maintained tensile. Computing the *WEC* index for a cable robot basically consists in performing the aforementioned evaluation taking into account cable tension limits explicitly.

The computation of the *WEC* suggested in this work is based on the solution of a linear programming problem involving cable tensions, cable tension limits and a novel representation of the so-called wrench matrix. The wrench matrix *S* of a cable robot, also called structure matrix, is usually defined as the matrix relating the wrench *w<sup>c</sup>* exerted by the cable forces on the moving platform to the tension vector *τ* containing the cable forces *τ<sup>i</sup>* (see Figure 1). It can be immediately recognized that in the most general case of a spatial cable robot driven by *m* cables, it holds: *w<sup>c</sup>* = *Sτ*, where the structure matrix *S* takes the following form:

$$\mathbf{S} = \begin{bmatrix} \mathbf{u}\_1 & \mathbf{u}\_2 & \dots & \mathbf{u}\_m \\ \mathbf{r}\_1 \times \mathbf{u}\_1 & \mathbf{r}\_2 \times \mathbf{u}\_2 & \dots & \mathbf{r}\_m \times \mathbf{u}\_m \end{bmatrix} \tag{1}$$

As schematically shown in Figure 1, vectors *u<sup>i</sup>* and *r<sup>i</sup>* are respectively the unit vector running along the *i*th cable, (oriented from the moving platform, that is, the box painted in grey in the scheme, towards the *i*th cable output point on the fixed frame) and the vector from the centre of mass (G) of the moving platform to the point where the *i*th cable is connected to the moving platform.

**Figure 1.** Schematic representation of the moving platform of a spatial cable robot and of the vectors involved in the computation of the wrench exerted by the cables on the platform.

The structure matrix *S* only allows computing the cable wrench *w<sup>c</sup>* exerted by the cables on the moving platform. In general, this is not the sole wrench applied to the moving platform. In order to compute the total wrench *w* := *f <sup>T</sup> t<sup>T</sup> T* applied to the moving platform, external loading, including, for example, gravity force, should be taken into account. In the previous definition of *w* vectors *f* and *t* are respectively the overall forces and torques exerted on the moving platform by the cables and the external forces. To account explicitly for external forces, a novel definition for the wrench matrix (denoted by *W*) is introduced, which is obtained by simply aggregating the structure matrix *S* and the external wrench *we*:

$$\boldsymbol{w} = \boldsymbol{w}\_{\boldsymbol{\varepsilon}} + \boldsymbol{w}\_{\boldsymbol{\varepsilon}} = \boldsymbol{S}\boldsymbol{\tau} + \boldsymbol{w}\_{\boldsymbol{\varepsilon}} = [\boldsymbol{S}\,\boldsymbol{w}\_{\boldsymbol{\varepsilon}}] \left\{ \begin{array}{c} \boldsymbol{\tau} \\ 1 \end{array} \right\} := \boldsymbol{W} \left\{ \begin{array}{c} \boldsymbol{\tau} \\ 1 \end{array} \right\} \tag{2}$$

Once the matrix definition of *W* in Equation (2) is introduced, it is possible to develop cable robot performance analysis following a well-established approach. It is common knowledge that in the performance analysis of parallel manipulators it has been proved convenient to split Jacobian matrices into their "translational" and "rotational" parts [13] in order to evaluate independently the translational and rotational capabilities of parallel robots. By applying the same idea to the novel definition of the wrench matrix of a cable robot, it is here suggested to split *W* into two parts, namely *W<sup>f</sup>* and *W<sup>t</sup>* (where *W* := *<sup>T</sup> W<sup>t</sup> T T* ) to analyze separately force and torque exertion capabilities.

*W<sup>f</sup>* The proposed analysis is particularly useful when it is referred to a specific direction of interest not necessarily coinciding with an axis of the absolute reference frame. Since the force and torque components in vector *w* are expressed in an absolute reference frame, in order to refer the evaluation to a specific direction *d*, a rotation matrix *R* can be introduced to define such a direction of interest univocally in the absolute reference frame adopted [13]. Once the direction *d* is defined, symbols *o*1 and *o*2 are used to denote two orthogonal directions which, combined with *d*, provide a Cartesian

reference frame. The following expressions can be adopted to rotate matrices *W<sup>f</sup>* and *Wt*:

$$
\begin{bmatrix} \mathbf{R} & \mathbf{0} \\ \mathbf{0} & \mathbf{R} \end{bmatrix}^T \begin{Bmatrix} \mathbf{W}\_f \\ \mathbf{W}\_t \end{Bmatrix} := \begin{bmatrix} \mathbf{w}\_{f\_d}^T & \mathbf{w}\_{f\_{o1}}^T & \mathbf{w}\_{f\_{o2}}^T & \mathbf{w}\_{t\_{o1}}^T & \mathbf{w}\_{t\_{o1}}^T & \mathbf{w}\_{t\_{o2}}^T \end{bmatrix}^T \tag{3}$$

Then, for example, the *WEC* of a fully constrained cable robot can be expressed in terms of the maximum force *wf d* that can be exerted along the direction d while keeping bounded cable tensions and given values *<sup>w</sup>*) *<sup>R</sup>* of the other wrench components. Such a *WEC* may be referred to as *WEC<sup>f</sup> d* , since it involves a force evaluation along a direction of interest *d* and can be computed by solving the

*Robotics* **2018**, *7*, 15

following linear programming problem (henceforth, the symbol stands for the component-wise inequality):

$$\begin{aligned} \; \text{WEC}\_{d}^{f} := \max \left( w\_{f\_{d}} = w\_{f\_{d}}^{T} \left\{ \begin{array}{c} \mathsf{r} \\ \mathsf{r} \\ 1 \end{array} \right\} \right) \; \text{s.t.} : \; \left\{ \begin{array}{c} \mathsf{w}\_{f\_{d}}^{T} \\ \mathsf{w}\_{f\_{d}}^{T} \\ \mathsf{w}\_{f\_{d}}^{T} \\ \mathsf{w}\_{f\_{d2}}^{T} \\ \mathsf{w}\_{f\_{d2}}^{T} \end{array} \right\} \left\{ \begin{array}{c} \mathsf{r} \\ 1 \end{array} \right\} := \mathcal{A} \left\{ \begin{array}{c} \mathsf{r} \\ 1 \end{array} \right\} := \widetilde{\mathsf{w}}\_{\mathsf{R}} \end{aligned} \tag{4}$$

Similarly, if the torque exertion capability along a direction d is to be evaluated, the *WEC<sup>t</sup> <sup>d</sup>* can be computed by simply solving the linear programming problem stated as follows:

$$\begin{aligned} \text{WEC}\_{d}^{t} := \max \left( w\_{t\_{d}} = w\_{t\_{d}}^{T} \left\{ \begin{array}{c} \mathsf{r} \\ \mathsf{r} \\ 1 \end{array} \right\} \right) \text{ s.t.}: \\\\ \begin{array}{c} \left\{ \begin{array}{c} \mathsf{w}\_{f\_{d}}^{T} \\ \mathsf{w}\_{f\_{d1}}^{T} \\ \mathsf{w}\_{f\_{d1}}^{T} \\ \mathsf{w}\_{t\_{d1}}^{T} \end{array} \right\} \left\{ \begin{array}{c} \mathsf{r} \\ 1 \end{array} \right\} = \mathsf{A} \left\{ \begin{array}{c} \mathsf{r} \\ 1 \end{array} \right\} = \mathsf{\tilde{w}\_{R}} \\\\ \mathsf{\tau}\_{\min} \prec \mathsf{\tau} \preceq \mathsf{\tau}\_{\max} \end{aligned} \tag{5}$$

In general, a default value for *<sup>w</sup>*) *<sup>R</sup>* should be 0 because, when a cable robot is designed, a practical need may consist in predicting the maximum force that can be exerted along a prescribed direction while keeping null wrench components, both in terms of forces and torques, along the other directions. For example, this is the case when it is necessary to accelerate the moving platform along a specific direction belonging to a path, while keeping the platform orientation unaltered. This is coherent with the typical investigation objectives presented at the beginning of this section.

The possibility of meeting imposed requirements on the full set of values *<sup>w</sup>*) *<sup>R</sup>* of the wrench components excluding the one which is maximized, may only be assured in fully actuated and redundant cable robots. Conversely, when a cable robot is underactuated this is generally impossible. Nonetheless, a suitable redefinition of the linear programming problem allows extending the application of the *WEC* index to such cable robots. Indeed, in underactuated cable robots it is impossible to apply the proposed optimization unless enough equations in the linear problem *A* \* *τ<sup>T</sup>* 1 <sup>+</sup>*<sup>T</sup>* <sup>=</sup> *<sup>w</sup>*) *<sup>R</sup>* are removed. This is a consequence of the fact that it is impossible to assign finite values to all the *<sup>w</sup>*) *<sup>R</sup>* components but only to *m* − 1 of them, where *m* is the number of active cables. Instead of just removing from the linear programming problem the proper number of equality constraints, we suggest replacing them with inequality constraints imposing upper and lower bounds to the wrench components to which finite values cannot be assigned. As an example, consider the problem statement in Equation (6) which refers to a spatial cable robot with 6 dofs driven by 3 active cables: in order to compute a *WEC<sup>f</sup> d* , finite values are assigned only to 2 force components (*w*) *<sup>R</sup>*) while the torque components of the overall wrench are limited by upper and lower bounds (*w*) *<sup>B</sup>*).

$$\mathbf{WEC}\_{d}^{f} \coloneqq \max\left(\mathbf{w}\_{f\_{d}} = \mathbf{w}\_{f\_{d}}^{T} \left\{ \begin{array}{c} \texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\beta}}}}}}}}}}}}}}}}}} \right}}} \right}} \right} \right} \right} \right} \right} \right} \right} \right} \right} \right} \right} \right} \right) \right} \right) \left} \left} \right.} \right) \left} \left} \left} \right. \left} \left} \left\{ \left. \left. \frac{\pi}{1} \right\} \right\} \left\{ \begin{array}{c} \texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}}}}}}}}}}} \right.}} \right.}} \right. \right. \right. \left} \{ \{ \texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}}}}}}}}}} \right. \}} \right. \right$$

In particular, if we compare Equation (6) with the formulation in Equation (4), it is apparent that the constraints in the form of equalities removed from *A* \* *τ<sup>T</sup>* 1 <sup>+</sup>*<sup>T</sup>* <sup>=</sup> *<sup>w</sup>*) *<sup>R</sup>* have been replaced by a suitable set of constraints in the form of inequalities , *<sup>B</sup><sup>T</sup>* <sup>−</sup> *<sup>B</sup>T*-*T*\* *τ<sup>T</sup>* 1 <sup>+</sup>*<sup>T</sup> <sup>w</sup>*) *<sup>B</sup>*.

The presented extension of the *WEC* definition to underactuated cable robots addresses a more general problem and gives the opportunity to make comparisons among considerably different robot topologies keeping a goal-driven approach.

Equation (7) provides a conclusive and general formulation of the *WEC*, suitable to any cable robot topology, where Γ is a generalized force (i.e., Γ can be either a force or torque component of the wrench vector *w* projected along the direction *d* of interest).

$$\mathit{WEC}\_{d}^{\Gamma} := \max \left( w\_{\Gamma\_{d}} \right) \text{ s.t. } : \begin{cases} \qquad \begin{array}{c} \mbox{A} \left\{ \begin{array}{c} \tau \\ 1 \end{array} \right\} = \widetilde{w}\_{R} \\\ \begin{array}{c} \begin{array}{c} \mathsf{B} \\ -\mathsf{B} \end{array} \end{array} \right\} \left\{ \begin{array}{c} \tau \\ 1 \end{array} \right\} \preccurlyeq \widetilde{w}\_{B} \end{array} \tag{7}$$

It is worth highlighting that in Equation (7) the dimensions of the matrices *A* and *B* are related to the cable robot topology and to the specific constraints defined for the analysis, reflecting operational requirements or specific features of the application. Let *k* be the number of rows of matrix *A* (i.e., the number of linear equality constraints). The following inequality must always hold: *k* ≤ min(*n* − 1, *m* − 1), where *n* is the number of degrees of freedom of the moving platform and *m* is the number of active cables. The inequality holding for *k* reflects the practical need that the maximum number of equality constraints cannot exceed *n* − 1 (being 1 the force or torque to be maximized and *n* the overall number of wrench components) or *m* − 1 in the case of underactuated robots. The maximum number of rows *l* of matrix *B* is instead equal to *n* − 1 − *k*: since one inequality constraint can be introduced only if it is impossible, or not necessary for the given application, to provide *n* − 1 constraints in equality form (i.e., if *k* < *n* − 1, then *l* can be greater than zero). As for the number of columns of *A* and *B*, they are both equal to *m* + 1, that is, the size of the column vector \* *τ<sup>T</sup>* 1 +*T* .

In conclusion, the *WEC* definition is strictly related to the constraints defined for the linear programming problem. Such constraints depend on the topology and on the application. It is important to notice that the formulation with inequality constraints can be always adopted, while exact values to all the wrench components apart from the one maximized (i.e., a formulation with a full set of *n* − 1 equality constraints) can be imposed only with fully actuated or redundant robot.

#### **3. Results of WEC Application**

The *WEC* computation presented in the previous section is here applied to the performance analysis of different topologies of cable robots. The objective is to provide a clear proof of the effectiveness and usefulness of the *WEC* when it is employed at the design stage to find the regions of the workspace where a cable robot can best perform, or to compare different cable robot topologies or cable layouts. Three representative investigations are carried out, addressing:


#### *3.1. Analysis of Cable Robots with Different Cable Layout*

The first investigation concerns the group of cable robots shown in Figure 2 which comprises two redundant, planar and fully constrained cable robots with three dofs. The topology of the two robots analysed is identical but the points where cables are attached to the moving platform are different. Therefore, it is said that the cable layouts are different. As shown in Figure 2, the moving platform of the robots is rectangular (0.4 m × 0.2 m) and is driven by four cables attached to the four platform vertices. The cable output points are located at the four vertices of a square. The coordinates (x, y) of the cable output points, expressed in a reference frame located at the square centroid, are: *A*(−1 m, −1 m), *B*(1 m, −1 m), *C*(1 m, 1 m) and *D*(−1 m, 1 m). It is assumed that the platform moves in a horizontal plane (plane xy) and that the overall design of the platform the drive pulleys and the winches allow avoiding cable interference in the robot with crossed cables (Figure 2, on the right). For both the robots, the *WEC* can be computed by employing the formulations proposed in Equations (4) and (5), since both the robots are redundant and the platform can be fully constrained. In this example, it has been chosen to impose null wrench components (*w*) *<sup>R</sup>* <sup>=</sup> 0) in the directions orthogonal to the one along which a force or torque is maximized. Additionally, since no external wrench is assumed to be applied on the platform, *we* is a null vector too.

**Figure 2.** Two cable robots with same topology and different cable layout.

This choice is mainly meant to simplify the comparative analysis of the results. The maximization of all the three wrench components along the Cartesian axes *x*, *y*, *z* has been investigated, that is, two forces acting along the positive directions of the axes x and y in the plane of motion and a torque about the positive direction of axis *z*. For example, the *WEC*, in terms of maximum torque about the positive direction of axis z, has been computed as follows:

$$\mathit{WEC}\_{z}^{t} \coloneqq \max \left( w\_{l\_{z}} = \boldsymbol{w}\_{l\_{z}}^{T} \left\{ \begin{array}{c} \boldsymbol{\pi} \\ 1 \end{array} \right\} \right) \\ \text{s.t.} : \left\{ \begin{array}{c} \boldsymbol{w}\_{f\_{x}}^{T} \\ \boldsymbol{w}\_{f\_{y}}^{T} \end{array} \right\} \left\{ \begin{array}{c} \boldsymbol{\pi} \\ 1 \end{array} \right\} = \boldsymbol{A} \left\{ \begin{array}{c} \boldsymbol{\pi} \\ 1 \end{array} \right\} = \left\{ \begin{array}{c} 0 \\ 0 \end{array} \right\} \tag{8}$$

*WEC<sup>f</sup> <sup>x</sup>* and *WEC<sup>f</sup> <sup>y</sup>* , with the obvious meaning for symbols, have been computed similarly, always starting from the general formulation in Equation (7). Figure 3 collects all the results achieved. In Figure 3a, the sketches of the two cable robots can be recognized: dash-dotted lines are employed to connect the four cable output points; cables are represented by blue lines and the moving platform is depicted in solid black line. A green quadrangle delimits the Static Equilibrium Workspace (SEW) defined as the set of poses of the moving platform for which static equilibrium can be obtained while maintaining positive tensions in all the cables. The SEW has been computed with the shown orientation of the platform, that is, with the sides parallel to the x and y axes. As an example, the *WEC* has been evaluated at point *P*(−0.2 m, 0.2 m) and refers to the force exertion capability along the positive direction of axis x (see the red arrows and the red numbers). As far as the range of tensions that can be resisted by the cables is concerned, without loss of generality, the maximum value has been set to 100 N while the minimum to 5 N. The arrows in bold line overlapped to the cables provide a scale representation of the cable forces which allow achieving the maximum force represented by the red arrow, whose module is the *WEC<sup>f</sup> <sup>x</sup>* value, in *N*, computed at point *P*, which is also written below the red arrow.

While the results shown in Figure 3a refer to a single point P, the other plots of Figure 3 extend the analysis to the whole SEW: *WEC* values have been computed only for the points belonging to the SEW and without altering the moving platform orientation. Figure 3b shows the values (in N), taken by the

*WEC<sup>f</sup> <sup>x</sup>* , while Figure 3c shows the *WEC<sup>f</sup> <sup>y</sup>* . Finally, Figure 3d addresses the torque exertion capabilities of the robots by showing the *WEC<sup>t</sup> <sup>z</sup>* (in Nm). In all the subplots from Figure 3b–d *WEC* values are represented by isolines. The regions where the best performances are achieved can be immediately recognized: they are the ones where the isolines take the highest values (red lines). The comparison of the *WEC* plots clearly highlights the superior performances that can be guaranteed by the robot with crossed cables. First of all, such a robot, which has a wider SEW too, guarantees the possibility of exerting high forces in the x and y directions in a wider subset of the SEW (notice the extension of the red and orange isolines in subplots (b) and (c)). In terms of very maximum values taken by the forces, there are no significant differences between the two robots. Conversely, the torque exertion capability is completely different (see subplot (d)): the behaviour of the robot with crossed cables is preferable since its cables can exert much higher torques.

**Figure 3.** Wrench Exertion Capability (*WEC*) comparison for the two redundant cable robots sketched in Figure 2 in terms of analysis at point P (**a**), *WEC<sup>f</sup> <sup>x</sup>* (**b**), *WEC<sup>f</sup> <sup>y</sup>* (**c**) and *WEC<sup>t</sup> <sup>z</sup>* (**d**).

The *WEC* formulation can be further exploited to compute the minimum force values which can be guaranteed along any direction and at any point of the SEW and to perform an isotropy evaluation based on comparing such minimum force values with the very maximum ones that can be exerted at any point of the SEW. As an example, such analyses are presented in Figure 4 with reference to the sole robot with crossed cables. Figure 4a represents such a robot at a generic point *P*(−0.3 m, −0.3 m).

The results of several repetitions of *WEC<sup>f</sup> <sup>d</sup>* computations at point *P* made considering different directions *d* are collected and depicted through a red polygon which provides a scale representation of the maximum force that can be exerted along any radial direction d around *P*. An angular resolution by 1◦ has been adopted to trace such a polygon, in other words, the polygon summarizes the output of 360 distinct *WEC<sup>f</sup> <sup>d</sup>* computations. The wrench exertion capabilities of the robot referred to all the possible directions can be immediately inferred. The maximum and minimum exertable forces can also be easily found: they are traced in green lines.

**Figure 4.** Scale representation of the maximum force that can be exerted along any direction at a point *P* (**a**); minimum guaranteed force (**b**); isotropy evaluation (**c**) and Tension Factor (**d**).

If the same *WEC<sup>f</sup> <sup>d</sup>* computation (i.e., repeated along any direction) is performed at each point of the SEW, a minimum force value which can be guaranteed irrespective of the direction can be found. Figure 4b shows such a value plotted through isolines. Getting such information at the design stage may obviously be of great practical usefulness.

If, at any point, the ratio between the minimum and maximum exertable forces (e.g., those traced in green lines for point *P* in the subplot (a)) is computed, isotropy can be evaluated effectively. Figure 4c shows such ratios, which can be straightforwardly compared to the popular isotropy index called Tension Factor (TF), proposed in [17]. The TF is the ratio between the minimum and the maximum cable tension values achieved when the platform is in static equilibrium. In Figure 4d the TF computed at each point of the SEW has been plotted by isolines. Apparently, subplots (c) and (d) provide different indications in terms of robot isotropy, however it is the authors' opinion that the one based on the *WEC* is more useful in practice, since the TF provides a measure of robot isotropy in the joint space, rather than in the Cartesian space.

#### *3.2. Analysis of Cable Robots with Different Number of Cables*

The second investigation concerns the group of cable robots shown in Figure 5 which comprises four underconstrained (or "cable suspended") 3-dof cable robots differing in the number of cables and/or in the cable layout. The robots are assumed to move in a vertical plane, hence, their platforms are under the influence of gravity, which is essential to maintain tension in the cables in static conditions. Hence, for this comparison, the plane of motion is plane xz, the vertical one. The moving platforms of all the robots are assumed to be identical and share the same shape and dimensions of the of the cable robots presented in Section 3.1. The cables are all attached to the platform upper vertices. The cables output points are instead located at the two upper vertices of a square. The coordinates (x, z) of such points, expressed in a reference frame located at the square centroid, are: *A*(−1 m, 1 m) and *B*(1 m, 1 m). The first robot only has two cables and hence it is also underactuated. The other robots are instead fully actuated or redundant (i.e., with four cables).

**Figure 5.** Cable suspended robots investigated comparatively by the *WEC*.

By comparing the performances of these robots, the effect of increasing the number of active cables can be appreciated, also in relation to the cable layout adopted. This is the objective of such a comparative analysis, whose results are collected in Figure 6. Robot performances are compared by referring to the *WEC<sup>f</sup> <sup>x</sup>* obtained by assuming that:


The mentioned constraints are coherent with the field of application where cable suspended robots are very likely to be employed in the future: high speed pick and place manipulations (e.g., over-the-belt packaging). Indeed, if a cable suspended robot has to be employed for such tasks, it is of apparent interest evaluating which is the maximum horizontal force that can be exerted on the platform and hence applied to the picked object, while keeping a null torque on it (not to induce rotations) and a bounded upward force (if a given force value in the vertical direction cannot be set due to the limited number of cables available). Not only does imposing an upward force meet the basic requirement of lifting the picked objects during the manipulation (a lower bound higher than zero could be imposed to this purpose) but setting an upper bound could allow preventing the load from being dropped at the start of the motion.

In other words, the upper bound on the vertical force could reflect a limitation to the maximum vertical acceleration. In the comparative analysis, although the sole 2-cable robot is actually underactuated, identical constraints in the form of inequalities have been set for all *WEC* computations to make the comparison between different cable robot topologies fair. The problem is therefore stated as follows for all the robots:

$$\mathbf{WEC}\_{\mathbf{x}}^{f} := \max \left( \mathbf{w}\_{f\_{\mathbf{z}}} = \mathbf{w}\_{f\_{\mathbf{z}}}^{T} \begin{Bmatrix} \boldsymbol{\pi} \\ \end{Bmatrix} \right) \quad \text{s.t.:} : \left\{ \begin{bmatrix} \boldsymbol{w}\_{t\_{\mathcal{g}}}^{T} \\ \end{bmatrix} \begin{Bmatrix} \boldsymbol{\pi} \\ 1 \\ \end{Bmatrix} = A \begin{Bmatrix} \boldsymbol{\pi} \\ 1 \\ \end{Bmatrix} \right\} = 0$$
 
$$\begin{Bmatrix} \boldsymbol{\pi} \\ \end{Bmatrix} = \begin{Bmatrix} \mathbf{w}\_{f\_{\mathbf{z}}}^{T} \\ \end{Bmatrix} \left\{ \begin{Bmatrix} \boldsymbol{\pi} \\ -\boldsymbol{w}\_{f\_{\mathbf{z}}}^{T} \\ \end{Bmatrix} \right\} \begin{Bmatrix} \boldsymbol{\pi} \\ 1 \\ \end{Bmatrix} = \begin{Bmatrix} \mathbf{B} \\ \end{Bmatrix} \begin{Bmatrix} \boldsymbol{\pi} \\ 1 \\ \end{Bmatrix} \preccurlyeq \begin{Bmatrix} \mathbf{w}\_{B} \\ \end{Bmatrix} \tag{9}$$

Generally speaking, the *WEC<sup>f</sup> <sup>x</sup>* can be computed at any point achievable by the moving platform statically or dynamically. In the subplots on the left of Figure 6, the computation is referred to a generic point *P*(−0.2 m, 0.2 m). The lines employed in these plots have the same meaning of the corresponding ones in Figure 4a. Here, however, a vertical green arrow is also adopted to provide a scale representation of the external wrench *we*: the force of gravity acting on the platform. The mass of the platform has been set equal to 5 kg.

In the subplots on the right of Figure 6, the analysis has been extended to all the points of the Statically Feasible Workspace (SFW) defined as the set of the mobile platform poses for which static equilibrium against gravity can be obtained using a limited range of cable tensions [3].

**Figure 6.** *WEC<sup>f</sup> <sup>x</sup>* (**a**–**d**) for each of the different topologies of cable suspended robots presented in Figure 5. *WEC<sup>f</sup> <sup>x</sup>* are either computed at a single point *P* (plots on the left) or throughout the statically feasible workspace (SFW) (plots on the right).

The SFWs of all the robots, computed keeping the platform horizontal, are represented in the subplots on the left of Figure 6, for clarity, delimited by green solid lines. The SFWs have been geometrically bounded by the square box with vertices at *A* and *B*. The isolines in the plots highlight the greatly different behaviors of the four cable driven robots: while for the underactuated robot (subplot (a)) it is possible to find a solution to the problem stated in Equation (9) in just one point of the SFW, by increasing the number of active cables, the force exertion capabilities improve considerably. The subplots (b) and (c) prove that, for the given problem of maximizing a rightward force, the two fully actuated robots behave very differently in their SFWs. The SFWs of the robots are very different (basically symmetrical about the z axis) and not overlapped, which complicates performing a straightforward comparison between the robots. Nonetheless, the plots provide clear hints about the regions where these robots can best perform. Clearly, the most effective cable layout could be identified once the geometrical features of the tasks to be executed and of the workcell were known: in general, the cable arrangement of Figure 6b seems preferable since the *WEC<sup>f</sup> <sup>x</sup>* takes high values in a wider region of the workspace. Finally, in Figure 6d, the *WEC<sup>f</sup> <sup>x</sup>* of the redundant robot is plotted. Obviously, the availability of a fourth cable allows extending the SFW and improving the performances within it. In particular, the rightward force exertion capability shows that this robot merges the benefits of the fully actuated robots discussed earlier, at the expense of an increased cost, design complexity and cable obstruction in the workspace.

#### *3.3. Analysis of a 6-dof Overconstrained Spatial Cable Robot*

The third investigation concerns the cable robot shown in Figure 7 which is a spatial redundant cable robot with six degrees of freedom. The robot design and cable layout recall those of several prototypes developed worldwide [1,2]. The moving platform of the robot is a parallelepiped (0.4 m × 0.1 m × 0.2 m) that weighs 0.5 kg and is driven by eight cables attached to the eight platform vertices. The cable output points are located at the eight vertices of a cube. The coordinates (x, y, z) of the cable output points, expressed in a reference frame located at the cube centroid, are: *A*(−1 m, −1 m, −1 m), *B*(1 m, −1 m, −1 m), *C*(1 m, 1 m, −1 m), *D*(−1 m, 1 m, −1 m), *E*(−1 m, −1 m, 1 m), *F*(1 m, −1 m, 1 m), *G*(1 m, 1 m, 1 m) and *H*(−1 m, 1 m, 1 m).

**Figure 7.** The 6-dof overconstrained spatial cable robot investigated.

For this robot, the *WEC* can be computed by employing the formulations proposed in Equations (4) and (5), since the robot is redundant and the platform can be fully constrained. Also in this case, it has been chosen to impose null wrench components (*w*) *<sup>R</sup>* <sup>=</sup> 0) in the directions orthogonal to the one along which a force or torque is maximized. Additionally, since gravity force is applied to the platform, the third row of the *w<sup>e</sup>* vector is equal to the gravity force, while the other rows contain null values. The maximization of three representative wrench components along the Cartesian axes x, y, z has been investigated. In particular, it has been chosen to maximize the two forces acting along, respectively, the negative direction of the y axis and the positive direction of z axis. Finally, the torque acting about the negative direction of the axis y has been analysed. As an example, the *WEC*, in terms of maximum torque about the negative direction of axis y, has been computed as follows:

$$\text{WEC}\_{-y}^{t} \coloneqq \max \left( w\_{t-y} = w\_{t-y}^{T} \left\{ \begin{array}{c} \texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\beta}}}}}}}}}}}}}}}}}}{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\beta}}}}}}}}}}}}}}{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\beta}}}}}}}}}}}}} \right)^{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}}}}{\texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}}}} \right)^{\texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}}{\texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}}} \right) = \texttt{\texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}}{\texttt{\texttt{\texttt{\texttt{\top}}}}} \right) = \texttt{\texttt{\texttt{\texttt{\texttt{\top}}}}}{\texttt{\texttt{\texttt{\top}}}} \texttt{\texttt{\texttt{\texttt{\top}}}} \texttt{\texttt{\texttt{\texttt{\top}}}}} $$

where the direction *d* is achieved by setting the matrix *R* defined in Equation (3) equal to an elementary rotation matrix of −90 degrees about the z axis (*Rz*(−90)).

Figure 8 collects the results achieved. For the sake of clarity, in the left subplots of Figure 8, the origin of the rotated reference frame is set at point (0 m, 0 m, −1 m) and the direction *d* is highlighted by means of a red arrow. The results shown in the subplots on the left of Figure 8 refer to a single point *P*. Dash-dotted lines are employed to connect the eight cable output points and hence to represent the robot typical workspace; cables are represented by light-blue lines and the moving platform is depicted in solid black line. As an example, the *WEC* has been evaluated at point *P*(0.2 m, 0.4 m, 0.0 m). As far as the range of tensions that can be resisted by the cables is concerned, without loss of generality, the maximum value has been set to 10 N while the minimum to 0.5 N. The arrows in bold blue line overlapped to the cables provide a scale representation of the cable forces which allow achieving the maximum force/torque represented by the red (in case of forces) or green (in case of torque) arrows. In the subplots on the right, each analysis is extended to the whole SEW: only the results achieved in some representative horizontal planes of the SEW are represented for clarity. As usual, in these subplots *WEC* values are represented by isolines, the red ones identifying the regions where the best performances are achieved (i.e., where the highest *WEC* values are achieved). Figure 8a shows the values (in N), taken by the *WEC<sup>f</sup>* <sup>−</sup>*y*, while Figure 8b shows the *WEC<sup>f</sup> <sup>z</sup>* (N). Finally, Figure 8c addresses the torque exertion capabilities of the robot by showing the *WEC<sup>t</sup>* <sup>−</sup>*<sup>y</sup>* (Nm).

As it has already stated for planar cable robots, the computed forces or torques can be exerted statically by the end-effector on the environment or alternatively they can be interpreted as forces or torques that the cables can apply to the end-effector to accelerate it. According to the latter interpretation, the results plotted give immediate evidence of the workspace locations where the highest dynamic performances can be achieved.

**Figure 8.** *WEC<sup>f</sup>* <sup>−</sup>*<sup>y</sup>* (**a**) *WEC<sup>f</sup> <sup>z</sup>* (**b**) and *WEC<sup>t</sup>* <sup>−</sup>*<sup>y</sup>* (**c**) of the spatial cable robot presented in Figure 7. *WEC* are either computed at a single point *P* (plots on the left) or throughout the static equilibrium workspace (SEW) (plots on the right).

#### **4. Conclusions**

A comprehensive evaluation of the performances of any cable driven robot can be carried by the proposed performance index named Wrench Exertion Capability (*WEC*), which allows evaluating the maximum force or torque a cable robot can exert along a direction of interest. The *WEC* accounts explicitly for the intrinsic cable tension limits and for the constraints which can be imposed to the wrench components that are not maximized.

A linear programming problem is solved to compute the *WEC*. The problem makes use of suitable partitions of a novel definition of the wrench matrix which has been introduced to simplify the inclusion of external wrenches in the analysis. The *WEC* formulation proposed is general enough to allow analyzing redundant, fully actuated and underactuated spatial cable robots. To this purpose, the use of constraints in both the form of equalities and inequalities has been suggested and discussed.

Finally, by a set of representative examples, it has been proved that the *WEC* can be adopted to carry out complete and effective evaluations of the performances of cable robots either in absolute or comparative terms.

**Author Contributions:** G.B. and A.T. conceived the study and designed the experiments; G.B. performed the experiments; G.B. and A.T. analyzed the data; G.B. and A.T. wrote the paper.

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

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Optimal Kinematic Design of a 6-UCU Kind Gough-Stewart Platform with a Guaranteed Given Accuracy**

#### **Guojun Liu**

School of Mechanical Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China; liuguojun\_iest@163.com; Tel.: +86-138-7309-3067

Received: 24 April 2018; Accepted: 15 June 2018; Published: 18 June 2018

**Abstract:** The 6-UCU (U-universal joint; C-cylinder joint) kind Gough-Stewart platform is extensively employed in motion simulators due to its high accuracy, large payload, and high-speed capability. However, because of the manufacturing and assembling errors, the real geometry may be different from the nominal one. In the design process of the high-accuracy Gough-Stewart platform, one needs to consider these errors. The purpose of this paper is to propose an optimal design method for the 6-UCU kind Gough-Stewart platform with a guaranteed given accuracy. Accuracy analysis of the 6-UCU kind Gough-Stewart platform is presented by considering the limb length errors and joint position errors. An optimal design method is proposed by using a multi-objective evolutionary algorithm, the non-dominated sorting genetic algorithm II (NSGA-II). A set of Pareto-optimal parameters was found by applying the proposed optimal design method. An engineering design case was studied to verify the effectiveness of the proposed method.

**Keywords:** accuracy analysis; optimal design; multi-objective evolutionary algorithms; NSGA-II; 6-UCU kind Gough-Stewart platform

#### **1. Introduction**

With the advantages of high rigidity, high precision, and large carrying capacity, Gough-Stewart platforms (GSPs) are extensively used in virtual-reality motion simulators [1]. Many scholars studied the optimal design of the 6-UPS kind GSP [1], where U stands for the universal joint, P for the prismatic joint, and S for the spherical joint. When compared with spherical joints, universal joints can bear more tension [2]. Universal joints are extensively used as the passive joints of GSPs to connect hydraulic cylinders or electric cylinders to the moving platform and fixed base. Universal joints are used as the passive joints of the universal tyre test machine designed by Gough et al. [3–5], the motion simulator patented by Cappel [6], commercial flight simulators [7], the Ampelmann system [8], the Moog FCS 5000E motion base [9], the VARIAX machine tool [10], and the AMiBA hexapod telescope mount [11]. Universal joints are also used as the passive joints of the docking test system, and about 60 motion simulators designed by the team of Professor Junwei Han at the Harbin Institute of Technology, China. The cylinders of the hydraulic and electric actuators that can not only translate along the axis, but also rotate along the axis are cylindrical joints instead of prismatic ones. These GSPs are 6-UCU parallel manipulators [12,13], where C stands for the cylinder joint.

In highly accurate positioning applications, such as the docking test systems, high accuracy is required to achieve good simulation results. in China, the translational motion errors of the moving platform must be less than 1 mm in the whole workspace of the docking test system [14]. Many researchers studied the accuracy analysis of GSPs. Wang and Masory studied the effects of manufacturing errors on the accuracy of a GSP by modeling the GSP as serial legs based on the Denavit–Hartenberg method [15]. Ropponen and Arai presented the error model of a modified GSP

by using the differentiation method [16]. Patel and Ehmann established an error model of a GSP, addressing all possible sources of errors [17]. Wang and Ehmann developed first- and second-order error models of a GSP [18]. Masory et al. presented an effective method of identifying kinematic parameters of a GSP using pose measurements [19]. Cong et al. developed a kinematic calibration method of a GSP by using a three-dimensional coordinate measuring machine containing actuator errors and passive joint errors [20]. Dai et al. proposed an accuracy analysis method for a docking test system [14]. Merlet and Daney proposed an optimal method of parallel manipulator considering manufacturing errors by using interval analysis [21–23]. Because of the dependence of the variables, a high level of expertise in interval analysis is needed for the proper usage of parallel manipulators [22]. To the best of our knowledge, there are few papers considering the errors of a GSP in optimal design processes.

In the optimal design process of a high-precision GSP, one needs to find the optimal solutions which meet the given accuracy requirement. An optimal design method for a GSP is proposed in this paper, so as to meet these accuracy requirements.

In this paper, the error model of the 6-UCU kind GSP is derived in Section 2. The optimal design method is proposed in Section 3. Section 4 presents a case study to illustrate the effectiveness of the proposed optimal design. The conclusions are given in Section 5.

#### **2. Differential Error Model**

In this section, the relationship between the structural errors and end-point errors of a 6-UCU kind GSP is discussed. The 6-UCU kind GSP consisted of a moving platform, a fixed base, and six limbs, as shown in Figures 1 and 2. The *i*th limb was connected to the fixed base via a universal joint, whose joint center point is denoted as *Bi*, and connected to the mobile platform via a universal joint with center *Pi*, as shown in Figure 2. For convenience, a Cartesian coordinate frame, *O*<sup>1</sup> − *X*1*Y*1*Z*1, was attached to the moving platform with origin *O*1. A Cartesian coordinate frame, *O* − *XYZ*, was attached to the fixed base with origin *O*.

**Figure 1.** The 6-UCU (U—universal joint; C—cylinder joint) kind Gough-Stewart platform (GSP).

**Figure 2.** Schematic of the 6-UCU kind GSP.

The positions of the universal joints attached to the moving platform and the fixed base of the GSP formed semi-hexagons, as shown in Figure 3, where *rP* is the radius of the platform-joint attachment circle, *dP* is the distance between the shorter edges of the attachment point semi-hexagon on the moving platform, *rB* is the radius of the base-joint attachment circle, and *dB* is the distance between the shorter edges of the attachment point semi-hexagon on the fixed base.

**Figure 3.** Schematic of the universal joint positions. (**a**) Moving platform; and (**b**) fixed base.

Referring to Figures 1 and 2, the position vector of *Pi* expressed in the frame *O* − *XYZ* could be written as

$$\mathbf{p} + \mathbf{R}^{\mathsf{L}} \mathbf{p}\_{i} = \mathbf{b}\_{i} + l\_{1i} \mathbf{n}\_{1i} + l\_{2i} \mathbf{n}\_{2i} \tag{1}$$

where **R** is the rotation matrix from the frame *O*<sup>1</sup> − *X*1*Y*1*Z*<sup>1</sup> to *O* − *XYZ*, **p** is the position coordinate of the point *O*<sup>1</sup> measured in the frame *O* − *XYZ*, **b***<sup>i</sup>* is the position coordinate of the point *Bi* measured in the frame *<sup>O</sup>* − *XYZ*, **<sup>p</sup>***<sup>i</sup>* is expressed as **Lp***<sup>i</sup>* in the frame *<sup>O</sup>* − *XYZ*, **Lp***<sup>i</sup>* is the coordinate of the point *Pi* measured in the frame *O*<sup>1</sup> − *X*1*Y*1*Z*1, *l*1*<sup>i</sup>* is the distance from the point *Bi* to the lower plane of the piston, *<sup>l</sup>*2*<sup>i</sup>* is the distance from the point *Pi* to the lower plane of the piston, **<sup>n</sup>***<sup>i</sup>* is the unit vector of <sup>→</sup> B*i*P*i*, **n**1*<sup>i</sup>* and **n**2*<sup>i</sup>* are the unit vectors of **n***<sup>i</sup>* fixed to the cylinder and piston, respectively, and **n***<sup>i</sup>* = **n**1*<sup>i</sup>* = **n**2*i*.

**Lp***<sup>i</sup>* and **b***<sup>i</sup>* are

$$\mathbf{^L p}\_i = \left[ \begin{array}{cc} r\_P \cos \theta\_{Pi} & r\_P \sin \theta\_{Pi} & h\_P \end{array} \right]^T \tag{2}$$

$$\mathbf{b}\_{i} = \begin{bmatrix} r\_{B}\cos\theta\_{Bi} & r\_{B}\sin\theta\_{Bi} & h\_{B} \end{bmatrix}^{T} \tag{3}$$

where *T* is the matrix transpose, *hP* is the *z* coordinate of the upper universal joint of the *i*th limb in the frame *O*<sup>1</sup> − *X*1*Y*1*Z*1, *hB* is the *z* coordinate of the lower universal joint of the *i*th limb in the frame *O* − *XYZ*, and *θPi* and *θBi* are as follows:

$$\begin{aligned} \begin{array}{rcl} \Theta\_P &=& \begin{bmatrix} \theta\_{P1} & \theta\_{P2} & \theta\_{P3} & \theta\_{P4} & \theta\_{P5} & \theta\_{P6} \end{bmatrix}^T \\ &=& \begin{bmatrix} \eta\_A & \frac{2\pi}{3} - \eta\_A & \frac{2\pi}{3} + \eta\_A & \frac{4\pi}{3} - \eta\_A & \frac{4\pi}{3} + \eta\_A & -\eta\_A \end{bmatrix}^T \end{array} \tag{4}$$

$$\begin{aligned} \begin{array}{rcl} \Theta\_{B} &=& \left[ \begin{array}{ccccccccc} \theta\_{B1} & \theta\_{B2} & \theta\_{B3} & \theta\_{B4} & \theta\_{B5} & \theta\_{B6} \end{array} \right]^{T} \\ &=& \left[ \begin{array}{ccccccccc} \eta\_{B} & \frac{2\pi}{3} - \eta\_{B} & \frac{2\pi}{3} + \eta\_{B} & \frac{4\pi}{3} - \eta\_{B} & \frac{4\pi}{3} + \eta\_{B} & -\eta\_{B} \end{array} \end{array} \right]^{T} \end{aligned} \tag{5}$$

where

$$
\eta\_A = \frac{\pi}{3} - \arcsin\left(\frac{d\_P}{2r\_P}\right),
\tag{6}
$$

$$
\eta\_B = \arcsin\left(\frac{d\_B}{2r\_B}\right). \tag{7}
$$

For the *i*th leg, the limb length *li* was derived as

$$l\_i = l\_{1i} + l\_{2i} \tag{8}$$

where *li* is the length of <sup>→</sup> B*i*P*i*.

Differentiating Equation (1), we obtained

$$
\delta \mathbf{p} + \delta \mathbf{R}^{\mathbf{L}} \mathbf{p}\_i + \mathbf{R} \delta^{\mathbf{L}} \mathbf{p}\_i = \delta \mathbf{b}\_i + \delta l\_{1i} \mathbf{n}\_{1i} + l\_{1i} \delta \mathbf{n}\_{1i} + \delta l\_{2i} \mathbf{n}\_{2i} + l\_{2i} \delta \mathbf{n}\_{2i} \tag{9}
$$

where *δ***R** could be rewritten as follows, according to Reference [16]:

$$
\delta \mathbf{R} = \delta \boldsymbol{\theta} \times \mathbf{R} = \begin{bmatrix} 0 & -\delta \theta\_Z & \delta \theta\_Y \\ \delta \theta\_Z & 0 & -\delta \theta\_X \\ -\delta \theta\_Y & \delta \theta\_X & 0 \end{bmatrix} \mathbf{R} = \boldsymbol{\Omega} \mathbf{R}, \tag{10}
$$

where *δ*θ = *δθ<sup>X</sup> δθ<sup>Y</sup> δθ<sup>Z</sup> T* is the orientation error vector of the moving platform in the frame *O* − *XYZ*, and *δ***p** = *δpX δpY δpZ T* is the translational error vector of the moving platform in the frame *O* − *XYZ*.

Multiplication of **n***<sup>T</sup> <sup>i</sup>* on both sides of Equation (10) yielded

$$\begin{cases} \mathbf{n}\_i^T \delta \mathbf{p} + \mathbf{n}\_i^T \delta \Theta \times \mathbf{R}^\mathbf{L} \mathbf{p}\_i + \mathbf{n}\_i^T \mathbf{R} \delta^\mathbf{L} \mathbf{p}\_i \\ \mathbf{n} = \mathbf{n}\_i^T \delta \mathbf{b}\_i + \mathbf{n}\_i^T \delta l\_{1i} \mathbf{n}\_{1i} + \mathbf{n}\_i^T l\_{1i} \delta \mathbf{n}\_{1i} + \mathbf{n}\_i^T \delta l\_{2i} \mathbf{n}\_{2i} + \mathbf{n}\_i^T l\_{2i} \delta \mathbf{n}\_{2i} \end{cases} \tag{11}$$

Since **n***<sup>T</sup> <sup>i</sup>* **<sup>n</sup>***<sup>i</sup>* = 1, **<sup>n</sup>***<sup>i</sup>* = **<sup>n</sup>**1*<sup>i</sup>* = **<sup>n</sup>**2*i*, *<sup>δ</sup>l*2*<sup>i</sup>* = 0, and *<sup>δ</sup>li* = *<sup>δ</sup>l*1*i*, we had **<sup>n</sup>***<sup>T</sup> <sup>i</sup> <sup>δ</sup>***n***<sup>i</sup>* = 0, **<sup>n</sup>***<sup>T</sup> <sup>i</sup> δ***n**1*<sup>i</sup>* = 0, and **n***<sup>T</sup> <sup>i</sup> δ***n**2*<sup>i</sup>* = 0. Therefore, Equation (11) could be rewritten as

$$\begin{array}{l} \mathbf{n}\_i^T \delta \mathbf{p} + \mathbf{n}\_i^T \delta \boldsymbol{\Theta} \times \mathbf{R}^\mathbf{L} \mathbf{p}\_i + \mathbf{n}\_i^T \mathbf{R} \delta^\mathbf{L} \mathbf{p}\_i \\\ = \mathbf{n}\_i^T \delta \mathbf{b}\_i + \mathbf{n}\_i^T \delta l\_{1i} \mathbf{n}\_i \\\ = \mathbf{n}\_i^T \delta \mathbf{b}\_i + \delta l\_{1i} \\\ = \mathbf{n}\_i^T \delta \mathbf{b}\_i + \delta l\_i \end{array} \tag{12}$$

*δli* could be derived as

$$
\begin{split}
\delta l\_{i} &= \begin{bmatrix} \mathbf{n}\_{i}^{T}\delta \mathbf{p} + \mathbf{n}\_{i}^{T}\delta \boldsymbol{\Theta} \times \mathbf{R}^{\mathsf{L}} \mathbf{p}\_{i} + \mathbf{n}\_{i}^{T}\mathbf{R}\delta^{\mathsf{L}} \mathbf{p}\_{i} - \mathbf{n}\_{i}^{T}\delta \mathbf{b}\_{i} \\ &= \begin{bmatrix} \mathbf{n}\_{i}^{T} & \left(\mathbf{R}^{\mathsf{L}}\mathbf{p}\_{i} \times \mathbf{n}\_{i}\right)^{T} \end{bmatrix} \begin{bmatrix} \delta \mathbf{p} \\ \delta \boldsymbol{\Theta} \end{bmatrix} + \\
&\qquad \begin{bmatrix} \mathbf{n}\_{i}^{T}\mathbf{R} & \left(-\mathbf{n}\_{i}^{T}\right) \end{bmatrix} \begin{bmatrix} \delta^{\mathsf{L}}\mathbf{p}\_{i} \\ \delta \mathbf{b}\_{i} \end{bmatrix}
\end{split} \tag{13}
$$

Once all six limbs were assembled, the errors could be expressed as

$$
\delta \mathbf{l} = \mathbf{J}\_P \delta \mathbf{x} + \mathbf{J}\_s \delta \mathbf{s},\tag{14}
$$

where

$$
\delta \mathbf{l} = \begin{bmatrix}
\ \delta l\_1 & \cdots & \ \delta l\_6
\end{bmatrix}^T \in \mathfrak{R}^{6 \times 1},
\tag{15}
$$

$$
\delta \mathbf{x} = \begin{bmatrix} \delta \mathbf{p} \\ \delta \mathbf{\theta} \end{bmatrix} \in \mathbb{R}^{6 \times 1}, \tag{16}
$$

$$\delta \mathbf{s} = \begin{bmatrix} \delta^{\mathbf{L}} \mathbf{p}\_i \\ \delta \mathbf{b}\_1 \\ \vdots \\ \delta^{\mathbf{L}} \mathbf{p}\_6 \\ \delta \mathbf{b}\_6 \end{bmatrix} \in \mathfrak{R}^{36 \times 1},\tag{17}$$

$$\mathbf{J}\_P = \begin{bmatrix} \mathbf{n}\_1^T & \left(\mathbf{R^I}\mathbf{p}\_i \times \mathbf{n}\_1\right)^T\\ \vdots & \vdots\\ \mathbf{n}\_6^T & \left(\mathbf{R^I}\mathbf{p}\_6 \times \mathbf{n}\_6\right)^T \end{bmatrix} \in \mathfrak{R}^{6 \times 6},\tag{18}$$

$$\mathbf{J}\_{8} = \begin{bmatrix} \mathbf{n}\_{1}^{T}\mathbf{R} & \begin{pmatrix} -\mathbf{n}\_{1}^{T} \end{pmatrix} & \cdots & \mathbf{0}\_{1\times 3} & \mathbf{0}\_{1\times 3} \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ \mathbf{0}\_{1\times 3} & \mathbf{0}\_{1\times 3} & \cdots & \mathbf{n}\_{6}^{T}\mathbf{R} & \begin{pmatrix} -\mathbf{n}\_{6}^{T} \end{pmatrix} \end{pmatrix} \in \mathbb{R}^{6\times 36},\tag{19}$$

$$\mathbf{0}\_{1\times3} = \begin{bmatrix} 0 & 0 & 0 \end{bmatrix}.\tag{20}$$

If the inverse of **J***<sup>P</sup>* existed, then *δ***x** could be derived as

$$
\delta \mathbf{x} = \mathbf{J}\_P^{-1} \delta \mathbf{l} - \mathbf{J}\_P^{-1} \mathbf{J}\_S \delta \mathbf{s}.\tag{21}
$$

The first term on the right side represents the actuation-induced error, and the second term is the error caused by the position errors of the joints [16].

#### **3. Optimal Design Method**

In engineering, we may assume that the manufacturing tolerances on the geometrical parameters are bounded and the maximum values of *δ***l** and *δ***s** are known as a function of the manufacturing method. The maximum values of *δ***x** for the optimal design solutions had to be lower than the given accuracy by customers, before being dealt with as a constraint in the optimal design process in this paper.

Many scholars studied the optimal design of a GSP with only one optimal solution [24]. In practice, many different functional requirements of robots are intended to be satisfied [25]; thus, it is more appropriate to have multiple optimization solutions after the optimal kinematic design [24]. The condition number and determinant of the kinematic Jacobian matrix, **J***P*, of a GSP were extensively used as optimal design objectives [24]; therefore, they were chosen as objective functions in the optimal design process in this paper. Accordingly, they were defined as

$$\text{cond}(\mathbf{J}\_P) = \frac{\sigma\_{\text{max}}(\mathbf{J}\_P)}{\sigma\_{\text{min}}(\mathbf{J}\_P)},\tag{22}$$

$$
\omega = \sqrt{\det(\mathbf{J}\_P \mathbf{J}\_P^T)} = |\det(\mathbf{J}\_P)| \,\tag{23}
$$

where *σ*max(**J***P*) and *σ*min(**J***P*) are the maximum and minimum singular values of **J***<sup>P</sup>* at one pose, respectively, and det(**J***P*) is the determinant of **J***P*.

In the optimal design process, evolutionary algorithms are extensively used to search the optimal solutions [26]. In this paper, the elitist non-dominated sorting genetic algorithm version II (NSGA-II), developed by Deb et al. [27], was employed to solve the multi-objective optimal design problems of the 6-UCU kind GSP, due to its good spread of solutions and convergence to obtain the Pareto front. Real-coded NSGA-II with a simulated binary crossover (SBX) operator [28] and a polynomial mutation operator [29] were adopted in this paper to search the minimum values of the objective functions. The parameters of the NSGA-II are shown in Table 1.

**Table 1.** Parameters of the non-dominated sorting genetic algorithm version II (NSGA-II).


The optimal design procedures were proposed as described below.

**Step 1.** The customers usually provided the maximum motion requirements for each degree of freedom (DOF), as shown in Table 2.


**Table 2.** Typical requirements by customers.

We transformed the requirements of the customer to 12 typical trajectories along six single axes [24]. Two typical travel trajectories of translation along the *X* axis were

$$S\_X(t) = Tr\_X \sin\left(\frac{T\upsilon\_X}{Tr\_X}t\right),\tag{24}$$

$$S\_X(t) = \frac{\left(T\upsilon\_X\right)^2}{T a\_X} \sin\left(\frac{T a\_X}{T \upsilon\_X} t\right),\tag{25}$$

where *t* is the run time.

**Step 2.** At each pose, con*d*(**J***P*) was calculated using Equation (22). When it was at or near the singularity, calculating *δ***x** using Equation (21) was potentially wrong. We used another method to solve this problem, as follows: if con*d*(**J***P*) > 106, then *δ***x** = 10<sup>7</sup> 10<sup>7</sup> 10<sup>7</sup> 107 10<sup>7</sup> 10<sup>7</sup> *T* ; if con*d*(**J***P*) ≤ 106, *<sup>δ</sup>***<sup>x</sup>** was calculated using Equation (21). In the searching process, the guaranteed accuracy was given, and then it was dealt with as a constraint. The penalty function is the most often used technique in constrained optimization [26]; however, the penalty coefficients are very difficult to choose appropriately [30]. We handled the constraint as follows: if *δ***x** was in the required range, con*d*(**J***P*) was calculated using Equation (22), and *ω* was calculated using Equation (23). Otherwise, con*d*(**J***P*) = 10<sup>7</sup> + *fc* and *ω* = (−*fc*). A subprogram was subsequently created to calculate the maximum value of con*d*(**J***P*) and the minimum value of *ω* for all 12 typical trajectories.

$$f\_{\varepsilon} = \left\| \frac{\delta p\_X}{\mathcal{a}c\_{TX}} \right\| + \left\| \frac{\delta p\_Y}{\mathcal{a}c\_{TY}} \right\| + \left\| \frac{\delta p\_Z}{\mathcal{a}c\_{TZ}} \right\| + \left\| \frac{\delta \theta\_X}{\mathcal{a}c\_{RX}} \right\| + \left\| \frac{\delta \theta\_Y}{\mathcal{a}c\_{RY}} \right\| + \left\| \frac{\delta \theta\_Z}{\mathcal{a}c\_{RZ}} \right\| \,\tag{26}$$

where *acTX*, *acTY*, and *acTZ* are the required maximum linear displacement positioning errors along the *X*, *Y*, and *Z* axes, respectively; *acRX*, *acRY*, and *acRZ* are the required maximum angular displacement positioning errors along the *X*, *Y*, and *Z* axes, respectively.

**Step 3.** con*d*(**J***P*)max was set as the maximum value of con*d*(**J***P*) calculated in step 2, and *ω*min was set as the minimum value of *ω* calculated in step 2.

**Step 4.** The design variables were chosen as *rP*, *rB*, *dP*, *dB*, and *H*0, where *H*<sup>0</sup> was the height of the upper universal joint plane to the lower universal joint plane at the home position. *f*<sup>1</sup> = con*d*(**J***P*)max and *f*<sup>2</sup> = −*ω*min. NSGA-II was used to minimize the objective functions, *f*<sup>1</sup> and *f*2, simultaneously.

For other requirements, the 12 typical trajectories were replaced by all the typical trajectories in the special applications. In the optimal kinematic design of a flight simulator, 31 typical trajectories of a Boeing 747 were considered in the design process by Advani [31]. If one desires a singularity-free workspace, as for motion simulators, the 12 typical trajectories in Step 2 would be replaced by all the typical trajectories and the 64 extreme positions [24,31].

#### **4. Case Study**

A case study is presented in this section to show the effectiveness of the proposed optimal design method. For this specific case, the requirements of the customer are shown in Table 3.

From a practical consideration, the ranges of the parameters were chosen as follows:

*hP* = −0.45(m), *hB* = (−0.45 − *H*0)(m), 0.75(m) ≤ *rB* ≤ 3.0(m), 0.75(m) ≤ *rP* ≤ 3.0(m), *rP* ≤ *rB*, 1.0(m) ≤ *H*<sup>0</sup> ≤ 3.5(m), 0.25(m) ≤ *dB* ≤ *rB*, and 0.22(m) ≤ *dP* ≤ *rP*. The range of every element of *δ***l** and *δ***s** were in the range [−0.3, 0.3](mm).


**Table 3.** Requirements of the customer.

After applying the proposed optimization process, as outlined in Section 3, 50 optimal solutions and the Pareto-optimal front were found, as shown in Figure 4. Lastly, there were three optimum design points, labeled as a, b, and c, whose corresponding objective values and design parameters are shown in Table 4. As seen in Table 4, the maximum errors of all the linear displacements were lower than 1 mm, and the maximum errors of all the angular displacements were lower than 0.1◦. Therefore, all the requirements by the customer, given in Table 3, were met. This showed the effectiveness of the proposed method for the optimal design purpose.

**Figure 4.** Pareto-optimal front of the solutions.

**Table 4.** Objective functions values from the Pareto sets and their corresponding design variables.


#### **5. Conclusions**

Motion simulators extensively use 6-UCU kind GSPs. A differential error model for a 6-UCU kind GSP was derived in this paper, and contained both the actuation-induced error and the error caused by the position errors of the joints. The guaranteed given accuracy was used as a constraint in the optimal design process of the high-accuracy motion simulators. An optimal kinematic design method was proposed by using the multi-objective evolutionary algorithm, NSGA-II. If **J***<sup>P</sup>* was near or at the singularity pose, the inverse of **J***<sup>P</sup>* potentially did not exist. *δ***x** could be wrongly calculated using Equation (21). In order to solve this problem, a method was presented where the condition number of **J***<sup>P</sup>* was compared with a large number. Another engineering method was proposed to handle the accuracy requirement constraints in the optimal design process. Multiple optimization solutions were found following implementation of the optimal kinematic design.

The effectiveness of the proposed method was verified through a practical optimal design case. The proposed optimal design method can be used as a guideline for the practical design of GSPs used in other applications with high-accuracy requirements.

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

#### **References**


© 2018 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Viability and Feasibility of Constrained Kinematic Control of Manipulators**

#### **Marco Faroni 1, Manuel Beschi 2, Nicola Pedrocchi <sup>2</sup> and Antonio Visioli 1,\***


Received: 13 June 2018; Accepted: 20 July 2018; Published: 23 July 2018

**Abstract:** Recent advances in planning and control of robot manipulators make an increasing use of optimization-based techniques, such as model predictive control. In this framework, ensuring the feasibility of the online optimal control problem is a key issue. In the case of manipulators with bounded joint positions, velocities, and accelerations, feasibility can be guaranteed by limiting the set of admissible velocities and positions to a viable set. However, this results in the imposition of nonlinear optimization constraints. In this paper, we analyze the feasibility of the optimal control problem and we propose a method to construct a viable convex polyhedral that ensures feasibility of the optimal control problem by means of a given number of linear constraints. Experimental and numerical results on an industrial manipulator show the validity of the proposed approach.

**Keywords:** manipulators; trajectory planning; kinematic constraints; optimization; viability; inverse kinematics

#### **1. Introduction**

Robotic systems typically present kinematic and/or dynamic limitations. For example, joint positions are generally bounded within an available range of motion, while actuators implicitly present velocity and acceleration/torque limits. Further constraints can be due to the environment where the robot has to operate (e.g., partial occupation of the robot workspace) or to safety reasons, which may determine velocity and acceleration limitations. Including such constraints in the development of planning and control methods is of utter importance, as their violation might lead to unrealizable motions (with consequent significant errors in the execution of the tasks) or to safety issues (for example, in the case workspace limits are not respected).

Constrained methods are widely diffused, for example, in the case of offline trajectory planning. The general approach consists in the formulation of a constrained optimization problem that should optimize a given objective, such as minimum execution time [1] or minimum energy consumption [2]. This is also the case of global redundancy resolution methods [3], where the robot has to perform an assigned task, and the redundancy can be exploited to optimize a desired objective, such as maximum manipulability [4], dexterity [5], or maximum joint range availability [6]. However, all these methods are typically performed offline as they need the prior knowledge of the task to be performed, and they lead to heavy computational burdens that do not permit their online execution. For this reason, they are not able to handle online trajectory generation and re-planning techniques and this is a relevant limitation, considering recent robotic applications such as collaborative robotics and robots in unstructured environments. To handle the robot constraints in online planning and control methods,

optimization-based techniques are becoming more and more widespread as the increasing computing power of modern processors allows their real-time implementation with small sampling periods.

Quadratic programming, for example, is intensively exploited in the resolution of the Inverse Kinematic (IK) problem of redundant manipulators [7–11]. In brief, a manipulator is termed kinematically redundant with respect to a task when it has a number of degrees of freedom greater than the one of the desired task. The IK problem does not present a unique solution, as the transformation between the joint and the task space results in an undetermined system. Such problem is usually addressed at differential level in order to exploit the linear relation between joint and task velocities given by the Jacobian of the robot. This can be formulated as a chain of Quadratic Programs (QP) with decreasing priorities: the tasks are written as cost functions and the robot limits are represented as linear constraints. The possibility of including robot constraints in the QP represents a great advantage with respect to other typical methods (such as the unconstrained projection of secondary tasks in the null space of the Jacobian [12,13]). Further developments in this field explicitly face the problem of possible saturations and task deformations by introducing a scaling variable into the QP to slow down the execution of the tasks if needed [14].

A further improvement of these methods is represented by the use of Model Predictive Control (MPC) techniques, which aim at overcoming issues related to the fact that the previous methods only consider the current state of the robot. In fact, MPC-based methods are able to take into account the future evolution of the system, the tasks, and the constraints, improving the behavior of the robot in terms of task satisfaction and smoothness [15,16]. MPC is also applied to constrained motion planning [17,18] or low-level control applications [19].

Disregarding the particular field of application, a fundamental issue to address when using optimization-based control techniques is the feasibility of the online optimization problem. In fact, feasibility must be ensured in any possible state of the system. Otherwise, a solution to the problem might not exist, and this could cause the algorithm to stop (unless specific but sub-optimal strategies are activated when infeasibility occurs).

Feasibility of the online optimization problem is strictly related to the concept of set viability [20]. A set is said to be viable if, given an initial state within such set, the state trajectory can be kept within the set by means of a proper and realizable input function. In other words, keeping the state within a viable set ensures feasibility for all future time instants. On the contrary, if the state exits the viable set, infeasibility of the control problem will surely occur at a certain time in the future. This is particularly relevant in the case of state-constrained systems, as infeasibility might occur if no viability conditions are added to the control problem but only state and input limits are taken into account.

For robot manipulator control, this issue is common to any control strategy that takes into account both position and acceleration/torque constraints. In this case, the simplistic imposition of box constraints on the position and the acceleration/torque of the robot does not ensure the existence of a feasible solution to the optimization problem. For example, if a robot joint approaches its position limit with high velocity, the position bound will be exceeded due to the bounded admissible deceleration. Few works addressed this issue by means of manually-tuned heuristic strategies that aimed at reducing the velocity of the robot when it approached its position limits [21–23]. Many other control strategies did not take into account position bounds, assuming that the reference trajectories were implicitly feasible [24,25]. Notice that the viability guarantee does not ensure the feasibility of the reference trajectory, which could be only verified offline when the whole trajectory is known a priori. Such approach does not apply to online methods, which should be able to handle online trajectory generation and re-planning. In these cases, we can only ensure the feasibility of the optimal control control, which typically aims at minimizing the deviation of the performed motion with respect to the reference trajectory. This means that, although the desired motion might be infeasible, the optimal control problem remains feasible. In this case, a deformation with respect to the nominal trajectory could arise.

A formal viability guarantee was given in [26], which proposed an invariance control scheme for constrained robot manipulators. In particular, viability conditions were derived in order not to exceed workspace limitations with bounded joint accelerations. In [14], a local redundancy resolution technique was proposed: to respect a given deceleration limit in the breaking phase, the position-velocity state region was limited by imposing that the robot was able to stop within the given joint limit (in fact, limiting the state region to a viable set). This approach was similarly adopted in [27] in the context of robust constrained motion planning. Recently, viability for joint-constrained manipulators was explicitly addressed in [28], with a particular focus on the discrete-time implementation of the viability constraints.

All the above-mentioned approaches were based on the derivation of an analytical viability condition for a double integral system with bounded input and output. The resulting condition is quadratic in the velocity state. However, as all the above-mentioned works refer to local/feedback methods, such condition could be easily linearized around the current system state, resulting in variable box constraints on the control actions. However, such linearization is not possible for predictive strategies. In this case, a linear approximation of the viability set should be obtained. For example, Faroni et al.[29] gives a sufficient condition to approximate the quadratic viable set with a linear constraint and maintaining the viability property. Although the approximation technique is easy to implement and does not remarkably increase the computational complexity of the problem, the resulting allowed state region could result to be significantly smaller than the original one.

In this paper, we propose a method to derive a viable convex polyhedron for a robotic system with bounded joint positions, velocities, and accelerations. In particular, a simple optimization problem is set up to determine the maximum polyhedron that approximates the original viable set. The original quadratic condition is approximated by a polyhedron with a given number of sides, by maximizing the area of the allowed velocity-position state-region. Moreover, viability of the resulting set is ensured by imposing that, for all points on the polyhedron boundary, there exists a realizable input action that keeps the next state within the polyhedron itself, which is also demonstrated to be convex and can be therefore rewritten as a linear inequality constraint in optimization-based algorithms (such as linear MPC techniques). The paper shows that, by increasing the number of sides, the polyhedron gives a better approximation of the original viable set, as expected. This means that a larger admissible state region can be exploited by the controller when the resulting constraints are included in the optimization problem. Consequently, the controller can obtain smaller tracking errors when the desired task requires the robot joint to get close to the maximal viable set boundary. In particular, numerical results show the enlargement of the admissible state region as the number of sides increases. Such improvement is more and more evident as the maximum acceleration values gets smaller. Finally, experimental results on a Universal Robots UR10 manipulator demonstrates the validity of the proposed approach. In particular, an MPC algorithm is applied to the tracking problem of a given joint-space trajectory and the results with different viability conditions are compared. Firstly, an experimental example shows that the use of an invariance condition is of vital importance to ensure both the feasibility of the online optimization problem and the satisfaction of the manipulator limits. Secondly, the results show that the viable sets obtained by means of the proposed method permits to obtain smaller (or null) tracking errors in the case the required motion is close to the viability boundary, increasing the performance of the MPC controller.

The paper is organized as follows. Section 2 introduces the concept of set viability applied to constrained kinematic control of robot manipulators. Section 3 illustrates the proposed method for the computation of the optimal viable polyhedron and gives viability and convexity proves. Numerical results demonstrate the effectiveness of the proposed approach in Section 4, while experimental results on a Universal Robot UR10 manipulator are shown in Section 5. Section 6 concludes the paper.

#### **2. Feasibility of the Constrained Kinematic Control Problem**

Consider a generic robot joint and denote with *q*, *q*˙, *q*¨ its position, velocity, and acceleration, respectively. The limits on *q*, *q*˙, and *q*¨ can be therefore expressed as:

$$\mathfrak{q}\_{\text{min}} \stackrel{\kappa^\*}{=} \mathfrak{q} \quad \stackrel{\kappa^\*}{\leq} \mathfrak{q}\_{\text{max}}.\tag{1}$$

$$
\dot{q}\_{\text{min}} \le \dot{q} \le \dot{q}\_{\text{max}}.\tag{2}
$$

$$
\vec{q}\_{\text{min}} \le \vec{q} \le \vec{q}\_{\text{max}}.\tag{3}
$$

where *q*min, *q*˙min, *q*¨min, and *q*max, *q*˙max, *q*¨max are the minimum and maximum joint position, velocity, and acceleration, respectively.

Assume a discrete-time implementation with sampling period *T* in which the acceleration is considered as constant along each sampling period. At time *k*, kinematic limits at the next sampling time *k* + 1 can be easily written as linear inequalities in the joint acceleration *q*¨*<sup>k</sup>* as:

$$q\_{\rm min} \le \left| q\_k + T \, \dot{q}\_k + \frac{1}{2} \, T^2 \, \ddot{q}\_k \right| \le q\_{\rm max} \tag{4}$$

$$
\dot{q}\_{\min} \le \left. \dot{q}\_k + T \, \dot{q}\_k \right| \le \dot{q}\_{\max} \tag{5}
$$

$$
\not\models \not\models\_{\text{min}} \leq^\* \not\models \not\models\_{\text{max}} \cdot \text{ } \tag{6}
$$

However, the simplistic imposition of Equations (4)–(6) may result in an empty admissible set, as no feasible solution might exist that satisfies all constraints at the same time [28].

Indeed, the existence of a solution is guaranteed if Equations (4)–(6) are feasible for all the admissible states of the system. This is strictly correlated to the concept of set viability, as mentioned in Section 1. As each joint is modeled as a double integrator, the viability analysis traces back to the viability of a double integrator system with bounded input and output. By imposing the feasibility of Equations (4)–(6), the maximal viability set for the double integrator can be derived analytically [26]. Intuitively, it can be calculated by imposing that, applying the maximum deceleration *q*¨min, the joint stops at *q* = *q*max with null velocity (*q*˙ = 0). The resulting condition (valid for the upper bound) is given by:

$$\begin{cases} q - \frac{q^2}{2q\_{\text{min}}} - q\_{\text{max}} \le 0 & \text{if } \dot{q} > 0\\ q - q\_{\text{max}} \le 0 & \text{otherwise} \end{cases} \tag{7}$$

which expresses a quadratic condition in the system states. An analogous condition for the lower bound can be derived likewise.

Such condition can be easily linearized around the current velocity and position, in the case of local methods, as in [14,27]. The inclusion of Equation (7) in the QP ensures that the states of the system (i.e., the joint velocities and positions) remain within a viable set for which the problem is feasible. More details about the discrete implementation in robotic systems can be found in [28].

The necessity of deriving a linear approximation of the original quadratic equation (Equation (7)) comes from the advantages given by the linear formulation in optimization-based controllers (in particular, the significant decrement of computational time and the ease of implementation of linear MPC with respect to the nonlinear one). However, in the case of predictive strategies, the linearization adopted for local methods is not applicable.

To tackle this issue, Faroni et al. [29] proposed a linear viability condition based on a single constraint for each joint. Firstly, it showed that approximating the quadratic constraint in Equation (7) by means of a straight line passing through the extreme points of the maximal viable set (i.e., (*q*max, 0) and the intersection between Equation (7) and *q*˙ = *q*˙max in Figure 1) leads to a non-viable set. Then, it derives a linear viability condition by imposing that the maximum deceleration along the linear

constraint is exactly equal to the maximum admissible deceleration. In this way, the joint states can be always kept within the resulting set by means of a realizable acceleration. Such condition is given by:

$$-\frac{\ddot{q}\_{\text{min}}}{\dot{q}\_{\text{max}}}q+\dot{q}+\frac{\ddot{q}\_{\text{min}}}{\dot{q}\_{\text{max}}}q\_{\text{max}}\leq 0\tag{8}$$

for the upper bound, and likewise for the lower one.

Inequalities (Equations (7) and (8)) are graphically represented in Figure 1. Linearity of Equation (8) is a great advantage, as it allows the straightforward inclusion in an optimization problem as a linear constraints. However, it is clear that Equation (8) implies a conservative reduction of the available state-space region compared to Equation (7), and such reduction worsens as the acceleration limits become smaller.

From a practical perspective, the reduction of the admissible state region shows its drawbacks when the robot is required to perform a motion that would violate Equation (8). In fact, the states laying between the linear and the quadratic constraints in Equations (7) and (8) are potentially realizable by the robot, but they are automatically excluded by the controller, with consequent deformation of the desired trajectory. Similarly, for redundant manipulators, shrinking the admissible state region could results in a worse satisfaction of the secondary objectives.

**Figure 1.** Viable admissible set for the double integrator system. Black: Maximal region, given by the quadratic inequality in Equation (7). Blue: Conservative linear inequality in Equation (8), as proposed in [29].

#### **3. Proposed Method**

As mentioned in the previous section, viability conditions are fundamental to ensure the feasibility of the control problem. The derivation of linear viability conditions (e.g., Equation (8)) allows their straightforward implementation in an optimization-based control framework, such as MPC algorithms. A strategy to enlarge the admissible region without waving its linearity is therefore proposed. It consists in increasing the number of linear constraints that compose the admissible set. We can therefore state the following problem.

**Problem 1.** *Given the acceleration, velocity, and configuration limits for each joint, find the maximal viable convex polyhedron determined by a given number of linear inequalities.*

We address this problem by converting it into an optimization problem. In particular, for each joint, two optimization problems are set up (one for the upper position bound and one for the lower position bound). Without loss of generality, consider the upper configuration bound for a generic joint (i.e., the first quarter in Figure 1). The optimization variables of the problem are given by the coordinates of the extremes of the segment composing the polyhedron shown in Figure 2. Given a number of segments *h*, such variables are denoted with the vectors:

$$p\_{\mathbf{x}} = (p\_{\mathbf{x},0}, \dots, p\_{\mathbf{x},\mathbf{j}}, \dots, p\_{\mathbf{x},\mathbf{h}}),\tag{9}$$

$$p\_y = (p\_{y,0}, \dots, p\_{y,j}, \dots, p\_{y,h}),\tag{10}$$

whereas a generic point on the polyhedron is denoted with *Pj*(*px*,*j*, *py*,*j*).

Now, impose that (*px*,0, *py*,0)=(*q*mean, *<sup>q</sup>*˙max), where *<sup>q</sup>*mean <sup>=</sup> *<sup>q</sup>*max+*q*min <sup>2</sup> and (*px*,*h*, *py*,*h*)=(*q*max, 0). To maximize the area covered by the polyhedron, a cost function equivalent to the opposite of such area is defined as follows:

$$\psi = \frac{1}{2} \sum\_{j=1}^{l} (p\_{x,j-1} - p\_{x,j})(p\_{y,j-1} + p\_{y,j}).\tag{11}$$

**Figure 2.** Construction of the polyhedron P1.

The extremes of the segments are required to lay in the first quarter and have to respect the maximum position and velocity bounds. This results in the following box constraints:

$$\mathfrak{gl} \text{ means } \stackrel{\kappa}{\le} \mathfrak{p} x \stackrel{\kappa}{\le} \mathfrak{gl} \text{max}\_{\mathsf{M}} \tag{12}$$

$$0 \le p\_{\underline{y}} \le \dot{q}\_{\text{max}}.\tag{13}$$

Moreover, as a first necessary condition to the convexity of the polyhedron, we impose:

$$p\_{\mathbf{x},j} - p\_{\mathbf{x},j-1} \ge 0 \quad \forall j = 1, \dots, h,\tag{14}$$

$$p\_{y,j-1} - p\_{y,j} \ge 0 \quad \forall j = 1, \ldots, h. \tag{15}$$

One last constraint needs to be imposed to ensure that the resulting polyhedron is viable and convex. To this purpose, we resort to a geometrical reasoning. Consider a generic segment *Pj Pj*+<sup>1</sup> whose extremes are the points (*px*,*j*, *py*,*j*) and (*px*,*j*<sup>+</sup>1, *py*,*j*+1) and denote with *nj* the unitary vector normal to the segment and directed toward the inner region of the polyhedron. It results that:

$$\vec{m}\_{\vec{j}} = \left( \frac{p\_{y,\vec{j}+1} - p\_{y,\vec{j}}}{||\overline{P\_{\vec{j}}P\_{\vec{j}+1}}||}, \frac{p\_{x,\vec{j}} - p\_{x,\vec{j}+1}}{||\overline{P\_{\vec{j}}P\_{\vec{j}+1}}||} \right). \tag{16}$$

*Robotics* **2018**, *7*, 41

Consider then a generic point *P<sup>ζ</sup>* (*px*,*<sup>ζ</sup>* , *py*,*<sup>ζ</sup>* ) on the segment. By applying the maximum deceleration *q*¨min to the system, the states are forced to move on the curve given by:

$$\begin{cases} q = p\_{x,\tilde{\Box}} + p\_{y,\tilde{\Box}}t + \frac{1}{2}\ddot{q}\_{\text{min}}t^2\\ \dot{q} = p\_{y,\tilde{\Box}} + \ddot{q}\_{\text{min}}t \end{cases} \tag{17}$$

The tangent vector to such curve in the (*q*, *q*˙)-plane is given by:

$$\vec{\sigma} = \left(\frac{dq}{dt}, \frac{d\vec{q}}{dt}\right) = \left(p\_{y,\vec{\zeta}} + \vec{q}\_{\text{min}}t, \,\vec{q}\_{\text{min}}\right). \tag{18}$$

The vector*t* at *t* = 0 is therefore the tangent vector in the point *P<sup>ζ</sup>* and results to be:

$$
\vec{t}(p\_{x,\mathbb{Z}\_{\mathcal{I}}}, p\_{y,\mathbb{Z}\_{\mathcal{I}}}) = (p\_{y,\mathbb{Z}\_{\mathcal{I}}}, \vec{q}\_{\min}).\tag{19}
$$

Note that*t*(*px*,*<sup>ζ</sup>* , *py*,*<sup>ζ</sup>* ) represents the direction of the state movement when the maximum realizable deceleration is applied. The state will therefore be able to remain below the considered segment if the following condition holds:

$$
\vec{n}\_{\rangle} \cdot \vec{t}(p\_{x,\zeta}, p\_{y,\zeta}) \ge 0 \qquad \forall \, (p\_{x,\zeta}, p\_{y,\zeta}) \in \overline{P\_{\rangle} \overline{P\_{\rangle+1}}} \tag{20}
$$

where (·) denotes the scalar product between two vectors. As

$$\min\_{p\_{x,\zeta}, p\_{y,\zeta}} \left( \vec{n}\_{\rangle} \cdot \vec{t}(p\_{x,\zeta}, p\_{y,\zeta}) \right) = \vec{n}\_{\rangle} \cdot \vec{t}(p\_{x,\zeta}, p\_{y,\zeta}),\tag{21}$$

condition in Equation (20) can be imposed on the sole extreme point *Pj* of each segment and becomes:

$$p\_{y,j}(p\_{y,j+1} - p\_{y,j}) + \ddot{q}\_{\text{min}}(p\_{x,j} - p\_{x,j+1}) \ge 0. \tag{22}$$

Finally, the resulting optimization problem can be written as:

$$\begin{aligned} \underset{p\_x, p\_y}{\text{minimize}} \quad & \forall \\ \text{subject to} \quad & q\_{\text{mean}} \le p\_x \le q\_{\text{max}} \\ & 0 \le p\_y \le q\_{\text{max}} \\ & p\_{x,j} - p\_{x,j-1} \ge 0 \quad \forall j = 1, \dots, h \\ & p\_{y,j-1} - p\_{y,j} \ge 0 \quad \forall j = 1, \dots, h \\ & p\_{y,j}(p\_{y,j+1} - p\_{y,j}) + \bar{q}\_{\text{min}}(p\_{x,j} - p\_{x,j+1}) \ge 0 \quad \forall j = 1, \dots, h - 1 \\ & p\_{x,0} = q\_{\text{mean}} \\ & p\_{y,0} = q\_{\text{max}} \\ & p\_{x,h} = q\_{\text{max}} \\ & p\_{y,h} = 0 \end{aligned} \tag{23}$$

*Robotics* **2018**, *7*, 41

Following the same reasoning, an analogous optimization problem can be set up for the lower position bound. Note that, if the joint limits are symmetric, the solution for the lower bounds can be obtained by "mirroring" the solution of Equation (23) into the third quarter of the (*q*, *q*˙)-plane. Notice that, as Equation (23) is non-convex, global optimization such as genetic or multi-start algorithms should be adopted to solve the optimization problem (see Section 4).

Denoting with P<sup>1</sup> the polyhedron determined by the segments obtained as solution of Equation (23), and with P<sup>2</sup> the analogous polyhedron obtained for the lower bounds, the overall polyhedron for the single joint is given by:

$$\mathcal{P} = \mathcal{P}\_1 \cup \mathcal{P}\_2 \cup \ [q\_{\text{min}}, q\_{\text{mean}}] \times [0, \dot{q}\_{\text{max}}] \cup \ [q\_{\text{mean}}, q\_{\text{max}}] \times [\dot{q}\_{\text{min}}, 0]. \tag{24}$$

**Proposition 1.** *Polyhedron* P *is a viable set with respect to the given joint position, velocity and acceleration limits. Moreover, such polyhedron is convex.*

**Proof (Viability).** Viability of the set is implicitly ensured by the imposition of Equation (22).

**Proof (Convexity).** To prove it by contradiction, denote the solution of Equation (23) with *p*∗ *<sup>x</sup>*, *p*<sup>∗</sup> *y* and assume that the corresponding polyhedron P<sup>∗</sup> <sup>1</sup> (i.e., the part of the polyhedron in the first quarter) is non-convex. Consider then a triple of consequent extremes {*Pj*−1, *Pj*, *Pj*+1}, which causes a non-convexity. Equations (20) and (21) imply:

$$\left(\vec{n}\_{j-1} \cdot \vec{t}(p\_{x,j-1}^\*, p\_{y,j-1}^\*) \ge 0,\tag{25}$$

$$\left(\vec{x}\_{j} \cdot \vec{t}(p\_{x,j}^{\*}, p\_{y,j}^{\*})\right) \geq 0. \tag{26}$$

Consider now the point *Pc* given by the projection of *Pj* onto *Pj*−<sup>1</sup> *Pj*+<sup>1</sup> and denote with *nc* the vector normal to *Pj*−<sup>1</sup> *Pj*+1. We want to prove that the polyhedron obtained by substituting *Pc* to *Pj* in P∗ <sup>1</sup> is a feasible and more efficient solution of Equation (23). First, constraints in Equations (12)–(15) are straightforwardly satisfied. Moreover,

$$\vec{n}\_{\varepsilon} \cdot \vec{t}(p\_{x,j-1}^\*, p\_{y,j-1}^\*) \ge \vec{n}\_{j-1} \cdot \vec{t}(p\_{x,j-1}^\*, p\_{y,j-1}^\*) \ge 0 \tag{27}$$

as *nj*−<sup>1</sup> ·*<sup>i</sup>* <sup>≤</sup> *nc* ·*<sup>i</sup>* <sup>≤</sup> 0 and*nc* ·*<sup>j</sup>* <sup>≤</sup> *nj*−<sup>1</sup> ·*<sup>j</sup>* <sup>≤</sup> 0 by construction (where*<sup>i</sup>* and*<sup>j</sup>* denote the unitary vectors directed as the horizontal and the vertical axis, respectively).

Moreover, as *q*¨min in Equation (19) is assumed to be negative, the following inequality holds:

$$\|\vec{m}\_{\varepsilon} \cdot \vec{\mathbf{f}}(p\_{x,\varepsilon}, p\_{y,\varepsilon})\| \ge \vec{m}\_{\varepsilon} \cdot \vec{\mathbf{f}}(p\_{x,j-1}^\*, p\_{y,j-1}^\*) \ge 0. \tag{28}$$

Note that Equations (27) and (28) implies that the new candidate solution satisfies Equation (22) and is therefore a feasible solution to Equation (23). Moreover, the candidate solution is more efficient than the assumed one, as

$$\Psi(P\_{0\prime},\ldots,P\_{j-1},P\_{\mathbf{c}\prime},P\_{j+1},\ldots,P\_{\mathbf{h}}) \le \Psi(P\_{0\prime},\ldots,P\_{j-1},P\_{j\prime},P\_{j+1},\ldots,P\_{\mathbf{h}}),\tag{29}$$

which means that *p*∗ *<sup>x</sup>*, *p*<sup>∗</sup> *<sup>y</sup>* are not the optimal solution of Equation (23), as a feasible and more efficient solution that eliminates such non-convexity exists. Applying this reasoning to any triples of extremes that cause a non-convexity implies that the optimal polyhedron P<sup>1</sup> must be convex. The same demonstration can be applied to P<sup>2</sup> leading to the same conclusion.

#### **4. Numerical Results**

Consider the first joint of the robot manipulator Universal Robot UR10. The joint configuration and velocity limits from the datasheet are given by:

$$q\_{\text{max}} = -q\_{\text{min}} = 3.14 \text{ rad}, \qquad \dot{q}\_{\text{max}} = -\dot{q}\_{\text{min}} = 2.16 \text{ rad/s}. \tag{30}$$

Typically, acceleration limits are not explicitly given in the datasheet. Indeed, the actual dynamic limit of the joint is usually determined by the available joint torque. However, handling viability directly in terms of torque limits is typically avoided due to the complexity of the problem. The common approach consists in estimating a (usually conservative) corresponding acceleration limit for each joint separately. A method for the estimation of such acceleration limit is given, for instance, in [28]. As a first example, assume that the acceleration limits are given by *<sup>q</sup>*¨max = −*q*¨min = 6 rad/s2.

We solve the optimization problem (Equation (23)) for different values of *h* to evaluate the resulting polyhedrons as the number of edges grows and to compare the results to the quadratic and the linear viability constraints (Equations (7) and (8), respectively). Table 1 shows the values of the inner area of polyhedron P1. The values are normalized with respect to the maximal viable set obtained by means of Equation (7), whose area is therefore equal to one (last column of Table 1). As expected, the smaller area is given by Equation (8) (first column of Table 1), while the extension of the polyhedron obtained by solving Equation (23) grows with the number of edges. In other words, the larger the number of edges, the closer the optimal polyhedron is to the maximal extension (given by Equation (7)). This is clearly shown in Figure 3, which depicts the different viable sets.

An analogous example is performed by using *<sup>q</sup>*¨max = −*q*¨min = <sup>3</sup> rad/s2. The values of the normalized area of P<sup>1</sup> are shown in Table 2 and the resulting viable sets are depicted in Figure 4. The results lead to conclusions similar to the ones given by the previous example. However, it is clear that the magnitude of the phenomenon grows as the acceleration limits get smaller.

Of course the use of a larger value of *h* also gives some drawbacks. First, the computational complexity of Equation (23) rapidly grows with *h* as the number of variables and constraints is linear in *h*. As an example, the time needed to solve Equation (23) for *h* = 1 and *h* = 11 was in the order of 1 second and 15 s, respectively (the computation was performed in Matlab using a multi-start gradient-descent method on a standard laptop mounting a 2.5 GHz Intel Core i5-2520M processor).

Furthermore, the value of *h* determines the number of linear inequalities describing the polyhedron. In optimization-based control algorithms (such as linear MPC), this affects the computational complexity of the online optimal control problem, which is typically a critical issue in online methods, as mentioned in Section 1.


**Table 1.** Inner area of <sup>P</sup><sup>1</sup> for different values of *<sup>h</sup>* in case *<sup>q</sup>*¨max <sup>=</sup> <sup>−</sup>*q*¨min <sup>=</sup> 6 rad/s2.

0.9139 0.9636 0.9773 0.9836 0.9871 0.9895 0.9911 0.9920 0.9923 0.9925 1


**Figure 3.** Comparison of the viable polyhedrons for different values of *h* (portion of interest of the first quarter) in the case *<sup>q</sup>*¨max <sup>=</sup> <sup>−</sup>*q*¨min <sup>=</sup> 6 rad/s2.

**Figure 4.** Comparison of the viable polyhedrons for different values of *h* (portion of interest of the first quarter) in the case *<sup>q</sup>*¨max <sup>=</sup> <sup>−</sup>*q*¨min <sup>=</sup> 3 rad/s2.

#### **5. Experimental Results**

Experimental were also performed on a six-degrees-of-freedom Universal Robot UR10 manipulator to prove the validity of the proposed approach. For the purposes of the paper, the joint position and velocity limits have been set to slightly conservative values with respect to the ones given in the datasheet. In particular, they are set as:

$$Q\_{\text{max}} = -Q\_{\text{min}} = \begin{pmatrix} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \end{pmatrix} \text{ rad},\tag{31}$$

$$
\hat{Q}\_{\text{max}} = -\hat{Q}\_{\text{min}} = \begin{pmatrix} \text{2, 2, 3, 3, 3, 3} \end{pmatrix} \text{rad/s.} \tag{32}
$$

The acceleration limits have been set as *<sup>Q</sup>*¨ max <sup>=</sup> <sup>−</sup>*Q*¨ min = ( 3, 3, 3, 3, 3, 3 ) rad/s2. The experimental platform is shown in Figure 5. The objective of these experiments was the evaluation of the performance of an optimization-based control algorithm when different viability constraints are implemented. To this purpose, a simple MPC scheme was applied to a trajectory following problem. The MPC control scheme is in charge of following a position reference signal in the joint space. The model implemented in the MPC consists of a double integrator for each joint, as typical of robot kinematic control [15,30]. The input action is therefore represented by the joint accelerations, which then feed the low-level controller of the robot. Joint position, velocity, and acceleration limits can be implemented as linear constraints in the MPC (see [15] for details) and the online optimal control problem results to be a QP which minimizes the weighted sum of the tracking error and the control effort, as typical of linear MPC [31]. Notice that the choice of such a simple control scheme is due to the will of highlighting the behavior of a linear MPC controller in the case of different viability conditions. However, the proposed method could be straightforwardly applied to more complex MPC techniques such as [15,16,29].

**Figure 5.** Universal Robot UR10 used as experimental platform.

The MPC algorithm was implemented using a sampling period *T* = 8 ms and by setting a predictive and a control horizon *N* = 20 sampling periods. The robot trajectory is controlled by means of a ROS-based control architecture. Namely, a position controller runs in a ROS Kinetic Ubuntu 16.04. The controller communicates with the robot by means of a TCP connection. The controller takes the MPC position output as reference and receives the actual joint position. The controller output is the sum of a proportional action, with gain equal to seven, and a feedforward term equal to the MPC velocity output.

*Robotics* **2018**, *7*, 41

We considered a simple trajectory given by a straight line in the joint space, parameterized with respect to the normalized longitudinal length along the path, denoted with *r* ∈ [0, 1]. The trajectory *Q*des(*t*) is therefore defined as:

$$Q\_{\rm des}(t) = Q\_{\rm start} + \left(Q\_{\rm end} - Q\_{\rm start}\right)r(t),\tag{33}$$

where *Q*start = ( 0, −1, 0.5, 0, 0, 0.5 ) rad and *Q*end = ( 2.9, −0.5, −1.5, 1, −0.5, 2.9 ) rad are the initial and the final points of the trajectory, respectively, and *r* : [0, *t*end] → [0, 1], *t* → *r*(*t*) is defined as a timing law with trapezoidal velocity profile, where *t*end represents the total time of the trajectory, as depicted in Figure 6.

**Figure 6.** Timing law with trapezoidal velocity profile.

The control problem the MPC controller has to solve at each cycle *k* therefore results:

$$\begin{aligned} \underset{Q}{\text{minimize}} & \quad \sum\_{i=1}^{N} \left\| Q\_{\text{des}}(k+j) - Q(k+j) \right\|^2 + \lambda \sum\_{i=0}^{N-1} \left\| \vec{Q}(k+j) \right\|^2\\ \text{subject to} & \quad Q\_{\text{min}} \le Q(k+j) \le Q\_{\text{max}} \qquad \forall j = 1, \ldots, N\\ & \quad Q\_{\text{min}} \le Q(k+j) \le Q\_{\text{max}} \qquad \forall j = 0, \ldots, N-1\\ & \quad Q(k+1) = Q(k) + T\dot{Q}(k) + 0.5T^2 \dot{Q}(k)\\ & \quad \dot{Q}(k+1) = \dot{Q}(k) + T\ddot{Q}(k) \end{aligned} \tag{34}$$

where *<sup>Q</sup>*, *<sup>Q</sup>*˙ , and *<sup>Q</sup>*¨ <sup>∈</sup> <sup>R</sup><sup>6</sup> are the joint position, velocity, and acceleration vectors, respectively, and the controller effort weighting factor *<sup>λ</sup>* = <sup>1</sup> × <sup>10</sup>−<sup>6</sup> was tuned empirically. Different implementations of the position limits will then be added to the problem in order to evaluate the different behaviors of the system.

As a first example, the total time of the trajectory was chosen as *t*end = 2.07 s and the behavior of the MPC controller was evaluated in three different scenarios:


$$Q\_{\min} \le Q(k+j) \le Q\_{\max} \qquad \forall j = 1, \dots, N \tag{35}$$

• The linear viability condition in Equation (8) is applied, that is, Equation (35), and the following constraint are added to Equation (34):

$$-\frac{\dot{Q}\_{i,\text{min}}}{\dot{Q}\_{i,\text{max}}}Q\_{i}(k+j) + \dot{Q}\_{i}(k+j) + \frac{\dot{Q}\_{i,\text{min}}}{\dot{Q}\_{i,\text{max}}}Q\_{i,\text{max}} \le 0 \qquad \forall j = 1,\dots,N, \quad \forall i = 1,\dots,6; \tag{36}$$

where the subscript *i* denotes the *i*th element of the vector.

The viability constraints are imposed throughout the whole control horizon for the sake of clarity and because the small increment in the computational time (due to the larger number of linear constraints) does not represent a significant issue in the presented experimental tests. However, in the case of linear MPC, imposing such constraints only on the last time instant of the horizon would be enough to ensure feasibility of the control problem and would not give significant differences in terms of control performance. The imposition of the constraint throughout the whole horizon permits to obtain a more reliable prediction of the future trajectory. This can be helpful especially in the case the prediction is utilized in linearized methods such as [15], as a non-reliable prediction might worsen the performance of the method.

Notice that the trajectory is devised in such a way that the desired motions of the first and the sixth joints exceed the maximal viable set, as shown in Figure 7a,b. The figures also show the phase plot of the position/velocity variables computed by the MPC in the three above-mentioned cases. In the case no position bounds are implemented (dashed green line), the joint position obviously does not satisfy the position limit. However, when box position constraints are implemented in the MPC (dash-dotted purple line), infeasibility of the control problem occurs and, since that time, the joint is forced to decelerate with the maximum admissible deceleration, but the position limit cannot be satisfied anyway. This highlights the importance of the viability property. In fact, the implementation of the linear constraints in Equation (8) does ensure the feasibility of the control problem and permits to satisfy the position bound (with a deformation of the original trajectory) (dashed red line). These behaviors are clarified also in Figure 8a,b, where the ideal and the measured joint positions for Joint 1 and Joint 6 are shown.

A second experiment is performed by choosing a total trajectory time *t*end = 2.65 s. In this case, the trajectory drives the first and the third joints in the region between Equations (7) and (8). The behavior of the MPC controller is evaluated in cases where three different viability constraints are implemented:


$$\left(Q\_i(k+j), Q\_i(k+j)\right) \in \mathcal{P}\_{h=3}^i \qquad \forall j = 1, \dots, N, \quad \forall i = 1, \dots, 6; \tag{37}$$

where the superscript *i* denotes the viable polyhedral of the *i*th joint.

• The viable polyhedron obtained by solving Equation (23) with *h* = 4, that is, the following constraints are added to Equation (34):

$$\left(Q\_i(k+j), \dot{Q}\_i(k+j)\right) \in \mathcal{P}\_{h=4}^j \qquad \forall j = 1, \dots, N, \quad \forall i = 1, \dots, 6. \tag{38}$$

Figure 9a,b shows the state trajectory for the first joint in the three different cases. Notice that the position limit is respected and the control problem remains feasible for all cases. However, the reduction of the admissible region determined by Equation (8) gives rise to a significant modification of the original trajectory, although the desired states are always potentially realizable by the robot (as the trajectory does not exceed Equation (7)). An improvement is obtained when the polyhedron with *h* = 3 is used.

Notice that the small velocity bumps visible in the figures are due to predictive nature of the controller. In fact, as the control scheme is based on the tracking of a position reference along the predictive horizon, the controller slightly increases the velocity when it realizes the viability constraint will be activated and a deformation of the task will arise (as the state will be forced to follow the constraint). By giving a small acceleration before the activation of the constraint, the controller minimizes the future deviation with respect to the given position reference.

Finally, the use of *h* = 4 permits to obtain a viable polyhedron that is large enough to enclose the whole desired trajectory. These behaviors are clarified also in Figure 10a,b, where the ideal and the measured joint positions for Joint 1 and Joint 6 are shown.

**Figure 7.** State trajectory in the (*q*, *q*˙)-plane for (**a**) Joint 1 and (**b**) Joint 3 for *Ttot* = 2.07 s: Reference trajectory (gray solid line); MPC without position bounds (green dashed line); MPC with box position bounds (purple dash-dot line); MPC with linear viability inequality (Equation (8)) (red dashed line); maximal viable set (black dotted line); and linear viability inequality ((Equation (8)) (blue dotted line).

**Figure 8.** Position of (**a**) Joint 1; and (**b**) Joint 3 for *T*tot = 2.07 s: Reference trajectory (gray solid line). Output of MPC given as reference signal to the low-level controller: MPC without position bounds (green dotted line); MPC with box position bounds (purple dotted line); and MPC with linear viability inequality (Equation (8)) (red dotted line). Measured position: MPC without position bounds (green dashed line); MPC with box position bounds (purple dash-dot line); and MPC with linear viability inequality (Equation (8)) (red dashed line).

**Figure 9.** State trajectory in the (*q*, *q*˙)-plane for (**a**) Joint 1 and (**b**) Joint 3 for *Ttot* = 2.65 s: Reference trajectory (gray solid line); MPC with linear viability inequality (Equation (8)) (red dashed line); MPC implementing the viable polyhedron with *h* = 3 (purple dash-dot line); and MPC implementing the viable polyhedron with *h* = 4 (dashed green). Viable sets: Maximal (black dotted line); Linear viability inequality (Equation (8)) (blue dotted line); Polyhedron with *h* = 3 (light blue dotted line); and Polyhedron with *h* = 4 (gray dotted line).

**Figure 10.** Position of (**a**) Joint 1 and (**b**) Joint 3 for *T*tot = 2.65 s. Reference trajectory (gray solid line). Output of MPC given as reference signal to the low-level controller: MPC with linear viability inequality (Equation (8)) (red dotted line); MPC implementing the viable polyhedron with *h* = 3 (purple dotted line); and MPC implementing the viable polyhedron with *h* = 4 (green dotted line). Measured position: MPC with linear viability inequality (Equation (8)) (red dashed line); MPC implementing the viable polyhedron with *h* = 3 (purple dash-dot line); and MPC implementing the viable polyhedron with *h* = 4 (green dashed line).

#### **6. Conclusions**

In this paper, we have proposed a method to compute the maximal viable polyhedron for a robot manipulator with bounded joint positions, velocities, and accelerations. In the proposed approach, each joint is considered separately and two optimization problems are devised: one for the upper bounds and one for the lower ones. Given its number of sides, the resulting polyhedron maximizes the area of the admissible position/velocity region. Moreover, the set is proven to be viable and convex. In this way, it can be easily implemented as linear constraints in optimization-based control methods, such as linear MPC. Numerical results demonstrate that the percentage of area covered by the polyhedrons increases as the number of sides grows. This allows the controller to exploit a larger admissible state region and, thus, gives it a broader margin of maneuver in the case the desired motion drives the robot in proximity of the viability boundary. In this case, a better task following can be achieved, as demonstrated by means of experimental results on a six-degrees-of-freedom manipulator.

**Author Contributions:** M.F. devised the method and wrote the paper; M.B. and N.P. conceived and performed the experiments; and A.V. supervised the whole research work.

**Funding:** The research leading to these results was partially funded by the European Union H2020-CS2-738039-Eureca: Enhanced Human Robot cooperation in Cabin Assembly tasks.

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

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Motion Investigation of a Snake Robot with Different Scale Geometry and Coefficient of Friction**

#### **Naim Md Lutful Huq, Md Raisuddin Khan \*, Amir Akramin Shafie, Md Masum Billah and Syed Masrur Ahmmad**

Department of Mechatronics Engineering, International Islamic University Malaysia, Selangor 53100, Malaysia; lutful@gmail.com (N.M.L.H.); aashafie@iium.edu.my (A.A.S.); masum.uia@gmail.com (M.M.B.); bdmasrur91@gmail.com (S.M.A.)

**\*** Correspondence: raisuddin@iium.edu.my; Tel.: +6-03-6196-4575

Received: 1 March 2018; Accepted: 19 April 2018; Published: 28 April 2018

**Abstract:** Most snakes in nature have scales at their ventral sides. The anisotropic frictional coefficient of the ventral side of the snakes, as well as snake robots, is considered to be responsible for their serpentine kind of locomotion. However, little work has been done on snake scales so far to make any guidelines for designing snake robots. This paper presents an experimental investigation on the effects of artificial scale geometry on the motion of snake robots that move in a serpentine manner. The motion of a snake robot equipped with artificial scales with different geometries was recorded using a Kinect camera under different speeds of the actuating motors attached to the links of the robot. The results of the investigation showed that the portion of the scales along the central line of the robot did not contributed to the locomotion of the robot, rather, it is the parts of the scales along the lateral edges of the robot that contributed to the motion. It was also found that the lower frictional ratio at low slithering speeds made the snake robot motion unpredictable. The scales with ridges along the direction of the snake body gave better and more stable motion. However, to get the peg effect, the scales needed to have a very high lateral to forward friction ratio, otherwise, significant side slipping occurred, resulting in unpredictable motion.

**Keywords:** snake robot; snake scale; scale geometry; friction ratio; serpentine motion

#### **1. Introduction**

Snakes possess a unique feature of locomotion that no other creature has. Although legs and wheels give very effective and efficient motion, this creature has the unique ability to move through terrains that are almost impossible to travel through by limbs or wheels. Thus, the ability to move through almost all kinds of surfaces puts snakes in a superior position in terms of locomotion. Snakes have four basic types of locomotion: concertina, serpentine, sidewinding, and rectilinear. Among these, the serpentine locomotion is a faster and a very efficient one for normal conditions. Thus, this motion can be proven exceptionally beneficial in snake robot applications such as search and rescue [1,2], firefighting [3,4], assisting in surgery [5,6], surveillance [7,8] exploring unknown territory, and so forth.

The mechanics of serpentine locomotion were first discovered and explained by J. Gray [9] in 1946. According to Gray, the serpentine locomotion of snakes is due to the lateral friction of the scales of a snake that work as supporting pegs. After the ground breaking discovery of J. Gray, Hu et al. [10] carried out several investigations on real snakes and established the theory experimentally. Some more works on biological snakes that were not focused on the analysis or investigation of the forces applied by the snakes took place. Jayne [11,12] was more focused on the muscular activities during the different types of locomotion with extensive work on serpentine and sidewinding locomotion. Jayne provided extraordinary information regarding the optimization of the actuation method and the energy for the future developments of robots. Meanwhile Miller [13] simulated the motion dynamics

of snake locomotion. Later on, Jayne and Davis [14] developed a relationship between the tunnel width and the speed, or, in other words, the movable space available and the speed of the snake using the kinematics of the concertina locomotion of snake. Marvi and his group studied the friction augmentation by the snakes in concertina locomotion [15].

The archive of information on snake robots dates back to the year 1993 when S. Hirose developed the idea of the locomotion of a snake robot [16], encouraging researchers in working consistently to improve and optimize their artificial snakes. For instance, Wang, Osborne, and Alben [17] and Jing and Alben [18] optimized locomotion on an inclined surface. Instead of real snakes, Kyriakopoulos, Migadis, and Sarrigeorgidis [19] worked on the kinematics of snake robots and provided a design and motion planning in 1999. Prautsch and Mita developed a theory for the dynamic position control [20] for snake robots. Khan et al. [21] first developed a scale based snake trying to mimic the serpentine motion. Later on, they put forward their previous work by investigating the snake robot moving with the serpentine method of locomotion [22]. Apart from that, Marvi et al. [23] presented a snake inspired robot segment based on concertina locomotion in 2011. It was capable of changing the angle of attack of its scales with the change in the slope angle while climbing uphill. They also worked on sidewinding with minimal slips for both the snake and the snake robot on sandy slopes [24]. Varesis, Diamantopoulos, and Tzes [25] conducted an experiment on robots with serpentine locomotion moving through an inclined surface [23]. However, none of the works on artificial snake scales considered the geometry of the scales to investigate the motion of the snake robots. As a continuation of the above efforts, this paper presents the effects of the scale geometry and the friction factor on the locomotion of a snake robot.

This paper is organized as follows. The experimental setup and data acquisition system are described in Section 2, while the effect of the surface properties on motion and the effect of the surface on the directional stability are presented in Sections 3 and 4, respectively. Section 5 draws the conclusions of the paper.

#### **2. The Experimental SETUP and Data Acquisition**

A snake robot made of nine links, eight servo-motors, and a microcontroller, as shown in Figure 1, was used in this research. The microcontroller was programmed for controlling the motion of the servo-motors and propelling the snake in a serpentine motion. The snake's scales were attached at the ventral side of the snake robot, while markers were attached on the dorsal side to keep track of the motion of the robot.

**Figure 1.** The snake robot with markers on the dorsal side.

Four different types of scales were used to investigate the effect of scale geometry and the coefficient of friction on the motion of the snake robot. Photographs and the geometry of the scales are shown in Figure 2a–d. On an average, the span of the scales was 20 mm, except for the scale in Figure 2d. The scales shown in Figure 2a were fabricated from Acrylonitrile Butadiene Styrene (ABS) using a 3D printer while the scales shown in Figure 2b,c were made of ordinary plastic shells and externally threaded cylinder (Cylinder\_1), splitting the cylinders into two halves. In Figure 2d, a scale

made from an externally threaded cylinder with a lower friction factor than Cylinder\_1 (we call it Cylinder\_2) extending between the left and right edge of a link is shown.

**Figure 2.** The photographs of the snake scales attached to the links of the snake robot and orthographic views of the scales (**a**) Designed scale; (**b**) Unthreaded scale (half-shell); (**c**) Threaded scale (Cylinder\_1); (**d**) Threaded scale (Cylinder\_2).

As the goal of this research is to investigate the effect of scale geometry on the motion of snake robots, the robot was equipped with one type of scale at a time. One pair of scales were attached at the lateral edges of each link of the robot. The snake robot was run on three different floor surfaces, namely, Surface 1 (Cloth), Surface 2 (artificial lather 1), and Surface 3 (artificial leather 2). The static friction coefficients between the snake scales and the surfaces are presented in Table 1. One of the main features of the snake scales was the anisotropic friction coefficients along the tangential and normal directions. Frictional anisotropy were achieved through the design of the snake scales of the snake robot.


**Table 1.** The static friction coefficients between the scales and different surfaces.

Figure 3 illustrates the robot orientation and the positions of the scales L1 through R4. Where 'L' denotes the left side and 'R' denotes the right side looking from the top of the robot. A Microsoft Kinect XBOX was attached on a frame above the plane of the motion to capture the motion and the shape of the robot during its motion. A photograph of the experimental setup is shown in Figure 4.

**Figure 3.** The snake's shape and scale placement (L and R stands for left and Right respectively).

**Figure 4.** The experimental setup for the snake's motion capture.

#### **3. The Effect of the Surface Properties on Motion**

The otion data of the snake robot are presented in Table 2.



where, Cycle/s = the fraction of a complete cycle completed by the robot; Dis/Cy = the distance traveled by the robot in one cycle; *V* = the average velocity of the robot;between the initial and final orientations of the robot; High, medium, slow = the cycle speed of the robot.

*Robotics* **2018**, *7*, 18

Table 2 compares four motion elements like the number of cycles per second (seven cycles were taken for each observation), the distance traveled by the robot per cycle, the average velocity of the robot, and the deviation from the initial axis or orientation of the robot after each cycle corresponding to three different motor speeds, namely, high speed, medium speed, and low speed. The three types of motions (high, medium, and low) of the robot were the cycle speed of the sine wave those were created by controlling the speed of the 8 actuating motors. The symbol 'X' in the first row of this table means no data, that is, the robot was unable to move without damaging itself on surface 1 with the designed scale as the scale got stuck in the surface. The velocity of the robot should depend on the frequency of the sine wave of the snake robot. This is evident when the velocities of the robot under three types of motion are compared under the three types of motion. The highest velocity (2.918 cm/s) was achieved in the case of the cylinder\_1 on surface 1 corresponding to the high speed of the motors. This surface combination also produces the highest velocity corresponding to the medium and low speed of the motors. The angular deviation of the robot *θ* from its initial orientation, in the case of the high and medium speeds, are 5.638◦ and 8.607◦, respectively, which are quite high compared to the 0.533◦ that happened in the case of low speed. The friction ratio for this surface combination is lower than that of the cylinder\_1 on surface 2, however, the coefficient of friction along the normal direction for cylinder\_1 on surface 1 is the highest (*μ* = 0.399). Thus, it may be concluded that the higher value of the coefficient of friction along the normal direction plays a significant role in increasing the speed of the robot.

Among the four types of scales and the three types of surfaces, the friction coefficient of surface 2 gives the maximum possible friction ratios between the tangential and normal friction coefficient (Table 1), while the threaded cylinder\_1 on surface 2 gives the highest friction ratio among them all. The comparison of the robot velocities of the designed scale on surface 2 and that of cylinder\_1 on surface 2 showed very similar results. The robot velocities achieved in these cases are almost half that of cylinder\_1 on surface 1 for all types of motor speed. However, the angular deviations are significantly low except for the low speed of the motors. The half shell on surface 3 has the highest movement with better stability (lowest angular deviation) than others, while the smooth half shell gives the minimum distance per cycle. It is noticed that the half shell had the highest friction ratio on surface 3. The last piece of data is a very important one, this data is for the threaded cylinder\_2 on surface 2 (the one with the highest friction ratio) where the scales are placed at the mid surface (centerline) of the links instead of at the edges of the links. It shows that it does not move even a centimeter, yet, the same scale on the same surface gave the best output among all other combinations. Thus, it can be concluded that snake scales need to be placed at the edges of the links for the better motion of the robot, and it is unnecessary to place the snake scales along the centerline of the links.

#### **4. The Effect of the Surface on Directional Stability**

The poses of the robot after each cycle of motion are presented in Figure 5. Each line in these figures is the connecting line between the head and tail of the robot after each cycle of actuation. Thus, these lines are presenting the change in position as well as change in the orientation with respect to the *x*-*y* axis. The initial orientation of the robot was parallel to the *x* axis.

It is observed in Figure 5a–l that the surfaces and the scales have profound effects on the directional stability and motion for the movement of the robot.

Due to practical reason it was not possible to run the robot on surface 1 using the designed scale, thus, the data is absent. However, some important phenomena can be observed from the rest of the figures. All the scales that have threads on it (other than Figure 5c–e,l) are superior in terms of stability in the motion direction, as well as the distance covered. On top of that, when they move on the surface 1 (cloth) (Figure 5f,i) which has an anisotropic friction property within itself, cover higher distance. On the other hand, the half shell (Figure 5c–e) did not have much of a promising outcome in terms of the directional stability and velocity. On surface 2, the motion direction is better maintained than that on surface 3.

**Figure 5.** *Cont*.

**Figure 5.** *Cont*.

**Figure 5.** The poses of the snake robot on the different surfaces at the end of each cycle of actuation.

All the orientations of the snake robot after the last cycle of actuation found in Figure 5a–l are presented in Figure 6. A very important finding that is observed in the last set of data in Figure 5l is shown circled in red in Figure 6. This is the situation when the scales were placed in the middle of the snake body leaving the edges of the link free and floating. There is no significant movement as well as no control of direction in this case. In fact, the robot moved in the backward direction instead of moving forward, however, the same threaded cylinder 2 with the scale at the outer edges of the links gave better robot motion.

**Figure 6.** The comparison of the motion paths of the snake head on different surfaces.

#### **5. Conclusions**

This work makes an effort to discover the relationship between the different variables of the snake scales, like friction ratio, scale geometry, and the span of the scales beneath a snake robot that undergoes serpentine motion. The comparison of the motion shows that scales with a higher friction ratio set at the outer edge of the snake robot helps to generate better and more stable motion. On the other hand, scales only at the center of the belly, irrespective of the friction ratio, does not help the robot to generate any good motion or any forward motion at all. Scales have a ridge like texture on it along the direction of the snake body, which, when placed at the outer edge of the belly, helps generate stable and faster motion. It is predictable from the above experiments that the higher friction ratio will help achieve higher and better motion. Motions with the actuating motors at lower cycle speeds with a scale-surface pair having a lower friction ratio are very unpredictable in nature.

**Author Contributions:** Writing –Original Draft Preparation, Naim Md. Lutful Huq; Supervision, Funding Acquisition & Project administration, Md. Raisuddin Khan and Amir Akramin Shafie; Software, Md. Masum Billah; Methodology, Syed Masrur Ahmmad.

**Funding:** This research was funded by Ministry of Higher Education (MOHE) grant number FRGS13-072-0313.

**Acknowledgments:** The authors profoundly acknowledge the Ministry of Higher Education (MOE), Malaysia for funding this research through the Fundamental Research Grant Scheme (FRGS).

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

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Article* **Fully Mechatronical Design of an HIL System for Floating Devices**

#### **Hermes Giberti 1,\*, Francesco La Mura 2,\*, Gabriele Resmini <sup>2</sup> and Marco Parmeggiani <sup>2</sup>**


Received: 22 May 2018; Accepted: 11 July 2018; Published: 20 July 2018

**Abstract:** Recent simulation developments in Computational Fluid Dynamics (CFD) have widely increased the knowledge of fluid–structure interaction. This has been particularly effective in the research field of floating bodies such as offshore wind turbines and sailboats, where air and sea are involved. Nevertheless, the models used in the CFD analysis require several experimental parameters in order to be completely calibrated and capable of accurately predicting the physical behaviour of the simulated system. To make up for the lack of experimental data, usually wind tunnel and ocean basin tests are carried out. This paper presents a fully mechatronical design of an Hardware In the Loop (HIL) system capable of simulating the effects of the sea on a physical scaled model positioned in a wind tunnel. This system allows one to obtain all the required information to characterize a model subject, and at the same time to assess the effects of the interaction between wind and sea waves. The focus of this work is on a complete overview of the procedural steps to be followed in order to reach a predefined performance.

**Keywords:** parallel kinematic machine; kinematic optimisation; hardware in the loop; mechatronic design

#### **1. Introduction**

Recent simulation developments in Computational Fluid Dynamics (CFD) have widely increased the knowledge of fluid–structure interaction. This has been particularly effective in the research field of floating bodies such as offshore wind turbines and sailboats, where air and sea are involved. Scale model testing of floating structures is a common practice in this research field and help in the development of new concepts and technological solutions, driving the design choices and rapidly answering the scientific questions. Moreover, this study approach allows one to evaluate related problems such as the definition of the control algorithm structures and quantification of costs and benefits.

Nevertheless, when the effects of wind and wave loads become comparable, the validation of the test models is affected by a scaling issue called Froude–Reynolds conflict, related to the ability to reproduce the effects of wind and wave at the same time in a correct manner. For this reason, hybrid tests both in ocean basins [1] and wind tunnels [2] are the most effective approach used to overcome scaling constraints and exploit separately wind and wave generators.

In this paper, the hardware/software setup developed for hybrid tests in a wind tunnel is presented and fully described. The aim of this work is to provide a complete overview of the design procedures and methodologies required to develop a hardware in the loop device capable of simulating the effects of the sea on a physical scaled model positioned in a wind tunnel. In order to achieve the required performance and in compliance with the dimensional constraints, a fully mechatronical design approach has been used. Moreover, this system is particularly challenging in terms of dynamic response. For these reasons, it can be taken as an example of integrated design not only for this specific application, but also for a generic simulator. In fact, the design scheme followed and the numeric tools to develop the system sizing and select the commercially available components are of general interest.

Figure 1 summarises the design procedure of the HIL device presented in this paper and called Hexafloat. The latter consists of a six-degree-of-freedom (DOF) parallel manipulator custom designed to move a scaled wind turbine (e.g., 1/75 of the 10 MW DTU reference wind turbine [3]) in a wind tunnel. The manipulator end effector is equipped with a six-degrees of freedom weight scale used to measure the constraint reactions between the robot and the scaled wind turbine (i.e., aerodynamic load effects). A real-time mathematical model generates the reference commands to be followed by the robot according to the dynamic of the floating substructure simulated by the system and the measures acquired from the weight scale (i.e., real-time hydro/structure computations). The design procedure, as shown in Figure 1, is made up of four main steps that for descriptive simplicity are presented in sequence in this paper but should be considered as a cyclic procedure that ends asymptotically towards the result. The first step relates to the kinematic topological definition and its optimisation as a function of the workspace dimension and the dimensional constraints. The second and the third steps are related to the sizing procedures necessary to ensure the static and dynamic performance of the device taking into account both the actuation system and structural components. The last step deals with the definition of the hardware and software control issues.

**Figure 1.** General scheme of the HexaFloat design process.

#### **2. Geometric and Kinematic Design**

The starting point of every project is the definition of the operating conditions. Figure 2 summarises the dimensional constraints and shows the position of the desired working volume within the wind tunnel. This position has been chosen in order to optimize the layout of the aerodynamic tests using a scaled turbine with respect to the wind tunnel performance. No commercial solutions suit the requirements due to the restricted space available to install the device so therefore a custom solution must be realized out of necessity.

**Figure 2.** Dimensional constraints: (**a**) Workspace constraints; (**b**) Wind tunnel frontal view and dimensions of the space dedicated to the machine.

Among the possible six-DoF manipulator architectures, a parallel kinematic machine (PKM) has been preferred rather than the serial one, due to its high stiffness and high dynamic performance even if this entails an accurate design of the joints in order to have an adequate working space and the absence of backlash. In the first part of the design procedure, the main focus is on the choice of the kinematic topology and the geometric dimensions [2,4]. The most common and widespread six-DOF PKM architectures among which to choose the right topology for this application can be summed up in three families:


The most promising solution within the three families is the six-PUS configuration because the actuation system lays on the floor grounded; moreover, the vertical bulk is limited as opposed to the horizontal one. This topology has been selected in order to guarantee high performance in terms of dynamic response and structural properties with the view to reduce the size vertically. Within this category, the two manipulators shown in Figure 3 have been chosen and evaluated [5]. The first one is called Hexaglide, having parallel linear guides and therefore is characterized by symmetry with respect to the longitudinal median plane. The second is called Hexaslide and is characterized by a radial symmetry with respect to the vertical axis due to the radial distribution of the linear guides in the plane. This characteristic leads to a better isotropy of the workspace.

#### *2.1. Kinetostatic Optimization*

An optimization process [5] is required in order to synthesize the geometric parameters of the two chosen robot architectures and evaluate which is the best solution. To properly set up the process, it is first necessary to identify the geometric parameters characterizing the two architectures and thereafter a function that mathematically describes the goal to be achieved. Finally, a set of physical constraints affecting the system have to be identified and defined in mathematical form in order to create the numeric boundaries for the solution. When choosing the number of parameters to be optimized, a trade-off has to be found: if the number of parameters used to characterize a machine is increased, the whole process of optimization would benefit, thus allowing a higher freedom. However, the complexity of the machine increases dramatically. A trade-off needs to be found between global performance and structural modularity, which is critical in order to simplify design and optimization steps.

**Figure 3.** Hexaglide robot (**a**) and Hexaslide robot (**b**) simplified geometry scheme.

The Hexaslide architecture can be analysed taking into consideration the following parameters (Figure 4) for the optimization process:


**Figure 4.** Hexaslide geometric parameters, the Cartesian space is represented in meters.

For this architecture, the same kinematic chain is replicated identically for six times.

The Hexaglide architecture, shown in Figure 5, can be analysed considering a higher number of parameters because three different kinematic chains can be identified in the robot configuration. The parameters to be optimized are:


**Figure 5.** Hexaglide geometric parameters, the Cartesian space is represented in meters.

For this architecture, each kinematic chain is replicated twice, one on both sides of the longitudinal median plain of symmetry.

The goal is to optimize robot kinematic performance while ensuring the desired workspace boundaries. In order to define a proper objective function, the desired workspace is discretized in elementary volumes: for each elementary volume, the specific set of parameters under analysis must be allowed to reach its centre point. Moreover, for each centre point analysed, the resulting machine must be able to orientate the TCP with any possible combination of pitch, roll and jaw angles varying inside a predefined range. If that is not the case, the elementary volume is added to the total volume that the current set of parameters is not able to cover. In order to make the computational cost affordable and restrict the checks to a finite amount of angles combinations, the three angular ranges are discretized. The evaluation of the objective-function is performed firstly by fixing the mobile-platform orientation Θ*<sup>m</sup>* = [*αm*; *βm*; *γm*], and thereafter computing the part of volume that end-effector is unable to reach for these specific orientations, such as:

$$\upsilon\_{nc}(\Theta\_m) = \sum\_{i} \sum\_{j} \sum\_{k} c\_{i,j,k}(\Theta\_m) \Delta v \quad \begin{cases} i = 1, \dots, N\_{\mathbf{x}\_{\mathbf{y}}} \\ j = 1, \dots, N\_{\mathbf{y}\_{\mathbf{y}}} \\ k = 1, \dots, N\_{\mathbf{z}\_{\mathbf{z}}} \end{cases} \tag{1}$$

where the combination of parameters *i*, *j*, *k* unequivocally identify a check-point of the workspace in which *Nx*, *Ny*, *Nz* represent the number of discretization points, respectively, along the *x*, *y*, *z* axes. The variable *ci*,*j*,*k*(Θ*m*) is equal to 1 if the specific parameters prevent the end-effector from reaching the pose defined by *i*, *j*, *k* and Θ*m*, and 0, otherwise. The term Δ*v* is the elementary volume resulting from the discretization of the workspace.

This procedure is repeated for all combinations of pitch, roll and jaw angles and the resulting value for the objective-function *Vnc* is computed as:

$$V\_{nc} = \sum\_{m} \upsilon\_{nc}(\Theta\_{m}).\tag{2}$$

Even if a volume portion is discarded for only one specific orientation, that portion of workspace is excluded for the corresponding geometrical configuration. Using this approach, in the ideal case in which a set of parameters allows the robot to reach any point in the workspace regardless of its orientation, the objective-function would be equal to 0. On the other hand, if the set of parameters does not allow the reaching of a particular point of the workspace, the objective function would assume a value equal to the dimension of the single discrete volume times the number of orientations for which that volume has been discarded.

The kinematic capability of reaching each point with every possible orientation is not in itself enough, but additional constraint definitions are required. The kinematic constraints are defined as follows:


The kinetostatic constraints are defined by the transmission ratio between forces and moments acting on the end-effector and the actuation forces. This transmission ratio for each actuator is computed and the maximum should be lower than a prescribed limit value. As is common for PKMs, this transmission ratio varies considerably within the nominal workspace due to nonlinear kinematics, especially in proximity of the singular configurations. The geometric constraints enforce the respect of the minimum distance between two links and between a link and the mobile platform in order to avoid the problem of self-collision of the component for particular poses.

The solution related to the minimisation of the objective function has been obtained through a single objective genetic algorithm approach [6]. The use of a semi-stochastic search and the evaluation of the performance of different individuals at each iteration makes the process of finding the global minimum of the objective-function to be minimized, easier. The steps characterizing this kind of algorithm are:

• Choice of a sufficiently high number of individuals representing a generation in order to have a significant statistical sample;


The algorithm would keep modifying parameters trying to cover the desired workspace as much as possible and minimizing the defined objective function. In Tables 1 and 2, the lower and upper bounds imposed at the beginning of the optimization and the optimal values obtained are reported.


**Table 1.** Limits and results of the Hexaslide optimization.


**Table 2.** Limits and results of the Hexaglide optimization.

Minimum distance between the links, minimum distance between links and platform, transmission ratio and maximum and minimum strokes of the actuated joint coordinates are mapped throughout the workspace to guide one in the choice of the best architecture. The following conclusions hold respectively for the Hexaslide and Hexaglide.

Hexaslide:


#### Hexaglide


It can thus be concluded that Hexaslide architecture is more compact compared to Hexaglide but reaches higher values of force transmission ratio. The Hexaslide architecture has been chosen due to its lower vertical bulkiness, more compact in plane dimensions, better workspace isotropy and lower position of the workspace centre. All of these features make it possible to install the machine under the wind tunnel floor level, reducing the robot influence on the air flow quality and keeping the turbine farther from the wind tunnel ceiling. Moreover, Hexaslide offers two additional advantages: all the elements that make up the links are the same for all six of the kinematic chains and the radial symmetry simplifies the design process. Hereafter, this machine will be referred to as Hexafloat, while the term Hexaslide will refer to the specific architecture of the robot.

#### *2.2. Kinematics Analysis*

In order to develop the optimisation problem and design the control algorithm of the robot, it is necessary to solve the inverse and forward kinematics. In this section, for the sake of briefness, only the solution of the inverse and forward kinematic problem of the robot architecture chosen is presented.

#### 2.2.1. Inverse Kinematics (IK)

In order to study *Inverse Kinematics*, two different reference frames have been considered, the global one and the local one with origin in the TCP and built into the robot platform. With reference to Figure 6, two different vector closures for each kinematic chain can be set up in order to compute the joint coordinates vector *q*. The first vector closure allows one to determine the absolute position vector **di** of the platform joint *Bi* with respect to a point that is the intersection of the **qi** direction with its orthogonal plane passing through the global origin. Each **si** has a fixed length with different orientations in the *X*0-*Y*<sup>0</sup> plane:

$$\mathbf{d}\_{\mathbf{i}} = \mathbf{p} + R\_{TCP} \mathbf{b}\_{\mathbf{i}} - \mathbf{s}\_{\mathbf{i}\prime} \tag{3}$$

where *RTCP* is the rotation matrix defining the platform orientation. This matrix is used to transform the expression of **bi**, constant into a rotating local reference frame, in its equivalent with respect to a zero orientation local frame translating with the platform. Position vector **p** and the offset **si** complete the transformation from the zero orientation local frame to the global one. The second vector closure allows one to determine the position of the i-th slider on the guide:

$$\mathbf{d}\_{\mathbf{i}} = \mathbf{d}\_{\mathbf{i}} - \mathbf{q}\_{\mathbf{i}} \mathbf{\hat{u}}\_{\mathbf{i}}.\tag{4}$$

The magnitude of **li** vector corresponds to the length of the robot leg while **uˆ** represents the guide direction unitary vector. This procedure is identical, except for the orientation of **bi**, **uˆi** and **si**, for all six links of the robot.

**Figure 6.** Vector closures used to solve the inverse kinematics (IK) problem: in blue, the 1st closure while in red the 2nd one.

#### 2.2.2. Forward Kinematics (FK)

The Hexafloat robot will not be equipped with sensors able to directly measure the platform position and orientation, therefore a good quality FK could work as a virtual sensor for the pose of the robot. A high frequency estimation of the actual pose of the TCP would be a valuable feedback tool for the other controller in the HIL setup, but a short calculation time and overall stability, in the case of numerical algorithms, is crucial. Extensive research has been conducted to ascertain analytical methods to solve the FK of PKMs, especially for Gough–Steward configuration, but the pose of the robot has not been expressed in explicit form so far.

Considering numerical methods, the Newton–Raphson (NR) algorithm has its numerical stability highly dependent on the accuracy of the initial approximation of the solution vector so a monotonic descent operator can be added obtaining the so-called Modified-Global-Newton–Raphson (MGNR) algorithm, able to estimate the FK solution of six-DoF parallel robots for any initial approximation in the non-singular workspace without divergence. The algorithm requires the definition of a system of six nonlinear equations and the evaluation of a matrix of partial derivatives:

$$
\underline{f}\_i(\underline{X}) = \underline{0}.\tag{5}
$$

$$P\_{ij} = \frac{\partial f\_i}{\partial x\_j}.\tag{6}$$

The evaluation of partial derivatives matrix can be simplified by implementing Jacobian-Free-Monotonic-Descendent (JFMD) algorithm. A first-order Taylor expansion can be used to approximate the partial derivatives matrix in a numerical way. The JFMD method is implemented via the following steps:


$$\mathbf{x}\_{k+1} = \mathbf{x}\_k - \rho\_k [f(\mathbf{x}\_k)]^{-1} f(\mathbf{x}\_k),\tag{7}$$

where *ρ<sup>k</sup>* (0 ≤ *ρ<sup>k</sup>* ≤ 1) is the monotonic descent factor. It starts from 1 and during each iteration is calculated as *ρ<sup>k</sup>* = 2−*m*, where *m* is the number of rechecking times in the corresponding iteration, necessary to obtain the monotonic trend. The approximated Jacobian matrix is evaluated from the first-order Taylor expansion of its partial derivatives and considering a perturbation parameter *η* of 1 × <sup>10</sup><sup>−</sup>16. The i-th row and j-th column of the approximated Jacobian matrix is evaluated as:

$$J\_{ij} = \frac{f\_i(\mathbf{x} + \eta\_j \epsilon\_j) - f\_i(\mathbf{x})}{\eta\_j},\tag{8}$$

• convergence criterion is defined imposing the error to satisfy the following inequality:

$$\|\|\mathbf{x}\_k - \rho\_k[f(\mathbf{x}\_k)]^{-1}f(\mathbf{x}\_k)\|\|\_2 \le \|\|f(\mathbf{x}\_k)\|\|\_2. \tag{9}$$

• the algorithm stops if convergence is achieved or the maximum number of iterations is reached:

$$\|\|f(\mathbf{x}\_{k+1})\|\|\_{2} \le \delta = 1 \ast 10^{-10} \qquad \text{or} \qquad k \ge k\_{\max} = 20,\tag{10}$$

where *δ* is the required computation tolerance and *kmax* is the given maximum number of iterations.

The first initial approximation must be taken close to the Home Position (463.56 mm from the ground reference frame), where the robot is supposed to be when switched on. For the following times, the initial approximation is chosen as the estimated pose at the previous cycle. The logic of the JFMD algorithm is clarified in the flow chart in Figure 7. Thanks to C language implementation, this routine is able to converge to a solution in relative little iteration, with a mean calculation time of around 50 μs in the actual hardware chosen to control the robot. This performance allows one to use FK as a virtual real-time sensor with sufficient accuracy.

**Figure 7.** Flow chart of the Jacobian Free Monotonic Descendent (JFMD) algorithm.

#### *2.3. Velocity Analysis and Kinetostatic*

In order to determine the relation between the velocity of the TCP and the ones of the joint coordinates, it is necessary to calculate the Jacobian matrix. If all six links are considered together, a compact matrix form coupling the joint velocity vector *q*˙ and the workspace velocity vector *w* can be defined:

$$\begin{bmatrix} \hat{n}\_1^T \hat{n}\_1 & \dots & 0\\ \vdots & \ddots & \vdots\\ 0 & \dots & \hat{n}\_6^T \hat{n}\_6 \end{bmatrix} \dot{q} - \begin{bmatrix} \hat{n}\_1^T & \dots & (b\_1 \times \hat{n}\_1)^T\\ \vdots & \ddots & \vdots\\ \hat{n}\_6^T & \dots & (b\_6 \times \hat{n}\_6)^T \end{bmatrix} w = 0,$$

$$[J\_q] \dot{q} - [J\_{\mathcal{S}^5}]^{-1} w = 0,$$

and with some algebraic steps:

$$\dot{q} = [J]^{-1} w.\tag{11}$$

The solution of the kinetostatic analysis provides the actuation forces *τ<sup>a</sup>* required to bear the external forces *fec* applied to the TCP. Due to the virtual work principle and knowing that the virtual variation of the workspace coordinates is related to the virtual variation of the joint coordinates through the Jacobian matrix [*J*], the actuation forces can be computed as:

$$
\pi\_{\mathfrak{a}} = -[J]^T f\_{\mathfrak{e}\mathfrak{e}}.\tag{12}
$$

The representation of the way in which forces applied to the robot platform are transmitted to the actuators is obtained considering the unitary hypersphere of forces in the workspace [7]. This unitary hypersphere is transformed into a hyper-ellipsoid in the space of actuation forces. This is a common description used in the robotic field in order to characterise the behaviour of the robot in every point of the working space and it states that, if one of the forces applied to the TCP reaches the maximum value of 1, the other components must be nil. An alternative representation is based on the use of a hyper-cube of unitary semi-side that is transformed into a hyper-polyhedron through the Jacobian matrix, as shown in Figure 8. Moreover, it should be noted that the inverse Jacobian matrix can be split into a translational and a rotational part as presented in [8]. Using this approach, it is possible to note that the rotational components of the inverse Jacobian matrix are dimensional and in fact they correspond to a length. In order to let all the elements of the inverse Jacobian matrix be dimensionless, it is useful to divide the rotational components by a scale factor defined as characteristic length *Lc*. In this way, a normalized inverse Jacobian matrix is obtained and is used to obtain the maximum actuation force.

**Figure 8.** Transformation of the workspace forces unitary hypercube into the actuation forces hyperpolyhedron.

#### **3. Actuation Chain Sizing**

A proper sizing of mechanical components and actuating systems requires the knowledge of the most power demanding motion that the machine is required to execute, considering the influence of robot dynamics and carried loads. For the application taken into account, the movement of the end effector is unknown in advance because it depends on the wind effect over the wind turbine and the mathematical model used to define the behaviour of the floating structure. To obtain a scenario of the possible movement of the end effector, it is necessary to consider an approximation of the wave motion of the sea expressed by a combination of six cosinusoidal functions [9,10]. Analysing any combination of a parameter set, which is used to define the sea behaviour, one can obtain a possible end effector motion. The time history of the sea level *ε* is expressed as:

$$
\varepsilon(t) = \rho(t)\cos(\omega t + \varphi(t)),
\tag{13}
$$

where *ρ* is the amplitude, *ω* the pulsation, and *ϕ* the phase shift. Both amplitude and phase shift change very slowly in time so it is reasonable to assume they are constant for the whole duration of the simulation and the time history of each DoF is described as:

$$j(t) = A\_{0,j} + A\_j \cos(2\pi f\_j t + \varphi\_j) \quad \text{with} \quad j = \ge, y, z, a, \beta, \gamma,\tag{14}$$

where *A*0,*<sup>j</sup>* is an offset parameter taking into account the initial pose of the robot.

The worst operating conditions may be represented in the case where all frequencies *fj* and amplitudes *Aj* assume their maximum value. However, the intrinsically nonlinear kinematic of the robot may invalidate this assumption. In effect, it is not guaranteed that this is the most demanding case in terms of internal loads, motor torques, velocities and accelerations. Furthermore, a simple co-sinusoidal motion of the end-effector is translated into a periodic motion of the joint coordinates where higher order harmonics with respect to the *fj* appear. It is difficult to predict if the energy associated with the higher order harmonics of a specific *fj* is bigger than the energy of the harmonics corresponding to a lower *fj*.

The four characteristic parameters are thus defined in the following ranges:


In order to test any pose in the working volume, a procedure has been designed [11]. Firstly, the workspace has been divided into a finite number of portions. For each of these, an admissible range of motion parameters for each degree of freedom has been chosen. In particular, these ranges have to be discretized in order to obtain a finite number of combinations. Therefore, a set of time histories for the six-DoF end-effector is generated and thereafter the inverse kinematic and dynamic problem solved in order to calculate the motor torques required for each set.

#### *3.1. Multibody Model*

The procedure described above needs a mathematical model to be implemented. In particular, a multibody model of the robot has been developed using the commercial software MSC ADAMS 2016 in order to compute the dynamic and kinematic quantities that allow one to properly size mechanical components as well as the actuating system [12]. At the preliminary stage of the project, the inertial properties of the components, that make up the robot, are unknown and must be estimated. The results obtained by the use of the multibody model and the developed procedure are used to refine these values and update the model to subsequently enhance the results accuracy and converge towards the final result.

The developed multibody model is based on a parametric approach in order to be easily integrated into the motor sizing procedure. The first step for the model formulation is the definition of a set of reference frames located in positions that allow one to easily define the inertial properties, joints, applied forces and measurements points. The reference frames created are: a TCP reference frame; six reference frames called *Bi* in correspondence to the centre of the end-effector joints; six reference frames called *Ai* in correspondence to the centre of the base universal joints; six reference frames called *Pi* located at the origin of the guide axes, as shown in Figure 9.

**Figure 9.** Reference frames configuration, the Cartesian space is represented in meters.

The three main components for each kinematic chain are: platform, links and sliders. The element called platform takes into account the mobile platform, the six spherical joints attached to it, the six axes load cell used to measure the forces and moments exerted by the scaled model of the turbine on the robot. Due to the symmetry, the centre of mass is expected to be located on the *z*-axis of the TCP reference frame and the principal axes of inertia are expected to be parallel to the axes of the TCP. Links can be represented as cylinders whose centre of mass is located in the middle of the link and whose principal axes of inertia are aligned with those of the *Ai* reference frame. The elements called sliders take into account the universal joints, joint supports and sliders of the transmission unit. Since these bodies will be subjected to a purely translational motion during simulations, it is sufficient to characterise them with their total mass. This schematization with the equivalent mass and inertial properties of the assembly is possible because the model described in this section is supposed to be rigid. The mechanical and geometrical limits of each joint are represented by locking one or more relative degrees of freedom and giving a limited range of displacement/rotation among the possible ones.

#### *3.2. Monte Carlo Method*

Due to the impossibility in the definition of the most demanding task for this application, a statistical approach has been developed, based on the Monte-Carlo Method. This novel approach is implemented as follows:


The results collected are used to size the mechanical components and the actuators. In particular, it is possible to obtain the slider velocity and acceleration, forces exerted by the motors on the sliders, axial forces along the guide and the so-called "Load factor" for the actuator sizing procedure. A summary set of values is required in order to easily compare these quantities with the corresponding limits specified by the manufacturers. These sets are computed through the extraction of the maximum values for each simulation stored in *M* array; among these, the highest value is extracted. Therefore, the interval from 0 to the highest extracted value is divided into subranges, and, for each of these, the number of occurrences of the *M* values is assessed. A set of discrete PDFs is obtained and this represents the probability that the maximum value obtained during a simulation is comprised within a certain interval.

#### *3.3. Actuating System Sizing Procedure*

The selection of an actuating system requires one to choose both the electric motor and the gearbox unit. In scientific literature, several procedures to size the motor reducer group are available. In this work, the approach proposed in [11,13] is applied. Independently from the procedure used, the motor reducer sizing is based on the checking of the following three relationships:

• Limit on maximum torque:

$$\max |\mathsf{C}\_{\mathsf{m}}(t)| \prec \mathsf{C}\_{\mathsf{m}, \mathsf{max}} \quad \text{and} \quad d \max |\mathsf{C}\_{\mathsf{m}}(t)| \prec^{\epsilon} \mathsf{C}\_{\mathsf{f}, \mathsf{max}}.$$

• Limits on nominal torque:

$$\mathbb{C}^\*\_{m\mu rms} < \mathbb{C}\_{m\mu nm\nu}$$

• Limit on maximum speed:

$$\max |\omega\_{\boldsymbol{\theta}}(t)| < \tau \omega\_{\boldsymbol{m}, \boldsymbol{\max}} \quad \text{and} \quad \max |\omega\_{\boldsymbol{\theta}}(t)| < \omega\_{\boldsymbol{t}, \max}.$$

*Cm* is the motor torque, *Cm*,*max* the maximum torque the motor is able to generate, and *Ct*,*max* is the maximum torque that the transmission unit is able to bear. In addition, *ω<sup>r</sup>* represents the resistant speed computed on the load side, *ωm*,*max* is the maximum speed the motor can reach without damaging its mechanical components, *ωt*,*max* is the maximum speed the slider can achieve without damaging mechanical components. Following the [13] approach, from the power balance and the thermal check inequality, it is possible to define the transmission ratio as follows:

$$
\kappa > \beta + \left[ C\_{r,rms}^\*(\frac{\pi\_{rid}}{\sqrt{f\_m}}) - \dot{\omega}\_{r,rms}(\frac{\sqrt{f\_m}}{\pi\_{rid}}) \right]^2,\tag{15}
$$

where the acceleration factor *α* and the load factor *β* are defined as:

$$\alpha = \frac{\mathbb{C}\_{m,nom}^2}{I\_{m}}; \quad \beta = 2 \left[ \left. \dot{\omega}\_{r,rms} \mathbb{C}\_{r,rms}^\* + (\dot{\omega}\_r \mathbb{C}\_r^\*)\_{mcan} \right| . \right. \tag{16}$$

The RMS values of torque and acceleration are defined as:

$$\mathbb{C}^\*\_{r,rms} = \sqrt{\frac{1}{t\_c} \int\_0^{t\_c} [\mathbb{C}^\*\_r(t)]^2 \, dt} \quad \text{and} \quad \dot{\omega}\_{r,rms} = \sqrt{\frac{1}{t\_c} \int\_0^{t\_c} [\dot{\omega}\_r(t)]^2 \, dt}.$$

The acceleration factor *α* is a motor characteristic that can be evaluated directly from the datasheets, whereas the load factor *β* depends on the task performed by the actuations system, and, for the case under study, can be calculated using the multibody model. Following the sizing procedure, firstly, the optimal transmission ratio value *τopt* is evaluated. Then, this value is compared to the transmission ratio purchasable in the market and the closest is chosen taking into consideration that it is within the available range. In particular, greater attention must be paid to evaluate the maximum velocity required during the task and the relative limit transmission value using the formula:

$$\tau\_{lim} = \frac{\max |\omega\_r(t)|}{\omega\_{m,\max}} \max(\tau\_{lim}, \tau\_{\min}) < \tau < \tau\_{\max}.\tag{17}$$

All the results obtained from the multibody simulations refer to the kinematic and dynamic quantities of the manipulator sliders. In order to transform force into torque and linear velocity or acceleration into angular ones, the following equations have to be used:

$$
\dot{\omega}\_{r,i} = \frac{\vec{q}\_i(t)}{\tau\_{TUI}} \quad \mathbb{C}\_{robot,i}(t) = \tau\_{TUI} F\_{robot, \mathcal{X}\_i}(t). \tag{18}
$$

It is worth noticing that to increase the transmission stiffness and achieve the maximum velocity required, every linear axis of the robot is made up of only a single reduction stage. In particular, the motor is directly connected to the screw by means of a rigid joint and the transmission ratio is the screw lead. Due to the high dynamic performance, stiffness and precision required, recirculating ball screws have been chosen. The double slider configuration for each guide has been selected in order to guarantee a uniform load distribution. The manufacturer's instructions to correctly size these devices have been followed, in particular to the total length of the screw, maximum allowed velocities, forces that the guide can bear and the like. All of this is summarized in Table 3. As concerns the electric motor OMRON (Tokyo, Japan), as well as the heat dissipation check, the maximum torque achievable has been evaluated.


**Table 3.** Resume of checks done on guides.

Figures 10 and 11 show the maximum torque distribution and maximum rotation speed obtained during simulations. Once fixed a 99% coverage threshold, the corresponding values are extracted and they are used as guidelines in the components' choice. The most restricting limit is imposed by transmission units: the Rollon ballscrew drive (Vimercate (MB), Italy) chosen satisfies the maximum torque test in 94.7% of the cases with Rayleigh approach and in 89.4% with the other one. Even if the coverage is not 99%, the choice has been made to find a suitable trade-off between performances and size. As for maximum torque analysis, the most restricting limit for rotation speed is imposed by the linear transmission unit, but, since the selected transmission satisfies more than 99% of the cases, this test is passed.

**Figure 10.** Maximum torque distribution along all the simulations.

**Figure 11.** Maximum angular velocity distribution along all the simulations.

#### **4. Mechanical Design and Component Sizing**

A design process is always iterative: an initial model, which satisfies the preliminary parameters required, is firstly created, thereafter each part of this model is refined and improved in order to enhance its dynamic characteristics and reduce mass and costs of the whole system. In this process, the multibody model plays an important role: it is used many times in an iterative way to analyse the dynamic behaviour of the system after every single modification in order to check the mechanical components and actuation system. For the development of a simulator, it is necessary to realize two kinds of structural analyses: the first one is a static analysis for which the focus is to determine the stress and strain of any mechanical components. The second analysis is a dynamic one performed to obtain the modal behaviour of the system.

#### *4.1. Robot Description and Overview*

In order to clarify the results obtained with static and dynamic analysis, a complete overview of the "as built" project is necessary, Figure 12a. The entire system can be divided into two main parts: the Hexafloat manipulator and the auxiliary systems. The first part is made up of "Grounded elements" (all the fixed supporting structure and the power and actuation units), "Joints", "Links" and "Platform", whereas the auxiliary systems include: "Lifting system" (a tool used to manage the rest task of the system), "Energy chain" (device that houses cables and the like) and "External Sensors" (sensors for monitoring the system during the operating tasks).

Hereafter is a more detailed description of every component and technical solution adopted.

**Figure 12.** Components. (**a**) Hexafloat exploded; (**b**) parts on the ground partially exploded view.

#### 4.1.1. Grounded Components

This is the framework and gives stability to all the moving parts, Figure 12b. The linear actuation systems are fixed onto it. Therefore, this assembly should be stiff enough to bear static and dynamic loads. The *Central plate*, made of aluminium, is used to provide the correct orientation and position of the linear guides through calibrated machining. The linear actuators are grouped into two by two and each couple is oriented with an angle of 120 ◦ with respect to the other. This leads to a radial symmetry of the machine. Each couple of linear actuators is fixed to the *Central plate*. To provide further stiffness to the system, avoid undesired tilting and relative displacement between the two couples of guides, three "K" links constrain the *Central plate* with the "C" shaped supports over which the actuation system is mounted. *Aluminium joint holders* are used to couple the *Joints* with the linear actuators. Through the optimization process and the solving of the kinematic closure equations, when the robot is in the *Home Position*, the direction of each *Link* is defined and the *Joints holder* shape and inclination designed. The whole framework will be placed in the wind tunnel using 22 levelling elements to distribute the weight uniformly and maintain the guides on the same plane, without misalignments.

#### 4.1.2. Joints

The PUS kinematic chain on the basis of which the manipulator is realized is made up of an actuated prismatic joint followed by a double revolute joint (universal joint) and a spherical one mounted on the *Platform*. Placing a universal joint and a revolute one so that the rotation axis of the latter passes through the intersection of the universal joint rotation axes, it is possible to obtain the same numbers of DoFs that the spherical joint has. Therefore, the same universal joint used in the lower part of the kinematic chain is mounted on the *Platform*, and the rotational degree of freedom is directly realized within the *Link*. In order to obtain the stiffness, precision and mobility required, a custom joint solution has been realized and they are shown in Figure 13a,b. The main feature of such

*Joint* is the possibility to have a cone shaped motion range with a semi-angular aperture of 45 ◦ around the normal direction, designed and assembled to have zero backlash.

**Figure 13.** Custom joint. (**a**) joint exploded view; (**b**) joint assembly.

Each joint is made up of a couple of *Half shells* connected to an *Inner block* through two roller bearings and two *Support shafts*. These components are tightened by two screws and aligned by two calibrated dowel pins. In this way, the *Inner block* has a relative movement with respect to the shell, the further DoF is provided by another two roller bearings that support the *Inner shaft* pinned to the link. All these inner components are packed through a *Distance ring* and a *Closing ring*. *Half shells* and *Inner block* are made of aluminium, while other components are made of steel. The *Joint* is fixed to the *Joints holder* through four screws and aligned with two calibrated dowel pins.

#### 4.1.3. Links

The *Links*, Figure 14, connect the *mobile platform* to the fixed one. These bear the pay load made up of the mobile platform, *RUAG (RUAG Aviation - Aerodynamic, Schiltwald, Switzerland) load cell*, scaled wind turbine and sensors. The RUAG six-DOF weight scale, model W192–6I, is dimensioned for the following forces and moments: *Fx* = ±1500 N, *Fy* = ±1000 N, *Fz* = ±5000 N, *Mx* = ±500 Nm, *My* = ±1000 Nm and *Mz* = ±600 Nm. Due to the complexity of this device, it is necessary to use a calibration matrix capable of taking into account not only the weight scale deformation but also the working temperature. This calibration matrix, provided by the manufacturer, follows quality procedures in use at the wind tunnel and it is available at the internet address of the Life50+ project. The *Link* is composed of:


**Figure 14.** Link exploded view.

4.1.4. Platform

The *Platform*, Figure 15a, is realised in order to define the right position of the joints and the six-DOF weight scale. It is made up of the following elements:


**Figure 15.** Platform and energy chain. (**a**) platform exploded view; (**b**) energy chain assembly.

#### 4.1.5. Auxiliary System

Two auxiliary systems have been designed: an *Energy chain* (Figure 15b) and a *Lifting system* (Figure 16b). The Hexafloat machine is designed to stay below the floor of the wind tunnel when not in operation. In this configuration, the machine has to overcome a singularity to reach Home Position and a *Lifting system* helps the robot to pass this critical point in the rise and return phases. This system can be schematically modelled as in Figure 16a as an isosceles three-hinged arc, in which hinge A is placed on ground, B on the *Moving carriage* and C at the central part of the *Three points beam*, thus allowing a vertical movement of the *Three points beam* top end (point D). Furthermore, a four-link mechanism is coupled to this system in order to keep it parallel to the ground along the whole stroke of the *Coupling platform*, mounted on top of the lifting mechanism. The *Moving carriage* is driven by the motor through a trapezoidal screw, which converts motion from angular to linear.

Measuring and actuation devices will be mounted on the *Platform* and on-board the scaled wind turbine, and these instruments need to be fed by electric energy and have to be connected to a controller in order to guarantee a real-time data exchange. Therefore, a cable housing system is needed in order to protect cables, maintain a good flexibility while following the *Platform* movements, without interfering with these. The system is made up of the following elements: four "L" plates supports, made of steel; two lateral connecting plates, made of aluminium; two mounting brackets with strain relief mounted, respectively, on the *Platform* and on *Parts on ground*; an intermediate mounting bracket; a mounting sliding bracket and a flexible chain.

**Figure 16.** Lifting system. (**a**) lifting system scheme; (**b**) lifting system assembly.

#### *4.2. Static Analysis*

Through the results obtained from the multibody analysis, one can determine the most critical load acting on the system. In particular, the interest is on the force that must be borne by the links because, through this, the remaining parts of the system are loaded. For safety reasons, an overestimated value of 2500 N is assumed both in traction and compression for every link. The static analysis has been performed using a commercial FEM solution and several models have been studied in order to take into consideration both single elements and their subassembly. Taking into account the final configuration, one can state:

	- **–** Inner Block: a load of 2500 N is split into two equal loads, each one acting on a set of bearings. Maximum stress registered is 85 MPa, which is far below the admissible stress of 250 MPa, Figure 19a.
	- **–** Support shaft: a load of 1250 N is applied for simulating the presence of two Support blocks per Joint. The test is effected by loading one end of the shaft and maintaining the other one fixed, Figure 19b.
	- **–** Inner shaft: a load of 2500 N is applied in the midspan and both ends are pinned in order to simulate the presence of the two bearings, Figure 20a.

inertial load and aerodynamic thrust due to the pay load. These loads are borne very well by the structure both in terms of stress and displacement, Figure 17b.

• Lifting system: this device has to generate a total lift of 150 mm in a time span of about 15 s with a cycloidal motion curve and must also bear the weight of all the moving parts of the robot. This system has been developed in order to help the robot to overcome the singularity configuration during the start and stop procedures. The analysis reveals maximum values occurrence at the initial phase of the rise and FEM analysis ensures that stress remains below the critical values.

**Figure 17.** Movable and fixed platform analysis. (**a**) parts on ground static analysis; (**b**) platform static analysis.

**Figure 18.** Joint analysis. (**a**) joint static analysis; (**b**) joint static analysis, inclined configuration.

**Figure 19.** Inner block and shaft analysis. (**a**) inner block static analysis; (**b**) support shaft static analysis.

**Figure 20.** Inner shaft and link analysis. (**a**) inner shaft static analysis; (**b**) link static analysis.

**Figure 21.** Lower rod analysis. (**a**) lower rod compression analysis; (**b**) lower rod traction analysis.

#### *4.3. Purchased Components' Sizing*

Final choices regarding motors, linear actuators and the energy chain are listed.

#### 4.3.1. Motors

The selected model is the OMRON R88M-K2K030F-BS2, whose main characteristics are collected in Table 4(a). The *Lifting system* motor, required to bear the torque increment given by the low efficiency of the trapezoidal screw adopted, is the OMRON R88M-K20030T-BS2, the main characteristics of which are reported in Table 4(b). Both motor models have an auxiliary brake for safety reasons and an encoder to allow one to have a control of position and velocity. For the 2 KW motor of the robot, the encoder is a quadrature incremental encoder with a maximum resolution of 4,194,304 cnt/rev.


**Table 4.** Motors' characteristics.

The encoder signal is processed in order to obtain a lower resolution of 131,072 cnt/rev. The resulting linear resolution of 3,276,800 cnt/m is obtained considering a lead of 0.04 m/rev for the ball-screw linear axis. For the lifting system motor, the maximum encoder resolution is 131,072 cnt/rev. The modified used resolution is of 13,107.2 cnt/rev, thus obtaining the same linear resolution of the robots axis due to a smaller lead of 0.004 m/rev.

#### 4.3.2. Linear Actuator

The linear actuator chosen is the model TH145 SP4, produced by ROLLON and whose characteristics are reported in Table 5(a). The following customizations are required: screw lead of 40 mm per revolute, to allow the respecting of required performances; two calibrated centring holes on its lower side to correctly assemble the central plate; two calibrated centring holes on the external carriage to allow the correct positioning of the Joint holder.


**Table 5.** Other components' characteristics.

#### 4.3.3. Other Components

The selected energy chain is Igus (Colonia, Germany) Riflex TRE.40 whose main characteristics are reported in Table 5(b). Tapered roller bearings chosen both for the links and joints are the INA FAG 30202-A. These support both axial and radial loads, thus avoiding the usage of more than one bearing. KTR-TOOLFLEX20M motor coupling is chosen. Due to the reduced space available for the *Lifting system*, a more compact model of bearing INA FAG 3000-B-2RS-TVH has been chosen. It is a double row angular contact ball bearing, which can bear both axial and radial loads. KTR Rotex 19/92Sh-A/2.1-*φ*11/2.0-*φ*8 motor coupling has been chosen for the *Lifting system* and it provides the required performance and encumbrance constraints.

#### *4.4. Modal Analysis*

In this section, the approach followed to assess the correctness of the overall design, in terms of dynamic behaviour, is reported. More specifically, the goal is to verify that the first normal modes of the coupled structure coincide with those of the turbine only, in order to minimize the dynamic effects of the robot. Nevertheless, the modal behaviour of a robot strongly depends on the specific pose of the end effector, since the mass and stiffness distribution change according to the pose.

The normal modes and their associated frequencies are computed in order to verify that the frequencies in the first normal mode were high enough. In particular, they must be higher than the well defined frequency range for all the robot poses in to the working volume. The frequency range depends on the dynamic behaviour of the scaled turbine.

To analyse the dynamic response of the manipulator, the entire workspace was discretized, and the trend of the frequency corresponding to the first normal mode over the entire workspace was mapped on specific planes that intersect the robot workspace. The procedure is listed below:

	- **–** Three roll angles: −5◦, 0◦, +5◦,
	- **–** Five pitch angles: −8◦, −4◦, 0◦, +4◦, +8◦,
	- **–** Three yaw angles: −3◦, 0◦, +3◦.

The final result is a set of maps, one for each intersecting plane, which show the trend of the lowest frequencies regardless of the orientation of the robot, as shown in Figure 22. To perform these sets of simulations, a simplified design of the robot was created. Lower simplified joints are tied to the ground applying spherical pins and the simulation provides the first three eigenmode frequencies. Links can be regarded as the main cause for a possible deterioration of the behaviour of the coupled system. The main deformations are concentrated on links and an advanced multibody model has been developed in the "Adams" environment, Figure 23, whose links are made of two extremity elements and an intermediate one characterised by aluminium properties. The results given by the two numerical environments are reported in Table 6.

**Figure 22.** Modal frequencies maps.

**Figure 23.** Numerical modal analysis. (**a**) Inventor 1st mode of vibration; (**b**) Adams 1st mode of vibration.


**Table 6.** Eigenmodes frequencies in Home Position.

A frequency response analysis has been performed on the wind turbine and on the coupled system made by the wind turbine and the Hexaslide. The aim of this simulation is to check the Hexaslide is not influencing the frequencies of the turbine's mode of vibrating, thus making the presence of Hexaslide negligible at least from a mechanical point of view.

A swept sine load of 100 N amplitude between 0.1 Hz and 250 Hz has been applied to the rotor centre in wind (x) direction and the displacements and rotation have been measured. This Force is able to well excite the first and most relevant eigenmodes of the turbine.

The results are reported in Figure 24. The first two wind turbine eigenfrequencies are preserved even in the coupled system,while two peaks appear between 75 Hz and 100 Hz.

It can be concluded that, in the range of 0–60 Hz, a robot's dynamics does not influence the turbine eigenfrequencies.

**Figure 24.** *Cont.*

**Figure 24.** Frequency Response analysis of Turbine and Hexaslide with turbine. (**a**) displacement along *x*ˆ*<sup>O</sup>* direction; (**b**) rotation around the *y*ˆ*<sup>O</sup>* axis.

#### **5. Control Architecture and Electronics**

A simplified scheme of the electric panel configuration is reported in Figure 25. The core of the electrical panel is represented by Power PMAC, the property of Delta Tau Data Systems (Chatsworth, CA, USA). There are essentially two zones: one with AC voltage, represented by solid black and blue lines, powered by a 380 V AC line and brings it to the Power PMAC fed at 230 V and to the power circuits of the servo amplifiers fed at 380 V, and the other one with 24 V DC voltage, downstream of the 24 V power supply, which is represented by the solid and dashed green lines. This circuit provides power to the safety relay, limit switches and proximity sensors and to the Beckhoff modules for Ether-CAT communications. Red lines represent the transmission of data between different components.


The modular rack is the most flexible configuration, since it permits the user to choose which CPU card, digital or analogue I/O card, axis interface cards and the like to use in the system. Power PMAC can handle all of the tasks required for machine control, constantly switching back and forth between the different tasks thousands of times per second. On this powerful controller, the main control software of the robot has been designed and implemented. Figure 26 shows the general overview of the software architecture. In particular, it is structured so that a primary and a secondary states machine manages the principal functionality of the system, among which the management of the logic

state (start, stop, homing, jog, and the like) and the functioning of the machine (managing exceptions, motion programs, debug towards the user). The Position-Based-Admittance-Control (PBAC) control scheme used to close the position loop is highlighted in light blue. Further details in this regard are set out in [14].

**Figure 25.** Simplified scheme of an electrical layout.

The lowest level of the control is constituted by the position and velocity servo loops, giving the analogic torque output reference for the seven servo actuator. Each high level control modality developed has been designed to respect real-time performances desired as well as safety, using advanced tools such as position based admittance control, buffering with time-based control, motion look-ahead for smooth blending, fast C written nonlinear FK and demanding algebra, workspace boundaries check

with controlled dynamics on the limits [15], and acceleration saturation with workspace reference tracking check. For more details about control architecture and algorithms, refer to [14,15].

The Human–Machine Interface (HMI) designed allows full control by the user of every significant functioning parameter, simplifying state change and enhancing safety. The HMI communicates with Power PMAC by means of Telnet communication protocol and is completely written in C# language.

**Figure 26.** Complete control scheme.

#### **6. Conclusions**

The experimental verification of the dynamic response of the robot is currently being finalized. The main control features have been tested on a scaled model of the manipulator with optimum results [14,15]. The full scale is now fully operative and its behaviour is under test. For the sake of completeness in Figure 27, the full scale system equipped with accelerometers during the modal analysis campaign is reported. From the first broad results, it appears confirmed that the robot will not interfere, from a dynamic point of view, with the wind turbine scale model [3].

Further experimental modal analysis is staged for the next months, to fully explore the performances not only of the complete mechanical system, but of the whole machine under control influence. First verifications of control performances have already given satisfying results, but further refinement is done every day to an optimized controlled system behaviour in every required operative condition.

This paper shows the design methodology of the HexaFloat system, a six-DoF robot for wind tunnel hybrid testing of floating offshore wind turbines. This setup consists of a parallel kinematic robot, "HexaFloat", designed and developed to test the dynamics of floating offshore wind turbine concepts, selected within LIFES50+ project, at the Politecnico di Milano wind tunnel, through a hybrid methodology which combines HIL, in real-time measurements (i.e., aerodynamic forces on the wind turbine scale model) and computations (i.e., hydrodynamic forces on platform). This represents the complementary test approach, with respect to the one developed at the Sintef Ocean basin. The final test campaign for LIFES50+ project is staged for July 2018. The complete HIL setup is currently under testing for performance verification, disturbance influence analysis, control of final refinements and tuning and controllers' communication optimization.

**Figure 27.** Hexaslide experimental setup.

**Author Contributions:** H.G. and F.L.M. conceived the devices and the sizing tools used; G.R. and M.P. designed the system; F.L.M. developed the control software of the devices; F.L.M., tested the system. H.G. and F.L.M. wrote wrote the paper.

**Funding:** This project has received funding from the European Union's Horizon 2020 research and innovation programme under Grant agreement No. 640741.

**Conflicts of Interest:** The authors declare no conflict of interest. The founding sponsors had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, and in the decision to publish the results.

#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## *Technical Note* **Nominal Stiffness of GT-2 Rubber-Fiberglass Timing Belts for Dynamic System Modeling and Design**

#### **Bozun Wang 1, Yefei Si 2, Charul Chadha 3, James T. Allison <sup>1</sup> and Albert E. Patterson 1,***<sup>∗</sup>*


Received: 20 October 2018; Accepted: 19 November 2018; Published: 21 November 2018

**Abstract:** GT-style rubber-fiberglass (RF) timing belts are designed to effectively transfer rotational motion from pulleys to linear motion in robots, small machines, and other important mechatronic systems. One of the characteristics of belts under this type of loading condition is that the length between load and pulleys changes during operation, thereby changing their effective stiffness. It has been shown that the effective stiffness of such a belt is a function of a "nominal stiffness" and the real-time belt section lengths. However, this nominal stiffness is not necessarily constant; it is common to assume linear proportional stiffness, but this often results in system modeling error. This technical note describes a brief study where the nominal stiffness of two lengths (400 *mm* and 760 *mm*) of GT-2 RF timing belt was tested up to breaking point; regression analysis was performed on the results to best model the observed stiffness. The experiments were performed three times, providing a total of six stiffness curves. It was found that cubic regression mod els (*R*<sup>2</sup> > 0.999) were the best fit, but that quadratic and linear models still provided acceptable representations of the whole dataset with *R*<sup>2</sup> values above 0.940.

**Keywords:** timing belt; belt stiffness; dynamic system modeling; mechatronic systems; 3D printers; robotics

#### **1. Introduction**

Timing belts are a common means of motion transfer between rotating motors/shafts in a machine or mechatronic system. Many small-to-medium sized mechatronic systems such as 3D printers [1], robots [2,3], desktop computer numerical control (CNC) machines [4], and positioners [5] use such belts, typically in the GT-style [6,7]. GT-style belts are specifically designed to effectively translate rotating motion from pulleys into linear motion with minimal deformation, slippage, and backlash. One of the fundamental characteristics of such a motion transfer system is that the length of the belts changes with time, causing time-variant stiffnesses in the belts which must be considered in dynamic system modeling and design. Note that the "stiffness" in the belt is considered only in the tension direction of the belt for this work, resulting in a stiffness that can be described as a single value or function instead of the full stiffness matrix [8,9].

When analyzing and designing any robotic and other mechatronic systems, it is vital that a good dynamic model of the system be developed and used. Since such systems often use some kind of flexible belts for motion transfer, the belt stiffness is a very important parameter in a system model. In cases where the length of the belt is constant (e.g., running between two fixed pulleys), the stiffness

*k* of the belt can be modeled as a spring where *f*(*x*) = *kx*; therefore, the stiffness of the belt is a function of its deflection *x* under load. In effect, this constant-length stiffness of the belt is its "nominal" design stiffness. However, in cases where the belt changes length during use, the effective length of these belt is a function of time and, therefore, its stiffness is also time-variant; this time-variant stiffness is the "effective" or apparent stiffness of the belt at some time *t*. It has been shown that the effective stiffness of the length-changing belts can be directly calculated as a function of the nominal stiffness value, the belt width, and the real-time length of the belt [10] such that:

$$k\_i(t) = \mathcal{C}\_{sp} \frac{b}{L\_i(t)} \tag{1}$$

where *ki* is the effective stiffness as a function of time, *Csp* is the nominal stiffness, *b* is the belt width, and *Li*(*t*) is the length of the belt section at time *t*. For any case where the length remains constant, the effective and nominal stiffnesses are equal since the value of *Li*(*t*) is a constant. Note that the value of *Csp* may be a constant or function of material properties for different belt materials; it cannot be considered a function of time the way that the length of the belt is. The most commonly-used GT-style belt is the GT-2; Figure 1 shows the fundamental geometry and specifications for this type of belt.

**Figure 1.** GT-2 belt (**a**) specifications and (**b**) basic geometry.

Figure 2 shows a common application, where a GT-style belt is used to transfer motion from a stepper motor to drive a linear positioning system. Also shown is a 2D dynamic model representation of such a system (Figure 2b), where the differences in effective stiffness, based on belt length, in the belt sections are clearly evident. The sections *L*<sup>1</sup> and *L*<sup>2</sup> change in effective stiffness as a function of time, while section *L*<sup>3</sup> stays constant during use [11,12] so the effective and nominal stiffnesses are equal.

**Figure 2.** (**a**) simple positioning system that utilizes a GT-type belt to drive the table and (**b**) its representative dynamic model.

The work described in this note explored the nominal stiffness *Csp* and the best way to model it in dynamic systems where belt length is not constant. Several previous studies have assumed that rubber-based timing belts have a linear nominal stiffness [5,11–18]. However, it is vital for designers and engineers working with dynamic systems which use belts for energy transfer to understand the true effects of the belt stiffness [19,20]. Therefore, experimental data was collected and used to derive conclusions on the true stiffness behavior of the GT-2 belts during use. The collected data was subjected to regression analysis to see which type of model best fit, allowing the comparison of models for the same dataset. The information in this study will prove useful, both in choosing *k* stiffness values for dynamic models and for judging expected model error if linear stiffness assumptions are used.

#### **2. Procedure and Results**

Two lengths of new GT-2 belts, 400 mm and 760 mm, were subjected to a simple tensile test until they ruptured. The test apparatus was a custom-built, screw-driven manual desktop test stand set up for tensile testing with 3000 *N* capability and a travel rate of 1/16 *in* (1.6 mm) per screw revolution. The screw drive was rotated at a constant rate of 0.5 revolutions per second (0.8 mm/s), a reading being taken every revolution of the screw or every 1.6 mm. Since the length measurement was based on a count of the threads during travel, the uncertainty in length was too small to quantify; the digital readout for the unit used a load cell with a given uncertainty of 100 gram-force or 0.89 *N*. It was necessary to use this kind of manual tensile testing machine as none of the available standard machines were sensitive enough to measure the force-deflection behavior of these kinds of belts [21]. In addition, the discrete time measurement ensured a reasonably-sized dataset for curve-fitting. This was replicated twice to obtain a set of six different curves, three from each length. The ruptured belts were observed to fail suddenly and to show tearing of the glass fibers inside, as shown in Figure 3. The GT-2 belts used were a composite of neoprene (synthetic rubber) [22] and glass fibers, where the fibers appeared to drive the failure point of the belts.

**Figure 3.** Belt break interface, showing broken fibers.

The collected data, in terms of force-deflection curves, are shown in Figure 4a, while the equivalent stress–strain curves for the tests are shown in Figure 4b. The length of the belts clearly had an effect on the force-deflection curves, but this largely disappeared when the length was accounted for in the stress–strain curves. Note that most of the curves show hyper-elastic behavior, i.e., there is no region in the curve where the stiffness is constant.

**Figure 4.** Belt stiffness curves: (**a**) force-deflection curve and (**b**) stress–strain curve.

As the nominal compliance of the belts was clearly found to be nonlinear, a regression analysis was performed to model the curves and find the level of unexplained variance in these curves. One of the most common polynomial regression models [23,24] used for hyper-elastic materials is the cubic polynomial. The basic model used for this study began with the following polynomial model:

$$
\sigma\_{belt} = A\varepsilon\_{belt}^3 + B\varepsilon\_{belt}^2 + C\varepsilon\_{belt} + D \tag{2}
$$

where a cubic model includes all of the variables, a quadratic model can be generated by setting *A* = 0, and a linear model can be used with *A* = *B* = 0. These curve fits, completed using Microsoft Excel™ (Microsoft Corp, Redmond, WA, USA) are shown in Figure 5a, and the fits for each of the variable and the resulting *R*<sup>2</sup> values are shown in the first six cases in Table 1.

After fitting the cubic models to each of the six sets of experimental data, the cubic model, a quadratic model, and a linear model were then fit to the entire set at once, as shown in Figure 5b. A significant drop in the *R*<sup>2</sup> value was noted for all of the models fit to the dataset, but differences between the cubic, quadratic, and linear models were observed to be small, as shown in Table 1.

It was observed that the low-strain region of the dataset (Figure 5b,c) conforms better to a linear model when the entire dataset is used. In actual use, it is most likely that the belts will not reach more than 20–30% of the belt breaking strength during normal use [14,25,26], so this is a valid assumption for many systems; this will, of course, need to be determined by the modeler or designer before using a linear belt model. If the low-strain assumption can be used, then the data fit a linear model with a slightly greater *R*<sup>2</sup> value than a quadratic model for the entire dataset and is certainly superior to a linear model for the entire dataset. The linear model for this case is shown in the last row of Table 1.

**Figure 5.** Curve fits for (**a**) individual belts (cubic model); (**b**) full sample curve fit (cubic, quadratic, and linear models); and (**c**) low-strain linear curve fit.


**Table 1.** Belt stiffness model curve fit data.

#### **3. Recommendations for Use and Applications**

In cases where a time-variant belt length is used in a dynamic system model, the time-dependent stiffness of the belt must be considered, even when a mix of time-variant and time-invariant belt lengths are used. In practice, it is recommended that the modeler follow a three-step procedure:

	- (a) If the belt length is constant and a linear model is used for *Csp*, the effective stiffness in the equations of motion will be constant and described by

$$k\_i = \mathbb{C}\_{sp} \frac{b}{L} \tag{3}$$

(b) If the belt length is constant and a nonlinear model is used to find *Csp*, the nominal stiffness will be a function derived form a force-deflection curve. The effective stiffness in that belt section will be described by

$$k\_i = \mathbb{C}\_{sp}(\mathbf{x})\frac{b}{L} \tag{4}$$

where *Csp*(*x*) is a continuous function of *x*.

(c) If the belt length is time-variant and a linear model is used for *Csp*, the effective stiffness in the equations of motion will be time-variant and described by

$$k\_i = \mathcal{C}\_{sp} \frac{b}{L(t)}\tag{5}$$

(d) If the belt length is time-variant and a nonlinear model is used to find *Csp*, the nominal stiffness will be a function derived form a force-deflection curve. In this case, the effective belt section stiffness will be described by

$$k\_i = \mathcal{C}\_{sp}(\mathbf{x}) \frac{b}{L(t)} \tag{6}$$

where *Csp*(*x*) is a continuous function of *x* and the belt length is a function of time. Therefore, the effective stiffness will be dependent on both the length of the belt and the amount of force placed on the belt.

When modeling these dynamic systems, it is recommended that the simplest model of the belt stiffness which gives acceptable accuracy be used in order to balance computational cost with extreme accuracy in the model. In most cases, the uncertainty in the material properties of the belt and the common use of linearization in dynamic models would erase any advantage to using an extremely high-fidelity belt model.

#### **4. Conclusions**

This short technical note presents the results of a brief exploratory study on modeling the nominal stiffness of GT-2 timing belts; this information can be used to more accurately model the true, time-variant, stiffness behavior of common GT-2 belts when the effective length of belt sections changes with time. It was observed that these belts do not behave in a linear way, as expected for belts with a hyper-elastic base material, but that a linear model can provide a reasonable approximation of the behavior under some conditions, particularly low-strain conditions. When possible, the cubic stiffness model should be used, but this would often be impractical for dynamic systems with many components, as it can cause a simple model to become nonlinear in more than one variable. When practical and necessary for problem tractability, a linear model may be used with a reasonable degree of accuracy. The modeler or designer should keep in mind that some uncertainty will exist with any belt model and should choose the model that best balances accuracy with computational cost.

**Author Contributions:** B.W. and A.E.P. conceived and designed the study. All authors helped to set up the experiments, collect data, perform the regression analyses, and write the report.

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

**Conflicts of Interest:** The authors declare no conflict of interest. No external funding was used to perform the work described in this study. Opinions and conclusions presented in this work are solely those of the authors.

#### **Nomenclature**


#### **References**


© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

### **Author Index**

#### **A**

Ahmmad, Syed Masrur 173 Allison, James T. 215

#### **B**

Betancor Bosch, Javier 83 Boschetti, Giovanni 127 Beschi, Manuel 153 Billah, Md Masum 173

#### **C**

Ciupitu, Liviu 71 Carbonari, Luca 103 Callegari, Massimo 103 Cattai, Mattia 111 Chadha, Charul 215

#### **D**

Del Vescovo, Dionisio 57 Diaz De Cerio Sanchez, Alejandro 83 Di Gregorio, Raffaele 111

#### **F**

Fassi, Irene 43 Faroni, Marco 153

#### **G**

Giorgio, Ivan 57 Giberti, Hermes 185

**H**  Huq, Naim Md Lutful 173

**K**  Khan, Md Raisuddin 173

**L**  Legnani, Giovanni 43 Liu, Guojun 143 La Mura, Francesco 185 **N**  Nawratil, Georg 25

#### **P**

Palpacelli, Matteo 103 Palmieri, Giacomo 103 Pedrocchi, Nicola 153 Parmeggiani, Marco 185 Patterson, Albert E. 215

#### **R**

Rigi, Amin 83 Resmini, Gabriele 185

#### **S**

Simas, Henrique 111 Shafie, Amir Akramin 173 Si, Yefei 215

#### **T**

Tsiotras, Panagiotis 1 Trevisani, Alberto 127

#### **V**

Valverde, Alfredo 1 Vitzilaios, Nikolaos 83 Visioli, Antonio 153

 ǰȱ£ȱȱȱȱŘŗś

**Z**  Zweiri, Yahya 83

MDPI St. Alban-Anlage 66 4052 Basel Switzerland Tel. +41 61 683 77 34 Fax +41 61 302 89 18 www.mdpi.com

*Robotics* Editorial Office E-mail: robotics@mdpi.com www.mdpi.com/journal/robotics

MDPI St. Alban-Anlage 66 4052 Basel Switzerland

Tel: +41 61 683 77 34 Fax: +41 61 302 89 18