Modular Robots - Theory and Practice
Modular Robots - Theory and Practice
Modular Robots:
Theory and Practice
Research on Intelligent Manufacturing
Editors-in-Chief
Han Ding, Huazhong University of Science and Technology, Wuhan, Hubei, China
Ronglei Sun, Huazhong University of Science and Technology, Wuhan, Hubei,
China
Series Editors
Kok-Meng Lee, Georgia Institute of Technology, Atlanta, GA, USA
Cheng’en Wang, School of Mechanical Engineering, Shanghai Jiao Tong
University, Shanghai, China
Yongchun Fang, College of Computer and Control Engineering, Nankai University,
Tianjin, China
Yusheng Shi, School of Materials Science and Engineering, Huazhong University
of Science and Technology, Wuhan, Hubei, China
Hong Qiao, Institute of Automation, Chinese Academy of Sciences, Beijing, China
Shudong Sun, School of Mechanical Engineering, Northwestern Polytechnical
University, Xi’an, Shaanxi, China
Zhijiang Du, State Key Laboratory of Robotics and System, Harbin Institute of
Technology, Harbin, Heilongjiang, China
Dinghua Zhang, School of Mechanical Engineering, Northwestern Polytechnical
University, Xi’an, Shaanxi, China
Xianming Zhang, School of Mechanical and Automotive Engineering, South China
University of Technology, Guangzhou, Guangdong, China
Dapeng Fan, College of Mechatronic Engineering and Automation, National
University of Defense Technology, Changsha, Hunan, China
Xinjian Gu, School of Mechanical Engineering, Zhejiang University, Hangzhou,
Zhejiang, China
Bo Tao, School of Mechanical Science and Engineering, Huazhong University of
Science and Technology, Wuhan, Hubei, China
Jianda Han, College of Artificial Intelligence, Nankai University, Tianjin, China
Yongcheng Lin, College of Mechanical and Electrical Engineering, Central South
University, Changsha, Hunan, China
Zhenhua Xiong, School of Mechanical Engineering, Shanghai Jiao Tong
University, Shanghai, China
Research on Intelligent Manufacturing (RIM) publishes the latest developments
and applications of research in intelligent manufacturing—rapidly, informally and
in high quality. It combines theory and practice to analyse related cases in fields
including but not limited to:
Intelligent design theory and technologies
Intelligent manufacturing equipment and technologies
Intelligent sensing and control technologies
Intelligent manufacturing systems and services
This book series aims to address hot technological spots and solve challenging
problems in the field of intelligent manufacturing. It brings together scientists and
engineers working in all related branches from both East and West, under the
support of national strategies like Industry 4.0 and Made in China 2025. With its
wide coverage in all related branches, such as Industrial Internet of Things (IoT),
Cloud Computing, 3D Printing and Virtual Reality Technology, we hope this book
series can provide the researchers with a scientific platform to exchange and share
the latest findings, ideas, and advances, and to chart the frontiers of intelligent
manufacturing.
The series’ scope includes monographs, professional books and graduate
textbooks, edited volumes, and reference works intended to support education in
related areas at the graduate and post-graduate levels.
© Huazhong University of Science and Technology Press, Wuhan and Springer Nature Singapore Pte
Ltd. 2022
This work is subject to copyright. All rights are reserved by the Publishers, whether the whole or part of the
material is concerned, specifically the rights of reprinting, reuse of illustrations, recitation, broadcasting,
reproduction on microfilms or in any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known
or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication
does not imply, even in the absence of a specific statement, that such names are exempt from the relevant
protective laws and regulations and therefore free for general use.
The publishers, the authors, and the editors are safe to assume that the advice and information in this book
are believed to be true and accurate at the date of publication. Neither the publishers nor the authors or
the editors give a warranty, express or implied, with respect to the material contained herein or for any
errors or omissions that may have been made. The publishers remain neutral with regard to jurisdictional
claims in published maps and institutional affiliations.
This Springer imprint is published by the registered company Springer Nature Singapore Pte Ltd.
The registered company address is: 152 Beach Road, #21-01/04 Gateway East, Singapore 189721,
Singapore
Preface
v
vi Preface
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Past Research and Development Efforts . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Overview of This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Module Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Module Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Joint Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Revolute Joint Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 Prismatic Joint Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Link Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Modular Robot Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1 Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Basic Graph Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.2 Matrix Representation of Graphs . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Kinematic Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Re-classification of Links and Joints . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4 Assembly Incidence Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Modular Serial Robot Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Geometric Background and the POE Formula . . . . . . . . . . . . . . . . . . 34
4.2.1 Geometric Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.2 The POE Formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Forward Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.1 Dyad Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.2 Forward Kinematics for a Tree-Structured Modular
Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4 Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4.1 Differential Kinematics Model for a Single Branch . . . . . . . 45
4.4.2 Differential Kinematics Model for a Tree-Structured
Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
vii
viii Contents
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
List of Figures
Fig. 7.16 Average fitness value in every generation (pose problem) . . . . . . 114
Fig. 7.17 Minimal fitness value in every generation (pose problem) . . . . . . 115
Fig. 7.18 Optimal robot configuration (pose problem) . . . . . . . . . . . . . . . . . 115
Fig. 7.19 Execution of the given task with the optimal robot
configuration (pose problem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Fig. 7.20 Sub-optimal robot configurations (pose problem) . . . . . . . . . . . . 116
Fig. 8.1 Two modular three-leg parallel robot configurations . . . . . . . . . . 121
Fig. 8.2 Kinematic structure of a three-legged parallel robot . . . . . . . . . . . 123
Fig. 8.3 A Schematic diagram of the 3RPRS PKM with DMA . . . . . . . . . 126
Fig. 8.4 Projected planar 3RRR PKM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Fig. 8.5 A forward singularity configuration: passive joint axes
pass through leg-end points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Fig. 8.6 A forward singularity configuration: one passive joint axis
falls into plane A1 A2 A3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Fig. 8.7 A forward singularity configuration: two passive joint axes
are parallel to A2 A3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Fig. 8.8 Reduced 3RS parallel mechanism . . . . . . . . . . . . . . . . . . . . . . . . . 137
Fig. 8.9 Forward singularity configurations . . . . . . . . . . . . . . . . . . . . . . . . 138
Fig. 8.10 An inverse singularity configuration: one joint axis passes
through its corresponding leg-end point . . . . . . . . . . . . . . . . . . . . 139
Fig. 8.11 An inverse singularity configuration: three joint axes
in a leg are parallel and coplanar . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Fig. 8.12 Inverse singularity configurations . . . . . . . . . . . . . . . . . . . . . . . . . 140
Fig. 8.13 Combined singularity configuration . . . . . . . . . . . . . . . . . . . . . . . . 141
Fig. 8.14 Visualization of S O(3) with Euler angles representation . . . . . . . 143
Fig. 8.15 Visualization of S O(3) with T&T angles representation . . . . . . . 144
Fig. 8.16 Visualization of S O(3) with exponential coordinates
representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Fig. 8.17 Isotropic Partition of a rectangular parallel piped . . . . . . . . . . . . . 147
Fig. 8.18 Equi-volumetric partition of a solid cylinder . . . . . . . . . . . . . . . . 149
Fig. 8.19 Equi-volumetric partition of a hemispherical shell . . . . . . . . . . . . 150
Fig. 8.20 Integration measure distributions . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Fig. 9.1 A three-leg parallel robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Fig. 9.2 Iterative calibration loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Fig. 9.3 Coordinate frames for base and tool calibration . . . . . . . . . . . . . . 168
Fig. 9.4 Iterative calibration loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Fig. 9.5 Calibration convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Fig. 9.6 Quantified deviation versus number of measurement
postures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
List of Tables
xv
Chapter 1
Introduction
1.1 Motivation
Modularity usually refers to the design concept of making multiple independent func-
tional units first and then integrating them into a complete system. Such a design
concept has been seen in many engineering disciplines: mechanical engineering,
electrical and electronics engineering, and computer and software engineering. Mod-
ularity will bring in the capabilities of re-usability, rapid change-over, and ease-of-
maintenance. A system designed in such a way would be reconfigurable, scalable,
and flexible. From the system level aspect, the overall performance may not be opti-
mized although the individual unit is optimal. More integration effort, for instance,
the compatibility between different units, has to be made on modularly designed
systems.
Robotic automation systems are extensively employed for manufacturing appli-
cations. Nowadays, they also make their ways into other areas, such as medical and
health care, hazardous environment exploration, security, military, law enforcement,
and entertainment. In the design and selection of an effective robotic automation sys-
tem for a set of tasks or services, however, system flexibility and productive capacity
are always the main concern. Figure 1.1 shows the application scenarios of different
robotic and automation systems based on the variety and volume (or quantity) of
the tasks (services). For high-volume/low-variety tasks (services), fully customized
equipment is preferred because the capital investment can be justified by the relia-
bility and productivity provided by the system. For low-volume/high-variety tasks
(services), fully general-purpose machines can be employed because the high profit
margin can cover the capital investment and maintenance cost. However, there is
a large area of tasks (services) that belongs to the mid-volume/mid-variety range,
which usually is a compromise between flexibility and productivity. In this case,
employing modularly designed robotic automation systems becomes an attractive
solution. This is because (1) the flexibility of the system can be enabled through
the reconfiguration of the modular units, and at the same time (2) the high level of
productivity can be achieved through the optimally designed modular workcells that
provide high operational efficiency.
This book mainly discusses issues related to Modular Reconfigurable Robot Sys-
tems (MRRSs). An MRRS is a collection of individual link and joint modules that can
be assembled into various robot configurations for a diversity of task requirements.
Such a modular robotic system has a variety of application scenarios: an individual
joint module can be used as a self-contained motion control element; fully assembled
systems can be used as robots with a variety of configurations and Degrees of Free-
dom (DOFs). Here we focus on the fully assembled systems—the modular robots.
Many research issues, such as module design, kinematic and dynamic modeling,
kinematic calibration, and configuration optimization, arise during the integration of
the modules into effective robot systems.
There has been an increasing interest in designing modularized robot systems in past
few decades. The research efforts include system hardware design [1–12], kinematics
[4, 13–18], dynamics [15, 19–21], control [8, 10, 22], calibration [15, 23–26], and
task-based design of modular robot configurations [7, 14, 22, 27–34]. This section
briefly reviews the fundamental research efforts on modular robotics. Literature sur-
veys on the individual topics will be presented in the corresponding chapters.
The most fundamental issue in modular robotics is the system hardware design
including both mechanical and electronic designs. Up to date, several prototype
systems have been demonstrated in various research institutions, such as the Recon-
1.2 Past Research and Development Efforts 3
by 180◦ about its main axis. Based on the Denavit–Hartenberg parameter notation,
a configuration independent kinematic modeling technique is also proposed for this
system [13].
1.2 Past Research and Development Efforts 5
encoder and link-side encoder), torque sensor, and other components, as shown in
Fig. 1.6.
In the early 2000s, the modular self-reconfigurable robots start to draw the atten-
tion of many researchers [37–41]. Modular self-reconfigurable robots involve various
modules that can combine themselves autonomously and make transformations into
many different topological configurations that are capable of performing various
tasks. The ability to self-reconfigure allows these robots of metamorphosis, which in
turn makes them capable of performing different sorts of kinematics. For instance, a
robot may transform into a multi-leg configuration to walk through uneven terrain,
and then re-transform into a snake-like robot to move through a cave. This sort of
adaptability enables self-reconfigurable robots to accomplish tasks in unstructured
environments; such as space exploration, deep sea applications, rescue missions,
or reconnaissance. Some representative modular self-reconfigurable robots are: M-
TRAN (Fig. 1.7) [42], ATRON (Fig. 1.8) [43], SUPERBOT (Fig. 1.9) [44], SMORSE
(Fig. 1.10) [45].
An extensive study on modular robot mechanical structures is performed in the
University of Texas at Austin [1, 2, 11]. An inventory of joint modules includ-
ing 1-DOF “elbows”, 2-DOF “knuckle”, and 3-DOF “shoulders” and “wrists”, and
a variety of link modules with different lengths, cross-sections, and materials are
designed and tested. To evaluate the performance of an individual module, two per-
formance matrices, namely, joint module performance matrix and link module per-
formance matrix are defined. This research actually advocates a “component” design
1.2 Past Research and Development Efforts 7
approach, rather than a general “complete structure” design approach. Several opti-
mization algorithms are also proposed for the simple (one and two-dimensional)
robot configuration design [1].
The DRRS at the Science University of Tokyo [6, 46], however, has a very different
system design. The idea of this study is to apply the cell system of living creatures
to a robot system with some intelligence analogous to the biological gene. There are
four types of cells (modules) in the DRRS: joint cells, mobile cells, branching cells,
and work cells. All cells are identical in dimensions. The connection and detachment
between cells are carried out by the mobile or joint cells through a hook type coupling
mechanism. A cone-shaped mechanism guides the cells during the coupling. The cells
in the DRRS possess certain intelligence and communication capability so that they
can reconfigure themselves autonomously.
In addition to the research types of MRSs, there are a few commercial MRSs:
RMD-1 by Engineering Services Inc. of Canada and MoRSE by AMTEC GmbH of
Germany.
8 1 Introduction
i.e., joint modules and link modules. The joint modules are self-contained control
units, including 1-DOF revolute and prismatic joint modules. The connectors for
mechanical and electrical coupling of modules have also been designed. Based on the
building block principle, each module is designed as a cube with multiple connecting
sockets so that many possible configurations can be constructed, e.g., serial and tree-
structured types. A detailed introduction to the MRRS is addressed in Chap. 2.
Note that past research efforts on modular robot systems are mainly focused on
the hardware design. Various types of robot modules and module connectors have
been designed and developed. The software aspect of modular robots, however, is
yet to be studied intensively. Algorithms, such as kinematic and dynamic modeling
algorithms, employed in most of the existing modular robot systems are transplanted
from the conventional robot systems and are configuration-dependent. Module and
configuration selection and optimization algorithms are in their primitive stages.
Hence, in order to develop an effective MRRS, the algorithm and software aspect of
modular robots should be emphasized.
This book addresses several fundamental research topics relating to the MRRS, i.e.,
conceptual module design, module assembly representation, kinematics, dynamics,
calibration, and optimization of modular robot configurations. A unified geometric
12 1 Introduction
framework that addresses most of the aspects of the MRRS has been proposed in this
book. By taking tools from graph theory and differential geometry, the geometric
framework provides an integrated and effective tool for modeling, analysis and design
of modular robots. Note that although most of the algorithms developed in this book
are meant for the MRRS, they are generic and can be applied to all existing modular
robot systems as well.
The remaining chapters of this book are organized as follows:
• Chapter 2 introduces the fundamental design issues of robot modules, such as their
design requirements, conceptual designs, and geometrical representations.
• Chapter 3 proposes a kinematic graph based representation technique, termed
Assembly Incidence Matrix (AIM), to mathematically represent modular robot
configurations, which lays down a solid foundation for automatic model genera-
tions.
• Chapter 4 addresses the kinematics issues of modular serial robots. A configuration-
independent geometric modeling method based on the local presentation of
Product-of-Exponentials (POE) formula is employed to automatically generate
the forward and inverse kinematic models for general three-structured modular
robots.
• Chapter 5 addresses the kinematic calibration issues of modular serial robots.
Based on the local presentation of the POE formula, a configuration-independent
kinematic calibration modeling method is proposed for general tree-structured
modular robots.
• Chapter 6 addresses the dynamics issues of modular serial robots. A configura-
tion independent dynamic modeling method based on the Newton–Euler equa-
tion is employed to automatically formulate the dynamic models of general tree-
structured modular robots in both recursive and closed forms.
• Chapter 7 proposes a task-oriented configuration optimization method for modular
serial robots. A Minimized Degrees of Freedom (MDOF) approach is introduced to
optimize the robot configurations for a given task. With the virtual module concept
and an effective coding scheme, an Evolutionary Algorithm (EA) is employed to
conduct both type and dimension optimization for modular serial robots uniformly.
• Chapter 8 addresses the kinematics issues of modular parallel robots. The local
presentation of the POE formula is employed to formulate the displacement, instan-
taneous kinematics, singularity, and workspace analysis algorithms for a class of
three-legged modular parallel robots.
• Chapter 9 addresses the kinematic calibration issues of modular parallel robots.
Based on the local presentation of the POE formula, a two-step kinematic calibra-
tion modeling method, i.e., self-calibration followed by base-tool calibration, is
proposed for the three-leg modular parallel robots.
Chapter 2
Module Designs
Abstract This chapter introduces the conceptual designs of both joint and link
modules. Although the actual joint and link modules may have different geometrical
shapes, these modules are often connected with each other either in co-linear or
orthogonal ways. Therefore, to generically describe the connectivity of a Modular
Reconfigurable Robot System (MRRS), the joint and link modules are conceptually
designed as cubes or rectangular cuboids so that multiple faces of a joint or link
module can be used as the connecting interfaces with other modules.
ity. The last requirement is essential for a modular robot to perform tasks requiring
high accuracy and rigidity.
There are five types of lower pair joints commonly used in robot systems: revolute
(1-DOF), prismatic (1-DOF), cylindrical (2-DOF), planar (2-DOF), and spherical (3-
DOF) [14]. Since a multi-DOF joint can be obtained by combining several 1-DOF
joints, it is unnecessary to have complex multi-DOF joint designs in the MRRS.
Hence, only two types of 1-DOF joint modules, i.e., revolute joint modules and
prismatic joint modules are considered.
Link modules are used to connect or support joint modules by means of connectors.
The geometry of the link module is similar to the revolute joint module but without the
2.3 Link Modules 17
built-in actuator and the moving socket. In the conceptual design of the link modules,
the six connecting sockets in a link module are all fixed as shown in Fig. 2.6. The
location of C M is expressed in the module frame which is located at the center of
the cube, as shown in Fig. 2.7. The initial matrix is given with respect to the C M
frame. Because the link module is a symmetric cube, the model frame and the C M
frame coincide with each other.
Chapter 3
Modular Robot Representation
Abstract This chapter reviews the basic concepts, definitions, and algorithms in
graph theory, which is important to the mathematical representation of modular
robot assembly configurations. Since a modular robot is a collection of link and
joint modules, a re-classification scheme for links and joints is proposed to translate
a modular robot into a kinematic graph. Finally, the modified Assembly Incidence
Matrix (AIM) is introduced to fully describe the assembly configuration of a mod-
ular robot in a compact matrix form, which makes the automatic generation of the
kinematic, dynamic, and calibration models more convenient.
3.1 Graphs
In this section, several basic concepts and definitions in graph theory are reviewed. All
the graphs discussed here are simple graphs. For more details, please refer to [48, 49].
Definition 3.1 (Graph) A graph G = (V, E) consists of a vertex set, V (G), and an
edge set, E(G), such that every edge in E(G) is associated with a pair of vertices in
V (G) (Fig. 3.1a).
Definition 3.2 (Directed Graph) A directed graph (or digraph) is a graph in which
every edge is associated with an ordered pair of vertices (Fig. 3.1b).
Definition 3.3 (Connected Graph) A graph is connected if for every pair of distinct
vertices {vi , vj } there is a path from vi to vj (Fig. 3.2a).
(b
Definition 3.4 (Tree) A tree is a (minimal) connected graph without cycle (Fig. 3.2b).
Note that, for a tree, if the root is given, the tree will become a directed or rooted
tree. Moreover, a tree with n vertices has n − 1 edges.
Definition 3.5 (Labeled Graph) A labeled graph is a graph in which the vertices
are labeled by v1 , v2 , . . . , vm , and the edges are labeled by e1 , e2 , . . . , en , such that
V = {v1 , v2 , . . . , vm } and E = {e1 , e2 , . . . , en } (Fig. 3.3a).
Usually, we do not differentiate among the types of vertices (edges). If the vertices
(edges) are assumed to be different, a more complex graph, termed specialized graph,
should be defined.
A graph can also be expressed in matrix forms that are very convenient for computer
processing. The following matrix representations for graphs are extensively used
throughout this book.
Example 3.2 The adjacency and incidence matrix of the underlying graph shown
in Fig. 3.4a can be written as:
v0 v1 v2 v3 v4 v5 v6
⎛ ⎞
v0 0 1 0 0 0 0 0
v1 ⎜1 0 1 1 0 0 0⎟
⎜ ⎟
v2 ⎜0 1 0 0 1 1 0⎟
⎜ ⎟
B(G) = v3 ⎜ 0 1 0 0 0 0 1 ⎟,
⎜ ⎟
v4 ⎜0 0 1 0 0 0 0⎟
⎜ ⎟
v5 ⎝0 0 1 0 0 0 0⎠
v6 0 0 0 1 0 0 0
22 3 Modular Robot Representation
e1 e2 e3 e4 e5 e6
⎛ ⎞
v0 1 0 0 0 0 0
v1 ⎜1 1 1 0 0 0⎟
⎜ ⎟
v2 ⎜0 1 0 1 1 0⎟
⎜ ⎟
M(G) = v3 ⎜0 1⎟
⎜ 0 1 0 0 ⎟.
v4 ⎜0 0 0 1 0 0⎟
⎜ ⎟
v5 ⎝0 0 0 0 1 0⎠
v6 0 0 0 0 0 1
v0 v1 v2 v3 v4 v5 v6
⎛ ⎞
v0 0 1 0 0 0 0 0
v1 ⎜0 0 1 1 0 0 0⎟
⎜ ⎟
v2 ⎜0 0 0 0 1 1 0⎟
⎜ ⎟
B(G) = v3 ⎜ 0 0 0 0 0 0 1 ⎟,
⎜ ⎟
v4 ⎜0 0 0 0 0 0 0⎟
⎜ ⎟
v5 ⎝0 0 0 0 0 0 0⎠
v6 0 0 0 0 0 0 0
e1 e2 e3 e4 e5 e6
⎛ ⎞
v0 1 0 0 0 0 0
v1 ⎜ −1 1 1 0 0 0 ⎟
⎜ ⎟
v2 ⎜ 0 −1 0 1 1 0 ⎟
⎜ ⎟
M(G) = v3 ⎜ 0 0 −1 0 1 ⎟
⎜ 0 ⎟.
v4 ⎜ 0 0 0 −1 0 0 ⎟
⎜ ⎟
v5 ⎝ 0 0 0 0 −1 0 ⎠
v6 0 0 0 0 0 −1
It is not difficult to see that the structure of a labeled graph/digraph can be described
by its adjacency or incidence matrix. The incidence matrix, in general, is not a square
3.1 Graphs 23
matrix so that it lacks some of the power of the adjacency matrix in computation
aspect. Despite this shortcoming, the incidence matrix has some valuable uses. For
example, the incidence relationship among all vertices and edges of a graph can be
fully described by such a vertex-edge incidence matrix.
If G is a labeled digraph derived from a labeled graph G (as shown in Fig. 3.4),
there is a simple connection between the adjacency matrix of G, B(G), and the
incidence matrix of G, M(G), such that:
where D(G) is the n × n diagonal matrix in which the entry in row i and column i
is equal to the degrees of vertex vi in G, i.e., the number of non-zero entries in the
ith row of M(G).
Example 3.4 The accessibility matrix of the directed graph G as shown in Fig. 3.4b
can be written as
v0 v1 v2 v3 v4 v5 v6
⎛ ⎞
v0 0 1 1 1 1 1 1
v1 ⎜0 0 1 1 1 1 1⎟
⎜ ⎟
v2 ⎜0 0 0 0 1 1 0⎟
⎜ ⎟
R(G) = v3 ⎜ 0 0 0 0 0 0 1 ⎟.
⎜ ⎟
v4 ⎜0 0 0 0 0 0 0⎟
⎜ ⎟
v5 ⎝0 0 0 0 0 0 0⎠
v6 0 0 0 0 0 0 0
The accessibility matrix R(G) can be simply derived from the powers of the
adjacency matrix B(G) according to the following computation procedure:
1. Let Q(G) = B(G) + B2 (G) + · · · + Bm (G);
2. Convert Q(G) into R(G) such that if qi j = 0, then ri j = 1; it is 0, otherwise.
Definition 3.12 (Path Matrix) Let G = (V, E) be a directed tree with m pendant ver-
tices, where V = {v0 , v1 , . . . , vn } and E = {e1 , e2 , . . . , en }. The path matrix P(G)
is the m × (n + 1) matrix in which the entry in row i and column j is 1, if path i
contains vj−1 (i = 1, 2, . . . , m; j = 1, 2, . . . , n + 1); it is 0, otherwise.
Example 3.5 The path matrix of the directed (rooted) tree shown in Fig. 3.4b can
be written as
24 3 Modular Robot Representation
v v v v v v v
⎛ 0 1 2 3 4 5 6⎞
p1 1 1 1 0 1 0 0
P(G) = p2 ⎝ 1 1 1 0 0 1 0 ⎠.
p3 1 1 0 1 0 0 1
The path matrix of a directed (rooted) tree P(G) can be derived from its accessi-
bility matrix R(G) according to the following computation scheme:
1. Let U(G) = R(G) + In×n , where In×n is a n × n identity matrix in which n
is the number of vertices;
2. Delete column i of U(G), if the entries in row i of R(G) are not all equal to
0;
3. P(G) is given by the transpose of the resulting U(G).
A tree G becomes a rooted or directed tree G when the root vertex is specified. If the
incidence matrix of an underlying tree, M(G), and the root vertex are given, we can
derive various matrix representations of G, such as M(G), B(G), R(G), and P(G),
by employing a tree traversing algorithm, e.g., Breadth-First Search (BFS) algorithm
or Depth-First Search (DFS) [50, 51] algorithm, to search M(G). Alternatively, if
the rows (vertices) in M(G) are arranged in the BFS searching sequence as shown in
Fig. 3.4a and Example 3.2 (refer to [50] for more details), then M(G), B(G), R(G),
and P(G) can be derived by the following computation procedure:
1. Initialization: Given M(G);
2. Set M(G) equal to M(G) and then let the first row remain unchanged and
the first non-zero entry in each of the remaining rows (from left to right)
become –1;
3. Set the entry in row i and column i of D(G) to be equal to the number of
non-zero entries in the ith row of M(G) or M(G);
4. Compute B(G) by Eq. (3.1);
5. Set B(G) equal to B(G) and then let all the entries in the lower triangular
block become zero;
6. Compute R(G) according to the powers of B(G);
7. Compute P(G) from R(G) by the algorithm proposed previously.
3.1 Graphs 25
Definition 3.13 (Extended Incidence Matrix [14]) The Extended Incidence Matrix
(eIM) of the specialized graph G̃ denoted by M(G̃) is an (m + 1) × (n + 1) matrix
such that:
• m i j = 1, if ej is incident on vi ; m i j = 0, otherwise (i = 1, . . . , m; j = 1, . . . , n);
• m i,n+1 = f v (vi ) ∈ Ṽ , which is vi ’s vertex assignment (i = 1, . . . , m);
• m m+1, j = f e (ej ) ∈ Ẽ, which is ej ’s edge assignment ( j = 1, . . . , n);
• m m+1,n+1 = 0.
Example 3.6 The eIM of the specialized graph shown in Fig. 3.3b is given by
e1 e2 e3 e4 e5 Ṽ
⎛ ⎞
v1 1 0 0 0 0 A
v2 ⎜0 1 0 0 0 A⎟
⎜ ⎟
v3 ⎜1 1 1 0 0 B⎟
⎜ ⎟
M(G̃) = v4 ⎜0 B⎟
⎜ 0 1 1 1 ⎟.
v5 ⎜0 0 0 1 0 C⎟
⎜ ⎟
v6 ⎝0 0 0 0 1 C⎠
Ẽ x x y z z 0
In mechanism design, kinematic chains of links and joints are often represented by
graphs. As a joint can be connected to two links only and a link may accept more
than one joint, one logical way to convert a kinematic chain to a graph is to replace
the joints with edges and links with vertices. Such a graph representation is called a
kinematic graph [52] and has been widely used in mechanism synthesis and design
[14, 53–55]. Figure 3.5 shows a planar 6-bar linkage and its kinematic graph. Note
that the ground is treated as a fixed link here.
A modular robot is a collection of link and joint modules so that it is essentially a
kinematic chain of links and joints. It follows that a modular robot after conversion
can also be represented by a kinematic graph. This graph technique provides a frame-
work for the study of underlying geometric and kinematic properties of a modular
26 3 Modular Robot Representation
robot, for example, the functional difference between a star type graph topology (a
walking robot) and a serial type graph topology (an industrial robot). Section 3.4 will
show that a modular robot assembly configuration can be fully described by adding
more structural and connecting information of modules to the incidence matrix of
a kinematic graph. The graph theory and numerous graph algorithms thus can be
directly employed for enumeration and classification of modular robot assembly
configurations [14].
Based on the module designs, any two modules in the Modular Reconfigurable Robot
System (MRRS), regardless of their types and sizes, can be connected through a
connector. For instance, two joint modules can also be assembled together. Therefore,
we cannot directly convert such a modular robot into a kinematic graph just by
replacing the joint modules with edges and link modules with vertices. To solve this
problem, a re-classification scheme for links and joints is proposed to translate a
modular robot into a common kinematic chain.
In this re-classification scheme, each module, regardless of its type, is consid-
ered as a “link”; each connector is considered as a “joint” between two consecutive
modules. The connecting points on the modules are termed connecting sockets or
connecting ports. The connector is treated as a “revolute joint” when fastened to the
rotating socket of the revolute joint module; a “prismatic joint” when fastened to the
translating socket of the prismatic joint module; and a “fixed joint” when fastened to
two fixed sockets of any modules. The fixed joint does not allow any joint displace-
ment, i.e., the two modules are rigidly connected together. Note that, two moving
sockets of different modules cannot be connected through a connector in the MRRS.
According to the dimensions of the actually designed modules and the re-
classification scheme, the link set, L, consists of six elements: L={L c1 , L c2 , L r 1 , L r 2 ,
L p1 , L p2 }. L c1 and L c2 represent the large and the small cubic links (or cubic link
modules), respectively; L r 1 and L r 2 represent the large and the small revolute links
(or revolute link modules), respectively; and L p1 and L p2 represent the large and the
small prismatic links (or prismatic link modules), respectively. Similarly, the joint
3.3 Re-classification of Links and Joints 27
Example 3.7 Figure 3.7a shows the assembly configuration of a modular robot. Its
kinematic graph is a specialized graph, as shown in Fig. 3.7b. The eIM of this graph
is given by
⎡ ⎤
1 0 0 0 L c1
⎢ 1 1 0 0 Lr1 ⎥
⎢ ⎥
⎢ 0 1 1 0 Lr1 ⎥
M(G̃) = ⎢ ⎢ 0 0 1 1 L p2 ⎥ .
⎥
⎢ ⎥
⎣ 0 0 0 1 L c2 ⎦
J f 1 Jr 1 Jr 2 J p3 0
28 3 Modular Robot Representation
A modular robot usually consists of modules of different types and sizes. Thus, it can
be topologically described by a specialized graph, and then represented by an eIM.
However, the eIM cannot fully represent the assembly configuration of a modular
robot because it does not contain the assembly information such as the locations of the
connected sockets with respect to the modules and the relative assembly orientation
of connected links. Hence, a modified eIM is proposed in order to represent the
assembly configuration of a modular robot in a matrix form. Since each of the 1
entries in the eIM defines the connectivity of a link and a joint, a possible approach
to modify the eIM is to replace the 1s with specially defined labels to indicate the
assembly information between links and joints.
As mentioned in Chap. 2, a joint is allowed to attach a connecting socket of a link
in four different orientations as shown in Fig. 3.8. These four symmetric orientations
are marked by the numbers 1, 2, 3, and 4 corresponding to four different positions
of the location holes. In other words, when the connecting socket and the position of
the locating pin are given, the assembly of a link and a joint is uniquely determined.
Therefore, the label to be defined should be capable of indicating any connecting
socket and the position of the locating pin on a link. Based on the cubic or cube-
like shape of links shown in Fig. 3.6, the label is defined by an ordered pair of
directional parameters, termed a port vector P = ( p1 , p2 ), where p1 represents the
normal direction of the connecting port on a link that the connector is engaged, and
p2 describes the position of the locating pin, i.e., the approaching orientation of the
connected joint. The directional parameters p1 and p2 are all with respect to the link
3.4 Assembly Incidence Matrix 29
module frame so that p1 , p2 ∈ {±x, ±y, ±z}, where ±x, ±y, and ±z represent the
positive and negative directions of x, y, and z axes of the link frame, respectively and
p1 = p2 . By taking advantage of the inherent relations of the connecting sockets,
positions of the location pin, and link frame, the defined labels can conveniently
describe the assembly information. For instance, if the connecting socket is on the
top surface of the module and the location pin occurs at position “1” as shown in
Fig. 3.8, the corresponding port vector for this assembly pattern is given by P =
(+z, −y). Note that the representation and assignment of the labels are non-unique.
The labels of the connecting sockets can also be represented by other symbols such
as numbers [14].
Definition 3.14 (Assembly Incidence Matrix [4, 14]) Let G̃ be the specialized graph
of a modular robot and M(G̃) be its eIM. The AIM of this robot A(G̃) is defined by
substituting each of 1s in M(G̃) with the corresponding port vector P = ( p1 , p2 ),
where p1 , p2 ∈ {±x, ±y, ±z} and p1 = p2 .
Example 3.8 The AIM of the modular robot shown in Fig. 3.7a is given by
⎡ ⎤
(+z, +y) 0 0 0 L c1 (Base)
⎢(−z, +y) (+z, +x) 0 0 Lr1 ⎥
⎢ ⎥
⎢ 0 (−x, +y) (+z, +y) 0 Lr1 ⎥
⎢
A(G̃) = ⎢ ⎥.
⎢ 0 0 (−z, +x) (+z, +x) L p2 ⎥ ⎥
⎣ 0 0 0 (−y, +z) L c2 ⎦
Jf1 Jr 1 Jr 2 J p3 0
Although a modular robot system can render many possible kinematic structures
such as tree and closed loop types, we focus on the tree-structured robots that both
serial and star-like robots belong to. Since the base module in a specific robot assem-
bly is always known, we, for convenience, always arrange the rows in an AIM in the
BFS order. On the other hand, once such an AIM is given, it is very easy to derive
the incidence matrix of its underlying graph by first deleting the last column and last
row of the AIM and then setting all the non-zero entries to 1. It follows that both
the accessibility and path matrices of a (rooted) tree-structured modular robot can
be derived from the given AIM automatically. Note that the AIM can also be used to
represent closed-loop modular robot configurations without modification [14].
Chapter 4
Modular Serial Robot Kinematics
Abstract This chapter briefly reviews the significant research results in robot kine-
matics. Based on the local frame representation of the Product-of-Exponentials
(POE) formula—the local POE formula, the dyad kinematics between two consec-
utive links is introduced. Applying the dyad kinematics recursively on the adjacent
links, the forward kinematics of a tree-structured robot can be derived by means of
the path matrix. The inverse kinematics algorithm follows a numerical approach on
top of the Newton-Raphson iteration method. It can deal with pure position, pure
orientation, and hybrid inverse kinematics problems.
4.1 Introduction
Robot kinematics is one of the fundamental issues in robotics. It studies the motion
of robots for programming, control, and design purposes. Based on the geometric
relationships of links and joints, several effective kinematic modeling methods, such
as the Denavit-Hartenberg (D-H) method [56], the screw coordinates method [57],
the zero reference position method [59], and the Product-of-Exponentials (POE)
formula [60] have been developed for conventional robots. Among them, the D-H
representation and the POE formula are two significant milestones in robot kinemat-
ics.
The D-H method [56] uses a 4 × 4 homogeneous transformation matrix to
describe the spatial relationship between adjacent links. The forward kinematics
problem becomes finding an equivalent 4 × 4 homogeneous transformation matrix
that relates the spatial displacement of the end-effector coordinate frame to the base
reference coordinate frame. Based on particularly assigned link frames, the number
of geometric parameters in the D-H representation of a robot is minimized such that
only four geometric parameters, including the joint angles, are required to formu-
late the homogeneous transformation matrix between two adjacent links. The D-H
method is algorithmically universal in deriving the kinematic equations of a robot.
However, the D-H representation results in a set of rigidly defined coordinate frames
one set of local coordinate frames, termed module frames is required to describe the
motion of a modular robot. Such a local frame is naturally assigned to each of the
modules as shown in Fig. 3.6. A modular robot assembly is then represented by its
intrinsic properties, i.e., the locations of the joint axes and the types of the joints,
which can be conveniently derived from an AIM by means of a port conversion
scheme. The dyad kinematics that relates to the motion of two consecutive modules
under a joint displacement was also proposed. Using dyad kinematics along with
a tree-traversing algorithm to search for a given AIM, one can derive the forward
kinematics automatically.
The inverse kinematics problem consists of the determination of joint variables
corresponding to a given end-effector position and orientation. The solution to this
problem is of fundamental importance in order to transform the motion specifications
assigned to the end-effector in the task space into the corresponding joint space
motions that allow the execution of the desired motion.
There are two main approaches, namely, the analytical method and the numerical
method, which have been well addressed in the inverse kinematics literatures. The
main advantages of the analytical approach over the numerical one are the deriva-
tion of computationally efficient closed-form solutions, where each joint variable is
expressed in terms of other known quantities, and all the solutions can be found simul-
taneously [65, 66, 68, 69]. However, the existence of closed form inverse kinematics
solutions depends on the kinematic structure of the robot. For example, a sufficient
condition for a 6-DOF serial type robot to have a closed form solution is that the
three adjacent joint axes intersect together. Therefore, when a general-purpose pro-
gram for solving the inverse kinematics problem is needed, the numerical method
is the preferred approach for solution. Many numerical algorithms have been devel-
oped so far. Most of them are based on multi-dimensional Newton-Raphson iteration
scheme or similar techniques such as the modified predictor-corrector algorithm, the
conjugate gradient algorithm, and the separation of variable method to provide a solu-
tion [75–80, 86]. In [81, 82, 101], the inverse kinematic problem was modified as
an optimization problem, and numerical optimization algorithms are thus employed
to search for the solutions. Most of these inverse kinematics models were based on
the D-H notation, and only fixed-configuration, serial type robots are considered.
Note that, in the past two decades, there has also been an increasing interest in
the symbolic computation of the inverse kinematics of a serial, articulated robot,
especially, the 6R robot. Most of these studies have focused on the derivation of
high degree polynomials in the tangent of the half-angle of joint variables, and
implementation of efficient and robust algorithms to find all of the roots of the poly-
nomial [70–74, 83–85]. Although this approach is general, only serial robots with
revolute joints are considered, and at present it is still slow for on-line computations.
For a modular robot system, one can build numerous robots with distinct geome-
tries out of an inventory of robot modules [14]. Therefore, it is impossible and
impractical to derive the kinematics model of every modular robot configuration
case by case and store the models as library packages in the computer. Khosla et
al. [17], based on the D-H notation, proposed a numerical inverse kinematic algo-
rithm for serial type modular robots. In this chapter, based on the local POE formula,
34 4 Modular Serial Robot Kinematics
we present a systematic modeling scheme which can generate the inverse kinematic
model of a modular robot with tree-structured geometry automatically [16]. In this
scheme, we use a path matrix of the underlying robot geometry to assist the con-
struction of the inverse kinematics model. Some variations have also been made on
the inverse kinematic model for dealing with the pure position, pure orientation, and
hybrid inverse kinematics problems. According to the differential form of the result-
ing inverse kinematic model, a numerical approach using Newton-Raphson iteration
method is employed. Note that the main objective of this scheme, like the work of
Featherstone [86], is to increase the generality of the inverse kinematic algorithm,
which is very important for modular robot systems.
In this section, the POE formula as well as the geometric background is reviewed.
For more details, please refer to [60–62, 87].
where ⎡ ⎤
0 −wz w y
ŵ = ⎣ wz 0 −wx ⎦ . (4.3)
−w y wx 0
The set of 3 × 3 real skew-symmetric matrices, ŵ, forms the Lie algebra of S O(3),
denoted by so(3). Note that an element of ŵ ∈ so(3) can also be regarded as a vector
4.2 Geometric Background and the POE Formula 35
w ∈ 3×1 . Since in most cases it will be clear from the context which representation
is implied, an element of so(3), ŵ, will also be simply denoted by w in such cases. An
element of se(3) will thus admit a 6 × 1 vector presentation: (v, w) ∈ 6×1 , termed
a twist. The twist denotes the line coordinate of the screw axis of a general rigid body
motion (rotation and translation) in which w is the unit directional vector of the axis
and v is the position of the axis relative to the origin.
On matrix Lie algebras, the Lie bracket is given by the matrix commutator: if A and
B are elements of a matrix Lie algebra, then [A, B] = AB − B A. In particular, on
so(3) the Lie bracket of two elements corresponds to their vector product: [w1 , w2 ] =
w1 × w2 . On se(3), the Lie bracket of two elements (v1 , w1 ) and (v2 , w2 ) is given
by
[(v1 , w1 ), (v2 , w2 )] = (w1 × v2 − w2 × v1 , w1 × w2 ). (4.4)
An element of a Lie group can also be identified with a linear mapping between its
Lie algebra via the adjoint representation. Suppose G is a matrix Lie group with Lie
algebra g. For every X ∈ G, the adjoint map Ad X : g → g is defined by Ad X (x) =
X x X −1 for x ∈ g. If X = ( p, R) is an element of S E(3), then its adjoint map acting
on an element x = (v, w) of se(3) is given by
An important connection between a Lie group, S E(3), and its Lie algebra, se(3), is
the exponential mapping, defined on each Lie algebra. Let ŝ ∈ se(3) (s = (v, w)),
and w2 = wx2 + w 2y + wz2 , then
36 4 Modular Serial Robot Kinematics
ŵ
e Av
eŝ = ∈ S E(3), (4.9)
0 1
where
sin w 1 − cos w 2
eŵ = I + ŵ + ŵ , (4.10)
w w2
1 − cos w w − sin w 2
A=I+ ŵ + ŵ . (4.11)
w 2 w3
The matrix logarithm also establishes a connection between a Lie group, S E(3), and
its Lie algebra, se(3) [87]. Let R ∈ S O(3) such that trace(R) = −1, 1 + 2 cos φ =
trace(R), and φ < π , then
R p ŵ A∗ p
log = ∈ se(3), (4.12)
0 1 0 0
where
φ
ŵ = log R = (R − R T ), (4.13)
2 sin φ
1 2 sin w − w(1 + cos w) 2
A∗ = I − ŵ + ŵ . (4.14)
2 2w2 sin w
We now briefly review the POE formula for open chain robots in which the links
form a single serial chain and each pair of links is connected either by a revolute
joint or a prismatic joint [60, 62, 87]. For convenience, we temporarily number the
joints from 1 to n, starting at the base, and number the links such that joint i connects
links i − 1 and i. Link 0 is taken to be the base and link n is taken to be the end
link. If a right-handed reference frame is fixed at each link of the chain, then the
element of S E(3) describing the position and orientation of frame i relative to frame
i − 1 is Ti−1,i (qi )= Ti−1,i (0)eŝi,i qi , where Ti−1,i (0) ∈ S E(3) is the initial position and
orientation of frame i relative to frame i − 1, ŝi,i or simply ŝi ∈ se(3) represents the
twist of joint i’s axis expressed in frame i, and qi ∈ is the joint i’s displacement.
The frame fixed at the end-effector or the end-link is then related to that of the base
by the product
If the twist of joint i’s axis is expressed in frame i − 1, denoted by ŝi−1,i , Eq. (4.15)
can be rewritten as
T0,n (q1 , q2 , . . . , qn ) = eŝ0,1 q1 T0,1 (0)eŝ1,2 q2 T1,2 (0) . . . eŝn−1,n qn Tn−1,n (0), (4.16)
−1
where ŝi−1,i = Ti−1,i (0)ŝi Ti−1,i (0) = AdTi−1,i (0) si .
If all the twists are expressed in the base frame 0, Eq. (4.15) can also be written as
As a first step, a systematic and general method is to be derived in order to define the
relative position and orientation of two consecutive links. The problem is to determine
two frames attached to the two links and compute the coordinate transformations
between them. In general, these two frames can be arbitrarily chosen as long as they
are attached to the link they are referring to. Since there exists a local frame (module
frame) on each of the links, it is unnecessary and inconvenient to define new frames
on the links. For convenience, we adopt these naturally defined module frames as
the local frames throughout this book.rr
A dyad is referred to as a pair of consecutive links in a kinematic chain. Based on
the local POE formula, i.e., Eq. (4.15), the dyad kinematics which relates the motion
of two connected modules under a joint displacement is defined as follows:
Let vi and vj be two adjacent links connected by a joint ej , as shown in Fig. 4.1 and
also consider joint ej and link vj as link assembly j. Denote the module coordinate
frames on link vi as frame i and link vj as frame j. Then the relative pose (position
and orientation) of frame j with respect to frame i, under a joint displacement, q j ,
can be described by a 4 × 4 homogeneous matrix, an element of S E(3), such that
Ti j (q j ) = Ti j (0)eŝ j q j , (4.19)
where Ri j (0) ∈ S O(3) and di j (0) ∈ 3×1 are the initial orientation and position of
link frame j relative to frame i, respectively. The twist of link assembly j is written
as
ŵ j v j
ŝ j = , (4.21)
0 0
The columns of Ri j (0) represent the initial orientation of the axes of frame j
relative to frame i. Furthermore, the first, second, and third columns of Ri j (0),
denoted by Rimj (0)(m = 1, 2, 3), represent the unit directional vector of x, y,
and z-axis of frame j relative to frame i initially. Let Pik = aik = ( pik , qik ) and
P jk = a jk = ( p jk , q jk ) be the port vectors of the two connected modules i and j,
respectively. Since these two connecting sockets are facing each other, the direc-
tion of p jk of frame j is opposite to the direction of the pik of frame i. According
to this relationship, the direction vector of one axis of frame j (related to p jk ) with
respect to frame i can be determined, which is opposite to the direction of pik and
then put in the corresponding column of Ri j (0) according to p jk . For instance,
in Fig. 4.2, if Pik = ( pik , qik ) = (+z i , +xi ) and P jk = ( p jk , q jk ) = (−x j , +y j ),
then the direction of x-axis of frame j, x j , is now in the z-direction of frame i,
+z i , so that the vector (0, 0, 1) should be put into the first column of Ri j (0).
In the port vectors, qik and q jk represent the attaching orientations of joint ek
on links vi and vj , respectively, which are corresponding to the positions of the
location pins. They are in the same physical direction according to our definition.
Hence, the direction of another axis of frame j (related to q jk ) with respect to
frame i can also be determined. It is in the direction of qik and then put into the
corresponding column of Ri j (0) according to q jk . Following the previous example
(Fig. 4.2), since the y direction of frame j, y j , is in the x direction of frame i, the
unit vector (1, 0, 0) is placed in the second column of Ri j (0).
According to the port vectors of two connected links, we can get two column vec-
tors of the initial orientation matrix Ri j (0). Since Ri j ∈ S O(3) is an orthogonal
matrix, the remaining column vector can be calculated by the cross product of the
two known column vectors using one of the following equations:
4.3 Forward Kinematics 41
where dvi (or dvj ) is the distance from the origin of link frame i (or j) to the con-
necting surface of aik -port (or a jk -port), and dek is the length of joint (connector)
ek . All these dimensions can be derived from the module database according to a
given dyad vector.
42 4 Modular Serial Robot Kinematics
• Determination of s j
Here, s j is the twist coordinate of joint ek , which is expressed in frame j. Since vi
is the ancestor of vj , the twist ŝ j should, according to our assembly rules, point to
connecting socket of vj . As a result, the direction of ŝ j is opposite to the direction
of p jk . Hence, s j can be determined by the following procedure:
1. If ek is a revolute joint, then s j = (0, w j )T , where w j is a unit directional
vector in frame j representing (− p jk ).
2. If ek is a prismatic joint, then s j = (υ j , 0)T , where υ j is a unit directional
vector in frame j representing (− p jk ).
3. If ek is a fixed joint, then s j = (0, 0)T .
Example 4.1 As shown in Fig. 4.2, link vi of type L r 1 and link vj of type L r 1
are connected through joint ek of type Jr 1 . Link vi is the ancestor of Link vj . The
connected port vectors of vi and vj are Pik = (+z i , +yi ) and P jk = (−x j , +y j ),
respectively. Based on the algorithms mentioned above, we can obtain:
⎡ ⎤
010
Ri j (0) = ⎣0 0 1⎦ , di j (0) = (0, 0, 350 mm), and s j = (0, 0, 0, 1, 0, 0)T .
100
The forward kinematic equation for the tree-structured modular robot with m
branches is
⎡ ⎤ ⎡ n[1] ⎤
i=1 (T(i−1)1 ,i 1 (0)e )
ŝi1 qi1
T0,n[1]1
⎢ T0,n[2]2 ⎥ ⎢ n[2] (T(i−1) ,i (0)eŝi2 qi2 ) ⎥
T (q1 , q2 , . . . , qn ) = ⎢
⎣ ... ⎦ = ⎣
⎥ ⎢ i=1 2 2 ⎥.
⎦ (4.31)
...
n[m]
i=1 (T(i−1)m ,i m (0)e )
T0,n[m]m ŝim qim
Example 4.2 The AIM of a tree-structured modular robot (as shown in Fig. 4.3) is
given by
44 4 Modular Serial Robot Kinematics
⎡ (z, x) 0 0 0 0 0 0 0 0 0 Lr 1
⎤
⎢(−z,0 y) (−x,
(z, x) 0 0 0 0 0 0 0 0 L p1
⎥
⎢ y) (z, x) 0 0 0 0 0 0 0 Lr 1 ⎥
⎢ 0 0 (x, y) (−z, −y) (z, y) 0 0 0 0 0 Lr 2 ⎥
⎢ 0 (−x, y) (z, y) ⎥
⎢ 0 0 0 0 0 0 0 0 Lr 2
⎥
A(G̃) = ⎢ 0 0 0 (−y, −x) 0 (z, x) 0 0 0 Lr 2 ⎥.
⎢ 0 0 0 0 0 (y, z) 0 (z, x) 0 0 Lr 2 ⎥
⎢ 0 0 (−x, y) (z, y) 0 L r 2 ⎥
⎢ 0 0 0 0 0 0
⎥
⎢ 0 0 0 0 0 0 (−z, x) 0 0 L c2 ⎥
⎣ 0 0 0 0 0 0 0 0 (x, z) (z, y) L r 2 ⎦
0 0 0 0 0 0 0 0 0 (y, z) L c2
Jr 1 J p1 Jr 2 Jf2 Jr 2 Jr 3 Jr 3 Jr 3 Jr 3 Jr 3 0
Using the algorithms proposed in the previous chapter, the path matrix of A(G̃) can
be derived:
11111010100
P(G) = .
11110101011
According to the path matrix, we know that this robot has two branches. The first
branch consists of links 0, 1, 2, 3, 4, 6, and 8; the second branch consists of links 0,
1, 2, 3, 5, 7, 9, and 10. Note that the sequential number of a link is the same as the
row number of that link in the AIM. Using our forward kinematics algorithm, the
kinematic transformations from the base (link 0) to link 8 and link 10 can be given
by:
T0,8
T (q1 , q2 , . . . , q10 ) =
T0,10
⎡ 3 ⎤
Ti−1,i (0)e ŝi qi
T3,4 (0)e ŝ4 q4
T4,6 (0)e ŝ6 q6
T6,8 (0)e ŝ8 q8
= ⎣ 3 ⎦.
i=1
i=1 i−1,i (0)e T3,5 (0)eŝ5 q5 T5,7 (0)eŝ7 q7 T7,9 (0)eŝ9 q9 T9,10 (0)eŝ10 q10
ŝi qi
T
Figure 4.3 shows the robot configuration with joint angles q = [ π4 ,100 mm, π4 , 0,
π π π π π π T
, , , , , ] .
4 4 4 4 4 4
The purpose of an inverse kinematics algorithm is to determine the joint angles that
cause a robot to reach a desired pose of the end-effector (the end link). Because
a modular robot has unfixed assembly configurations and the number of DOFs in
the robot varies, it is usually impossible to find the closed-form inverse kinematics
solution for a modular robot. Hence, a numerical approach is employed. In general, a
numerical inverse kinematics model can be derived through linearizing the forward
kinematic equation. Based on the local POE formula and the definition of logarithm
on S E(3) and S O(3), a compact and computational effective inverse kinematics
model for a general tree-structured robot was derived by Chen and Yang [16]. This
model can be easily modified to solve the pure position, pure orientation, and hybrid
inverse kinematics problems. This section starts from formulating the inverse kine-
matics model of a single branch of a tree-structured robot. The obtained formula is
suitable for serial and star-like robots which are the commonly used robot geome-
4.4 Inverse Kinematics 45
tries. Then the inverse kinematics model as well as a closed-loop iterative algorithm
is proposed for a complete tree-structured robot.
According to Eq. (4.30), the linearized kinematic equation for branch k can be given
by
n[k]
∂ T0,n[k]k
dT0,n[k]k = dqik . (4.32)
i=1
∂qik
Since
we have
n[k]
dT0,n[k]k = T0,ik ŝik Tik ,n[k]k dqik . (4.34)
i=1
−1
Left-multiplying both sides of Eq. (4.34) by T0,n[k]k
, then
n[k]
−1
T0,n[k]k
dT0,n[k]k = Ti−1 ŝ T
k ,n[k]k i k i k ,n[k]k
dqik . (4.35)
i=1
dT0,n[k]k = T0,n[k]
d
k
− T0,n[k]k . (4.36)
−1 2
−1 −1
(T0,n[k] Td
k 0,n[k]k
− I)
log(T0,n[k] Td
k 0,n[k]k
) = T0,n[k] Td
k 0,n[k]k
−I−
2
−1 3
(T0,n[k] Td
k 0,n[k]k
− I)
+ − ··· . (4.38)
3
Using first order approximation, we get
−1 −1
T0,n[k]k
dT0,n[k]k = log (T0,n[k] Td
k 0,n[k]k
). (4.39)
n[k]
−1
log (T0,n[k] Td
k 0,n[k]k
)= Ti−1 ŝ T
k ,n[k]k i k i k ,n[k]k
dqik . (4.40)
i=1
The explicit formulae for calculating the logarithm of elements of S O(3) and S E(3)
are derived by Park [87] (refer to Sect. 4.2). They are the inverse of exponen-
−1
tial map, i.e., log: S O(3) → so(3) and S E(3) → se(3). Here, log (T0,n[k] Td
k 0,n[k]k
)
is an element of se(3) so that it can be identified by a 6 × 1 vector denoted by
−1 ∨
log (T0,n[k] Td
k 0,n[k]k
) in which the first and later three elements represent the position
d
and orientation differences between T0,n[k]k and T0,n[k] k
. The twist ŝik can also be iden-
tified with a 6 × 1 vector sik . Converting Eq. (4.40) into the adjoint representation
[62, 87], we get
∨
n[k]
−1
log (T0,n[k] Td
k 0,n[k]k
) = AdT−1
i ,n[k]
sik dqik . (4.41)
k k
i=1
n[k]
−1
log(T0,n[k] Td
k 0,n[k]k
)∨ = AdT0,n[k]
−1 AdT0,ik sik dqik . (4.42)
k
i=1
For simplicity, Eq. (4.42) can also be expressed in the following form:
where
−1 ∨
DTk = log (T0,n[k] Td
k 0,n[k]k
) ∈ 6×1 , is referred to as the pose difference vector;
Jk = Ak Bk Sk ∈ 6×n[k] , is termed the body manipulator Jacobian matrix;
Ak = AdT0,n[k]
−1 ∈ 6×6 ;
k
Bk = r ow[AdT0,1k , AdT0,2k , . . . , AdT0,n[k]k ] ∈ 6×6n[k] ;
Sk = diag[s1k , s2k , . . . , sn[k]k ] ∈ 6n[k]k ×n[k] ;
4.4 Inverse Kinematics 47
where
−1 ∨ ∨
D Rk = log (R0,n[k] k
d
R0,n[k]k
) = log (R0,n[k]
T
k
d
R0,n[k]k
) ∈ 3×1 ;
d
R0,n[k]k
∈ S O(3) is the desired orientation.
2. Pure position problem
A pure position problem for a branch means that the desired pose of the end link
frame is a 3 × 1 position vector, i.e., only the frame position (origin) is to be
satisfied. Similar to Eq. (4.45), we have
D P k = J Pk dqk , (4.46)
where
−1
D Pk = R0,n[k] k
(P0,n[k]
d
k
− P0,n[k]k ) = R0,n[k]
T
k
(P0,n[k]
d
k
− P0,n[k]k ) ∈ 3×1 ;
P0,n[k]k ∈
d 3×1
is the desired position.
A tree-structured robot is a branching type mechanism without any loop. For such a
robot, the inverse kinematics problem is to find a set of joint variable values that will
place every end-effector to its own desired pose simultaneously. In general, several
48 4 Modular Serial Robot Kinematics
branches in a tree-structured robot may contain some common links and joints so
that the inverse kinematic equations of these branches are dependent on each other.
If we treat each of the branches as a serial type robot and individually calculate their
inverse solutions, the computation results are usually infeasible because a common
joint may be required to take different values at a time in order to place every end link
to its own desired pose. Here, we propose an algorithm that can restrict any common
joint to take only one value at a time automatically. This algorithm works by orderly
combining the inverse kinematic equations of all constituting branches into a single
equation according to the path matrix. When such an equation is solved numerically,
a feasible solution can be derived. The input of this algorithm is a given AIM, a set
of desired poses corresponding to all the end links, and an initial guess solution of
the joint angles.
Based on the definition of the path matrix and Eq. (4.43), the combined inverse
kinematic equation of a tree-structured robot can be given as follows:
DT = J dq, (4.47)
where
DT = column[DT1 , DT2 , . . . , DTm ] ∈ 6m×1 , is termed as the generalized pose dif-
ference vector;
J = AB S ∈ 6m×n , is termed as the generalized body manipulator Jacobian matrix;
A = diag[A
⎡ 1 , A2 , . . . , Am ] ∈
6m×6m
; ⎤
p12 AdT0,1 p13 AdT0,2 . . . p1(n+1) AdT0,n
⎢ p22 AdT0,1 p23 AdT0,2 . . . p2(n+1) AdT0,n ⎥
B=⎢ ⎣ ...
⎥ ∈ 6m×6n , in which
⎦
pm2 AdT0,1 pm3 AdT0,2 . . . pm(n+1) AdT0,n
pi j (i = 1, 2, . . . , m; j = 1, 2, . . . , n) is the entry in the ith row and jth column of
path matrix P(G);
S = diag[s1 , s2 , . . . , sn ] ∈ 6n×n ;
dq = column[dq1 , dq2 , . . . , dqn ] ∈ n×1 .
For our purpose, the matrix J can also be written in a block matrix form of
J = column[J1 , J2 , . . . , Jm ] with Ji = column[J Pi , J Ri ] (i = 1, 2, . . . , m), where
J Pi and J Ri ∈ 3×n .
Using the Newton-Raphson method, a closed-loop iterative algorithm similar
to [17] is employed as shown in Fig. 4.4. This iterative algorithm determines the
necessary changes in the joint angles to achieve the differential changes in the poses
of the end links. Rewriting Eq. (4.47) in an iterative form, we get
dq i+1 = J ∗ DT , (4.48)
calculate J ∗ , which can treat non-square and singular Jacobian matrices in a uniform
way [243].
Given an AIM and a set of desired poses T d corresponding to each of the end links,
the algorithm starts from an initial guess, q0 , somewhere in the neighborhood of the
desired solution. It is ended when the norm of dq converges to a small tolerance
and the desired poses for every branch thus are achieved simultaneously. Since
the AIM contains all the necessary assembly information of a modular robot, the
path matrix, forward kinematic equation, and inverse kinematic equation can be
generated automatically once an AIM is given. Note that Eq. (4.47) works when the
desired poses for each of the end link frames are all elements of S E(3). However,
the inverse kinematics problem of a general tree-structured robot may also be a
pure orientation problem, a pure position problem, or a hybrid problem. In order
to generalize this algorithm for various inverse kinematics problems, we make the
following modifications:
1. Pure orientation problem
The pure orientation problem for a tree-structured robot means that the desired
poses of all end links are elements of S O(3), i.e., only the end links’ orientations
are to be satisfied. Equation (4.47) can be modified as:
D R = J R dq, (4.50)
50 4 Modular Serial Robot Kinematics
where
D R = column[D R1 , D R2 , . . . , D Rm ] ∈ 3m×1 , is termed as the generalized ori-
entation difference vector;
J R = column[J R1 , J R2 , . . . , J Rm ] ∈ 3m×n , is termed as the generalized body ori-
entation Jacobian matrix.
2. Pure position problem
The pure position problem for a tree-structured robot means the desired poses of
all end links are elements of 3×1 , i.e., only the end links’ positions are to be
satisfied. Equation (4.47) can be modified as:
D P = J P dq, (4.51)
where
D P = column[D P1 , D P2 , . . . , D Pm ] ∈ 3m×1 , is termed as the generalized posi-
tion difference vector;
J P = column[J P1 , J P2 , . . . , J Pm ] ∈ 3m×n , is termed as the generalized body
position Jacobian matrix.
3. Hybrid inverse problem
The hybrid inverse kinematics problem for a tree-structured robot means that the
desired poses set contains either elements of S E(3), S O(3), or 3×1 . Hence,
the modified inverse kinematic equation should also be a mixed one containing
part of either Eq. (4.47), (4.50), or (4.51) accordingly. As an example, consider
a tree-structure modular robot with three branches. The desired poses for branch
1, branch 2, and branch 3 are elements of S E(3), S O(3), and 3×1 , respectively.
The resulting inverse kinematic equation for such a hybrid problem can thus be
given as follows:
D H = J H dq, (4.52)
where
D H = column[DT1 , D R2 , D P3 ] ∈ 12×1 ,is termed as the hybrid pose difference
vector, and DT1 ∈ 6×1 , D R2 , D P3 ∈ 3×1 ;
J H = column[J1 , J R2 , J P3 ] ∈ 12×n , is termed as the hybrid body manipulator
Jacobian matrix, and J1 ∈ 6×n , J R2 , J P3 ∈ 3×n , and n is the number of joints;
dq = column[dq1 , dq2 , . . . , dqn ] ∈ n×1 .
In order to illustrate the generality and effectiveness of the proposed inverse
kinematics algorithm, two computation examples are presented in this section: one
is the inverse kinematics of a tree-structured modular robot; the other is the inverse
kinematics of a serial type robot. Note that in these examples, the joint angles are
expressed in radians (for revolute joints) or millimeters (for prismatic joints), and
the position vectors are in millimeters. The computation programs are coded in
Mathematica, and executed on a PC with Pentium 133 processor.
4.4 Inverse Kinematics 51
Example 4.3 As shown in Fig. 4.3, this modular robot has two branches and consists
of 11 modules. According to the path matrix, branch 1 contains modules 0, 1, 2, 3,
4, 6, and 8 in which module 8 is the end link, while branch 2 contains modules 0, 1,
2, 3, 5, 7, 9, and 10 in which module 10 is the end link. Branch 1 is a 5-DOF (joint 4
is a fixed joint) RPRFRR type open chain, and branch 2 is a 7-DOF RPRRRRR type
open chain. The common modules of these two branches are modules 0, 1, 2, and 3.
1. The desired poses of module 8 and module 10 are both elements of S E(3). The
desired poses are as follows:
⎡ ⎤
−0.5 −0.5 −0.707107 358.471
⎢ −0.5 −0.5 0.707107 472.380⎥
d
T0,8 =⎢⎣−0.707107 0.707107
⎥ , and
0 880.546⎦
0 0 0 1
⎡ ⎤
0.228553 0.780330 0.582107 −22.097
⎢−0.875000 0.426777 −0.228553 601.539 ⎥
d
T0,10 =⎢⎣−0.426777 −0.457107 0.780330 1492.390⎦ .
⎥
0 0 0 1
Using our inverse kinematics algorithm, the numerical solution of q converges
to [0.7854, 100.00, 0.7854, 0, 0.7854, 0.7854, 0.7854, 0.7854, 0.7854, 0.7854 ]T
after 5 iterations with 5.38 s of computation time. The initial guess of q is [0.5236,
75, 0.5236, 0, 0.5236, 0.5236, 0.5236, 0.5236, 0.5236, 0.5236 ]T . Putting q into
the forward kinematics algorithm, the derived end link poses (actual poses) are
the same as the desired ones. This indicates that the inverse kinematics solution
is correct.
2. The desired pose of module 8 is a 3 × 1 vector, while the desired pose of module
10 is an element of S O(3). The desired poses are as follows:
d
P0,8 = [358.471, 472.380, 880.546]T , and
⎡ ⎤
0.228553 0.780330 0.582107
d
R0,10 = ⎣−0.875000 0.426777 −0.228553⎦ .
−0.426777 −0.457107 0.780330
This is a hybrid inverse kinematics problem. The numerical solution of q con-
verges to [0.7854, 75.00, 0.7918, 0, 0.8745, 0.5236, 0.8914, 0.7175, 0.7046,
0.6917]T after 5 iterations with 6.04 s of computation time. The initial guess of q
is also [0.5236, 75, 0.5236, 0, 0.5236, 0.5236, 0.5236, 0.5236, 0.5236, 0.5236]T .
Using the forward kinematics algorithm, the actual poses corresponding to the
numerical result of q are given by
52 4 Modular Serial Robot Kinematics
⎡ ⎤
−0.412101 −0.578610 −0.703835 358.478
⎢−0.295000 −0.646139 0.703903 472.378⎥
a
T0,8 =⎢ ⎥
⎣−0.862060 0.497711 0.095585 880.549⎦ , and
0 0 0 1
⎡ ⎤
0.228529 0.780344 0.582097 −61.974
⎢−0.875005 0.426756 −0.228574 615.260 ⎥
a
T0,10 =⎢
⎣−0.426779 −0.457102 0.780331 1448.420⎦ .
⎥
0 0 0 1
a
The actual position of module 8, P0,8 , and the actual orientation of module 10,
a
R0,10 , are also the same as the desired ones, respectively.
Example 4.4 As shown in Fig. 4.5, this modular robot consists of 7 modules, sequen-
tially, module 0, 1, 2, 3, 4, 5, and 6 in which module 0 is the base and module 6 is
the end link module. It is a 6-DOF RRRRRR type serial open chain. The given AIM
and desired pose are
⎡ ⎤
(z, y) 0 0 0 0 0 Lr1
⎢(−x, y) (z, y) 0 0 0 0 Lr1 ⎥
⎢ ⎥
⎢ 0 (x, y) (z, −x) 0 0 0 Lr1 ⎥
⎢ ⎥
⎢ 0 0 (y, x) (z, y) 0 0 Lr1 ⎥
A(G)=⎢ 0 0 (x. − z) (z, y)
⎥;
⎢ 0 0 Lr1 ⎥
⎢ 0 (−x, y) (z, y) L r 2 ⎥
⎢ 0 0 0 ⎥
⎣ 0 0 0 0 0 (x, y)L c2 ⎦
Jr 1 Jr 1 Jr 1 Jr 1 Jr 2 Jr 3 0
Table 4.1 Computation results
Cases Contents Algorithm based on POE formula Algorithm based on D-H notation
1 Initial Guess [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0]
Iterations 6 17
Time (s) 2.20 5.98
Solution [−.4456, −.7854, 2.3562, −.4456, .7854, .7854] [.5254, −.5826, 2.3747 − .8794, −.1670, .8787]
4.4 Inverse Kinematics
2 Initial Guess [0.2, 0.2, 0.2, 0.2, 0.2, 0.2] [0.2, 0.2, 0.2, 0.2, 0.2, 0.2]
Iterations 14 96
Time (s) 4.72 36.85
Solution [.5254, −.5826, 2.3747, −.8794, −.1670, .8787] [.7854, −.4456, 2.3562, −.7854, −.4456, .7854]
3 Initial Guess [0.4, 0.4, 0.4, 0.4, 0.4, 0.4] [0.4, 0.4, 0.4, 0.4, 0.4, 0.4]
Iterations 5 40
Time (s) 1.87 17.96
Solution [.1827, .5799, .7672, .8783, 1.4156, .8779] [−.4456, −.7854, 2.3562, −.4456, .7854, .7854]
4 Initial Guess [0.6, 0.6, 0.6, 0.6, 0.6, 0.6] [0.6, 0.6, 0.6, 0.6, 0.6, 0.6]
Iterations 5 8
Time (s) 1.76 2.86
Solution [.1827, .5799, .7672, .8783, 1.4156, .8779] [.1827, .5799, .7672, .8783, 1.4156, .8779]
5 Initial Guess [0.75, 0.75, 0.75, 0.75, 0.75, 0.75] [0.75, 0.75, 0.75, 0.75, 0.75, 0.75]
Iterations 3 4
Time (s) 1.1 1.37
Solution [.7854, .7854, .7854, .7854, .7854, .7854] [.7854, .7854, .7854, .7854, .7854, .7854]
6 Initial Guess [0.8, 0.8, 0.8, 0.8, 0.8, 0.8] [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
Iterations 3 3
Time (s) 0.99 0.93
Solution [.7854, .7854, .7854, .7854, .7854, .7854] [.7854, .7854, .7854, .7854, .7854, .7854]
53
54 4 Modular Serial Robot Kinematics
⎡ ⎤
−0.426777 0.875000 0.228553 −149.226
⎢−0.780330 −0.228553 −0.582107 115.235 ⎥
d
T0,6 =⎢ ⎥
⎣−0.457107 −0.426777 0.780330 1164.930 ⎦ .
0 0 0 1
Actually, the desired pose is derived by putting a set of joint angles q =[0.7854,
0.7854, 0.7854, 0.7854, 0.7854, 0.7854]T into the forward kinematics algorithm so
that the inverse solutions must exist. In order to demonstrate the effectiveness and
stability of our algorithm, a comparison with the method proposed by Kelma et al. [17]
in computational aspects is given in Table 4.1. Note that Kelma’s algorithm, based on
the D-H notation, is also proposed for modular robots. Based on the Newton-Raphson
method, this algorithm can also be used to derive the inverse kinematics solutions
for serial type robots automatically. It is said to be optimized for computational
efficiency and robustness, and has been implemented on a Motorola 68020/68881
based single board computer at rate on the order of 20 Hz.
The first computation example is to illustrate the generality of the proposed algorithm.
Hence, we choose a more general tree-structured modular robot. This robot, as shown
in Fig. 4.3, consists of two branches with three common joints. Each branch contains
both revolute joints and prismatic joints. Branch 1 is a 5-DOF nonredundant open
chain, while branch 2 is a 7-DOF redundant one. What encouraged us is that the
computation results are satisfactory in both cases, say, only 5 iterations are needed
to obtain the desired solutions. This example also shows that the proposed algorithm
is a general approach. It can deal with various inverse kinematics problems of a
tree-structured modular robot automatically, regardless of joint types and DOFs.
The second example, on the other hand, is to demonstrate the computational
efficiency and stability of this algorithm. As shown in Table 4.1, our algorithm
always uses less iterations as well as computation durations than the method proposed
in [17] does. As the initial guess solution is given close to the desired solution, the
differences between these two algorithms become less distinct because both methods
are locally convergent. This example shows that our algorithm is more efficient and
stable even if the initial guess solution is not very close to any nominal solution.
The possible reasons are: (1) instead of using the conventional Jacobian matrix, this
inverse kinematic algorithm is formulated in terms of the body velocity Jacobian,
and (2) without using the differential homogeneous transformation matrix [68], the
differential change of the end link pose is computed by using the matrix logarithm
on S E(3). As a result, this newly developed algorithm might have a larger local
convergent field. However, the exact reasons are still not clear. More research effort
needs to be done in the future for an analytical explanation. Note that the algorithm
in [17] is also implemented using Mathematica.
Chapter 5
Kinematic Calibration for Modular
Serial Robots
5.1 Introduction
In the modular robot system, a set of modules is joined together through connec-
tors/adapters to form a complete robot assembly. However, due to the machining
tolerance in the fabrication of the modules, the misalignments in the consecutive
modules during assembly, and the wear and drift in the mechanical parts after a long
period of use, geometric errors are introduced in the robot kinematic parameters. This
will certainly lower the positioning accuracy of the robot. Compared to a monolithic
designed industrial robot, a modular robot has more connecting points. Furthermore,
its configuration will often be changed to cater for different task requirements through
reselection and reconfiguration of the modules. Hence, identifying the critical kine-
matic parameters to improve the positioning accuracy of the end-effector is a very
important issue for modular reconfigurable robots. Modular robot calibration comes
into play in at least two situations. One is after the reconfiguration of a robot geom-
etry. In this case, new kinematic parameters of the robot have to be identified and
corrected. The other is after a large number of operations because of the possible
loose module connections. The actual kinematic parameters may vary from those
previously calibrated.
nificantly, the kinematic parameters in the POE formula vary smoothly with changes
in joint axes so that no special descriptions are required when adjacent joint axes are
close to parallel. This fact makes the POE formula more suitable for calibration pur-
pose. Park and Okamura [107, 108] proposed a calibration model based on the POE
formula for general open chain robots. This model assumes that kinematic errors
exist in each of the joint axes and the home position of the tool frame. All the kine-
matic parameters are expressed with respect to the base frame, and the attachment
of local frames to each joint axis is unnecessary.
Because the robot geometries that a modular robot system can generate differ
significantly, e.g., serial and tree-structured types, conventional calibration schemes
dealing with specific type of robots with serial geometry are not suitable under such
circumstances. Moreover, because of the modularity, it is simple and convenient
to express the kinematic parameters in the local reference frames. Following the
POE formula approach, we propose here a singularity-free kinematic calibration
modeling method for the MRRS [23–26, 109]. This calibration model is based on
the local frame representation of the POE formula, termed the Local POE model.
In this modeling scheme, instead of identifying the kinematic errors in the joint
axes relative to the module frames, which may involve complicated computations,
all the kinematic errors are assumed to exist in the relative initial pose of every
dyad. The calibration procedure is to redefine a new local coordinate frame on each
module, in which the twist coordinates of the joint axis and joint angles retain their
nominal values. By linearizing the forward kinematic equation with respect to the
kinematic parameters in the local coordinate frames, four compact error models are
derived for robot calibration. Then an iterative least-squares algorithm is employed
for calibration solution. Three simulation examples of calibrating a 3-module robot,
a SCARA type robot, and a tree-structured robot are demonstrated. The simulation
results have shown that the average positioning accuracy of the end-effector increases
significantly after calibration.
In general, the kinematic calibration model, i.e., the error model, can be derived by
linearizing the forward kinematic equation with respect to the kinematic parameters.
The kinematic calibration thus involves making several measurements of the end-
effector pose error and determining the optimal (actual) values of the kinematic
parameters to minimize the error in the least-square sense. For convenience, we first
formulate the calibration model for serial type robots, and then modify the model to
suit the calibration of tree-structured robots.
Consider a serial type robot with n + 1 modules and an end-effector (tool). With-
out loss of generality, we sequentially number the local coordinate frames from 0
(representing the base frame) to n + 1 (representing the tool frame). The forward
kinematics can be given by
58 5 Kinematic Calibration for Modular Serial Robots
where Tn,n+1 represents the fixed kinematic transformation from the end module (end
link) frame to the tool frame. The assembly of the end module and the tool can be
considered as a fixed kinematic dyad, termed as the last dyad.
According to Eq. (5.1), the nominal forward kinematics T0,n+1 (q) or simply T0,n+1
is a function of T (0), S, and q, denoted by T = f (T (0), S, q), where T (0), S, and
q represent the initial poses, twist coordinates, and joint angles, respectively, i.e.,
T (0) = [T0,1 (0), T1,2 (0),. . ., Tn−1,n (0), Tn,n+1 ]T , S = [s1 , s2 ,. . .,sn ]T , and q =[q1 ,
q2 ,. . .,qn ]T .
We first consider two consecutive modules (i − 1) and i, i.e., a dyad, as shown
in Fig. 5.1. Due to the geometric errors, module i’s nominal frame i and twist ŝi are
shifted to the actual frame ‘i a ’ and twist ‘ŝia ’, respectively. The kinematic calibration,
therefore, becomes to identify each of the actual module frames, joint twists, and the
joint angle offsets. Of course, we can formulate an error model to directly identify
these kinematic quantities. However, such a model will be very complicated because
every dyad contains 13 redundant and highly coupled error parameters, i.e., six for the
actual frame, six for the actual twist, and one for the actual joint angle. Especially, to
identify the actual twists (joint axes) is rather difficult and may involve complicated
computations [108].
By taking advantage of the local POE formula in which the local reference frames
can be arbitrarily assigned, we are able to redefine a new local frame, termed the cal-
ibrated frame ‘i c ’ for each of modules during the calibration process. Then the robot
positioning errors are minimized in the least-square sense, maintaining the twists
and joint angles at their nominal values (Fig. 5.1) in the new defined local frames.
5.2 Kinematic Calibration Models 59
As a result, the calibrated frame i c may not coincide with the actual frame i a . In this
case, the new kinematic errors, termed the modeling errors, will be introduced to the
dyad. Fortunately, the modeling errors in a dyad can be lumped into its succeeding
dyad.
In the ‘last dyad’, i.e., the last module and the tool as shown in Fig. 5.2, there is
no joint twist so that the geometric errors only exist in the initial pose. We, therefore,
are able to recover the modeling errors presented in its preceding dyad and also
achieve the coincidence of both the calibrated tool frame (n + 1)c and the actual
(measured) tool frame (n + 1)a upon calibration. If we calibrate a robot without a
tool, we can still add a tool frame that normally coincides with the last module frame.
This additional dyad, termed as the compensation dyad, can be used to compensate
for the modeling errors presented in its preceding dyad. Without loss of generality,
we also assume that the base model does not have geometric errors, i.e., the nominal
and actual base frames coincide with the world frame. Therefore, the kinematic
calibration becomes to identify the new defined local frames so as to reflect the
robot’s actual characteristics.
Assume that the kinematic errors occur only in p̂i , hence in Ti−1,i (0) (i = 1, 2, . . . , n)
and Tn,n+1 . By linearizing the forward kinematic equation, Eq. (5.2) with respect to
p̂i , the error models for robot calibration can be derived. Because the kinematic
errors in p̂i can be expressed in either frame i or frame i − 1, the following two
basic calibration models can be formulated accordingly.
60 5 Kinematic Calibration for Modular Serial Robots
1. Let the kinematic errors in p̂i be expressed in module frame i, denoted by d p̂i,i or
simply d p̂i . Since p̂i ∈ se(3), the error d p̂i is also an element of se(3). Geometri-
cally, d p̂i =e− p̂i d(e p̂i ) (refers to Appendix B) so that d(e p̂i ) =e p̂i d p̂i . Linearizing
Eq. (5.2) with respect to p̂i , we have
−1
Right-multiplying both sides of the resulting equation by T0,n+1 and using the
adjoint representation, the following error model can be shown:
−1
dT0,n+1 T0,n+1 = Ade p̂1 d p̂1 + Ade p̂1 eŝ1 q1 Ade p̂2 d p̂2
+ . . . + Ade p̂1 eŝ1 q1 e p̂2 eŝ2 q2 ...e p̂n eŝn qn Ade p̂n+1 d p̂n+1 , (5.4)
−1
where dT0,n+1 T0,n+1 ∈ se(3) represents the gross kinematic errors of a complete
robot with respect to the base frame. According to the formulation of matrix
−1
logarithm as mentioned in Chap. 4, dT0,n+1 T0,n+1 can be given by
−1 −1
dT0,n+1 T0,n+1 = log(T0,n+1
a
T0,n+1 ), (5.5)
a
where T0,n+1 represents the actual (measured) pose of the tool frame with
respect to the base frame. Since elements of se(3) can also be identified by
6-dimensional vectors through: d p̂i → dpi =(d xi ,dyi ,dz i ,δxi ,δyi ,δz i )T ∈ 6×1
−1 −1
a
and log(T0,n+1 T0,n+1 ) → log(T0,n+1
a
T0,n+1 )∨ = (d x0,n+1 , dy0,n+1 , dz 0,n+1 , δx0,n+1 ,
δy0,n+1 , δz 0,n+1 ) ∈ , Eq. (5.4) can be expressed as:
T 6×1
−1
a
log(T0,n+1 T0,n+1 )∨ = AdT0,1 (0) d p1 + AdT0,1 AdT1,2 (0) d p2
+ . . . + AdT0,n AdTn,n+1 (0) d pn+1 , (5.6)
where T0,i = e p̂1 eŝ1 q1 e p̂2 eŝ2 q2 . . . e p̂i eŝi qi , representing the forward kinematic trans-
formation from the base frame 0 to module frame i. After dpi is identified, the
calibrated initial pose of module frame i with respect to module frame i − 1,
c
Ti−1,i (0), can be given by
5.2 Kinematic Calibration Models 61
c
Ti−1,i (0) = e p̂i ed p̂i = Ti−1,i (0)ed p̂i . (5.7)
2. Let the kinematic errors in p̂i be expressed in the module frame i − 1, denoted by
d p̂i−1,i . Then d p̂i−1,i ∈se(3) and d p̂i−1,i =d(e p̂i )e− p̂i = AdTi−1,i (0) d p̂i . Equation
(5.6) can be rewritten as
−1
a
log(T0,n+1 T0,n+1 )∨ = d p0,1 + AdT0,1 d p1,2 + . . . + AdT0,n d pn,n+1 , (5.8)
where dpi−1,i = (d xi−1,i , dyi−1,i , dz i−1,i , δxi−1,i , δyi−1,i , δz i−1,i )T ∈ 6×1 . After
dpi−1,i is identified, the calibrated initial pose of module frame i with respect to
module frame i − 1, Ti−1,i
c
(0), can be given by
c
Ti−1,i (0) = ed p̂i e p̂i = ed p̂i Ti−1,i (0). (5.9)
The basic error models of Eqs. (5.6) and (5.8) are derived by observing the gross
kinematic errors of a complete robot with respect to the base frame. Alternatively,
the gross kinematic errors of the robot can also be expressed with respect to the tool
−1 , the following
frame. Left-multiplying both sides of Eqs. (5.6) and (5.8) by AdT0,n+1
two equations can be easily shown:
−1
log(T0,n+1 a
T0,n+1 )∨ = AdT0,n+1
−1 (Ad T (0) d p1 + Ad T
0,1 0,1
AdT1,2 (0) d p2
+ . . . + AdT0,n AdTn,n+1 (0) d pn+1 ); (5.10)
−1
log(T0,n+1 a
T0,n+1 )∨ = AdT0,n+1
−1 (d p0,1 + Ad T d p1,2 + . . . + Ad T
0,1 0,n
d pn,n+1 );
(5.11)
−1 −1
where log(T0,n+1 a
T0,n+1 )∨ is a 6-dimensional vector associated with log(T0,n+1
T0,n+1 ) ∈ se(3), representing the gross kinematic errors of the robot with respect to
a
−1 −1 −1
the tool frame, and AdT0,n+1
−1
a
log(T0,n+1 T0,n+1 ) = log(T0,n+1 a
T0,n+1 ) = T0,n+1 dT0,n+1 .
By expressing the local and gross kinematic errors of a robot with respect to differ-
ent reference frames, four compact calibration models are formulated, i.e., Eqs. (5.6),
(5.8), (5.10), and (5.11). For the purpose of kinematic calibration, these models are
equivalent. From the computational point of view, however, these four models are
−1
slightly different. For example, the term log(T0,n+1 a
T0,n+1 )∨ in both Eqs. (5.10) and
(5.11) can be calculated in a simple and efficient way such that:
−1 (R − R T )/2 R0,n+1
T
(P0,n+1
a
− P0,n+1 )
log(T0,n+1 a
T0,n+1 )∨ = , (5.12)
0 0
a
where T0,n+1 and T0,n+1 are given by (P0,n+1 a
, R0,n+1
a
) and (P0,n+1 , R0,n+1 ), respec-
tively. In Eq. (5.12), R = R0,n+1 R0,n+1 . Geometrical interpretations of the kinematic
T a
−1 −1
terms such as d p̂i , d p̂i−1,i , d(e p̂i )e− p̂i , e− p̂i d(e p̂i ), dT0,n+1 T0,n+1 , and T0,n+1 dT0,n+1 ,
can be found in Appendix B.
62 5 Kinematic Calibration for Modular Serial Robots
y = Ax, (5.13)
where
−1
y = log(T0,n+1
a
T0,n+1 )∨ ∈ 6×1 ;
T
x = dp1 , dp2 , . . . , dpn+1 ∈ 6(n+1)×1 ;
A = AdT0,1 (0) , AdT0,1 AdT1,2 (0) , . . . , AdT0,n AdTn,n+1 (0) ∈ 6×6(n+1) .
−1 a
T0,n+1 and A can be obtained from the nominal model, while T0,n+1 can be obtained
−1
from the actual measurement data. Hence, y = log(T0,n+1 T0,n+1 )∨ can be computed.
a
x is the kinematic errors to be identified, which reflects the errors in the robot.
The model presented above identifies six kinematic error parameters to calibrate
the initial pose of each dyad. A n-DOF modular robot will totally have 6(n + 1)
error parameters to be identified. This number is greater than that of the conventional
calibration model in which the number of error parameters is equal to 4R + 2P,
where R and P represent the number of revolute and prismatic joints, respectively
[91]. Consequently, the A matrix in Eq. (5.13) is larger than that of the conventional
model, which will make the computation heavy. Since the calibration computation
is usually an off-line computation scheme and the A matrix, in general, is not very
large, the computation complexity of the calibration models becomes less important.
The identification of the kinematic errors requires comparing the difference
between the robot’s actual (measured) and nominal poses. To improve the calibration
accuracy, we usually need to measure the tool frame in many different robot postures.
Suppose we need to take m measured pose data. For the ith measurement, we obtain
a yi . The corresponding Ai can be determined from the nominal kinematic model.
After m measurements, we can stack yi and Ai to form the following equation:
= Ax,
Y (5.14)
where
= [y1 , y2 , . . . , ym ]T ∈ 6m×1 ;
Y
T
x = dp1 , dp2 , . . . , dpn+1 ∈ 6(n+1)×1 ;
= column[A1 , A2 , . . . , Am ] ∈ 6m×6(n+1) .
A
Obviously, Eq. (5.14) is a linear calibration model. Since the model consists of
6m linear equations with 6(n + 1) variables (m > (n + 1)), the linear least-squares
5.2 Kinematic Calibration Models 63
x = (A −1 A
T A) T Y
, (5.15)
where ( AT A) −1 A
T is the pseudoinverse of A.
The solution of Eq. (5.15) can be further improved through iterative substitu-
tion as shown in Fig. 5.3. Let T (0) denote the vector of the initial poses of the
dyads and initialize T (0) using the nominal value, i.e., T (0) = [T0,1 (0), T1,2 (0), . . .,
Tn−1,n (0), Tn,n+1 ]T . Based on the measured data and Eq. (5.15), we can obtain the
kinematic error parameter vector, x. The vector T (0) is updated by substituting x
into Eq. (5.7). The same procedure is repeated until the norm of the error vector,
||x||, approaches zero and the vector T (0) converges to some stable values. Then the
final T (0) represents the calibrated initial poses of the dyads, i.e., T (0) =[T0,1c
(0),
T1,2 (0), . . . ,Tn,n+1 (0)] .
c c T
Note that the kinematic error vector, x, will no longer represent the actual kine-
matic errors in the dyads after iterations. However, the actual kinematic errors in
each of the dyads can be extracted by comparing Ti−1,i (0) with Ti−1,ic
(0). Based on
the matrix logarithm, Eq. (5.7) can also be written as
−1
dpi = log(Ti−1,i (0)Ti−1,i
c
(0))∨ . (5.16)
T0,n+1 = T0,1
c
(0)eŝ1 q1 T1,2
c
(0)eŝ2 q2 . . . Tn−1,n
c
(0)eŝn qn Tn,n+1
c
. (5.17)
All the calibration models mentioned above are based on the local POE formula.
They can be easily modified to suit the calibration of a tree-structured modular robot.
Since the branches in a tree-structured modular robot may contain several common
modules (or dyads), all these branches are to be calibrated simultaneously in order
to get a unique calibrated initial pose for each of the common dyads. Similar to the
modeling scheme for inverse kinematics, once the path matrix is derived from a given
AIM, the calibration model can be automatically constructed.
Now we consider a tree-structured modular robot consisting of n + 1 modules
and m branches. The path matrix of such a robot therefore has m rows and n + 1
columns. Identical to the labeling scheme adopted in Sect. 4.3, we assume that row k
(k = 1, 2, . . . , m) has n[k] + 1 non-zero entries, sequentially 0k or simply 0 (because
of the unique base), 1k , . . . , n[k]k from the left to right. Here i k is the index of the ith
non-zero entry in row k, and i = 0, 1, . . . , n[k]. Since the tools that will be rigidly
64 5 Kinematic Calibration for Modular Serial Robots
attached to the pendant links are not considered in the AIM and the path matrix, the
last dyad or the compensation dyad will be added to each branch. Based on Eq. (5.14),
the calibration equation for branch k can be given by:
Yk = Ak xk , (5.18)
where
−1
Yk = log(T0,n[k]+1
a T0,n[k]+1 )∨ ∈ 6×1 ;
T
xk = dp1k , dp2k , . . . , dpn[k]k , dp(n[k]+1)k ∈ 6(n[k]+1)×1 ;
Ak = AdT0,1k (0) , AdT0,1k AdT1k ,2k (0) , . . . , AdT0,(n[k]−1)k AdT(n[k]−1)k ,n[k]k (0) , AdT0,n[k]k
∈ 6×6(n[k]+1) .
The formulation of the calibration model for a tree-structured modular robot is
similar to that of the inverse kinematics model, i.e., arranging the calibration equa-
tions of all branches into a single equation according to the path matrix. Instead of
presenting the formulation details, we use an example to show the arranging scheme.
As shown in Fig. 5.4, the tree-structured modular robot consists of 9 modules (7-
DOFs). The AIM and path matrix are given as follows:
5.2 Kinematic Calibration Models 65
⎡(z, −y)
0 0 0 0 0 0 0 Lr1
⎤
⎢ (y, x) (z, x) (−z, x) 0 0 0 0 0 Lr1 ⎥
⎢ 0 (−y, x) 0 (z, x) 0 0 0 0 Lr2 ⎥
⎢ ⎥
⎢ 0 0 (−x, y) 0 (z, y) 0 0 0 Lr2 ⎥
⎢ 0 (x, −y) 0 (z, x) 0 L p2 ⎥
A(G̃) = ⎢ ⎥;
0 0 0
⎢ 0 0 0 0 (y, z) 0 (z, x) 0 Lr2 ⎥
⎢ ⎥
⎢ 0 0 0 0 0 (y, x) 0 0 L c2 ⎥
⎢ 0 0 (y, −x) (z, x) L r 2 ⎥
⎣ 0 0 0 0 ⎦
0 0 0 0 0 0 0 (y, x) L c2
Jr 1 Jr 2 Jf2 Jr 3 Jr 3 J p3 Jr 3 Jr 3 0
111010100
P(G) = .
110101011
According to the path matrix, we know that this robot has two branches. The first
branch consists of link modules 0, 1, 2, 4 and 6; the second branch consists of link
modules 0, 1, 3, 5, 7 and 8. Since the tools or end-effectors are not attached to each of
the pendant links, a compensation dyad will be added to each branch. Based on the
path matrix P(G) and Eq. (5.18), the calibration model for this robot can be written
as:
Y = Ax, (5.19)
where
a T −1 )∨
log(T0,9
Y1
Y = = 0,9
−1 ∨ ∈ 12×1 ;
Y2 a
log(T0,10 T0,10 )
x = [dp1 , dp2 , . . . , dp8 , dp9 , dp10 ]T ∈ 60×1 ;
B0,1 A0,1 B1,2 0 A0,2 B2,4 0 A0,4 B4,6 0 0 A0,6 0
A=
B0,1 0 A0,1 B1,3 0 A0,3 B3,5 0 A0,5 B5,7 A0,7 B7,8 0 A0,8
∈ 12×60 , in which Ai, j = AdTi, j and Bi, j = AdTi, j (0) .
This example shows that the proposed calibration models are also capable of cali-
brating robots with tree-structured geometry that most of the multi-arm robots belong
to. Therefore, the local POE calibration model is a completely general approach.
66 5 Kinematic Calibration for Modular Serial Robots
As shown in Fig. 5.5, the given modular robot consists of two large revolute joint
modules and one small cubic link module. Its AIM is given as follows:
⎡ ⎤
(z, x) 0 Lr1
⎢(−x, y) (z, y) L r 1 ⎥
A(G̃) = ⎢
⎣ 0
⎥.
(−z, x) L c2 ⎦
Jr 1 Jr 2 0
000 1 0 0 0 1
Note that all the angles are expressed in radians, and the lengths are in millimeters.
To validate the proposed calibration models, we present here a simulated calibration
result. The measured (simulated) end link frame poses are obtained from Eq. (5.1)
(with Tn,n+1 = I ) under a set of preset geometric errors. This procedure is stated as
follows.
• Assign the geometric errors:
a
Ti−1,i (0)= Ti−1,i (0)ed p̂i (i = 1, 2);
• Calculate the simulated end link frame poses:
a
T0,2 (q1 + dq1 , q2 + dq2 )= T0,1
a
(0)e(ŝ1 +d ŝ1 )(q1 +dq1 ) T1,2
a
(0)e(ŝ2 +d ŝ2 )(q2 +dq2 ) .
In this example, the number of measured poses is set to 10, i.e, m = 10. The cali-
bration results are given in Tables 5.2, 5.3 and Fig. 5.6. Table 5.2 shows the identified
kinematic errors in the dyads. Because there is no end-effector or tool in this robot,
the compensation term is also identified and given in the last row of Table 5.2. It is
apparent that the preset geometric errors and the kinematic errors to be identified have
different physical meanings and are not one-to-one correspondent so that the preset
geometric errors can not be fully recovered. Nevertheless, as shown in Table 5.3, two
end link poses (arbitrarily selected) after calibration are the same as the measured
ones. It follows that these two sets of error parameters are equivalent in the sense of
describing the actual end link poses. In robot calibration, the positioning accuracy
is the main concern. Whether the error parameters can be fully recovered becomes
less important. Figure 5.6 also shows that the calibrated (updated nominal) end link
poses T0,n = ( p0,n , R0,n ) fully converge to the measured ones T0,n a
= ( p0,n
a
, R0,n
a
)
after only a few iterations. Note that the
position and orientation deviations are given
m m −1
pa − p log(R a R )∨
by dp = i=1 0,n
m
0,n
and d R = i=1
m
0,n 0,n
, where dp and d R can be
interpreted as the average position and orientation differences between the measured
(actual) end link poses and the calibrated end link poses for m measurements, respec-
tively. The computation results indicate that the proposed algorithm is correct and
effective.
Now we consider whether the actual twists expressed in the calibrated module
frames retain their nominal coordinates as we expected. The coordinates of the actual
twists expressed in the local actual module frames can be given by:
68 5 Kinematic Calibration for Modular Serial Robots
0 0 0 1
⎡ ⎤
.9980 −.0603 −.0184 −8.448
⎢ .0208 .0392 .9990 316.345⎥
a
T0,2 (0) = ⎢⎣−.0596 −.9974 .0403 356.662⎦.
⎥
0 0 0 1
From the calibration results, the calibrated module frames with respect to the base
frame can also be computed as
⎡ ⎤
.0400 .9988 −.0268 −.119
⎢−.0196 .0276 .9994 2.018 ⎥
c
T0,1 (0) = ⎢
⎣ .9990 −.0394 .0207 349.061⎦;
⎥
0 0 0 1
⎡ ⎤
.9976 −.0669 −.0196 −8.548
⎢ .0209 .0190 .9996 315.370⎥
c
T0,2 (0) = ⎢
⎣−.0665 −.9976 .0204 354.605⎦.
⎥
0 0 0 1
Therefore, the actual twists expressed in the calibrated module frames, denoted
by sia [c] (i=1, 2), can be given by:
5.3 Computation Examples 69
The results also show that the actual twists expressed in the calibrated module
frames retain their nominal coordinates so that our initial assumptions are valid.
A 4-DOF (RPFRFR) SCARA type modular robot is shown in Fig. 5.7. This robot
consists of seven serially connected modules of different types, i.e., L r 1 , L p1 , L c1 ,
70 5 Kinematic Calibration for Modular Serial Robots
Table 5.3 End link poses before and after calibration (three-module robot)
Joint q = (.9948, −1.5184)T q = (2.8798, 2.8798)T
Angle
⎡ ⎤ ⎡ ⎤
.0285 .5439 −.8387 −262.085 .9330 .2500 −.2588 −80.881
⎢ ⎥ ⎢ ⎥
⎢.0439 .8375 .5446 170.200 ⎥ ⎢−.2500 −.0670 −.9659 −301.852⎥
Nominal ⎢ ⎥ ⎢ ⎥
⎢.9986 −.0523 350.000 ⎥ ⎢−.2588 .9659 350.000 ⎥
Pose ⎣ 0 ⎦ ⎣ 0 ⎦
0 0 0 1 0 0 0 1
⎡ ⎤ ⎡ ⎤
.0780 .5063 −.8588 −269.263 .9322 .2662 −.2450 −73.885
⎢ ⎥ ⎢ ⎥
⎢.0419 .8590 .5102 164.279 ⎥ ⎢−.2273 −.0957 −.9691 −303.688⎥
Measured ⎢ ⎥ ⎢ ⎥
⎢.9961 −.0758 .0458 362.220 ⎥ ⎢−.2815 .9591 −.0286 343.134 ⎥
Pose ⎣ ⎦ ⎣ ⎦
0 0 0 1 0 0 0 1
⎡ ⎤ ⎡ ⎤
.0780 .5063 −.8588 −269.263 .9322 .2662 −.2450 −73.885
⎢ ⎥ ⎢ ⎥
⎢.0419 .8590 .5102 164.279 ⎥ ⎢−.2273 −.0957 −.9691 −303.688⎥
Calibrated ⎢ ⎥ ⎢ ⎥
⎢.9961 −.0758 .0458 362.220 ⎥ ⎢−.2815 .9591 −.0286 343.134 ⎥
Pose ⎣ ⎦ ⎣ ⎦
0 0 0 1 0 0 0 1
L r 1 , L c2 , L r 2 , and L c2 . The last two revolute joint ( Jr 2 and Jr 3 ) axes are normally
parallel with each other. The AIM is given as follows:
⎡ ⎤
(z, −y) 0 0 0 0 0 Lr1
⎢(−z, y) (z, y) 0 0 0 0 L p1 ⎥
⎢ 0 (x, −y) (z, y) 0 0 0 L c1 ⎥
⎢ ⎥
⎢ 0 0 (−x, −y) (z, y) 0 0 Lr1 ⎥
A(G̃) = ⎢ 0 (−x, −y) (z, y) 0 L c2 ⎥
.
⎢ 0 0 ⎥
⎢ 0 0 0 0 (y, −x) (z, x) L r 2 ⎥
⎣ ⎦
0 0 0 0 0 (z, x) L c2
Jr 1 J p1 Jf1 Jr 2 Jf3 Jr 3 0
According to the given AIM, the calibration model can be automatically generated.
Similar to the previous example, we first preset small geometric errors dpi , dsi , and
dqi (i = 1, 2, . . . 6) into Dyad i (Table 5.4), and then compute a number of measured
end link poses (m = 40). For convenience, the dpi in each of the dyads is preset to the
identical value, i.e., dpi =(2.,2.,2., .02, .02, .02)T . Since both joint 3 and 5 are fixed
joints, ds3 , ds5 , dq3 , and dq5 are all set to zero. In order to demonstrate the robustness
of the proposed algorithm, a uniform random measurement noise dp =(d x , dy , dz ,
δx , δy , δz )T is also added into the measured end link poses, where d x , dy , and
dz ∈ U[−0.1 mm, 0.1 mm], and δx , δy , and δz ∈ U[−0.001, 0.001] rad. The
calibration results are shown in Tables 5.5 and 5.6 and Fig. 5.8.
Since joint 3 in Dyad 3 (modules 2 and 3) and joint 5 in Dyad 5 (modules 4 and 5)
are fixed joints, the two modules in both Dyad 3 and Dyad 5 are rigidly connected.
For simplicity, we consider each of these dyads as a rigid body. The kinematic error
in such a dyad will be lumped into its preceding dyad and succeeding dyad. For
instance, the preset error dp3 in Dyad 3 will be lumped into the kinematic errors
5.3 Computation Examples 71
of both Dyad 2 (modules 1 and 2) and Dyad 4 (modules 3 and 4). Thus, instead of
identifying dp3 and dp5 , we assume dp3 = dp5 = (0, 0, 0, 0, 0, 0)T .
The computation results also show that the average positioning accuracy is signif-
icantly increased after a few iterations regardless of the existence of the measurement
noise. This robot contains various types of joints, i.e., prismatic joint (joint 2), fixed
joints (joints 3 and 5), and revolute joints (joints 1, 4, and 6) in which two adjacent
ones (joints 4 and 6) are close to parallel. Hence, the proposed algorithm is a general
and singular-free approach for the calibration of serial robots.
72 5 Kinematic Calibration for Modular Serial Robots
Table 5.6 End link poses before and after calibration (SCARA robot)
Joint q = (1.3259, .0174, 0, q = (−.2129, 32.721, 0,
Angle .7298, 0, 2.2093)T 1.4841, 0, 1.9221)T
⎡ ⎤ ⎡ ⎤
−.9991 −.0425 0 312.442 −.0516 .9987 0 −423.268
⎢−.0425 −.9991 0 493.938⎥ ⎢−.9987 −.0516 0 188.793 ⎥
⎢ ⎥ ⎢ ⎥
Nominal ⎢ ⎥ ⎢ ⎥
Pose ⎣ 0 0 1 387.517 ⎦ ⎣ 0 0 1 420.221 ⎦
0 0 0 1 0 0 0 1
⎡ ⎤ ⎡ ⎤
−.9946 −.1019 −.0180 286.698 −.1092 .9907 −.0808 −389.917
⎢ .1018 −.9948 .0053 479.362⎥ ⎢−.9939 −.1077 .0222 155.561 ⎥
⎢ ⎥ ⎢ ⎥
Measured ⎢ ⎥ ⎢ ⎥
Pose ⎣−.0184 .0034 .9998 349.532⎦ ⎣ .0133 .0827 .9965 363.005 ⎦
0 0 0 1 0 0 0 1
⎡ ⎤ ⎡ ⎤
−.9947 −.1020 −.0151 286.686 −.1094 .9907 −.0813 −389.917
⎢ .1019 −.9948 .0068 479.356⎥ ⎢−.9939 −.1077 .0254 155.555 ⎥
⎢ ⎥ ⎢ ⎥
Calibrated ⎢ ⎥ ⎢ ⎥
Pose ⎣−.0157 .0052 .9999 349.509⎦ ⎣ .0164 .0836 .9964 363.005 ⎦
0 0 0 1 0 0 0 1
Table 5.9 End link poses before and after calibration (tree-structured robot)
Branch 1 (Module 6) Branch 2 (Module 8)
⎡ ⎤ ⎡ ⎤
−.8574 .1383 −.4957 168.263 −.8753 −.3480 .3357 304.480
⎢ .0262 −.9502 −.3105 834.453⎥ ⎢ .4707 −.4543 .7563 −354.641⎥
⎢ ⎥ ⎢ ⎥
Nominal Pose ⎢ ⎥ ⎢ ⎥
⎣−.5140 −.2792 .8111 646.864⎦ ⎣−.1107 .8200 .5615 399.491 ⎦
0 0 0 1 0 0 0 1
⎡ ⎤ ⎡ ⎤
−.8581 .1666 −.4858 156.437 −.8892 −.3799 .2549 295.020
⎢ .0227 −.9327 −.3600 814.671⎥ ⎢ .4299 −.5032 .7497 −343.445⎥
⎢ ⎥ ⎢ ⎥
Measured ⎢ ⎥ ⎢ ⎥
Pose ⎣ −.5130 −.3199 .7965 699.125 ⎦ ⎣−.1566 .7762 .6108 406.097 ⎦
0 0 0 1 0 0 0 1
⎡ ⎤ ⎡ ⎤
−.8581 .1667 −.4857 156.451 −.8892 −.3786 .2566 294.994
⎢ .0226 −.9327 −.3600 814.665⎥ ⎢ .4298 −.4995 .7522 −343.445⎥
⎢ ⎥ ⎢ ⎥
Calibration ⎢ ⎥ ⎢ ⎥
Poses ⎣ −.5130 −.3199 .7965 699.127 ⎦ ⎣−.1566 .7792 .6069 406.088 ⎦
0 0 0 1 0 0 0 1
The computation results also show that the average positioning accuracy in each
of the two end links is significantly increased after a few iterations regardless of the
existence of the measurement noise. This robot has a tree-structured topology and
contains various types of joints, i.e., the prismatic joint, fixed joints, and revolute
joints. The proposed algorithm therefore is not only suitable for serial robots but also
suitable for tree-structured robots.
Chapter 6
Modular Serial Robot Dynamics
Abstract This chapter studies the dynamic issues of modular robots. Since a mod-
ular robot has unfixed configurations, it is very difficult to derive the closed-form
dynamic model manually. Following the geometric modeling approach, a dynamic
formulation scheme is introduced, which can generate both the recursive and the
closed-form dynamic models of a tree-structured modular robot from a given Assem-
bly Incidence Matrix (AIM) automatically.
6.1 Introduction
There are two basic issues in modular robot dynamics, i.e., (1) the computation of
the actuator torque problem—inverse dynamics, which is to find the actuator forces
or torques required to produce a given motion, and (2) the simulation problem—
forward dynamics, which is to predict the motion of the robot corresponding to a
given time-history of the actuator forces and torques.
Algorithms to solve these two problems can be based on many different general
formulations of dynamics such as the Lagrange-Euler (L-E) method [67, 68], the
Newton-Euler (N-E) method [115, 116], the Kane’s method [117, 118], the recursive
Lagrange method [120], and the generalized D’Alembert method [119]. The motion
equations in these methods are “equivalent” to each other in the sense that they
describe the dynamic behavior of the same physical robot. However, the structure
of these equations may differ because they are obtained for various reasons and
purposes: to achieve fast computation time in evaluating the nominal joint torques
in the robot actuators, to facilitate control analysis and synthesis, and to improve
computer simulation of the robot motion. Among these methods, the L-E method
and the N-E method have been widely used.
The derivation of the dynamic model of a robot based on the L-E method is
simple and systematic. Assuming the robot follows the rigid body motion, the result-
ing dynamic equations of motion, excluding the dynamics of the electronic control
device, gear friction, and backlash, are a set of second-order coupled, nonlinear, dif-
ferential equations. Each equation contains a large number of torque or force terms
such as inertial torques/forces due to the links, reaction torques/forces generated by
acceleration at other joints, velocity-generated (Coriolis and centrifugal) reaction
torques/forces between joints, and torques/forces due to gravity loading on the links.
These torque/force terms depend on the robot’s physical parameters and the external
load. To improve the speed of computation, simplified sets of equations have been
used in [68]. In general, these “approximate” models simplify the underlying physics
by neglecting second-order terms such as the Coriolis and centrifugal reaction terms.
These approximate models, when used for control purpose, restrict the arm move-
ment to low speed. At high speed, the neglected terms become significant, making
accurate position control of the robot impossible.
An approach that has the advantage of both computation speed and accuracy
is based on the N-E vector formulation. The derivation is simple, but messy, and
involves vector cross-product terms. The resulting dynamic equations, excluding
the dynamics of the electronic control device, gear friction, and backlash, are a
set of forward and backward recursive equations. The forward recursion propagates
kinematics information (such as angular and linear velocities and accelerations) from
the base frame to the end-effector frame, while the backward recursion propagates
the forces and moments exerted on each link from the end-effector frame to the base
frame. The equations of motion derived from the N-E method represent the most
efficient set of equations of motion of the robot, which makes it possible to achieve
real-time control. However, the N-E method is difficult to use for deriving advanced
control laws because the recursive equations destroy the “structure” of the dynamic
model, which provides useful insight for the controller and robot design.
The geometric formulation of the equations of motion for kinematic chains is
a new trend in robot dynamics. By treating S E(3), the special Euclidean group of
rigid-body motions as Lie group, this geometric approach can avoid many specific
definitions and notations found in the conventional dynamic algorithms. Moreover, it
permits a coordinate-free view of robot dynamics, which is more suitable for modular
robot applications in which the dynamic algorithm is to be configuration indepen-
dent. So far, a number of fundamental works have been done by several researchers
[62, 88, 114, 121–123]. Among these works, a unified geometric treatment of robot
dynamics was presented by Park et al. in [88, 114]. In their works, the geomet-
ric formulation of the recursive N-E dynamics was presented, and followed by the
closed-form Lagrangian formulation. The recursive formulation leads to an O(n)
algorithm that expresses the dynamics entirely in terms of the coordinate-free Lie
algebraic operations. The Lagrangian formulation also expresses the dynamics in
terms of these Lie algebraic operations and leads to a particular simple set of closed-
form equations. The resulting equations are shown to be computationally effective
and to be easily differentiated and factored with respect to any of the robot param-
eters [88]. These features make the geometric formulation approach very attractive
for applications such as robot design, optimal control, and motion optimization.
6.1 Introduction 79
Following the geometrical approach, this chapter presents a methodology that can
generate the dynamic model of a modular robot from a given Assembly Incidence
Matrix (AIM) automatically [15, 20, 21]. The more general tree-structured robots
are considered as they are gaining popularity in industry, construction, and multi-
legged walking systems [124]. The formulation of the dynamic model is started with
a modified recursive N-E algorithm. The generalized velocities, accelerations, and
forces are expressed in terms of linear operations on se(3). Based on the relationship
between the recursive formulation and the closed-form Lagrangian formulation for
serial robot dynamics discussed in [88, 125, 126], we use an accessibility matrix [127]
to assist the construction of the closed-form equations of motion of a tree-structured
modular robot.
where F j ∗ ∈ 6×1 is the resultant wrench applied to the center of mass relative to
frame j ∗ ; f j ∗ and τ j ∗ ∈ 3×1 are the
total force and moment applied to link assembly
mjI 0
j, respectively; M j ∗ = ∈ 6×6 is the generalized mass matrix expressed
0 J j∗
in frame j ∗ . The total mass of link assembly j is m j (the combined mass of link
vj and joint ej ). J j ∗ is the inertia tensor of the link assembly about mass frame j ∗ .
Transforming Eq. (6.2) into the adjoint representation, we have
F j ∗ = M j ∗ V̇ j ∗ − adVTj ∗ (M j ∗ V j ∗ ). (6.3)
T
ŵ j ∗ v̂ j ∗ −ŵ j ∗ 0
adVTj ∗ = (adV j ∗ ) =T
= . (6.4)
0 ŵ j ∗ −v̂ j ∗ −ŵ j ∗
v̇ j ∗
• V̇ j ∗ = ∈ 6×1 is the generalized body acceleration.
ẇ j ∗
The N-E equation, Eq. (6.3), is expressed in mass frame j ∗ . To be consistent with
the kinematic model of modular robots described in Chap. 4, this equation must be
expressed in the module frame j. According to the wrench transformation method
mentioned in [62], the wrench F j ∗ can be transformed into an equivalent wrench F j
expressed in link frame j by
F j = AdTTj ∗ , j F j ∗ , (6.5)
6.2 Newton-Euler Equation for a Link Assembly 81
T
R j ∗ j p̂ j ∗ j R j ∗ j
AdTTj ∗ , j = (AdT j ∗ , j ) = T
0 R j∗ j
T
R j∗ j 0
= . (6.6)
−R Tj∗ j p̂ j ∗ j R Tj∗ j
V j ∗ = AdT j ∗ , j V j , (6.7)
V̇ j∗ = AdT j ∗ , j V̇ j . (6.8)
Substituting Eqs. (6.5), (6.7), and (6.8) into (6.3), and using the identity,
we have
F j = M j V̇ j − adVTj (M j V j ). (6.10)
This is the N-E equation of link assembly j written in the link frame j. The
generalized mass matrix M j is relative to link frame j and has the following form:
M j = AdTTj ∗ , j M j ∗ AdT j ∗ , j
mjI m j R Tj∗ j p̂ j ∗ j R j ∗ j
= . (6.11)
−m j R Tj∗ j p̂ j ∗ j R j ∗ j R Tj∗ j (J j ∗ − m j p̂ 2j ∗ j )R j ∗ j
For simplicity, we assume that the coordinate axes of mass frame j ∗ are parallel
to the axes of link frame j, then R j ∗ j = I . The generalized mass matrix M j becomes
mjI m j p̂ j ∗ j
Mj = . (6.12)
−m j p̂ j ∗ j J j ∗ − m j p̂ 2j ∗ j
Equations (6.3) and (6.10) are of the same form indicating the coordinate-invariant
property of the N-E equation in body coordinates.
82 6 Modular Serial Robot Dynamics
where Vb and V̇b are expressed in the base frame 0. We assume that the base frame
coincides with the world frame. The gravity effect is taken into consideration by ini-
tializing the generalized acceleration, Eq. (6.14), with the gravitational acceleration
constant g. The recursive body velocity and acceleration equations can be written as
where all the quantities, if not specified, are expressed in link frame j.
• V j and V̇ j are the generalized velocity and acceleration of link assembly j.
• Vi and V̇i are the generalized velocity and acceleration of link assembly i written
in frame i.
• q̇ j and q̈ j are the velocity and acceleration of joint ej , respectively.
• AdTi,−1j is the adjoint representation of Ti,−1
j (q j ), where Ti, j (q j ) ∈ S E(3) is the pose
of frame j relative to frame i with the joint displacement q j .
• s j ∈ 6×1 is the twist coordinates of joint ej , and s j = (0, 0, 0, 0, 0, 0)T for a fixed
joint.
Both AdTi,−1j (Vi ) and s j q̇ j are elements of se(3), and
Backward Iteration
The backward iteration of a tree-structured robot starts from all the pendant link
assemblies simultaneously. Let V P D be set of the pendant links of a tree-structured
robot. For every pendant link assembly di (vdi ∈ V P D ), Eq. (6.10) can be written as
where Fdi is the wrench exerted on link assembly di by its parent (preceding) link
relative to frame di ; Fdei is the external wrench exerted on link assembly di . Note that
the total wrench Fdi = Fdi + Fdei .
Now traverse the link assemblies in the tree-structured robot backward from the
pendant link assemblies. Let V H i be the set of successors of link vi as viewed from
the base to the pendant link assemblies. For every link assembly i, Eq. (6.10) based
on the N-E method can be written in the following form:
Fi = AdTT −1 (F j ) − Fie + Mi V̇i − adVTi (Mi Vi ), (6.22)
i, j
j∈VH i
where all quantities, if not specified, are expressed in link frame i; Fi ∈ 6×1 is the
wrench exerted to link assembly i by its ancestor; F j ∈ 6×1 is the wrench exerted
by link assembly i to the successor v j (∈ V H i ) expressed in link frame j; Fie is
the external wrench applied to link assembly i. Basically, the total wrench of link
assembly i can be written as: Fi = Fi − j∈VH i AdTT −1 (F j ) + Fie .
i, j
The applied torque/force to link assembly i by the actuator at its input joint ei can
be calculated by
τi = siT Fi . (6.23)
By expanding the recursive N-E Eqs. (6.13), (6.14), (6.15), (6.20), (6.21), and (6.22)
in the module (local) frame coordinates iteratively, we obtain the generalized velocity,
generalized acceleration, and generalized force equations in matrix form:
84 6 Modular Serial Robot Dynamics
V = HSq̇, (6.24)
V̇ = HT0 V̇0 + HSq̈ + HA1 V, (6.25)
F = HT FE + HT MV̇ + HT A2 MV, (6.26)
τ = ST F. (6.27)
where
V = column[V1 , V2 , · · · , Vn ] ∈ 6n×1 is the generalized body velocity vector;
V̇ = column[V̇1 , V̇2 , · · · , V̇n ] ∈ 6n×1 is the generalized body acceleration vector;
F = column[F1 , F2 , · · · , Fn ] ∈ 6n×1 is the body wrench vector;
τ = column[τ1 , τ2 , · · · , τn ] ∈ n×1 is the applied joint torque/force vector;
q̇ = column[q̇1 , q̇2 , · · · , q̇n ] ∈ n×1 is the joint velocity vector;
q̈ = column[q̈1 , q̈2 , · · · , q̈n ] ∈ n×1 is the joint acceleration vector;
V̇0 = (0, 0, g, 0, 0, 0)T ∈ 6×1 is the generalized acceleration of the base link;
S = diag[s1 , s2 , · · · , sn ] ∈ 6n×n is the joint twist matrix written in the respective
body coordinates;
M = diag[M1 , M2 , · · · , Mn ] ∈ 6n×6n is the total generalized mass matrix;
A1 = diag[−ads1 q̇1 , −ads2 q̇2 , · · · , −adsn q̇n ] ∈ 6n×6n ;
A2 = diag[−adVT1 , −adVT2 , · · · , −adVTn ] ∈ 6n×6n ;
FE = column[F1e , F2e , · · · , Fne ] ∈ 6n×1 is the external wrench vector;
⎡ ⎤
AdT01−1
⎢ AdT −1 ⎥
⎢ 02 ⎥
HT0 = ⎢ . ⎥ ∈ 6n×6 ;
⎣ .. ⎦
AdT0n−1
⎡ ⎤
I6×6 0 0 ··· 0
⎢ r12 AdT −1 I6×6 0 ··· 0 ⎥
⎢ 12 ⎥
⎢ ··· ⎥
H = ⎢ r13 AdT13−1 r23 AdT23−1 I6×6 0 ⎥ ∈ 6n×6n .
⎢ .. .. .. .. .. ⎥
⎣ . . . . . ⎦
r1n AdT1n−1 r2n AdT2n−1 r3n AdT3n−1 ··· I6×6
Note that R(G) = [ri, j ] ∈ (n+1)×(n+1) is the accessibility matrix of the robot’s
kinematic digraph G. The matrix H is termed a transmission matrix. The element
ri, j AdTi,−1j relates link frames i and j if link vi can reach link vj . Substituting Eqs.
(6.24–6.26) to (6.27), we obtain the closed-form equations of motion for a tree-
structured modular robot with n + 1 modules (including the base module)
where
6.3 Dynamic Formulation for a Tree-Structured Modular Robot 85
M(q) is the generalized mass matrix of the robot; C(q, q̇) is called Coriolis
matrix for the robot [62]; C(q, q̇)q̇ gives the Coriolis and centrifugal force terms
in the equations of motion; N(q) represents the gravitational force and the external
force which act at the joints; τ is the vector of actuator torques/forces.
Based on the geometric formulation of the N-E dynamics equations, both of the
recursive and closed-form dynamics algorithms have been presented for general
tree-structured modular robots. The major advantage of this approach is that the high
level and coordinate-invariant description of robot dynamics can be obtained [126],
which facilities our automatic model generation scheme. Regarding the computa-
tional complexity (as listed in Table 6.1), the recursive geometric N-E model is
equivalent to a set of efficient O(n) recursive algorithms, while the closed-form
dynamic equations of motion are equivalent to a set of O(n 3 ) algorithms. Note that it
is very difficult to estimate the computational complexity of the dynamics algorithms
for a tree-structured robot because it depends on not only the number of DOFs of the
robot but also the number of branches and the number of modules on each branch.
Hence, we use an n-DOF serial type modular robot to estimate the computational
complexity of the derived dynamics algorithms as listed in Table 6.1.
Compute
Accessibility Matrix: R (G)
R(G)
Twist Matrix: S
Mass Matrix: M
Input: V0 , V0 , F E
Compute
H T 0 , H , A1 , A2
Compute
M (q), C(q, q), N (q)
Dynamic Model
Example 6.1 As shown in Fig. 6.3, the modular robot consists of 8 modules and
has 2 branches. Its AIM is given as follows:
6.3 Dynamic Formulation for a Tree-Structured Modular Robot 87
⎡ ⎤
(z, −y) 0 0 0 0 0 0 L p1
⎢(−z, x) (−y, x) (y, x) 0 0 0 0 L c1 ⎥
⎢ 0 (y, x) 0 (z, x) 0 0 Lr2 ⎥
⎢ 0 ⎥
⎢ 0 0 (x, y) 0 (z, y) 0 0 Lr2 ⎥
⎢ ⎥
A(G̃) = ⎢ 0 0 0 (x, z) 0 (z, x) 0 L p2 ⎥ .
⎢ 0 0 (y, z) 0 (z, x) L p2 ⎥
⎢ 0 0 ⎥
⎢ 0 0 0 0 0 (y, x) 0 L c2 ⎥
⎣ 0 0 0 0 0 0 (y, x) L c2
⎦
J p1 Jf2 J f 2 Jr 3 Jr 3 J p3 J p3 0
Based on the given AIM, the accessibility and path matrices of the kinematic
graph shown in Fig. 6.3 can be given by
⎡ ⎤
0111111 1
⎢0 0 1 1 1 1 1 1⎥
⎢ ⎥
⎢0 0 0 0 1 0 1 0⎥
⎢ ⎥
⎢0 0 0 0 0 1 0 1⎥
R(G) = ⎢ ⎢0 0 0 0 0 0 1
⎥;
⎢ 0⎥⎥
⎢0 0 0 0 0 0 0 1⎥
⎢ ⎥
⎣0 0 0 0 0 0 0 0⎦
0000000 0
11101010
P(G) = .
01010101
88 6 Modular Serial Robot Dynamics
τ1 = 494.424 + 50.4q̈1 ,
τ2 = 0,
τ3 = 0,
τ4 = 0.7q̈4 + 2.912q6 q̈4 + 4.05q62 q̈4 + 2.912q̇4 q̇6 + 8.1q6 q̇4 q̇6 ,
τ5 = 0.7q̈5 + 2.912q7 q̈5 + 4.05q72 q̈5 + 2.912q̇5 q̇7 + 8.1q7 q̇5 q̇7 ,
τ6 = 4.05q̈6 − 1.456q̇42 − 4.05q6 q̇42 ,
τ7 = 4.05q̈7 − 1.456q̇52 − 4.05q7 q̇52 .
Because the given robot configuration is not very complicated, we can still manually
formulate its dynamic model based on the traditional N-E method. It has shown that
the manually derived dynamic equations are identical to the equations listed above.
Note that SI units are used in the derived equations.
The inverse dynamics problem is to determine the joint torques τ (t) which are needed
to generate the motion specified by the joint accelerations q̈(t), velocities q̇(t), and
angles q(t) when the external forces F E are known.
Solving the inverse dynamics problem is necessary for robot motion planning and
control algorithm implementation. Once a robot trajectory is specified in terms of
joint angles, velocities, and accelerations, and the external forces are also given, the
inverse dynamics allows the computation of the torques to be applied to the joints
to obtain the desired motion. This computation turns out to be useful for verifying
the feasibility of the imposed trajectory and for compensating nonlinear terms in the
dynamic model of a robot. Obviously, the computation of inverse dynamics becomes
quite straightforward once the dynamic model is derived.
6.4 Inverse and Forward Dynamics Problem 89
The forward dynamics problem is to determine the joint accelerations q̈(t), velocities
q̇(t), and angles q(t) resulting from the given joint torques/forces τ and the external
forces F E when the initial joint angles q(t0 ) and velocities q̇(t0 ) are known.
Solving the forward dynamics problem is necessary for the robot simulation.
Forward dynamics allows describing the motion of the real physical system in terms
of the joint accelerations, when a set of assigned joint torques is applied to the
robot. The joint velocities and angles can be obtained by integrating the system of
nonlinear differential equations. The closed-form equations of motion derived from
the proposed algorithm are more convenient for this purpose because they provide
the explicit relationship between the joint torques (as well as the external forces),
angles, velocities, and accelerations. Equation (6.28) can also be rewritten as
Equation (6.32) consists of a set of second order differential equations. For the
simulation of robot motion, the initial state at the time instant t0 is known with the
joint angles q(t0 ) and velocities q̇(t0 ). The forward dynamic problem then solves a
set of second order differential equations subjected to the given initial conditions.
Many numerical integration methods can be used to derive the solutions. In our
forward dynamic algorithm, the fourth order Runge-Kutta method is employed for
solutions. The inputs of this algorithm include a given AIM, the initial time instant
t0 , the ending time instant tn , the integration step δt, the initial joint angles q(t0 ), the
joint velocities q̇(t0 ), the applied joint torques τ (t), and the external forces exerted
on the each of the link assemblies FE (t), where t0 ≤ t ≤ tn . The outputs are the joint
accelerations, velocities, and angles at different time instants. The flow chart of the
forward kinematic algorithm is shown in Fig. 6.4. In order to illustrate this algorithm,
a computation example is given as follows.
Example 6.2 In this example, we still use the same robot configuration as well as
the AIM as given in Example 6.1. Suppose that q(t0 ), q̇(t0 ), and FE (t) are all equal
to zero; τ (t) takes a constant value such that τ (t)=(500, 0, 0, -0.5, 0.5, 0.05, 0.05)T ;
and t0 = 0, tn = 1.5s, δt = 0.05s. Selected computation results are given in Tables
6.2, 6.3, and 6.4, and Figs. 6.5, 6.6, and 6.7. The SI units are used in the computation
results. The corresponding robot configurations at different time instants are shown
in Fig. 6.8.
90 6 Modular Serial Robot Dynamics
7.1 Introduction
There has been an increasing interest in studying the kinematic properties of robots
recently. Most of these efforts focus on identifying and quantifying certain qualita-
tive features of the robot performance—performance measures. These measures are
then used to evaluate and optimize robot configurations. Among these performance
measures, the workspace volume and manipulability (dexterity) have been studied
extensively in the literatures.
The workspace of a robot is defined as the set of all end-effector poses (described
by the end-effector frame) which can be reached by the robot through some choices
of joint angles. The relationship between a robot’s kinematic parameters and its
workspace was first addressed in the early work of Roth [130]. Now it is often cus-
tomary to distinguish the workspace into the reachable workspace and the dexterous
workspace [139]. The latter is the set that the end-effector frame can reach with arbi-
trary orientations, while the former is the set that the end-effector frame can reach
with at least one orientation. Obviously, the dexterous workspace is a subspace of the
reachable space. Both analytical and numerical methods have been used for charac-
global dexterity measures is to integrate the local ones over some regions in the con-
figuration space [144]. A geometric approach was given by Park [132], in which a
global description of dexterity was obtained by introducing the harmonic mapping
technique.
Besides the workspace volume and manipulability (or dexterity) measures, several
other performance indices were also defined by different researchers such as the joint
range availability [145], the solvability of the kinematic equations, the mechanical
constructability [146], the accuracy achievability [147], and other nonlinearity and
redundancy measures [148].
Most of the performance measures mentioned above are proposed for the analysis
and design of general-purpose robots. For the design of a modular robot that is only
aimed at performing a given task, the effectiveness of these performance measures
remains unclear and needs to be studied. For example, the workspace volume may
be a main performance index for a general-purpose robot. It becomes less important
for evaluating a modular robot that is designed to cater for the specific task (if the
task can be well executed).
Past researches on the optimal design of modular robots mainly focused on the
so-called Task-Based Design (TBD) problem. The goal of TBD is to design a robot
that is optimally suited to perform a given task. The studies on TBD were introduced
by Paredis [32] for the Reconfigurable Modular Manipulator System (RMMS) [10].
In this work, the TBD problem was divided into several stages, i.e., kinematic design,
dynamic design, controller design, and path planning. A robot task was defined as
a set of working poses (positions and orientations) in the task space. The simulated
annealing algorithm was employed to search for the optimal solution. The objective
function was a penalty function in which penalties for violating task constraints, such
as reachability and obstacle constraints, were combined in a weighted sum fashion.
A more comprehensive study on the design of task specific fault tolerant manip-
ulator was also given by Paredis [22]. Such a TBD problem was also formulated
as a design optimization problem. The task description consisted of a timed Carte-
sian path to be followed by the end-effector, and obstacle models in the manipu-
lator workspace. An integrated evaluation function was proposed to deal with the
tight coupling between the performance measures including joint angle, velocity,
and torque limits, reachability, singularity avoidance, collisions with obstacles, and
self-collision caused by the fault tolerance requirement. The objective criterion was
defined as a desired trajectory with minimum energy consumption. Since many per-
formance measures were considered, the evaluation procedure was very time con-
suming. To make this integrated approach computationally feasible, two techniques
were addressed, i.e., to include problem specific design knowledge in the search, and
implement the search in an easily parallelizable agent-based paradigm on the basis
of Genetic Algorithms (GAs). Even so, the computational cost was still expensive.
As mentioned in [36], to derive a feasible solution (with 75 percent probability)
for the satellite docking task needs about 6 h of CPU time on twenty-four Sparc
workstations.
Kim and Khosla [31, 149] also focused on the TBD problem for the RMMS. They
posed the kinematic design of modular robots as an optimization problem. Similarly,
96 7 Optimization of Modular Serial Robot Configurations
the task requirement was also defined as a set of working poses in the task space.
A Multi-Population Genetic Algorithm (MPGA) was employed as the optimization
algorithm. The idea was to have one GA per task pose to search for locally optimal
designs, and then progressively increased the coupling between the individual GAs to
arrive at one single globally optimal design for all the task poses. The design variables
included the number of DOFs, D-H parameters, and the base position. The dexterity
measure was chosen as the objective criterion. Several kinematic constraints, such
as dimension constraints, joint constraints, and task specification constraints, were
considered.
Chen [14, 27] formulated the task-oriented optimal configuration problem as a
combinatorial optimization problem due to the discrete feature of modules. The for-
mulation was based on an Assembly Incidence Matrix (AIM) representation of a
modular robot. The task requirement was defined as a set of sequential working
points (positions) in the task space. A task dependent objective function, termed the
Assembly Configuration Evaluation Function (ACEF), was proposed. This objective
function contained both task evaluation and structure evaluation criteria. An Evolu-
tionary Algorithm (EA) based on genetic operators defined on AIMs was employed
to solve this optimization problem [27].
The task optimization problem was also addressed by Ambrose [1] for the modular
robot system built in University of Texas at Austin. The purpose of this work was to
allow a user to specify the robot performance requirements and then to select the best
of the available module combinations for a set of goals. Ten criteria were considered in
order to evaluate the performance of a robot, i.e., mobility, payload, speed, workspace,
weight, backlash, friction, stiffness, inertia, and bandwidth. Several optimization
algorithms such as the exhaustive search, the sequential filters, the modified golden
section, the steepest descent, the conjugate direction, and Taguchi methods were
employed for the design of one and two-dimensional robots for the comparison
purpose, but no explicit objective function was defined.
Besides the task requirements, most of previous works on the TBD problem still
emphasized robot performance measures such as manipulability, singularity avoid-
ance, and fault tolerance, thus tending to select a sophisticated robot configuration
with more DOFs as the optimal one. The reason behind this is that a robot with more
DOFs can easily satisfy the task requirements and performance measures. An optimal
robot under such considerations is usually a redundant one, e.g., more than 6 DOFs
for a 3-dimensional manipulator and more than 3 DOFs for a regional (positioning)
robot arm. For most industrial applications, however, the operation speed is the main
concern. A modular robot with the simple kinematic structure—few modules and
DOFs, is much more preferred in order to perform a given task swiftly. Therefore,
how to design the Minimized Degrees of Freedom (MDOFs) modular robot for a
given task is crucial to a modular robot system.
7.2 General Design Methodology 97
As mentioned in [22], the optimal design of a modular robot configuration for a given
task is a very difficult problem. It involves both type (topological structure) synthesis
and dimension synthesis. The design space is discrete and grows exponentially with
the number of modules in the inventory. Various performance measures are highly
coupled and nonlinear, and to evaluate whether the constraints are satisfied and to
which extent the optimality criteria are achieved are very computationally expensive.
To reduce the complexity of TBD, we divide the design problem into several
stages as shown in Fig. 7.1. The kinematic design is the first stage, i.e., Stage (1),
because of its importance. It determines the kinematic configuration of the robot
based on the kinematic requirements of a given task. The output of this stage is one
“optimal” and several “sub-optimal” robot configurations. Since we aim at designing
simple robots with MDOFs, it is more difficult to perform trajectory planning in the
task space (Cartesian space). Instead, a joint space trajectory planning algorithm is
to be employed for the derived robot configurations in Stage (2). The joint angle,
velocity, and acceleration limitations thus can be easily considered in this stage.
After that, a 3-D graphic simulation, based on the derived joint trajectory, will be
given for the visualization of task execution and collision detection in Stage (3).
Then, the computation of inverse dynamics will be performed for the investigation
of joint torque limitations and the controller design in Stage (4). If the “optimal”
robot configuration can successfully pass Stages (2), (3) and (4), it is definitely
accepted as the final design; otherwise, the best one among the “sub-optimal” robot
configurations will be selected and cast into the last three stages. This procedure will
repeat until a survived one is obtained. If all the “sub-optimal” ones still fail to pass
Stages (2), (3) and (4), the whole design procedure should be restarted and repeated
until a desired robot configuration is derived. If it is the case that an acceptable
solution cannot be found after a number of redesigns, it may imply that the given
task is unreasonable and needs to be modified.
Note that the module specifications listed in Chap. 2 provide the kinematic and
dynamic parameters of modules. For the purpose of collision detection, a 3-D graphic
model is also to be created for each module.
To a certain extent, this design methodology is an iterative method. Iterations may
occur to the whole design procedure or within several stages. It is true that such a
method cannot guarantee that a desired robot configuration can be obtained within a
few iterations. Compared to an integrated design method [22], however, this method
can avoid spending unnecessary computation time to evaluate kinematically illegal
individuals. This design methodology is based on the consideration that an optimal
robot configuration should be kinematically optimal or sub-optimal one because the
kinematic performance of a robot is critical for the task realization. Hence, in most
cases, the proposed method is more efficient and practical. In the following sections
of this chapter, we will mainly focus on the optimal kinematic design of modular
robots for it is the most important part of the whole design procedure.
The primary issue in the optimal kinematic design of a modular robot is to formulate
a task-oriented optimization model. This model consists of three main parts: design
parameters, the objective function, and constraints.
There are many different levels of details at which a robot task can be defined [22]. As
an example, consider the assembly of a Printed Circuit Board (PCB). At the highest
level, this task could simply be described as: “assemble a PCB”. At an intermediate
level, the task will be decomposed into many subtasks such as “locate a chip in the
parts feeder”, “pick up the chip”, and then “insert the chip into the board”, etc. At
the lowest level, all the details are included, such as “move the end-effector from
point A to point B”, “exert a force of n Newtons on the end-effector in x direction to
grasp a chip at point B”, and “move the end-effector from point B to point C”, etc.
If the robot task is described at higher levels, a task planner is needed to convert the
higher level task descriptions into the low level task descriptions. Although the task
planning problem is also a challenging issue, it is not the main concern of this book.
7.3 Optimization Model 99
Here, we would like to adopt a low level task description such that the robot motion
sequence and trajectory are provided for task execution.
The execution levels of the robot motion sequence and trajectory are adopted to
define a robot task for two reasons. First, with a prescribed robot motion sequence
and trajectory, one can immediately determine the capability of a modular robot
configuration to carry out the task. Furthermore, if the robot is unable to follow
the motion, it is unnecessary to proceed any further with the evaluation procedure.
Secondly, it is very difficult to define a measure to quantify the “goodness” of a robot
while performing a task with a very vague definition [14].
For simplicity, a robot task is specifically defined as a collection of working points
or poses, w p , to be followed by the end-effector or the end link in the task space [14],
where w p ∈ 3×1 or w p ∈ S E(3). If the robot is to follow a prescribed path, this
task can be approximated by a set of points or poses along the path. Other task
specifications such as obstacle avoidance, position accuracy, and static capability at
task points or poses can also be included as part of the definition of a task. Note that
in the following context, the term “point” refers to the position of the end link frame
and “pose” refers to both position and orientation of the end link frame.
The parameters that determine a modular robot configuration are: (1) the number of
the constituting link modules—N , (2) the link module types—L (L ∈{L ci ,L ri ,L pi },
i = 1, 2), and (3) the relative assembly orientations (port vectors) of the consecu-
tive modules—P. When these parameters are all specified, a robot configuration is
uniquely defined. Hence, we consider the set of design parameters X as:
X → {N , L , P}. (7.1)
To fully employ the power of the discrete optimization technique in the MDOF prob-
lem, we introduce a virtual link module type and a virtual joint type (connecting to
the output socket of the virtual link module), denoted by L v and Jv , respectively, into
the inventory of modules. The virtual links and joints function as “slack parameters”
to compensate for the fixed size representation of the candidate solutions for certain
search/optimization techniques like GA. Both L v and Jv do not have physical dimen-
sions and do not exist in the actual robot assembly. We assume that the virtual link
modules (L v ) exist in the abstract kinematic description of the robot and have the
virtual appearance of cubic link modules. To illustrate this virtual module concept,
Fig. 7.2 shows the kinematic graph representation of three different modular robots.
Physically they have different numbers of modules, i.e., five, four, and three modules,
respectively, but the dimensions of their kinematic graphs as well as AIMs remain
identical due to the introduction of the virtual modules.
According to the definition of the AIM, all the design parameters N , L, and P
can be clearly indicated in an AIM. For every possible design (N ,L,P), there exists
100 7 Optimization of Modular Serial Robot Configurations
a unique AIM. Therefore, the design parameters can be defined in AIM format. The
size of the search space is equal to the number of all possible AIMs. Since the joints
(connectors) depend on the links they are connected to, they are not independent
parameters and are not considered as design parameters. Therefore, the last row of
the AIM can be eliminated.
Excluding the virtual module, six kinds of modules (L ∈{L ci ,L ri ,L pi }, i=1, 2)
can be chosen for robot assembly. Each module has six connecting sockets, and a
module can be connected in four different orientations relative to its preceding module
even if the connecting sockets remain unchanged. The search space thus becomes
extremely large. For example, an assembly of two connected modules will have a
total of 6 × 6 × 4 × 6 × 6 = 5184 possible configurations. Likewise, consider an
n-module serial type robot without any virtual module. The number of all possible
configurations, N pc , can be given by
Equation (7.2) shows that the search space grows exponentially with the number
of modules in the robot. If the maximum allowed number of modules in a robot is
equal to m and suppose that a robot consists of at least two real modules, such that
the number of virtual modules may be 0, 1 . . . , or m − 2, then the total number of
possible configurations can be calculated by
m
Ntotal = 4(i−1) × 5(i−2) × 62i . (7.3)
i=2
Nevertheless, obtaining an optimal robot configuration from such a large and discrete
search space is definitely time consuming.
According to the module designs, when we assemble a complete robot with differ-
ent sizes of modules, a general rule is that the large modules should precede the small
modules which are usually located at the distal ends. In the search space, however,
there still exist such robot configurations that: (1) small size modules are connected
between two large size modules; (2) large size modules are connected between two
small size modules. From the mechanical point of view, a robot with such assembly
patterns is an unreasonable structure because of the higher energy consumption and
lower loading capability. To avoid this problem, we propose here a two-step config-
uration design method: the optimization step and the module replacement step.
In the first step, only the large size modules are considered in the inventory of
modules, i.e., L ∈{L c1 ,L r 1 ,L p1 ,L v }, so that many mechanically infeasible configu-
rations can be avoided and the search space will be significantly reduced. The total
number of the possible assembly configurations can be computed by
m
Ntotal = 4(i−1) × 5(i−2) × 6i × 3i . (7.4)
i=2
as a multi-objective function [29, 32]. Performance measures that are not included
in the objective function can be treated as constraints. However, if the objective
function only focuses on robot performance measures, there will be a tendency of
selecting a robot configuration with more DOFs as the optimal one. Moreover, since
the type (topology) synthesis will also be performed in the optimization procedure,
some commonly used performance measures become invalid when used as objective
criteria. For example, the manipulability and workspace measures are both powerful
criteria for evaluating robots with the same topological structure, but it is unfair when
using them to evaluate robots with different topological structures.
Because of the modular design, a modular robot will have most of its actuators
being located on the moving arm itself. Using excessive modules, especially the
actuators, will certainly lower the robot’s loading capability. Hence, to use a minimal
number of modules as well as DOFs to construct a robot assembly for a task becomes
our main concern. The objective function F is therefore defined as a weighted sum
of the numbers of different types of modules to be employed in a robot:
where N p1 , Nr 1 , and Nc1 represent the numbers of large size prismatic, revolute, and
cubic link modules, respectively; k p1 , kr 1 , and kc1 are the user-defined weightages of
N p1 , Nr 1 , and Nc1 , respectively. All these weightages are positive constants and reflect
the relative contribution of their corresponding link modules to the objective function.
To design MDOF robots, the value of the objective function is to be minimized. In
this case, the weightages in Eq. (7.5) would actually act as penalty coefficients. When
we wish to minimize the number of revolute and prismatic joints (DOFs), we will set
kr 1 and k p1 to be much larger than kc1 , as cubic link modules do not contribute to the
DOFs of the robot. If we wish to have more revolute joints than prismatic joints (i.e.,
Nr 1 > N p1 ), then the weightage k p1 is set to be greater than kr 1 ; if we treat both types
of joints to be of equal importance, then k p1 is set to be equal to kr 1 ; otherwise, kr 1
is set to be greater than k p1 . These basic rules are only for determining the relative
importance of the types of modules. Suitable values of k p1 , kr 1 , and kc1 have to be
determined by trial computations.
Since a classical GA maximizes the objective function during the search pro-
cedure, we define the reciprocal of F(F > 0), 1/F, as the fitness function for the
search algorithm. Without loss of physical interpretation, the term “fitness” in the
context still refers to the objective function value as given by Eq. (7.5).
The performance constraints are defined to ensure the feasibility of a robot configu-
ration while performing the given task. The constraints considered here are:
• Reachability;
7.3 Optimization Model 103
T0,1 (0)eŝ1 q1i T1,2 (0)eŝ2 q2i . . . Tn−1,n (0)eŝn qni = w pi . (7.6)
The joint range availability constraint is defined to detect whether the joint
angles derived at each task point/pose are within the joint angle limitations. The
joint range availability constraint for a robot with n + 1 modules is then given by
ai ≥ qi ≥ bi (i = 1, 2, . . . , n), (7.7)
where bi and ai are the lower bound and upper bound of the joint i’s displacement,
respectively.
The manipulability constraint here is only used to detect whether a robot is at
or nearby a singular posture when its end-effector reaches each of the task points
or poses, and thus it is a local manipulability index. For convenience, the C I is
employed to formulate the manipulability constraint:
where σmin and σmax are the minimum and maximum singular values of the robot
Jacobian matrix, respectively. is the user defined lower bound of C I for singularity
avoidance. It usually takes a small value, 0.001 for instance.
The mechanical constructability constraint is proposed to check the mechani-
cal feasibility of a robot assembly. For example, structures with two or more mod-
ules attached to the same connecting socket of an identical module are obviously
infeasible. To avoid such structures, mechanical constructability constraints have
to be given. However, if there are excessive constraints, one will run the risk of
creating a search algorithm that spends most of its time evaluating illegal individu-
als [150]. Instead of formulating these constraints, several assembly rules are built
into the search algorithm so that mechanically infeasible structures can be intelli-
gently avoided. The assembly rules for fixed base, serial type robots are:
1. A complete modular robot consists of at least two real modules.
104 7 Optimization of Modular Serial Robot Configurations
2. The local coordinate frame of the base module coincides with the world frame.
3. For each of the intermediate modules, only two out of the six connecting sockets
will actually be used for assembly, i.e., the “input socket” which is connected
with its proceeding module and the “output socket” which is connected with its
succeeding module.
4. The base module only has an “output socket”, and does not have any “input
socket”. On the contrary, the end module has an “input socket”, and does not have
any “output socket”.
5. The moving socket of any joint module is always used as “output socket” such
that the z direction of the module frame points to its succeeding module.
The first four assembly rules focus on constructing a robot with a fixed base,
serial type kinematic structure. The last rule is aimed at assembling a robot with a
reasonable mechanical structure. Taking the fifth rule as an example, if the “output
socket” of a revolute joint module is not the moving socket, it is functionally the
same as a link module, but it is heavier and more expensive than the link module
and is thus definitely unacceptable. Since the coding schemes for search algorithm
are defined on AIMs, these assembly rules will inherently act on AIMs through an
AIM generating scheme and genetic operators (mutation operators). As a result, the
search algorithm will always evaluate mechanically feasible robot configurations.
Since both the design parameters and the search space are discrete in nature, com-
binatorial optimization techniques can be applied. Exhaustive search techniques can
find the exact optimal solution, but the search space is so large that implementation
of such an algorithm is inefficient. Random search techniques such as the GA and
the Simulated Annealing (SA) method are more suitable for such a problem [14, 35].
The EA is a variation of GA with problem specific data representation and genetic
operators [150]. It is a probabilistic search method based on the principle of evolution
and hereditary of nature systems. In such an algorithm, a population of individuals
for each generation is maintained. The individual is implemented with some data
structure and is evaluated by a “fitness function” to give a measure of its “fitness”.
A new population is formed by selecting the more suitable individuals. In this selec-
tion procedure, an individual with larger “fitness” value (1/F) is more likely to be
selected for the new generation. Some members of the new generation undergo trans-
formations by the “genetic operators” to form new solutions. Probability rules are
applied to determine the execution of the operators. Two types of genetic operators
are considered in general: crossover type and mutation type. The crossover opera-
tion reorganizes data segments in several individuals to form new individuals (or the
offspring). The mutation operator makes small changes in a single individual. After
7.4 Evolutionary Algorithm 105
some number of generations, the individuals will converge to the optimal or nearly
optimal solution.
It is reported that the computational efficiency and stability of GAs rely primarily on
the data representation method, i.e., the coding scheme [150]. Classical GAs usually
use fixed-length binary strings as a chromosome (the data structure) for its individuals
and the genetic operators: the binary mutation and the binary crossover. Such a
coding scheme when adopted for robot configuration designs becomes inconvenient
for the binary string representation is not sufficient to reflect the nature of the design
parameters. Also, a conversion scheme is required to transform the binary strings into
the AIMs [14]. In an EA, on the other hand, chromosomes need not be represented
by binary strings. The alteration process includes employing the problem-specific
data structure to represent the chromosomes and modifying the “genetic” operators
appropriately for the given data structure. Since the AIM representation conceptually
defines the data structure of the solution space, we adopt the AIM as the chromosome
and define the AIM related genetic operators. The main objective behind such an
implementation is to move the EA closer to the solution space.
The AIM generating scheme is proposed to automatically generate the initial popula-
tion of AIMs. This scheme consists of two parts: link type generation and port vector
generation. Although both link types and port vectors are generated on the basis of
the assembly rules, the generation procedure would still have a random feature. For
example, based on the first and second assembly rules, we can still randomly choose
either L c1 , L r 1 , L p1 , or L v as the base link. The input of this scheme is an inventory of
link modules—L ={L c1 ,L r 1 ,L p1 ,L v } and the maximum allowable number of mod-
ules to be used in a robot—n m . The output is an AIM satisfying all the assembly
rules.
The crossover operator applies to the rows of two AIMs. A cut-off row is randomly
chosen. Then the rows in the two AIMs below the cut-off row (Fig. 7.3) are swapped
to form two new AIMs. The probability pc controls this operation.
106 7 Optimization of Modular Serial Robot Configurations
The mutation operators act on non-zero entries of a single AIM. Since the non-zero
entries in a modified AIM (without the last row) can be divided into two categories:
port vectors and link types (the last column), two types of mutations for both port
vectors and link types are considered.
• Link type mutation: As shown in Fig. 7.4, the link type mutation acts on the last
column of an AIM. The link type will be altered randomly, while the port vectors
remain unchanged. The probability pml controls this operation. This operation will
be subject to the assembly rules.
• Port vector mutation: As shown in Fig. 7.4, port vector mutation acts on the port
vectors of an AIM. The port vector is altered randomly, while types of links remain
unchanged. The probability pmp controls this operation. This operation will also
be subject to the assembly rules.
7.4 Evolutionary Algorithm 107
(selection) procedure, so we replace it with a very large number to indicate that such
an AIM consists of excessive modules and has little chance to be selected for the
next generation.
Since the reachability constraint is very strict and is difficult to be satisfied, the EA
may become unstable. It may be the case that the final generation does not contain
any acceptable solution even if the optimal individuals have ever been created in
the intermediate generations. Hence, two techniques are employed to increase the
stability of the algorithm.
• Adaptive mutation operators: the mutation operators ( pmp and pml ) are dynam-
ically changed according to the average fitness of each generation. The suitable
relationship between mutation operators and the average fitness values is deter-
mined through trial computations. In general, the smaller the average fitness value,
the smaller the mutation operators. If all the individuals in a generation are infeasi-
ble configurations, then the probability of mutation operations becomes very high.
Consequently, this is equivalent to randomly selecting AIMs.
• Eugenics: the best AIM obtained previously will be retained from generation to
generation until a better one is created. Then the new AIM will replace the old
one.
By employing these two techniques, the algorithm becomes more stable and can
always find acceptable solutions. However, if the given mutation operators and the
7.4 Evolutionary Algorithm 109
population size are too small, one will run a risk that the algorithm may converge to
a local minimum.
In order to demonstrate the effectiveness of the proposed EA, two examples are
given in this section. In the first example, the given task is a set of working points
(positions), termed the position design problem, while in the second example the
given task is a set of working poses (positions/orientations), termed the pose design
problem. In both examples, the user defined weightages for different types of link
modules are taken as k p1 = 1.5, kr 1 = 1.0, and kl1 = 0.25; the crossover operator is
uniformly taken as pc = 0.25. If an AIM cannot satisfy the constraints, its fitness is
set to 20.
Example 7.1 (Position Design Problem) In this example, we wish to design a fixed
base serial robot that can pass through a set of task points listed in Table 7.1. We set
n m = 6 and n g = 50. The adaptive probabilities for the mutation operators are listed
in Table 7.2.
The computation results are shown in Figs. 7.7, 7.8, 7.9, and 7.10. Figure 7.7 shows
the initial generation of the robot configurations which consists of 20 different robot
configurations. As shown in Figs. 7.9 and 7.10, both the average and minimal fitness
values in the initial generation are equal to 20.0 which indicates that none of the
initial generation of robot configurations is feasible. From the second generation,
both average and minimal fitness values begin to decrease indicating that at least one
feasible configuration has been found. When the destination generation, the 50th
generation, is arrived, the average and minimum fitness values become 3.61 and
2.75, respectively. The final generation of robot configurations is shown in Fig. 7.8.
Table 7.2 The adaptive probabilities for the mutation operators (position problem)
Average fitness value Fa Link mutation operator Port mutation operator
20 0.2 0.2
10 ≤ Fa < 20 0.05 0.05
5 ≤ Fa < 10 0.03 0.03
3 ≤ Fa < 5 0.02 0.02
Fa < 3 0.015 0.015
110 7 Optimization of Modular Serial Robot Configurations
All these configurations, except for the 12th configuration (which is an infeasible
one), have the same kinematic structure. Each of them contains two revolute joint
modules (2 DOFs), three cubic link modules, and one virtual module, and therefore
has the fitness of 2.75 (the smallest fitness in all the 50 generations). Note that due to
the simple schematic drawing routine, the cubic link module L c1 and revolute link
module L r 1 look alike. However, we can identify them through the resulting AIMs.
The AIM of the optimal robot configuration is given by (Fig. 7.11)
⎡ ⎤
(z, −x) 0 0 0 0 Lr1
⎢(−x, −z) (z, −y) 0 0 0 L c1 ⎥
⎢ ⎥
⎢ 0 (−x, y) (z, x) 0 0 Lv ⎥
⎢ ⎥
Aopt =⎢ 0 0 (−x, −y) (z, −x) 0 Lr1⎥ .
⎢ ⎥
⎢ 0 0 0 (−x, −z) (z, −y) L c1 ⎥
⎣ 0 0 0 0 (−y, x) L c1 ⎦
Jr 1 Jf1 Jv Jr 1 Jf1 0
The execution of the given task (four points) with the optimal robot configuration
is shown in Fig. 7.12. Three sub-optimal assembly configurations are also obtained
as shown in Fig. 7.13. They have the fitness values of 5.25 (5 DOFs), 4.25 (4 DOFs),
and 3.5 (3 DOFs), respectively. Their corresponding AIMs are given by
⎡ ⎤
(z, −y) 0 0 0 0 Lr1
⎢(x, −z) (z, y) 0 0 0 Lr1⎥
⎢ ⎥
⎢ 0 (−x, y) (z, −x) 0 0 Lr1⎥
⎢ ⎥
Asub1 =⎢ 0 0 (x, −z) (z, y) 0 Lr1⎥ ;
⎢ ⎥
⎢ 0 0 0 (y, z) (z, x) Lr1⎥
⎣ 0 0 0 0 (y, −x) L c1 ⎦
Jr 1 Jr 1 Jr 1 Jr 1 Jr 1 0
7.5 Computation Examples 111
Fig. 7.12 Execution of the given task with the optimal robot configuration (position problem)
⎡ ⎤
(z, −y) 0 0 0 0 Lr1
⎢(−x, y) (z, −x) 0 0 0 Lr1⎥
⎢ ⎥
⎢ 0 (−x, y) (z, −x) 0 0 Lv ⎥
⎢ ⎥
Asub2 =⎢ 0 0 (x, −y) (z, x) 0 Lr1⎥ ;
⎢ ⎥
⎢ 0 0 0 (y, −z) (z, x) Lr1⎥
⎣ 0 0 0 0 (−z, −x) L c1 ⎦
Jr 1 Jr 1 Jv Jr 1 Jr 1 0
7.5 Computation Examples 113
⎡ ⎤
(z, −y) 0 0 0 0 Lr1
⎢(−x, −y) (z, x) 0 0 0 L c1 ⎥
⎢ ⎥
⎢ 0 (−x, y) (z, x) 0 0 Lv ⎥
⎢ ⎥
Asub3 =⎢ 0 0 (−x, −z) (z, −y) 0 Lr1⎥ .
⎢ ⎥
⎢ 0 0 0 (y, z) (z, x) Lr1⎥
⎣ 0 0 0 0 (y, −x) L c1 ⎦
Jr 1 Jf1 Jv Jr 1 Jr 1 0
Example 7.2 (Pose Design Problem) Now we wish to design the MDOF robot that
can pass a set of task poses listed in Table 7.3. In this example, we set n m = 6 and
n g = 100. The mutation operators for the search algorithm are listed in Table 7.4.
The computation results are shown in Figs. 7.14, 7.15, 7.16, and 7.17. Figure 7.14
shows the initial generation of robot configurations which contains 20 different robot
configurations, and none of them is feasible because both minimal and average fitness
values are equal to 20 (Figs. 7.16 and 7.17). From the 22nd generation as shown in
Figs. 7.16 and 7.17, both the average and minimal fitness values begin to decrease,
which indicates that at least one feasible configuration has been found. When the
destination generation, the 100th generation, is reached, the average and minimal
fitness values become 4.63 and 2.75, respectively. The robot configurations in the
final generation are shown in Fig. 7.15. Both the 13th and 20th robot configurations in
114 7 Optimization of Modular Serial Robot Configurations
Fig. 7.19 Execution of the given task with the optimal robot configuration (pose problem)
Fig. 7.15 have the fitness value of 20 and are thus infeasible ones. The 3rd, 7th, 15th,
and 16th robot configurations have the same kinematic structure and bear the fitness
value of 3.5. From the AIM, we can see that this configuration contains three revolute
link modules (3 DOFs), two cubic link modules, and one virtual link module. The
reminders belong to another set of kinematically identical configurations with each
of them consisting of two revolute link modules (2 DOFs), three cubic link modules,
116 7 Optimization of Modular Serial Robot Configurations
and one virtual link module, and having the lowest fitness value of 2.75, and hence
become the optimal one (Fig. 7.18). The optimal AIM is
⎡ ⎤
(z, x) 0 0 0 0 Lr1
⎢(−x, z) (z, y) 0 0 0 Lr1⎥
⎢ ⎥
⎢ 0 (x, y) (z, −y) 0 0 Lv ⎥
⎢ ⎥
Aopt =⎢ 0 0 (−z, −y) (z, x) 0 L c1 ⎥ .
⎢ ⎥
⎢ 0 0 0 (−z, −y) (z, x) L c1 ⎥
⎣ 0 0 0 0 (−z, x) L c1 ⎦
Jr 1 Jr 1 Jv Jf1 Jf1 0
The execution of the given task (four poses) with the optimal robot configuration
is shown in Fig. 7.19. Two sub-optimal assembly configurations are also obtained
from the intermediate generations as shown in Fig. 7.20, which have the fitness values
of 5.0 (4 DOFs) and 3.5 (3 DOFs), respectively. Their corresponding AIMs are given
by
⎡(z, y) 0 0 0 0 Lr1
⎤
⎢(y, z) (z, −y) 0 0 0 Lr1 ⎥
⎢ 0 (−x, −y) (z, −y) 0 0 L c1 ⎥
⎢ ⎥
Asub1 = ⎢ 0 0 (−z, −y) (z, y) 0 L r 1 ⎥;
⎢ 0 (y, z) (z, −x) L p1 ⎥
⎣ 0 0 ⎦
0 0 0 0 (y, x) L c1
Jr 1 Jr 1 Jf1 Jr 1 J p1 0
⎡ (z, y) 0 0 0 0 Lr1
⎤
⎢(−y, z) (z, −y) 0 0 0 Lr1⎥
⎢ 0 (x, y) (z, −y) 0 0 Lv ⎥
⎢ ⎥
Asub2 =⎢ 0 0 (−x, −z) (z, x) 0 L c1 ⎥ .
⎢ 0 (−z, −y) (z, y) Lr1⎥
⎣ 0 0 ⎦
0 0 0 0 (−z, −x) L c1
Jr 1 Jr 1 Jv1 Jf1 Jr 1 0
7.5 Computation Examples 117
Table 7.4 The adaptive probabilities for the mutation operators (pose problem)
Average fitness value Fa Link mutation operator Port mutation operator
20 0.2 0.2
10 ≤ Fa < 20 0.06 0.045
5 ≤ Fa < 10 0.045 0.03
3 ≤ Fa < 5 0.035 0.02
Fa < 3 0.03 0.015
Remark 2 The computation results also show that the reachability constraint has
significant effect on the search efficiency. In the position design example, the first fea-
sible configuration is derived in the second generation and the optimal configuration
first appears in the 11th generation as shown in Fig. 7.10. In the pose design example,
however, the first feasible configuration is derived in the 22nd generation and the
optimal configuration first appears in the 47th generation as shown in Fig. 7.17. This
is due to fact that the positional reachability constraint is easier to be satisfied. The
pose design example takes about 6 h computation time on a SUN ULTRASPARC
1 workstation, while the position design example takes only 2 h computation time
under the same environment.
for optimal robot configuration is a procedure to increase the number of virtual and
cubic link modules in the candidate configurations.
Remark 4 In the EA, there are several user-defined control parameters, such as the
population size, mutation and crossover operators, which have significant effect on
the search efficiency. Many trial computations have been done in order to draw the
suitable values to be used for the control parameters. (1) The suitable population
size is between 15 to 40; (2) the link and port mutation operators are between 0.01
to 0.06; (3) the crossover operator has little effect on the search efficiency and the
recommended range is between 0.2 to 0.4. The algorithm, as demonstrated by the
provided examples, is reliable and effective under the suitable control parameters.
Chapter 8
Modular Parallel Robot Kinematics
Abstract This chapter focuses on the kinematics analysis issues for a class of three-
legged modular 6-DOF parallel robots, including displacement analysis, instan-
taneous kinematics analysis, singularity analysis and workspace analysis. Three
approaches, i.e., sensor-based solution approach, numerical solution approach and
projection approach, are proposed for the forward displacement analysis. Based on
the Product-of-Exponential (POE) formula, a geometric formulation approach is
employed for the instantaneous kinematics analysis. A passive-joint velocity based
approach is proposed for the singularity analysis. Three parameterization methods
and their corresponding partition schemes for spatial rigid-body rotations are dis-
cussed for the constant position workspace analysis.
8.1 Introduction
© Huazhong University of Science and Technology Press, Wuhan and Springer 119
Nature Singapore Pte Ltd. 2022
G. Yang and I.-M. Chen, Modular Robots: Theory and Practice,
Research on Intelligent Manufacturing,
https://doi.org/10.1007/978-981-16-5007-9_8
120 8 Modular Parallel Robot Kinematics
6-DOF ReSl-Bot manipulator [156], the 3UPS PKM with three composite legs [157],
and other RRRS, RRSR manipulators with rotating links [158]. It is noted that a PKM
is considered having Decoupled-Motion Architecture (DMA) if some of its primary
motions (e.g., translation along with or rotation about an axis) are always driven by
certain (not all) active joints. A PKM with DMA also implies that the PKM should
have simple kinematics so as to facilitate its analysis, design, and motion control.
Another major concern of PKMs with DMA is to investigate and formulate effec-
tive kinematics algorithms, such as displacement, singularity, and workspace anal-
ysis. These algorithms are essential for the performance analysis and design opti-
mization of the PKM.
A number of displacement analysis approaches have been proposed for the three-
legged non-redundant PKMs. Innocenti and Castelli [159] proposed an analytical
method for the forward displacement analysis of PKMs, which needed to solve a
16th-order polynomial equation. Utilizing the sensed displacements of some passive
joints, Notash and Podhorodeski [160] introduced a simplified analytical method
for on-line computation of the moving platform poses. To avoid the complexity
in solving high-order polynomial equations, Cleary and Brook [161] proposed a
numerical method for the forward displacement analysis in which only one solution
could be determined each time.
One of the early works to address configuration singularities of general closed-
loop mechanisms was presented by Gosselin and Angeles [162], in which three types
of configuration singularities were classified. Hunt [163] and Kumar [164] provided
a general framework for applying screw theory to singularity analysis. Merlet [165]
showed that it is possible to enumerate all the singularities of the Stewart-Gough
platform by applying line geometry. Zhou [166] analyzed the Stewart manipulators
for special orientations. Kamyar made a detection of complex singularities for a
function of several variables [167]. Md. Shahidul proposed a boundary element
method to solve the analysis of intensity of singularity [168].
A 6-DOF PKM, in general, has a six-dimensional (6-D) (position and orienta-
tion) workspace. As it is very difficult to present the complete 6-D workspace in a
human readable way, different subsets of the complete workspace are usually deter-
mined such as the constant orientation workspace [169], the projected orientation
workspace, and the orientation workspace [170]. A simple and generic approach to
determine these workspace subsets was to use a discretization method [171–174]. An
advanced geometric approach was first introduced by Gosselin [169], where bound-
aries of the horizontal cross sections of the workspace were determined. Merlet [175]
extended this geometric approach by considering the joint limitations and leg inter-
ference. In recent years, some new methods to analyze the robot workspace have
been proposed. Liu [176] presented a reconstructing solving method based on image
engine. Zhao [177] combined an improved Monte Carlo method and voxel algorithm
for the workspace analysis of a 9-DOF hyper-redundant manipulator. Adrián showed
a method based on the vanishing of self-motion manifolds to determine the collision-
free workspace of redundant robots [178]. The methods of analyzing the workspace
generally rely on intelligent algorithms and machine learning, and the results will be
more accurate and practical compared with traditional methods.
8.1 Introduction 121
Revolute Joint
(Active)
The purpose of displacement analysis for a parallel robot is to derive the kinematic
relationship between the active joint displacements and the end-effector poses. It is
divided into the forward displacement analysis and the inverse displacement anal-
ysis, the former is to determine the pose of the end-effector when the active joint
displacements are known, and the latter is to determine the active joint displacements
when the pose of the end-effector is given. For a PKM, the forward displacement
analysis is a difficult analytical problem. It involves non-linear equations, and many
solutions exist. Therefore, it is difficult to find the general solution algorithm for the
forward displacement analysis of the parallel robots expect for some special parallel
122 8 Modular Parallel Robot Kinematics
robot configurations. In this section, the forward displacement analyses for a 3RRRS
PKM and a 3RPRS PKM are conducted, respectively. On the contrary, the inverse
displacement analysis is generally an easier problem.
In general, the forward displacement analysis mainly has two forms of solutions,
i.e., the numerical solution and the analytical solution. The former is widely used
because it is easily obtained and possesses a simple form, but the result is not accurate
enough. Instead, the latter has the complex analytic form.
The schematic diagram of the three-legged 6-DOF parallel robot configura-
tions is shown in Fig. 8.2. We assume that joint i j (ŝi j ) is the actuating joint
(i = 1, 2, 3; j = 1, 2), and joint i3 (ŝi3 ) is the passive revolute joint (i = 1, 2, 3).
Define A as the local frame attached to the mobile platform and B as the base
frame. The coordinates of the passive spherical joint, point Ai , relative to frame
T
A and the passive revolute joint frame Bi3 are given by pi = xai , yai , z ai and
T
pi = xai , yai , z ai , respectively. The forward displacement analysis becomes to
determine the pose of frame A with respect to the base frame B when the joint dis-
placements of the six active joints, qi j , are known.
where TB,Bi0 is the fixed kinematic transformation from frame B to frame Bi0 (the
base frame of leg i).
Note that the homogeneous coordinate representation is employed in Eq. (8.1).
Denote the forward kinematic transformation from frame B to frame A as TB,A . Then
pi p
TB,A = i . (8.2)
1 1
We also have
8.2 Displacement Analysis 123
p12 × p23 p × p23
TB,A = 12 , (8.3)
0 0
where p12 = p2 − p1 , p23 = p3 − p2 , p12 = p2 − p1 , and p23 = p3 − p2 .
Combining Eqs. (8.2) and (8.3), we obtain
p1 p2 p3 p12 × p23 p1 p2 p3 p12 × p23
TB,A = . (8.4)
1 1 1 0 1 1 1 0
the actual parallel robot in which each of the passive revolute joints has a displace-
ment sensor. Hence, off-line computations and simulations of the iterative numerical
solution method could be more practical in situations where the passive joint dis-
placements are unable to be sensed because it does not require the passive joint
displacements as the input variables.
For simplicity, Eq. (8.1) can also be written as
Pi = Ti eŝi3 qi3 Pi (i = 1, 2, 3), (8.6)
p
where Ti = TB,Bi0 TBi0 ,Bi1 (0)e TBi1 ,Bi2 (0)e
ŝi1 qi1 ŝi2 qi2
TBi2 ,Bi3 (0), Pi = i , and Pi =
1
pi
.
1
Since
−−−→
A1 A2 2 = (P2 − P1 )T (P2 − P1 ). (8.7)
−−−→ (P2 − P1 )T
d A1 A2 = −−−→ (d P2 − d P1 ). (8.8)
A1 A2
The actual distance from point A1 to point A2 is a constant, denoted by a12 . Then,
Similarly, we have
−−−→ (P3 − P2 )T
a23 − A2 A3 = −−−→ (d P3 − d P2 ), (8.11)
A2 A3
−−−→ (P1 − P3 )T
a31 − A3 A1 = −−−→ (d P1 − d P3 ). (8.12)
A3 A1
dq = J −1 da, (8.13)
where
8.2 Displacement Analysis 125
where k represents the number of iterations. Based on the standard iterative form of
Eq. (8.14), the Newton Raphson method is employed to derive the numerical solu-
tion of q(= (q13 , q23 , q33 )T ). Since the Jacobian matrix, J , is a 3 × 3 matrix, the
inverse of the Jacobian matrix J can be found in a symbolic form. From computa-
tional point of view, however, the proposed algorithm is equivalent to the method
given by Cleary and Brooks [161]. After the joint displacement q is derived, the pose
of the mobile platform can be easily determined by using the sensor-based algorithm.
Projection Approach
Due to the special kinematic features of the 3RPRS PKM with DMA such that all
joint axes, except for the three spherical joints at the leg ends, are parallel to each other
and perpendicular to the base plane, a projection approach can be applied in order
to further simplify the forward displacement analysis [183, 184]. The schematic
diagram of the 3RPRS PKM with DMA is shown in Fig. 8.3. By projecting the
3RPRS PKM onto the base (horizontal) plane, an imaginary 3RRRS planar PKM
can be obtained as shown in Fig. 8.4, where the prismatic joints are temporarily
ignored and the spherical joints are treated as revolute joints. On the other hand,
the linear motions of the three prismatic joints can be directly determined when
projecting the 3RPRS PKM onto a vertical direction.
The forward displacement analysis of such a general 3RRR planar PKM has been
well studied by Gosselin and Sefrioui [189], in which a closed-form polynomial
solution was derived. Since the closed-form solution leads to a polynomial of degree
six, at most six real solutions exist for the projected 3RRR PKM. However, since
the 3RRR PKM is a spatial mechanism, there are two possible triangular moving
plates: the original plate and its mirror, satisfying the same three edge-length con-
straints [183]. Therefore, we can conclude that at most 12 real solutions exist for
the forward displacement analysis of the 3RPRS PKM with DMA. For more details
about this method, please refer to [183].
126 8 Modular Parallel Robot Kinematics
Computation Example
In order to demonstrate the effectiveness of the proposed forward displacement anal-
ysis algorithms for a modular three-leg 6-DOF parallel robot as shown in Fig. 8.2, a
computation example is given. The given geometric parameters are as follows:
8.2 Displacement Analysis 127
⎡ ⎤
0.5 −0.866 0 −250
⎢0.866 0.5 0 −433⎥
TB,B10 =⎢
⎣ 0
⎥,
0 1 80 ⎦
0 0 0 1
⎡ ⎤
−1 0 0 500
⎢ 0 −1 0 0 ⎥
TB,B20 =⎢ ⎥
⎣ 0 0 1 80 ⎦ ,
0 0 0 1
⎡ ⎤
0.5 0.866 0 −250
⎢−0.866 0.5 0 433 ⎥
TB,B30 =⎢
⎣ 0
⎥,
0 1 80 ⎦
0 0 0 1
⎡ ⎤
0 0 1 90
⎢0 −1 0 0 ⎥
TB10 ,B11 (0) = TB20 ,B21 (0) = TB30 ,B31 (0) = ⎢ ⎥
⎣1 0 0 0 ⎦ ,
0 0 0 1
⎡ ⎤
0 0 1 195
⎢0 10 0 ⎥
TB11 ,B12 (0) = TB21 ,B22 (0) = TB31 ,B32 (0) = ⎢
⎣−1 0 0 0 ⎦ ,
⎥
0 00 1
⎡ ⎤
10 0 0
⎢0 0 −1 0 ⎥
TB12 ,B13 (0) = TB22 ,B23 (0) = TB32 ,B33 (0) = ⎢
⎣0 1 0 105⎦ ,
⎥
00 0 1
si j = (0, 0, 0, 0, 0, 1)T (i, j = 1, 2, 3),
p1 = (−150, −259.81, 0)T , p2 = (300, 0, 0)T , p3 = (−150, 259.81, 0)T ,
p1 = p2 = p3 = (0, 500, 0)T .
The entire computation scheme consists of two parts. The first part is to solve
for the displacements of passive joints q p = (q13 , q23 , q33 )T with the known actu-
ating joint displacements qa = (q11 , q21 , q31 , q12 , q22 , q32 )T by using the iterative
numerical algorithm. The second part, based on the derived solution of q p , is to
determine the pose of the mobile platform TB,A by using the sensor-based algorithm.
The computation results are listed in Table 8.1. In the right column: qa —the input
actuating joint displacements; q p —the derived passive joint displacements; and N —
the number of iterations. The left column represents the derived poses of the mobile
platform TB,A . The initial guess solutions for the passive joints, q p , are identically
taken as (0, 0, 0)T . The desired solutions in all five cases can be obtained in 3 to
4 iterations. Nevertheless, the iterative numerical algorithm cannot guarantee that a
solution will be derived within a fixed number of iterations. The computation effi-
ciency depends on the initial guess solutions. Note that in the computation examples,
the joint angles are expressed in radians (for revolute joints), and the position vectors
are in millimeters.
128 8 Modular Parallel Robot Kinematics
The inverse displacement analysis is to determine the six active joint displacements
when the pose of the mobile platform frame with respect to the base frame is given.
As shown in Fig. 8.2, when the pose of the mobile platform frame TB,A is given,
the position vector of point Ai with respect to the base frame, pi , can be directly
determined according to Eq. (8.2). Once pi is known, each leg can be treated as an
individual serial manipulator and any inverse kinematics algorithm for serial-type
manipulators can be applied to complete the analysis. Note that the inverse kinemat-
ics solution of the parallel manipulator exists if and only if the inverse kinematics
solutions exist for every individual leg. Following the POE approach, we use the
Paden–Kahan method for the inverse kinematics analysis.
The instantaneous kinematics analysis pertains to the study of the velocity rela-
tionships among the active joints, the passive joints, and the mobile platform. Such
8.3 Instantaneous Kinematics Analysis 129
kinematics relationships, obviously, will mainly be used for the singularity analysis
and dynamic analysis.
( p2 − p1 )T ( ṗ2 − ṗ1 ) = 0,
( p3 − p2 )T ( ṗ3 − ṗ2 ) = 0,
( p1 − p3 )T ( ṗ1 − ṗ3 ) = 0, (8.16)
where q̇i j is the velocity of joint i j ( j = 1, 2, 3). Let TB,Bi j represent the forward
kinematic transformation from frame B to frame Bi j and pi j,i (with pi3,i
= pi ) be
the position vector of point Ai relative to frame Bi j . Equation (8.17) can be rewritten
as:
ṗi p i1,i p i2,i
= TB,Bi1 ŝi1 q̇i1 + TB,Bi2 ŝi2 q̇i2
0 1 1
p i3,i
+ TB,Bi3 ŝi3 q̇i3 . (8.18)
1
130 8 Modular Parallel Robot Kinematics
ŵ v
Let ŝ represent a twist, i.e., an element of se(3), such that ŝ = , and p ∈ R 3×1
0 0
be any position vector. We have
p ŵ v p I3×3 − p̂ v
ŝ = = , (8.19)
1 0 0 1 0 0 w
in which R B,Bi j and p B,Bi j represent the orientation and position of frame Bi j with
respect to the base frame B, respectively. Equation (8.21) can also be further simpli-
fied as
Kinematically, R B,Bi j T pi j,i si j q̇i j ∈ R 3×1 (i, j = 1, 2, 3) represents the velocity of
point Ai resulting from the motion of joint i j, i.e., q̇i j . Therefore, the term R B,Bi j T pi j,i
si j ∈ R 3×1 reflects the contribution of the i jth joint velocity to the point velocity of
Ai . Denoting this term by u i j , Eq. (8.22) becomes
J p q̇ p = Ja q̇a , (8.24)
where q̇ p = [q̇13 , q̇23 , q̇33 ]T ∈ 3×1 represents the velocity of the passive joints, and
q̇a = [q̇11 , q̇12 , q̇21 , q̇22 , q̇31 , q̇32 ]T ∈ 6×1 represents the velocity of the active joints.
Moreover,
⎡ T ⎤
− p12 u 13 p12 T
u 23 0
Jp = ⎣ 0 − p23 T
u 23 p23 T
u 33 ⎦ ∈ 3×3 ,
T
p31 u 13 0 − p31 u 33
T
⎡ T ⎤
p12 u 11 p12 u 12 − p12
T T
u 21 − p12
T
u 22 0 0
Ja = ⎣ 0 0 T
p23 u 21 p23T
u 22 − p23
T
u 31 − p23
T
u 32 ⎦ ∈ 3×6 ,
− p31 u 11 − p31 u 12
T T
0 0 T T
p31 u 31 p31 u 32
pi j = p j − pi .
−1
Right-multiplying both sides of Eq. (8.26) with TB,A , we obtain
−1 ṗ1 ṗ2 ṗ3 ( ṗ2 − ṗ1 ) × p23 + p12 × ( ṗ3 − ṗ2 )
ṪB,A TB,A =
0 0 0 0
−1
p1 p2 p3 p12 × p23
. . (8.27)
1 1 1 0
Note that the matrix whose inverse appears in Eq. (8.27) is always invertible if points
A1 , A2 , and A3 neither coincident nor collinear, such that p12 × p23 = 0.
−1
In Eq. (8.27), the term, ṪB,A TB,A , represents the spatial velocity of the mobile
platform frame A with respect to the base frame B, which is a twist. Denote the
−1
spatial velocity of the mobile platform ṪB,A TB,A by v̂sB,A , which has the form
132 8 Modular Parallel Robot Kinematics
s
ŵ B,A v sB,A
v̂sB,A = ∈ se(3), (8.28)
0 0
where w sB,A represents the instantaneous angular velocity of the mobile platform as
viewed in the spatial (base) frame. However, v sB,A is not the point velocity of the
origin of the mobile platform frame with respect to the base frame. Rather, v sB,A is
the velocity of a point on the same rigid body of the mobile platform which coincides
instantaneously with the origin of the base frame. In other words, if one stands at the
origin of the base (spatial) frame and measures the instantaneous velocity of a point
attached to the mobile platform and passing through the origin, one obtains v sB,A . A
formal definition of the spatial velocity of a rigid body can be found in [62].
where q̇i = [q̇i1 , q̇i2 , q̇i3 ]T ∈ 3×1 represents the (passive and active) joint velocity
vector of leg i, and Ji = [u i1 u i2 u i3 ] ∈ 3×3 represents the Jacobian matrix of
leg i.
For the analysis at hand, the three legs are decoupled from each other. If the
Jacobian matrix of leg i, Ji , is non-singular, then the joint velocity vector of leg i,
q̇i , is given by
Using Eq. (8.32), both the passive and active joint velocities can be simultaneously
determined from the mobile platform velocity.
Based on the POE formula, both forward and inverse kinematics analysis algo-
rithms have been formulated. It is noted that the kinematic equations derived from
the POE formula have compact forms and well-defined structures such that they can
be readily differentiated with respect to time. It has been demonstrated, through a
number of algorithms, that the POE formulation approach is also computationally
efficient [87]. All these features make the POE formula an effective tool for the
formulation of the instantaneous kinematics models.
One of the main issues in the parallel robots is the kinematic singularity analysis. The
notion of singularity in parallel robot kinematics refers to the configurations in which
a robot either loses or gains one or more DOFs instantaneously. In other words, a
modular parallel robot will lose its designated motion and working capability in a
singular configuration. Hence, to design a parallel robot with a desired performance,
e.g., high rigidity and manipulability, singularities must be excluded from its working
area, if possible. This section mainly focuses on the singularity analysis of a class
of three-legged 6-DOF modular parallel robots. Based on the singularities of matri-
ces J p and Ji derived in Sect. 8.3, we classify the singularities of the three-legged
parallel robots into three categories, i.e., the forward, inverse, and combined singu-
larities. Different from the conventional singularity analysis methods, two methods
are proposed to simplify the singularity analysis.
The first method is based on passive-joint velocities. If the passive-joint velocities
as well as the mobile platform velocity can be determined from the active-joint
velocities, there will be no forward singularity. On the other hand, if the passive- and
active-joint velocities can be determined from the mobile platform velocity, there
will be no inverse singularity. Excluding the passive spherical joints at the leg ends,
there are only three 1-DOF passive joints in a three-legged 6-DOF parallel robot.
The complexity of the singularity analysis is significantly reduced because only four
3 × 3 matrices need to be analyzed.
The other is a geometric projection approach specifically proposed for 3RPRS
PKM. Because the classical approach, i.e., rank analysis of the Jacobian matrices,
usually is not an easy task for a 6-DOF PKM, the simple geometric approach is
employed to identify the singularity conditions. Formulation of instantaneous kine-
matics and Jacobian matrices can be avoided. Note that the mechanical interferences
are ignored in the singularity analysis.
134 8 Modular Parallel Robot Kinematics
p = ( p12
T
u 23 )( p23
T
u 33 )( p31
T
u 13 ) − ( p12
T
u 13 )( p23
T
u 23 )( p31
T
u 33 ). (8.34)
s 31
s11 B31
B 11 z s 22
B
y
x
s 21
B 21
A2 s32
s12
s23
s 31
s11 B31
B11 z s22
B
y
x
s21
B21
A2 s32
s12 s23
s31
s11 s22 B31
B 11 z
B
y
x
s21
B 21
Projection method
According to the specific design of the 3RPRS PKM with DMA, a projection
method is presented to identify the singularity conditions. With the simple geomet-
ric method, formulation of instantaneous kinematics and Jacobian matrices can be
avoided. When the six active joints are rigidly locked, the PKM will be reduced to
a 3RS closed-loop mechanism, as shown in Fig. 8.8. In a general case, it has no
mobility and is a rigid structure. In some special configurations, however, the mov-
ing platform becomes unstable and instantaneous motions in certain directions may
occur, which are exactly the cases of forward singularities. Based on the passive-joint-
velocity method proposed in [185], whenever the moving platform has instantaneous
motions, the following equation will always hold:
J p q̇ p = 0, (8.35)
where q̇ p = (q̇d1 , q̇d2 , q̇d3 ) represents the velocity of the three passive revolute joints,
and matrix J p is given by
⎡ ⎤
T
p12 (r1 × ωd1 ) − p12
T
(r2 × ωd2 ) 0
Jp = ⎣ 0 T
p23 (r2 × ωd2 ) − p23
T
(r3 × ωd3 )⎦ ,
− p31 (r1 × ωd1 )
T
0 p31 (r3 × ωd3 )
T
−−−−→
where pi j = p j − pi , ri = Di Pi and ωdi = (0, 0, 1) represents the unit directional
vector of the passive revolute joint Di (i, j = 1, 2, 3, i = j).
It can be depicted from Eq. (8.35) that the forward singularity will occur if and
only if matrix J p is singular so that q̇ p has nontrivial solutions. Hence, the complete
and sufficient condition for the forward singularity of the 3RPRS PKM can be written
as
8.4 Singularity Analysis 137
J p = p12
T
(r1 × ωd1 ) p23
T
(r2 × ωd2 ) p31
T
(r3 × ωd3 )
− p12
T
(r2 × ωd2 ) p23
T
(r3 × ωd3 ) p31
T
(r1 × ωd1 ) = 0. (8.36)
Although Eq. (8.36) gives the mathematical expression of the forward singularity
condition, it isstill not geometrically
clear.
For this specific PKM with DMA, we can
assume pi = pi x , pi y , pi z and ri = ri x , ri y , 0 . Through symbolic computation,
we realized that J p can also be written as
J p = V H , (8.37)
PKM, which has been well studied in [191] based on the concept of instantaneous
centers. Here, we will only summarize the conclusions.
By projecting the 3RS closed-loop mechanism (Fig. 8.8) onto a horizontal plane,
e.g., the base plane, a planar 3RR closed-loop mechanism (without mobility in a
general configuration) can be obtained, as indicated in Fig. 8.9a. Based on the method
proposed in [191], it can be concluded that the forward singularity will occur if
and only if the three projected links D1 P1 , D2 P2 and D3 P3 either intersect at a
point Fig. 8.9b or are parallel to each other Fig. 8.9c. If the three links intersect
at a point I as shown in Fig. 8.9b, the projected moving platform can produce an
infinitesimal rotation about the instantaneous center I . If the three links are parallel
to each other as shown in Fig. 8.9c, the projected moving platform can produce an
infinitesimal translation relative to the base such that the instantaneous center lies
at infinity. Otherwise, the moving platform and the base have an infinite number of
instantaneous centers of zero velocity so that the moving platform is stationary with
respect to the base.
Now, let us revert to the original 3RPRS PKM (Fig. 8.3). The revolute joint axis
ŝdi and the center of spherical joint Pi of leg i can define a vertical plane. Hence,
three such vertical planes can be formed. The forward singularity occurs if and only
if the three vertical planes intersect at the same vertical line or they are parallel to
each other. Moreover, if the moving platform is perpendicular to the base plane, it is
always a forward singularity configuration.
s31
s11 B31
B 11 z
s22
B
x y
s21
B 21
s 11 s31
B31
B 11 z
s 22
B
y
x
s 21
B21
Projection method
For the 3RPRS PKM with DMA, each leg is connected to the moving platform
through a spherical joint so that the point velocity of Pi can be uniquely determined
with the given moving platform velocity. Hence, the inverse singularity analysis can
be decoupled for each of the legs. Since each leg is a SCARA-like 3-DOF RPR
type positional arm with an operational point Pi (i = 1, 2, 3), at the leg-end, its
inverse singularity conditions are identical with those of a SCARA-type robot, i.e.,
the inverse singularity occurs if and only if the two links (lines) Ci Di and Di Pi in
leg i are co-planar, as shown in Fig. 8.12. Geometrically, this singularity condition
corresponds to the fully stretched or folded configurations. The complete 3RPRS
PKM with DMA will suffer from the inverse singularity if any leg is in an inverse
singularity configuration.
actually the case of combined singularity because both matrices J p and J1 are simul-
taneously singular. For the 3RPRS PKM, the combined singularity configuration is
shown in Fig. 8.13. It is noted that the combined singularity is subject to strict con-
ditions and can be avoided by proper dimension design of the mechanisms [192],
[191]. For the specific PKM being developed, there are no combined singularities in
the workspace.
The size of the workspace is one of the important indicators to measure the per-
formance of a PKM. For a 6-DOF PKM, its complete 6-D workspace is difficult to
present, the major subject of this section is to determine the subsets of the workspace.
There are basically two approaches to determine the subsets of the workspace of
a 6-DOF PKM, i.e., the constant orientation workspace and the constant position
workspace. The constant-orientation workspace, i.e., the reachable workspace of a
PKM with a constant moving platform orientation, has been well addressed by Gos-
selin [195], in which the constant-orientation workspace is given by the intersection
of individual ones generated by each of the three legs. However, the constant posi-
tion workspace, i.e., the orientation workspace of a PKM with a constant moving
platform position, has not been well studied.
To investigate the constant position workspace for a 6-DOF PKM, a numerical
approach is proposed [194]. With Euler angles, tilt-and-torsion angles, and expo-
nential coordinates parameterization methods, the constant orientation workspace
of a 6-DOF PKM can be represented by a rectangular parallel piped, a solid cylin-
der, and a solid sphere, respectively. Different finite partition schemes have been
proposed for the three solid geometric entities. They possess the same essential
features, i.e., they are all equi-volumetric, parametric, proportional, and exact par-
titions of their corresponding geometric entities. It is noticed that, as a result of
parameterizations, integration measures have to be introduced when computing the
orientation workspace volume from its parametric domains. Consequently, the ori-
entation workspace volume can be numerically computed as a weighted volume sum
of the equi-volumetric elements in which the weightages are the element associated
142 8 Modular Parallel Robot Kinematics
Among the various parameterization methods for spatial rigid-body rotations, Euler
angles, tilt-and-torsion angles, and exponential coordinates have proven to be appro-
priate for finite partitions.
In robotics, the Euler angles parameterization method is the most popular convention
to describe the spatial rigid body rotations. Depending on the sequences of rotations
and the coordinate frames used to describe the rotations, a number of Euler-angle
sets can be defined. Here, we only take the widely used Z-Y-Z Euler angles represen-
tation as an example to describe its applications in numerical orientation workspace
analysis. In fact, the other sets of Euler angles have almost the same features in these
aspects. The rotation matrix resulting from the Z-Y-Z Euler angles is given by:
⎡ ⎤
cαcβcγ − sαsγ −cαcβsγ − sαcγ cαsβ
RZY Z = ⎣ sαcβcγ + cαsγ −sαcβsγ + cαcγ sαsβ ⎦ , (8.38)
−sβcγ sβsγ cβ
where ‘c’ and ‘s’ represent the ‘cosine’ and ‘sine’ functions respectively. α, β and
γ are the respective Z-Y-Z Euler angles. If we limit the range of the Euler angles
such that 0 ≤ α < 2π , 0 ≤ β < π , and 0 ≤ γ < 2π , the entire rigid body rotation
group S O(3) can be visualized as a rectangular parallel piped as shown in Fig. 8.14.
Thus, a one-to-one mapping can be established between the Euler angles triplets and
the rigid body rotations.
As a result of Euler angles parameterization, integration measures need to be
introduced when computing the volume of the orientation workspace of rigid body
rotations from its parametric domain. The integration measure is defined as the
absolute value of the determinant of the Jacobian matrix which relates the rate of
change of the parameters to describe the rotation to the angular velocity of the rigid
body. For Euler angles parameterization, it has been realized that the integration
measure is given by sin β. Hence, the volume of the entire rigid body rotation group
is given by:
2π π 2π
d VR = sin βdαdβdγ = 8π 2 . (8.39)
S O(3) 0 0 0
8.5 Workspace Analysis 143
where Q e denotes the parameter space of the ZYZ Euler angles, i.e., a subset of the
rectangular parallel piped.
It has been addressed that the entire rigid-body rotation group S O(3) can be visual-
ized as a solid cylinder when the cylindrical coordinates are employed to represent
the T&T angles, as shown in Fig. 8.15. Furthermore if we limit the ranges of the T&T
angles to 0 ≤ θ < π, 0 ≤ φ < 2π , and 0 ≤ σ < 2π , a one-to-one mapping can be
established between T&T angles and rigid body rotations.
The integration measures also need to be introduced when computing the volume
of the orientation workspace of rigid body rotations from the T&T angles domain.
It can be verified that if Cartesian coordinates are used to represent the T&T angles,
the integration measure will be the same as that of the Euler angles representation,
which is given by sin θ . In this case, the volume of the entire rigid body rotation
group is given by:
2π π 2π
d VR = sin θ dφdθ dσ . (8.42)
S O(3) 0 0 0
However, since the T&T angles are represented in cylindrical coordinates, the term
dθ dφdσ in Eq. (8.42) is not a volume element. Then, we need to modify the term into
its equivalent form as: θdφdθdσ
θ
, where dθ dφdσ is the standard differential volume
element in cylindrical coordinates. Equation (8.42) can be rewritten as:
π
2π 2π
sin θ
d VR = θ dφdθ dσ = 8π 2 . (8.43)
S O(3) 0 0 0 θ
Equation (8.43) also implies that the equivalent integration measure for the cylindrical
coordinates representation of T&T angles is sinθ θ . The integration or convolution of
a rotation-dependant function f (R) over a set of rotations S ∈ S O(3) in the T&T
angles domain is given by
8.5 Workspace Analysis 145
sin θ
f (R)d VR = f (R [θ, φ, σ ]) θ dφdθ dσ, (8.44)
R∈S θ,φ,σ ∈Q t θ
where Q t denotes the parameter space of the T&T angles (with cylindrical coordi-
nates representation), i.e., a subset of the solid cylinder.
The rotation matrices whose traces are equal to −1 have a rotation angle of π , and
correspond to points on the surface of the solid sphere. Each of these points has a
unique antipodal point which represents the same rotation because the rotation about
a vector w with an angle of π is equivalent to a rotation about its opposite vector
ˆ
−w with an angle of π such that eŵ = e−w if w = π . Therefore, a one-to-one
correspondence between the matrix exponential coordinates and rigid body rotations
can be established if the lower (or upper) hemispherical surface of the solid sphere
is excluded.
The form of integration measure is 2(1−cosw)
w2
. Hence, the volume of the entire
rigid body rotation group S O(3) is given by:
2 (1 − cos w)
d VR = dwx dw y dwz = 8π 2 . (8.46)
S O(3) D3 w2
where Q m denotes the parameter space of the exponential coordinates, i.e., a subset
of the solid sphere.
As discussed in last section, the rigid body rotation group, when embodied in 3
through ZYZ Euler angles (α − β − γ ), can be visualized as a rectangular parallel
piped of dimensions, where 0 ≤ α < 2π , 0 ≤ β < π , and 0 ≤ γ < 2π . A straight-
forward way to isotropically partition this rectangular parallel piped is to divide the
ranges of α, β and γ angles into 2n, n, and 2n segments with the same interval πn ,
respectively. In this way, the entire rectangular parallel piped can be partitioned into
4n 3 identical cubes, as shown in Fig. 8.17. Consequently, each of the cubic elements
has the same volume of Ve = πn 3 . For indexing purpose, a triplet (i, j, k) is assigned
3
to each of the elements, where i = 1, 2, ..., 2n is the index for α angles starting
from the origin, j = 1, 2, ..., n is the index for β angles starting from the origin,
and k = 1, 2, ..., 2n is the index for γ angles also starting from the origin. When a
triplet index (i, j, k) is specified for a cubic element, we can readily compute the
coordinates of its center point as:
8.5 Workspace Analysis 147
(2i − 1) π
αi jk = ,
2n
(2 j − 1) π
βi jk = , (8.48)
n
(2k − 1) π
γi jk = .
2n
When the number of division n is sufficiently large, the local property of each
element can be represented by its center point, termed the feature point. According
to Eq. (8.39), the orientation workspace for a set of rotations S ∈ S O(3) can be
numerically computed as:
d VR ≈ Ve sin βi jk . (8.49)
R∈S
where (αi jk , βi jk , γi jk ) ∈ Q e .
Based on the geometric features of the solid cylinder of radius π and height 2π , an
equi-volumetric partition scheme is achieved in a number of steps as follows:
STEP 1: Solid cylinder to cir cular discs
148 8 Modular Parallel Robot Kinematics
Divide the solid cylinder into 2n identical thin circular discs along vertical direc-
tion, as shown in Fig. 8.18. Hence, the height of each thin circular disc is πn . Label
the discs from 1 to 2n starting from the bottom, i.e., i = 1, 2, ..., 2n.
STEP 2: Cir cular disc to concentric cir cular bands
Divide each of circular discs, e.g., the i th (i = 1, 2, ..., 2n) disc, into n concentric
circular band with the same thickness (σ θ = πn ) along radial direction, as shown in
Fig. 8.18. Note that the first one in the center, i.e., the center element, is actually a
small and thin circular disc of radius πn and height πn . Label the circular bands from
1 to n starting from the center element, i.e., j = 1, 2, ..., n.
STEP 3: Cir cular band to elements
The center element in each of the circular discs is considered as the basic element
and no partition is needed. Furthermore, its volume, i.e., Vt = πn 3 , is defined as
4
the unit volume for the equi-volumetric partition scheme. Since the circular bands
have the same thickness (in radial direction), it is not surprising that the volume
of jth concentric ring band possesses m j = j 2 − ( j − 1)2 = 2 j − 1 times of the
unit volume of Vt such that the jth circular band can be partitioned into m j =
2 j − 1 elements with identical volume of Vt , j = 2, 3, ..., n. It follows that we can
circumferentially divide the jth circular band into 2 j − 1 equi-volumetric elements
using the same spacing angle 2 2π j−1
, as shown in Fig. 8.18. For the jth circular band,
label the partitioned 2 j − 1 elements using index k such that k = 1, 2, ..., 2 j − 1,
starting from the x-axis counterclockwise.
In this way, each circular disc can be equi-
volumetrically divided into nj=1 (2 j − 1) = n 2 elements. Altogether, the entire
solid cylinder can be partitioned into 2n 3 elements with identical volume of Vt .
Similar to the isotropic partition of the rectangular parallel piped, when a triplet
index (i, j, k) is specified for an element, the coordinates of the feature points can be
readily computed. When the number of division n is sufficiently large, the local prop-
erty of each element can be represented by its feature point. According to Eq. (8.43),
the orientation workspace for a set of rotations S ∈ S O(3) can be numerically com-
puted as: sin θi jk
d VR ≈ Vt . (8.51)
R∈S θi jk
where (θi jk , φi jk , σi jk ) ∈ Q t .
radius π . Schematically, this partition only deals with one solid hemisphere because
of the geometric symmetry. The solid hemisphere is first divided into n concentric
spherical shells with the same thickness. The first shell, i.e., the core, is considered
as the basic element. It is actually a small solid hemisphere of radius πn . Its volume
4
Vm = 2π3n 3
is defined as the unit volume for the equi-volumetric partition scheme.
Based on the geometry of the concentric spherical shell, we first latitudinally remove
one circular cap element with one unit volume from the top of the shell, as shown in
Fig. 8.19. Subsequently, we latitudinally partition the remaining portion of the shell
into consecutive circular bands according to the volume allocations of the bands.
Finally, we longitudinally partition each of the circular bands into equi-volumetric
elements (identical to the volume of the core element) using the same spacing angle.
Using such an equi-volumetrical partition scheme, the solid hemisphere of radius
π can be divided into n 3 elements of equal volume. There is one core element of a
solid hemisphere in the center, n − 1 cap elements of spherical disk shells along the
150 8 Modular Parallel Robot Kinematics
pole axis wz , and the rest are all common elements of spherical rectangular shells.
With the other solid hemisphere partitioned in the same manner, the complete solid
sphere will have 2n 3 elements in total.
Similar to the other two partition methods, when the number of division n is
sufficiently large, the local property of each element can be represented by its feature
point. According to Eq. (8.46), the orientation workspace for a set of rotations S ∈
S O(3) can be numerically computed as:
1 − cos wi jk
d VR ≈ 2Vm . (8.53)
S O(3) wi jk 2
where wi jk ∈ Q m .
8.5 Workspace Analysis 151
For the Euler angles parameterization, the integration measure is given by sin β
(0 ≤ β < π ). For the T&T angles parameterization with cylindrical coordinates rep-
resentation, the equivalent integration measure is given by sinθ
θ
(0 ≤ θ < π ). Finally,
the integration measure for the exponential coordinates parameterization method is
given by 2(1−cosw)
w2
(0 ≤ w ≤ π ). The distributions of these integration measures
along with β, θ and w are plotted in Fig. 8.20. It is clear that the integration mea-
sure for the Euler angles parameterization has singular points when β = 0 and β
approaches π ; the integration measure for the T&T angles has singular points when
β approaches to π ; whereas the exponential coordinates parameterization has no
singularity in the entire parametric domain. Furthermore, with regard to the linearity
level of the integration measures, the exponential coordinates parameterization is
the best and the Euler angles parameterization is the worst. It also implies that the
finite partition of S O(3) in Euler angles parametric domain may induce the largest
computation errors, whereas the exponential coordinates parameterization can give
the most accurate results.
Element Convergency
In the Euler angles analysis approach, an isotropic partition scheme is proposed for
the rectangular parallel piped, which is realized in three orthogonal directions. The
rectangular parallel piped is divided into 4n 3 identical cubic elements. In the T&T
angles analysis approach, an equi-volumetric partition scheme is proposed for the
solid cylinder, which is realized in axial, radial, and circumferential directions. The
solid cylinder is divided into 2n 3 finite elements with equal volume. In the exponential
152 8 Modular Parallel Robot Kinematics
Computation Accuracy
(which is always 8π 2 ) and its corresponding computed values, as shown in Table 8.3.
Note that with the same division number n, the number of elements in the Euler
angles partition approach is twice of the other two approaches. Hence, the results
shown in Table 8.3 are more generous to the Euler angles approach. It can be readily
depicted that the exponential coordinates method has the highest computation accu-
racy, while the Euler angles approach and T&T angles approach are more or less
equivalent. However, when the division number n increases, the differences among
the three approaches become insignificant.
Chapter 9
Kinematic Calibration for Modular
Parallel Robots
Abstract This chapter focuses on the kinematic calibration for three-legged mod-
ular parallel robots. Based on the closed-loop structure of parallel robots, the cali-
bration procedure is normally divided into two steps, i.e., self calibration followed
by base and tool calibration. Using the local frame representation of the Product-of-
Exponentials (local POE) formula and mathematical tools from differential geom-
etry and group theory, the self-calibration and base-tool calibration models are
formulated. An iterative least-squares algorithm is employed to identify the error
parameters. To demonstrate the accuracy, effectiveness, and robustness of these two
approaches, two computation examples on a 6-DOF (3RRRS) modular parallel robot
are provided.
9.1 Introduction
One of the main concerns in the modular parallel robot system is the positioning
accuracy of the robot end-effector. A set of robot modules is joined together to form
a complete parallel robot assembly. Factors like machining tolerance, compliance,
misalignment of the connected modules, and wear of the connecting mechanisms
will affect the positioning accuracy of the robot. As a result, the assembly errors
of a modular robot are usually larger than those of a robot having fixed configura-
tions. Hence, identifying the critical kinematic parameters to improve the positioning
accuracy of the robot end-effector becomes a very important issue for modular recon-
figurable parallel robots. Based on the closed-loop structure of the parallel robot, the
calibration procedure is normally divided into two steps, i.e., self-calibration of the
closed-loop mechanisms and calibration of the base as well as the end-effector. The
purpose of self-calibration is to calibrate the closed-loop mechanisms by using the
built-in sensors in the passive joints. Once the parallel robot is self-calibrated, the sub-
sequent end-effector calibration can be easily performed. The base-tool calibration,
© Huazhong University of Science and Technology Press, Wuhan and Springer 155
Nature Singapore Pte Ltd. 2022
G. Yang and I.-M. Chen, Modular Robots: Theory and Practice,
Research on Intelligent Manufacturing,
https://doi.org/10.1007/978-981-16-5007-9_9
156 9 Kinematic Calibration for Modular Parallel Robots
on the other hand, is to improve the absolute positioning accuracy of the end-effector
by using external measuring equipment. In this step, only the kinematic errors in the
fixed transformations from the robot world frame to the robot base frame and from
the mobile platform frame to the end-effector frame need to be identified.
Because of the importance of the self-calibration step, past research efforts on cal-
ibration of parallel robots have been concentrated on the self-calibration techniques
[201–215]. A representative work in this approach was presented by Zhuang [216].
In this work, a self-calibration method was proposed for the conventional six-legged
Stewart platform through the installation of redundant sensors in several passive
joints and constructing measurement residues with the measured values and the com-
puted values of these readable passive joint angles. When these passive joint angles
were recorded at a sufficient number of measurement configurations, the actual kine-
matic parameters can be estimated by minimizing the measurement residues. Since
this model was based on the linearization of the kinematic constraint equations, it
converged rapidly. Wampler, Hollerbach, and Arai [221] presented a unified for-
mulation for the self-calibration of both serial-link robots and robotic mechanisms
having kinematically closed loops by using the implicit loop method. In this method,
the kinematic errors were allocated to the joints such that the loop equations were
exactly satisfied, simplifying the treatment of multi-loop mechanisms. Inrascu and
Park [222] developed a unified geometric framework for the calibration of kine-
matic chains containing closed loops. Both joint encoder readings and end-effector
pose measurements can be uniformly included in this framework. As a result, the
kinematic calibration was cast as a nonlinear constrained optimization problem.
There is only a handful of works on the calibration of the three-legged manipula-
tors [222, 223]. Notash and Podhorodeski [223] presented a methodology allowing
kinematic calibration of the three-legged parallel manipulator based on the mini-
mization of the leg-end distance error. The work employed the Lavenberg-Marquardt
nonlinear least-squares algorithm to identify kinematic parameters of the manipula-
tor.
In this chapter, following the leg-end approach, we develop a general and effective
linear calibration algorithm for modular parallel robots based on the local frame rep-
resentation of the Product-of-Exponentials (POE) formula. The POE representation
method describes the joint axes as twists based on line geometry. It is, therefore,
uniform in modeling manipulators with both revolute and prismatic joints. The kine-
matic parameters in the POE model vary smoothly with changes in joint axes so that
the model can cope with certain formulation singularity problems that can not be
handled by using other kinematic parameterization methods. Significantly, the POE
formula has a very explicit differential structure such that it can be easily differen-
tiated with respect to any of its kinematic parameters [224–226]. Since a modular
reconfigurable parallel robot has unlimited configurations, it is necessary for the cal-
ibration algorithm to be as generic to robot configurations. For these reasons, the
POE formula would be the most appropriate modeling tool for the modular parallel
robot calibration. A simulation example of calibrating a three-leg RRRS modular
parallel robot shows that the robot kinematics can be fully calibrated within two to
three iterations.
9.1 Introduction 157
On the other hand, the base and tool calibration, aiming at calibrating the base
and tool frames of a parallel robot after the self-calibration, also plays an important
role in enhancing the accuracy of a parallel robot. The base and tool calibration
of a parallel robot is similar to that of a serial type robot, and there is much work
addressing such a calibration issue. Zhuang [227] et al. proposed a linear solution
based on the quaternion algebra that allowed the simultaneous computation of these
two kinematic transformations. This approach is non-iterative and fast. However, this
linear method has the formulation singularity problem such that some arrangements
of the robot world frame and the robot base frame have to be avoided. Another
inconvenience of this approach is that the geometric parameters are estimated in a
two-stage process so that the estimation errors from the first stage will propagate to
the second stage. It will be always the case when noise and measurement errors exist.
Other representative works related to the base and tool calibration can be found in
Park and Martin [228], Dornaika and Horaud [229], and in [230–240].
Different from the linear solution approach, we cast the base and tool calibration
problem into an iterative parameter identification process. The reason behind this is
that although the linear (closed-form) solution approach, in principle, is computa-
tionally efficient, it becomes ineffective in the presence of noise and measurement
errors. Using the mathematical tools from differential geometry and group theory, a
simple and explicit base and tool calibration algorithm is formulated in this chapter.
The basic idea of this algorithm is that the kinematic errors in a fixed kinematic
transformation can be represented by a twist, i.e., an element of se(3). Because a
twist also has a 6-dimensional vector representation, the formulation is significantly
simplified. Besides, it does not suffer from any formulation singularity problem and
is generous enough to allow very large kinematic errors. The simulation examples
show that it is also computational efficient as all the preset kinematic errors can be
fully recovered within three to four iterations.
Due to the closed-loop structure of a parallel robot, the forward kinematic transfor-
mations of its legs are coupled together through the spherical joints and the unique
mobile platform. The overall kinematic errors of a parallel robot are contributed by
the kinematic errors in each of the legs and those in the mobile platform in a coupled
manner. Traditionally, the self-calibration model of a parallel robot is formulated
through constructing a measurement residue with measured values and computed
values of the readable passive joints. Although the calibration idea is simple, the
model formulation is complicated. Besides, during the parameter identification pro-
cess, the passive joint displacements need to be updated at each of the iterations,
which lowers the computational efficiency.
Based on the local POE formula, a simple self-calibration model is formulated for a
class of three-legged parallel robots as shown in Fig. 9.1. The identification objective
function is defined as the leg-end distance errors because they are very sensitive to
the variations of the kinematic parameters so as to speed up the identification process.
In order to simplify the calibration model, we assume that (1) the kinematic errors
in a dyad exist only in the relative initial pose, (2) the joint twist coordinate and
the joint angle offset in a dyad have no kinematic error and remain in their nominal
values. Since all the readable passive joints can be considered as the active joints,
they will always take their measured values during the identification process and
the forward displacement analysis at each iteration becomes unnecessary. Note that
in this formulation, we also assume that the 3-DOF spherical joint is kinematically
perfect such that its three axes intersect at one point.
Now let us first consider the kinematic errors of an individual leg. Due to the
kinematic errors in the leg assembly, the actual leg-end position will be different
from its nominal value. Based on the sensor-based solution approach presented in
Chap. 8, the forward kinematic transformation of leg i can also be given by:
pi ŝi3 qi3 pi
= TB,i1 (0)e ŝi1 qi1
Ti1,i2 (0)e ŝi2 qi2
Ti2,i3 (0)e , (9.1)
1 1
where pi is the position vector of point Ai with respect to local frame i3 (i = 1, 2, 3).
Note that the homogeneous coordinate representation is employed in Eq. (9.1). Once
the position vector pi is computed, we can determine the pose of the mobile platform
[241].
According to the definition of matrix logarithm defined on S E(3), there exists
at least a tˆ ∈ se(3) for a given T ∈ S E(3), such that etˆ = T . Hence, for the initial
pose Ti( j−1),i j (0), it is sufficient to let etˆi j = Ti( j−1),i j (0) (with etˆi1 = TB,i1 (0)), where
tˆi j ∈ se(3) (i, j = 1, 2, 3). Equation (9.1) can be rewritten as
pi tˆi1 ŝi1 qi1 tˆi2 ŝi2 qi2 tˆi3 ŝi3 qi3 pi
=e e e e e e . (9.2)
1 1
For each of the legs, we assume that the kinematic errors occur only in the initial
pose Ti( j−1),i j (0) (hence in tˆi j ) and the position vector pi . Let the kinematic errors
in tˆi j be expressed in the local frame i( j − 1), denoted by δ tˆi j . Since tˆi j ∈ se(3),
δ tˆi j also belongs to se(3). Geometrically, δetˆi j = δ tˆi j etˆi j . Linearizing Eq. (9.1) with
respect to tˆi j and pi , we have
δpi p
= δ tˆi1 etˆi1 eŝi1 qi1 etˆi2 eŝi2 qi2 etˆi3 eŝi3 qi3 i
0 1
p
+ etˆi1 eŝi1 qi1 δ tˆi2 etˆi2 eŝi2 qi2 etˆi3 eŝi3 qi3 i
1
p
+ etˆi1 eŝi1 qi1 etˆi2 eŝi2 qi2 δtˆi3 etˆi3 eŝi3 qi3 i
1
δpi
+ etˆi1 eŝi1 qi1 etˆi2 eŝi2 qi2 etˆi3 eŝi3 qi3 , (9.3)
0
160 9 Kinematic Calibration for Modular Parallel Robots
where δ tˆi j ∈ se(3) is the kinematic errors in tˆi j expressed in module frame i( j − 1)
and δ pi ∈ 3×1 is the kinematic error of the position vector pi with respect to frame
tˆi j
i3. Based on the fact that e = Ti( j−1),i j (0), Eq. (9.3) can also be simplified as
δpi p B,i pi1,i pi2,i δpi
= δ tˆi1 + TB,i1 δ tˆi2 + TB,i2 δ tˆi3 + TB,i3 , (9.4)
0 1 1 1 0
where
9.2 Self-calibration for Three-legged Modular Parallel Robots 161
Ji = T pB,i R B,i1 T pi1,i
R B,i2 T p R B,i3 ∈ 3×21 ,
i2,i
T
δti = δti1 δti2 δti3 δpi ∈ 21×1
.
Apparently, Eq. (9.8) is a linear equation with respect to the kinematic errors. Based
on this equation, a linear self-calibration model for the three-legged modular parallel
robots can be formulated.
Now let us consider the differential change of the leg-end distance resulting from
the kinematic errors. Without loss of generality, we first consider the leg-end distance
between leg 1 and leg 2 denoted by a12 such that
2
a12 = ( p2 − p1 )T ( p2 − p1 ). (9.9)
( p2 − p1 ) T ( p2 − p1 ) T
δa12 = (δp2 − δp1 ) = (J2 δt2 − J1 δt1 ).
a12 ( p2 − p1 ) T ( p2 − p1 )
(9.10)
Equation (9.10) describes the differential change of a12 resulting from the kinematic
errors in leg 1 and leg 2. Similarly, for the leg-end distance between leg 2 and leg 3:
a23 and the leg-end distance between leg 3 and leg 1: a31 , we have
( p3 − p2 ) T
δa23 = (J3 δt3 − J2 δt2 ), (9.11)
( p3 − p2 ) T ( p3 − p2 )
( p1 − p3 ) T
δa31 = (J1 δt1 − J3 δt3 ). (9.12)
( p1 − p3 ) T ( p1 − p3 )
a a a
If we know the actual values of a12 , a23 and a31 denoted by a12 , a23 and a31 , respec-
tively, the differential change of the leg-end distance can be given by
⎡ ⎤ ⎡ a ⎤
δa12 a12 − a12
δa = ⎣δa23 ⎦ = ⎣a32
a
− a23 ⎦ , (9.13)
δa31 a
a31 − a31
where a12 , a23 , and a31 represent computed nominal values determined by the built-
in sensor
readings of the passive
joint displacements. Therefore,
they can be given
by ( p2 − p1 )T ( p2 − p1 ), ( p3 − p2 )T ( p3 − p2 ), and ( p1 − p3 )T ( p1 − p3 ),
respectively. Note that a12 , a23 , and a31 are different from their original theoreti-
cal values. Arranging Eqs. (9.10), (9.11), and (9.12) into a matrix form, a linear
calibration model can be obtained:
δa = J δt, (9.14)
162 9 Kinematic Calibration for Modular Parallel Robots
where
⎡ a ⎤ ⎡ ⎤
a12 − ( p2 − p1 )T ( p2 − p1 ) δt1
δa = ⎣a23
a
− ( p3 − p2 )T ( p3 − p2 )⎦ ∈ 3×1 , δt = ⎣δt2 ⎦ ∈ 63×1 ,
a
a31 − ( p1 − p3 ) T ( p1 − p3 ) δt3
⎡ ⎤
− √ ( p2 − pT1 ) J1 √ ( p2 − pT1 )
T T
J2 0
⎢ ( p2 − p1 ) ( p2 − p1 ) ( p 2 − p1 ) ( p2 − p1 ) ⎥
⎢ − √ ( p3 − pT2 )
T
J2 √ ( p3 − pT2 )
T
J3 ⎥
J =⎢ 0 ⎥ ∈ 3×63 .
⎣ ( p3 − p2 ) ( p3 − p2 ) ( p3 − p2 ) ( p3 − p2 ) ⎦
√ ( p1 − pT3 ) − √ ( p1 − pT3 )
T T
J1 0 J3
( p1 − p3 ) ( p1 − p3 ) ( p1 − p3 ) ( p1 − p3 )
This linear calibration model is based on the assumption that all of the actual leg-
end distances, i.e., a12a
, a23
a a
and a31 , are known. Such an assumption, however, is
not always true. In many cases, we are unable to know the actual leg-end distances
without external measuring equipment. A modified calibration model is therefore
developed, in which the actual leg-end distances are also considered as the kinematic
parameters to be identified. Denote the original theoretical values of the leg-end
0
distances as a12 , a23
0
and a310
, respectively. The actual leg-end distances, which are in
the neighborhood of their original theoretical values, can be given by
∗
a
a12 = a12
0
+ δa12 ,
∗
a
a23 = a23
0
+ δa23 ,
∗
a31 = a31 + δa31 ,
a 0
(9.15)
∗ ∗ ∗
where δa12 , δa23 and δa31 represent the differential changes of the leg-end distances
with respect to their original theoretical values, respectively. They are different from
δa12 , δa23 and δa31 which represent the differential changes of the leg-end distances
with respect to their computed nominal values. Substituting Eq. (9.15) into Eq. (9.14),
we can obtain a modified linear calibration model such that
y = Ax, (9.16)
where
⎡ 0 ⎤
a12 − ( p2 − p1 )T ( p2 − p1 )
y = ⎣a23
0
− ( p3 − p2 )T ( p3 − p2 )⎦ ∈ 3×1 ,
a31 − ( p1 − p3 )T ( p1 − p3 )
0
∗ ∗ ∗ T
A = J I3×3 ∈ 3×66 , x = δt1 δt2 δt3 δa12 δa23 δa31 ∈ 66×1 .
Based on the calibration model, i.e., Eq. (9.16), an iterative least-squares algorithm
is employed for the calibration solution. To improve the calibration accuracy, we
need to measure the passive joint displacements in many different robot postures.
Suppose we need to take m sets of measured data. For the ith measurement, we can
obtain a yi , as well as an identification Jacobian matrix Ai . After m measurements,
we can stick yi and Ai to form the following equation:
Ỹ = Ãx, (9.17)
where
T
Ỹ = y1 y2 . . . ym ∈ 3m×1 ,
à = column A1 , A2 , . . . , Am ∈ 3m×66 .
Since Eq. (9.17) consists of 3m linear equations with 66 variables (normally m>
22), the linear least-squares algorithm is employed for the parameter identification.
The least-square solution of x is given by
The same procedures are repeated until the norm of the error vector, x, approaches
zero and the actual leg-end distances converge to some stable values. Then the final
Ti( j−1),i j (0), pi , a12
0 0
, a23 0
and a31 represent the calibrated kinematic parameters of
robots, denoted by Ti( j−1),i j (0), pic , a12
c c c
, a23 c
and a31 .
164 9 Kinematic Calibration for Modular Parallel Robots
Note that the kinematic error vector, x, will no longer represent the actual kine-
matic errors after iterations. However, the actual kinematic errors can be extracted
by comparing the calibrated kinematic parameters with their nominal values.
In order to evaluate the calibration result, we define a deviation metric, i.e., the
average leg-end distance error, as
1 m
δa = (i) 2
((a c − a12 ) + (a23
c (i) 2
− a23 ) + (a31
c (i) 2
− a31 ) ), (9.20)
3m i=1 12
0 0 0 0
si1 = si2 = si3 = [0, 0, 0, 0, 0, 1] .
T
Here pi (i = 1, 2, 3) represents the nominal leg-end positions with respect to the
mobile platform frame. Hence, we can compute the original theoretical values of the
leg-end distances as:
√
0
a12 = ( p2 − p1 )T ( p2 − p1 ) = 410 3 ,
9.2 Self-calibration for Three-legged Modular Parallel Robots 165
√
0
a23 = ( p3 − p2 )T ( p3 − p2 ) = 410 3 ,
√
0
a31 = ( p1 − p3 )T ( p1 − p3 ) = 410 3.
Note that the units of the kinematic parameters are in radians and millimeters. The
following procedures are employed for the simulation of the calibration algorithm.
1. Generate 50 robot poses as well as the corresponding 50 sets of nominal passive
joint angles by using the numerical forward kinematic algorithm;
2. Assign errors at the kinematic parameters such as dti j , dqi j , dpi and da =
(da12 , da23 , da31 )T , where i = 1, 2, 3 (listed in Table 9.1);
3. Find the actual initial poses in each dyad: Ti(a j−1),i j (0) = Ti( j−1),i j (0)ed tˆi j , the
actual position vector of each leg end with respect to frame i3: pi a = pi + d pi and
the actual leg-end distances: a12a
= a12
0
+ da12 , a23
a
= a230
+ da23 , a31
a
= a31 0
+ da31 ;
4. Determine the simulated actual passive joint displacements for the 50 poses using
the numerical forward kinematics algorithm;
5. Identify the kinematic errors by using the iterative calibration algorithm.
Since each of the actuators and passive joints are assumed to be a true 1-DOF joint,
the condition for the assignment of errors in each of the joint twists must be satisfied
such that wi + dwi = 1 and (wi + dwi )T (υi + dυi ) = 0, where si = (υi , wi )T
and dsi = (dυi , dwi )T . Moreover, in the actual calibration experiment, all of the
actual joint displacements, including both active and passive joints, can be directly
obtained from the joints encoder readings.
The calibrated initial local frame poses as well as the kinematic errors are listed
in Table 9.2. Since the preset and identified errors do not have the same physical
meaning and are not one-to-one correspondence, the preset kinematic errors are not
fully recovered. Note that the calibration solution is not unique and not necessarily
identical to the actual robot. However, the success of the calibration simulation can
be deduced from the results shown in Fig. 9.3, where the average leg-end distance
error (combined for the 50 poses) is reduced from about 15 mm to nearly 0 within 3
iterations. This result shows that under the calibrated parameters description, we can
directly employ the nominal joint twist coordinates and the joint displacements from
both actuator and passive joint encoder readings to compute the actual kinematics of
the parallel robot. In other words, the parallel robot itself is precisely calibrated.
In this section, we focus on the simultaneous base and tool calibration of a self-
calibrated parallel robot. After the self-calibration of a parallel robot by using the
built-in sensors in the passive joints, its kinematic transformation from the robot base
to the mobile platform frame can be computed with sufficient accuracy. The base and
tool calibration, hence, is to identify the kinematic errors in the fixed transformations
from the world frame to the robot base frame and from the mobile platform frame to
the tool (end-effector) frame in order to improve the absolute positioning accuracy
of the robot.
168 9 Kinematic Calibration for Modular Parallel Robots
Once a parallel robot is self-calibrated, as shown in Fig. 9.3, the forward kinematic
transformation from the robot base frame B to the mobile platform frame A can be
computed precisely when the actuator joint angles are known. Hence, the base-tool
calibration is to identify the kinematic errors in the fixed transformations from the
robot world frame B0 to the robot base frame B and from the mobile platform frame
A to the tool (end-effector) frame E.
Now let us first consider the kinematic transformation from the robot base frame
B0 to the end-effector frame E. As shown in Fig. 9.3, this forward kinematic trans-
formation, TB0,E (q), can be given by
where TB0,B and T A,E are the fixed kinematic transformations from the robot world
frame B0 to the robot base frame B and from the mobile platform frame A to the
tool frame E, respectively. Since TB,A (q) is the forward kinematic transformation of
the self-calibrated parallel robot, we can assume that TB,A (q) is error-free and can
be computed with sufficient accuracy. The kinematic errors will only come from the
fixed kinematic transformations TB0,B and T A,E .
According to the definition of matrix logarithm defined on S E(3), there exists at
least a tˆ ∈ se(3) for a given T ∈ S E(3), such that etˆ = T . Hence, it is sufficient to
let etˆB0,B = TB0,B and etˆA,E = T A,E , where tˆB0,B , tˆA,E ∈ se(3). Equation (9.21) can
be rewritten as:
9.3 Base-tool Calibration for Three-leg Modular Reconfigurable … 169
Now we assume that the kinematic errors occur only in TB0,B and T A,E , hence in tˆB0,B
and tˆA,E . Let the kinematic errors in tˆB0,B be expressed in the robot world frame B0 ,
denoted by δ tˆB0,B , and tˆA,E be expressed in the mobile platform frame A, denoted by
δ tˆA,E . Since both tˆB0,B and tˆA,E belong to se(3), δ tˆB0,B and δ tˆA,E will belong to se(3).
Also we have δetˆB0,B = δ tˆB0,B etˆB0,B and δetˆA,E = δ tˆA,E etˆA,E . Linearizing Eq. (9.21)
with respect to tˆB0,B and tˆA,E , we have
δTB0,E (q) = δ tˆB0,B etˆB0,B TB,A (q)etˆA,E + etˆB0,B TB,A (q)δ tˆA,E etˆA,E . (9.23)
−1
Right-multiplicating both sides of Eq. (9.23) with TB0,E (q), we get:
−1 −1
δTB0,E (q)TB0,E (q) = δ tˆB0,B + TB0,A (q)δ tˆA,E TB0,A (q), (9.24)
where
a
Here, TB0,E (q) is the actual (measured) end-effector pose. Based on the definition
of the matrix logarithm and the adjoint representation on S E(3), we have:
a −1
−1
log TB0,E (q)TB0,E (q) ≈ TB0,E
a
(q)TB0,E (q) − I4×4 ,
−1
TB0,A (q)δ tˆA,E TB0,A (q) = AdTB0,A (q) δ tˆA,E .
model:
y = J x, (9.26)
where
a −1
∨
y = log TB0,E (q)TB0,E (q) ∈ 6×1 ,
J = I6×6 AdTB0,A (q) ∈ 6×12 ,
δt B0,B
x= ∈ 12×1 .
δt A,E
In Eq. (9.26), we totally have 12 parameters to be identified, which can reflect kine-
matic errors existed in the whole system.
ỹ = J˜ x, (9.27)
where
⎡ ⎤ ⎡ ⎤
y[1] J[1]
⎢ y[2] ⎥ ⎢ J[2] ⎥
⎢ ⎥ ⎢ ⎥ δt B0,B
ỹ = ⎢ . ⎥ ∈ 6m×1 , J˜ = ⎢ . ⎥ ∈ 6m×12 , x = ∈ 12×1 .
⎣ .. ⎦ ⎣ .. ⎦ δt A,E
y[m] J[m]
Since Eq. (9.27) consists of 6m linear equations with 12 variables (normally m>2),
the linear least-squares algorithm is employed for the parameter identification. The
least-square solution of x is given by
new
TB0,B = eδtˆB0,B TB0,B
old
,
new
T A,E = eδtˆA,E T A,E
old
. (9.29)
The same procedure is repeated until the norm of the error vector, x, approaches
zero. Then the final TB0,B and T A,E represent the calibrated kinematic transforma-
c c
tions, denoted by TB0,B and T A,E , respectively.
Note that the kinematic error vector, x, will no longer represent the actual kine-
matic errors after iterations. However, the actual kinematic errors can be extracted by
using the matrix logarithm to compare the calibrated frame poses with their nominal
counterparts such that:
c −1
∨
δt B0,B = log TB0,B (0)TB0,B (0) ,
c −1
∨
δt A,E = log T A,E (0)T A,E (0) . (9.30)
In order to evaluate the calibration result, we define the deviation metrics between the
measured (actual) ‘a’ and calibrated ‘c’ end-effector (tool) frames mathematically
as
172 9 Kinematic Calibration for Modular Parallel Robots
1
m
−1
δR = log(Rai Rci )∨ , (9.32)
m i=1
1
m
δP = Pai − Pci , (9.33)
m i=1
where δ R and δ P denote the average quantified orientation and position deviations
between the calibrated and actual poses, respectively.
In this section, a base and tool calibration example for a self-calibrated 6-DOF 3RRRS
parallel robot is given to demonstrate the effectiveness of the base and tool calibration
algorithm (Table 9.3). As shown in Fig. 9.3, the nominal kinematic transformations
from the robot world frame to the robot base frame and from the mobile platform
frame to the tool frame are listed in Table 9.4. The units of the kinematic parameters
are in radians and millimeters. In order to verify the robustness of the proposed algo-
rithm, the pose of TB0,B is specially arranged. Such an arrangement will be a singular
configuration for the closed-form method [227]. In this example, we first simulate
the calibration process under an ideal experimental condition without measurement
noise. To obtain the actual tool frame poses, the following procedures are employed:
1. Assign kinematic errors at TB0,B and T A,E by introducing δt B0,B and δt A,E ,
respectively (listed in Table 9.3);
2. Find the actual poses of TB0,B and T A,E such that
TB0,B = eδtˆB0,B TB0,B ,
T A,E = eδtˆA,E T A,E ;
Here, the number of measured poses is set to 3, which is the necessary condition
(lower bond) for identifying the kinematic errors with perfect measurement data. The
three given mobile platform poses TB,A (q) are listed in Table 9.5. The success of the
calibration simulation can be deduced from Table 9.3, where all the preset kinematic
errors are fully recovered although the preset kinematic errors are significantly large.
A further re-enforcement of the calibration results is from Fig. 9.5, both the quantified
orientation and position deviations, as in Eqs. (9.32) and (9.33), are driven from the
initial magnitude of 160.450 mm and 0.2391 rad to values approximately zero with
three to four iterations.
However, if the measurement noise exists, more measured end-effector poses will
be considered. In the same example, we finally illustrate the effect of the measure-
ment noise and robot repeatability on the calibration result. From the viewpoint of
computer simulation, both the measurement noise and robot repeatability can be
simulated in a uniform way by adding uniformly distributed noise on each of the
a∗
actual (measured) end-effector poses. The resulting actual end-effector poses TB0,E
can be given by
174 9 Kinematic Calibration for Modular Parallel Robots
∗
= eδtˆB0,E TB0,E
∗
a
TB0,E a
, (9.34)
∗
T
where δt B0,E = δx ∗ , δy ∗ , δz ∗ , δαx∗ , δβ y∗ , δγz∗ represents the noise injected. Here
δx ∗ , δy ∗ , and δz ∗ ∈ U[−0.1, 0.1] mm; δαx∗ , δβ y∗ and δγz∗ ∈ U[−0.0005, 0.0005] rad.
Extensive simulations have been done to study the effect of the measurement noise
and robot repeatability on the calibration results. In each simulation, two groups of
50 simulated end-effector poses are employed. One group is used to calibrate the
robot, while the other group is used to verify the result of the calibration, i.e., to
9.3 Base-tool Calibration for Three-leg Modular Reconfigurable … 175
derive the quantified orientation and position deviations. From these simulations, it
can be found that the calibrated initial poses of the module frames and the quantified
orientation and position deviations become stable when the number of poses used
for calibration is greater than 20. A typical simulation result is given in Fig. 9.6, in
which the stable quantified orientation and position deviations are in the same order
of magnitude as those of the injected noise.
References
© Huazhong University of Science and Technology Press, Wuhan and Springer 177
Nature Singapore Pte Ltd. 2022
G. Yang and I.-M. Chen, Modular Robots: Theory and Practice,
Research on Intelligent Manufacturing,
https://doi.org/10.1007/978-981-16-5007-9
178 References
15. I.M. Chen, Yeo Song Huat, Chen Guang, G. Yang, Kernel for modular robot applications -
automatic modeling techniques. Int. J. Rob. Res. 18(2), 225–242 (1999)
16. I.M. Chen, G. Yang, Inverse kinematics for modular reconfigurable robots. in IEEE Conference
on Robotics and Automation, (1998), pp. 1647–1652
17. L. Kelmar, P. Khosla, Automatic generation of kinematics for a reconfigurable modular manip-
ulator system. in Proceedings of IEEE Conference on Robotics and Automation, (Philadelphia,
PA, April 1988), pp. 663–668
18. G. Legnani, R. Riva, Kinematics of modular robots. in Proceedings of World Congress on the
Theory of Machines and Mechanisms, (1987), pp. 1159–1162
19. I.M. Chen, G. Yang, Automatic generation of dynamics for modular robots with hybrid geom-
etry. in Proceedings of IEEE Conference on Robotics and Automation, (1997), pp. 2288–2293
20. I.M. Chen, G. Yang, Automatic model generation for modular reconfigurable robot dynamics.
ASME J. Dyn. Syst. Meas. Contr. 120, 346–352 (1997)
21. I.M. Chen, G. Yang, Geometric formulation of modular reconfigurable robot kinematics and
dynamics. in Proceedings of the 2nd Asian Control Conference, (1997), pp. 265–268
22. C.J.J. Paredis, An Agent-Based Approach to the Design of Rapidly Deployable Fault Tolerant
Manipulators (Carnegie Mellon University, USA, 1996). PhD thesis
23. I.M. Chen, G. Yang, Kinematic calibration of modular reconfigurable robots using product-
of-exponentials formula. J. Rob. Syst. 14(11), 807–821 (1997)
24. C.T. Tan, G. Yang, I.M. Chen, A modular kinematic calibration algorithm for industrial
robots: simulation and experiment. in IASTED International Conference on Robotics and
Manufacturing, (Canada, 1998), pp. 231–234
25. G. Yang, I.M. Chen, Kinematic calibration of modular reconfigurable robots. in Proceedings
of International Conference on Control, Automation, Robotics, and Vision, (Singapore, 1996),
pp. 1845–1849
26. G. Yang, I.M. Chen, A novel kinematic calibration algorithm for modular reconfigurable
robotic systems. in Proceedings of IEEE Conference on Robotics and Automation, (1997),
pp. 3197–3202
27. I.M. Chen, On optimal configuration of modular reconfigurable robots. in Proceedings of
International Conference on Control, Automation, Robotics, and Vision, (Singapore, 1996)
28. I.M. Chen, J.W. Burdick, Determining task optimal modular robot assembly configurations.
in Proceedings of IEEE Conference on Robotics and Automation, (Nagoya, Japan, 1995), pp.
132–137
29. O. Chocron, P. Bidaud, Genetic design of 3d modular manipulator. in Proceedings of IEEE
Conference on Robotics and Automation, (1997), pp. 223–228
30. T. Fukuda, S. Nakagawa, Y. Kawauchi, M. Buss, Structure decision method for self organizing
robots based on cell structures-cebot. in Proceedings of IEEE Conference on Robotics and
Automation, (Scottsdale, AZ, 1989), pp. 695–700
31. J.O. Kim, P. Khosla, A formulation for task-based design of robot manipulators. in Proceed-
ings of IEEE/RSJ International Conference on Intelligent Robots and Systems, (1993), pp.
2310–2317
32. C.J.J. Paredis, P. Khosla, Kinematic design of serial link manipulators from task specifications.
Int. J. Rob. Res. 12(3), 274–287 (1993)
33. C.J.J. Paredis, P.K. Khosla, Synthesis Methodology for Task Based Reconfiguration of Modu-
lar Manipulator Systems, in International Symposium on Robotics Research, (Hidden Valley,
PA, 1993)
34. G. Yang, I.M. Chen, Reduced DOF modular robot configurations. in Proceedings of Inter-
national Conference on Control, Automation, Robotics, and Vision, (Singapore, 1998), pp.
1513–1517
35. C.J.J. Paredis and P.K. Khosla. Design of modular fault tolerant manipulators. in Algorithmic
Foundations of Robotics, ed. by K. Goldberg, D. Halperin, J.-C. Latombe, R. Wilson, A.K.
Peters (1995), pp. 371–383
36. C.J.J. Paredis, P.K. Khosla, Agent-based design of fault tolerant manipulators for satellite
docking. in Proceedings of IEEE Conference on Robotics and Automation, (New Mexico,
USA, 1997), pp. 3473–3480
References 179
64. F.C. Park, R.W. Brockett, Kinematic dexterity of robotic mechanisms. Int. J. Robot. Res.
13(1), 1–15 (1994)
65. J.J. Craig, Introduction to Robotics Mechanics and Control, 2nd edn. (Addison-Wesley, New
York, USA, 1989)
66. P.K. Khosla, C.P. Neuman, F.B. Prinz, An algorithm for seam tracking applications. Int. J.
Robot. Res. 4(1), 27–41 (1985)
67. C.S.G. Lee, Robot arm kinematics, dynamics, and control. IEEE Comput. 15(12), 62–68
(1982)
68. R.P. Paul, Robot Manipulators: Mathematics, Programming, and Control (MIT Press, Cam-
bridge, MA, 1981)
69. R.P. Paul, B. Shimano, G.E. Mayer, Kinematic control equation for simple manipulators.
IEEE Trans. Syst. Man Cybern. 11(6), 80–86 (1981)
70. J. Angeles, Numerical solution to the input output displacement equation of general 7R spatial
mechanism. in Proceedings of the Fifth World Congress and Mechanisms, (1979), pp. 1008–
1011
71. J. Duffy, C. Crane, A displacement analysis of the general spacial 7r mechanism. Mech.
Mach. Theory 15, 153–169 (1980)
72. H.Y. Lee, C.G. Liang, Displacement analysis of the general serial 7-link 7-r mechanism.
Mech. Mach. Theory 23, 219–226 (1988)
73. H.Y. Lee, C.G. Liang, A new vector theory for the analysis of spatial mechanisms. Mech.
Mach. Theory 23, 209–217 (1988)
74. H.Y. Lee, C.F. Reinholtz, Inverse kinematics of serial-chain manipulators. ASME J. Mech.
Des. 118, 396–404 (1996)
75. J. Denavit, R.S. Hartenberg, An iterative method for the displacement analysis of special
mechanisms. ASME J. Appl. Mech. 309–314 (1964)
76. K.C. Gupta, K. Kazerounian, Improved numerical solution of inverse kinematics of robots.
in Proceedings of IEEE Conference on Robotics and Automation, (Philadelphia, PA, April
1988), pp. 743–748
77. J. Lenarcheckcicheckc. , An efficient numerical approach for calculating the inverse kine-
matics for robot manipulators. Robotica 21–26 (1985)
78. R. Manseur, K.L. Doty, A fast algorithm for inverse kinematic analysis of robot manipulators.
Int. J. Robot. Res. 4(2), 21–37 (1988)
79. D.R. Meldrum, G. Rodriguez, G.F. Franklin, An order(n) recursive inversion of the jacobian for
an n-link serial manipulator. in Proceedings of IEEE Conference on Robotics and Automation,
(Sacramento, CA, 1991), pp. 1175–1180
80. T.C. Yih, Y. Youm, Matrix solution for the inverse kinematics of robots. in ASME International
Conference, (1990), pp. 371–375
81. J. Angeles, On the numerical solution of the inverse kinematics problem. Int. J. Robot. Res.
4(2), 21–37 (1985)
82. A.A. Goldenberg, D.L. Lawrence, A generalized solution to the inverse kinematics of robotic
manipulators. ASME J. Dyn. Syst. Meas. Contr. 107, 103–106 (1985)
83. D. Manocha, J.F. Canny, Real time inverse of the general 6r manipulators. in Proceedings of
IEEE Conference on Robotics and Automation, (Nice France, May 1992), pp. 383–389
84. M. Raghavan, B. Roth, Kinematic analysis of the 6R manipulator of general gepmetry. in
International Symposium on Robotics Research, (1989), pp. 314–320
85. C. Wampler, A.P. Morgen, Solving the 6r inverse position problem using a geometric-case
solution methodology. Mech. Mach. Theory 26, 91–106 (1991)
86. R. Featherstone, Explicit modeling of general task spaces for inverse kinematics, Advances in
Robot Kinematics and Computational Geometry (MIT Press, Cambridge, 1994), pp. 301–308
87. F.C. Park, Computational aspect of manipulators via product of exponential formula for robot
kinematics. IEEE Trans. Autom. Control 39(9), 643–647 (1994)
88. F.C. Park, J.E. Bobrow, S.R. Ploen, A lie group formulation of robot dynamics. Int. J. Robot.
Res. 14(6), 609–618 (1995)
89. R. Bernhardt, S.L. Albright, Robot Calibration (Chapman and Hall, London; New York, 1993)
References 181
90. J.M. Hollerbach, A survey of kinematic calibration, The Robotics Review I (MIT Press,
Cambridge, 1989), pp. 207–242
91. B.W. Mooring, Z.S. Roth, M.R. Driels, Fundamentals of Manipulator Calibration (John Wiley
and Sons, 1991)
92. Z. Roth, B.W. Mooring, B. Ravani, An overview of robot calibration. IEEE J. Robot. Autom.
3(5), 377–386 (1987)
93. H.W. Stone, Kinematic Modeling, Identification, and Control of robotic Manipulators,
(Kluwer Academic Publishers, 1987)
94. S.A. Hayati, Robot arm geometric parameter estimation. in Proceedings of IEEE Conference
on Decision and Control, (1983), pp. 1477–1483
95. S.A. Hayati, M. Mirmirani, Improving the absolute positioning accuracy of robot manipula-
tors. J. Robot. Syst. 112(2), 397–413 (1985)
96. S.A. Hayati, G.P. Roston, Inverse kinematic solution for near-simple robots and its application
to robot calibration, Recent Trends in Robotics: Modeling, Control, and Education (Elsevier
Science, 1986), pp. 41–50
97. S.A. Hayati, G.P. Roston, Robot geometry calibration. in Proceedings of IEEE Conference
on Robotics and Automation, (Philadelphia, PA, April 1988), pp. 947–951
98. D.E. Whitney, C.A. Lozinski, J.M. Rourke, Industrial robot forward calibration method and
results. J/ Dyn. Syst. 108, 1–8 (1986)
99. C. Wu, The kinematic error model for the design of robot manipulators. in Proceedings of the
American Control Conference, (1983), pp. 497–502
100. K. Kazerounian, G.Z. Qian, Kinematic calibration of robotics manipulators. in ASME Design
Technology Conferences: Biennial Mechanisms Conference, (1988), pp. 261–266
101. K. Kazerounian, G.Z. Qian, Kinematic calibration of robotic manipulator. ASME J. Mech.
Trans. Autom. Des. 111, 482–487 (1989)
102. B.W. Mooring, The effect of joint axis misalignment on robot positioning accuracy. in Pro-
ceedings of Computers in Engineering Conference and Exhibit, (1983), pp. 151–155
103. B.W. Mooring, An improved method for identifying the kinematic parameters in a six axis
robot. in Proceedings of Computers in Engineering Conference and Exhibit, (1984), pp. 79–84
104. H. Zhuang, Z.S. Roth, Robot calibration using the cpc error model. J. Robot. Computer-
Integrated Manuf 9(3), 227–237 (1992)
105. H. Zhuang, Z.S. Roth, A linear solution to the kinematic parameter identification of robot
manipulator. IEEE Trans. Robot. Autom. 9(2), 174–185 (1993)
106. H. Zhuang, Z.S. Roth, H. Fumio, A complete and parametrically continuous kinematic model
for robot manipulators. IEEE Trans. Robot. Autom. 8(4), 451–463 (1992)
107. K. Okamura, F.C. Park, Kinematic calibration and the product of exponential formula. Robot-
ica 14, 415–421 (1996)
108. F.C. Park, K. Okamura, Kinematic calibration and the product of exponential formula,
Advances in Robot Kinematics and Computational Geometry (MIT Press, Cambridge, 1994),
pp. 119–128
109. C.T. Tan, G. Yang, I.M. Chen, A generic kinematic calibration model for the open chain
robots. in Proceedings of International Conference on Control, Automation, Robotics, and
Vision, (Singapore, 1998), pp. 1503-1507
110. J.M. Hollerbach, D.J. Bernett, Automatic kinematic calibration using a motion tracking sys-
tem. in Modeling and Control of Robotic Manipulators and Manufacturing Processes, (1987),
pp. 93–100
111. R.P. Judd, A.B. Knasinski, A technique to calibrate industrial robots with experimental ver-
ification. in Proceedings of IEEE Conference on Robotics and Automation, (Raleigh, NC,
March 1987), pp. 351–357
112. K. Sugimoto, T. Okada, Compensation of positioning errors caused by geometric deviations
in robot system, in International Symposium on Robotics Research, ed. by H. Hanafusa, H.
Inoue (MIT Press, Cambridge, MA, 1985), pp. 231–236
113. W.K. Veitschegger, C.H. Wu, Robot accuracy analysis based on kinematics. IEEE Trans.
Robot. Autom. 2, 171–179 (1986)
182 References
114. F.C. Park, J.E. Bobrow, A recursive algorithm for robot dynamics using lie groups. in Proceed-
ings of IEEE Conference on Robotics and Automation, (San Diego, CA, 1994), pp. 1535–1540
115. W.W. Armstrong, Recursive solution to the equation of motion in an n-link manipulator. in
Proceedings of the Fifth World Congress on Mechanisms and Machine Theory, (1979), pp.
1134–1346
116. J.Y.S. Luh, M.W. Walker, R.P. Pual, On-line computational scheme for mechanical manipu-
lators. ASME J. Dyn. Syst. Meas. Contr. 102, 103–110 (1980)
117. R.L. Huston, C.E. Passerrello, M.W. Harlow, Dynamics of multirigid-body system. ASME J.
Appl. Mech. 45(4), 889–894 (1978)
118. T.R. Kane, D.A. Levinson, The use of kane’s dynamic equation in robotics. Int. J. Robot. Res.
2(3), 1–21 (1983)
119. C.S.G. Lee, B.H. Lee, R. Nigam, Development of the generalized d’alembert equation of
motion for mechanical design. in Proceedings of IEEE Conference on Decision and Control,
(1983), pp. 9998–9999
120. J.M. Hollerbach, A recursive lagrangian formulation of manipulator dynamics and a compar-
ative study of dynamics formulation complexity. IEEE Trans Syst Man Cybern 10, 730–736
(1980)
121. R. Brockett, A. Stokes, F.C. Park, A geometric formulation of the dynamic equation describing
kinematic chains. in Proceedings of IEEE Conference on Robotics and Automation, (Altanta,
GA, May 1993), pp. 637–641
122. F.C. Park, A coordinate-free description of robot dynamics. in Proceedings of IEEE Confer-
ence on Robotics and Automation, (New Mexico, USA, 1997), pp. 2282–2287
123. M.W. Spong, Remarks on robot dynamics: canonical transformation and Riemannian geom-
etry. in Proceedings of IEEE Conference on Robotics and Automation, (Nice France, May
1992), pp. 554–559
124. J. Russakow, O. Khatib, S.M. Rock, Extended operational space formulation for serial-to-
parallel chain (branching) manipulators. in Proceedings of IEEE Conference on Robotics and
Automation, (Nagoya, Japan, 1995), pp. 1056–1061
125. R. Featherstone, Robot Dynamics Algorithms (Kluwer Academic Publishers, 1987)
126. S.R. Ploen, F.C. Park, Coordinate-invariant algorithms for robot dynamics, in International
Workshop on Some Critical Issues in Robotics, (Singapore, 1995), pp. 115–128
127. N. Deo, Graph Theory with Applications to Engineering and Computer Science, (Prentice-
Hall, 1974)
128. I.M. Chen, G. Yang, An evolutionary algorithm for the reduction of DOFs in modular recon-
figurable robots. in Proceedings of the ASME Dynamic System and Control Division, DSC-64,
(1998) pp. 759–766
129. G. Yang, I.M. Chen, Task-based optimization of modular robot configurations - MDOF
approach. Mech. Mach. Theory (1999)
130. B. Roth, Performance evaluation of manipulators from a kinematic point of view. in NBS
Special Publication 495, (National Bureau of Standards, 1976), pp. 39–61
131. B. Paden, S. Sastry, Optimal kinematic design of 6r manipulators. Int. J. Robot. Res. 7(2),
43–61 (1988)
132. F.C. Park, Optimal robot design and differential geometry. ASME Special 50th Anniversary
Design Issue 117, 87–91 (1995)
133. K.C. Gupta, B. Roth, Design considerations for manipulator workspace. ASME J. Mech. Des.
104, 704–711 (1982)
134. K.C. Gupta, On the nature of robot workspace. Int. J. Robot. Res. 5(2), 112–121 (1986)
135. F. Freudenstein, E. Primrose, On the analysis and sythesis of the workspace of a three-link,
turning pair connected robot arm. ASME J. Mech. Trans. Autom. Des. 106, 365–370 (1984)
136. W.C. Lin, J.B. Ross, M. Ziegler, Semiautomatic calibration of robot manipulator for visual
inspection task. J. Robot. Syst. 3, 19–39 (1986)
137. D.C.H. Yang, T.W. Lee, On the workspace of mechanical manipulator. ASME J. Mech.
Transm. Autom. Des. 105, 62–69 (1983)
References 183
138. L.-W. Tsai, A.P. Morgan, Solving the kinematics of the most general 6 and 5 dof manipulators
by continuation methods. ASME J. Mech. Transm. Autom. Des. 107, 189–200 (1985)
139. A. Kumar, K.J. Waldron, The workspaces of a mechanical manipulator. ASME J. Mech. Des.
103, 665–672 (1981)
140. F.C. Yang, E.J. Hang, Numerical analysis of the kinematic working capability of mechanisms.
ASME J. Mech. Des. 116, 111–118 (1994)
141. J.K. Salisbury, J.J. Craig, Articulated hands: force control and kinematic issues. Int. J. Robot.
Res. 1(1), 4–17 (1982)
142. T. Yoshikawa, Manipulability of robotic mechanisms. Int. J. Robot. Res. 4(2), 3–9 (1985)
143. J. Angeles, The design of isotropic manipulator architectures in the presence of redundancies.
Int. J. Robot. Res. 11(3), 196–201 (1992)
144. C. Gosselin, J. Angeles, A global performance index for the kinematic optimization of robotic
manipulators. ASME J. Mech. Des. 113, 220–226 (1991)
145. C.A. Klein, B.E. Blaho, Dexterity measures for the design and control of kinematically redun-
dant manipulators. Int. J. Robot. Res. 6(2), 72–83 (1987)
146. J.M. Hollerbach, Optimum Kinematics Design of a Seven Degree of Freedom Manipulator,
(MIT Press, Cambridge, MA, 1985)
147. S.L. Chiu, Kinematic characterization of manipulators: an approach to defining optimality. in
Proceedings of IEEE Conference on Robotics and Automation, (Philadelphia, PA, 1988), pp.
828–833
148. K.V.D. Doel, D.K. Pai, Performance measures for robot manipulators: a unified approach.
Int. J. Robot. Res. 15(1), 92–111 (1996)
149. J.O. Kim, P. Khosla, Design of space shuttle tile servicing robot: an application of task based
kinematic design. in Proceedings of IEEE Conference on Robotics and Automation, (Altanta,
GA, 1993), pp. 867–874
150. Z. Michalewicz, Genetic Algorithms + Data Structures = Evolution Programs, 2nd edn.
(Springer-Verlag, 1994)
151. D. Stewart, A platform with six degrees of freedom. Proc. Inst. Mech. Eng. 180(1), 371–386
(1965)
152. D. Chablat, P. Wenger, Architecture optimization of a 3-dof translational parallel mechanism
for machining applications, the orthoglide. IEEE Trans. Robot. Autom. 19(3), 403–410 (2003)
153. D. Lazard, J.P. Merlet, The (true) stewart platform has 12 configurations. in Proceedings
of the 1994 IEEE International Conference on Robotics and Automation, (IEEE, 1994), pp.
2160–2165
154. I. Zabalza, J. Ros, J.J. Gil, J.M. Pintor, J.M. Jimenez, Tri-scott. a new kinematic structure
for a 6-dof decoupled parallel manipulator. in Proceedings of the workshop on fundamental
issues and future research directions for parallel mechanisms and manipulators, pp. 12–15
155. J. Kim, F.C. Park, S.J. Ryu, J. Kim, J.C. Hwang, C. Park, C.C. Iurascu, Design and analysis of
a redundantly actuated parallel mechanism for rapid machining. IEEE Trans. Robot. Autom.
17(4), 423–434 (2001)
156. G. Coppola, D. Zhang, K. Liu, A 6-dof reconfigurable hybrid parallel manipulator. Robot.
Computer-Integrated Manuf. 30(2), 99–106 (2014)
157. Lu. Yi, P. Wang, Z. Hou, H. Bo, C. Sui, J. Han, Kinetostatic analysis of a novel 6-dof 3ups
parallel manipulator with multi-fingers. Mech. Mach. Theory 78, 36–50 (2014)
158. D. Glozman, M. Shoham, Novel 6-dof parallel manipulator with large workspace. Robotica
27(6), 891 (2009)
159. C. Innocenti, V. Parenti-Castelli, Direct position analysis of the stewart platform mechanism.
Mech. Mach. Theory 25(6), 611–621 (1990)
160. L. Notash, R.P. Podhorodeski, Complete forward displacement solutions for a class of three
branch parallel manipulators. J. Robot. Syst. 11(6), 471–485 (1994)
161. K. Cleary, T. Brooks, Kinematic analysis of a novel 6-dof parallel manipulator. in [1993]
Proceedings IEEE International Conference on Robotics and Automation, (IEEE, 1993), pp.
708–713
184 References
162. C. Gosselin, J. Angeles, Singularity analysis of closed-loop kinematic chains. IEEE Trans.
Robot. Autom. 6(3), 281–290 (1990)
163. K.H. Hunt, Kinematic Geometry of Mechanisms, vol. 7 (Oxford University Press, USA, 1978)
164. V. Kumar, Instantaneous kinematics of parallel-chain robotic mechanisms. (1992)
165. J.P. Merlet, Singular configurations of parallel manipulators and grassmann geometry. Int. J.
Robot. Res. 8(5), 45–56 (1989)
166. H. Zhou, Y. Cao, B. Li, J. Yu, M. Liu, Singularity kinematics principle and singularity analysis
of 6–3 stewart manipulators for special orientations. in 2010 Chinese Control and Decision
Conference, (IEEE, 2010), pp. 4336–4341
167. K. Malakuti, R.E. Caflisch, M. Siegel, A. Virodov, Detection of complex singularities for a
function of several variables. IMA J. Appl. Math. 78(4), 714–728 (2013)
168. M.S. Islam, H. Koguchi, Analysis of intensity of singularity at a vertex in 3d transversely
isotropic piezoelectric bimaterial joints by boundary element method. in 2013 International
Conference on Informatics, Electronics and Vision (ICIEV), (IEEE, 2013), pp. 1–6
169. I.A. Bonev, J. Ryu, A new approach to orientation workspace analysis of 6-dof parallel
manipulators. Mech. Mach. Theory 36(1), 15–28 (2001)
170. Eugene F. Fichter, A stewart platform-based manipulator: general theory and practical con-
struction. Int. J. Robot. Res. 5(2), 157–182 (1986)
171. O. Masory, J. Wang, Workspace evaluation of stewart platforms. Adv. Robot. 9(4), 443–461
(1994)
172. T. Arai, Development of a new parallel manipulator with fixed linear actuator, inProc. of
Japan/USA Symposium on Flexible Automation, (1995), pp. 145–149
173. E. Ottaviano, M. Ceccarelli, Optimal design of capaman (cassino parallel manipulator) with
a specified orientation workspace. Robotica 20(2), 159 (2002)
174. J.P. Merlet, Détermination de l’espace de travail d’un robot parallèle pour une orientation
constante. Mech. Mach. Theory 29(8), 1099–1113 (1994)
175. R.P. Podhorodeski, K.H. Pittens, A class of parallel manipulators based on kinematically
simple branches. (1994)
176. Z. Liu, R. Zhang, W. Wang, X. Ma, R. You, Z. Li, Robot workspace reconstructing solving
method based on image engine. in 2017 International Conference on Industrial Informatics-
Computing Technology, Intelligent Technology, Industrial Information Integration (ICIICII),
(IEEE, 2017) pp. 181–185
177. Z. Zhao, S. He, Y. Zhao, C. Xu, Q. Wu, Z. Xu, Workspace analysis for a 9-dof hyper-redundant
manipulator based on an improved monte carlo method and voxel algorithm. in 2018 IEEE
International Conference on Mechatronics and Automation (ICMA), (IEEE, 2018), pp. 637–
642
178. A. Peidró, Ó. Reinoso, A. Gil, J.M. Marín, L. Payá, A method based on the vanishing of
self-motion manifolds to determine the collision-free workspace of redundant robots. Mech.
Mach. Theory 128, 84–109 (2018)
179. R.P. Podhorodeski, K.H. Pittens, A class of parallel manipulators based on kinematically
simple branches. Trans. ASME J. Mech. Des 116(3), 908–914 (1994)
180. G. Yang, I.M. Chen, W.K. Lim, S.H. Yeo, Kinematic design of modular reconfigurable in-
parallel robots. Auton. Robots 10(1), 83–89 (2001)
181. G. Yang, I.M. Chen, W.K. Lim, H.Y. Song, Design and kinematic analysis of modular recon-
figurable parallel robots. in IEEE International Conference on Robotics and Automation
182. G. Yang, Kinematics, dynamics, calibration, and configuration optimization of modular recon-
figurable robots. (1999)
183. D. Lazard, J.P. Merlet, The (true) stewart platform has 12 configurations. in Proceedings
of the 1994 IEEE International Conference on Robotics and Automation, (IEEE, 1994), pp.
2160–2165
184. I. Zabalza, J. Ros, J.J. Gil, J.M. Pintor, J.M. Jimenez Tri-scott. a new kinematic structure for a
6-dof decoupled parallel manipulator. in Proceedings of the workshop on fundamental issues
and future research directions for parallel mechanisms and manipulators, (2002), pp. 12–15
References 185
185. I.G. Yang, M. Chen, W. Lin, J. Angeles, Singularity analysis of three-legged parallel robots
based on passive-joint velocities. IEEE Trans. Robot. Autom. 17(4), 413–422 (2001)
186. R.W. Brockett, Robotic manipulators and the product of exponentials formula. in Mathemat-
ical theory of networks and systems, (Springer, 1984), pp. 120–129
187. R.M. Murray, S.Z. Li, S. Sastry, S.S. Sastry, A mathematical introduction to robotic manipu-
lation. CRC Press (1994)
188. C.F. Park, Computational aspects of the product-of-exponentials formula for robot kinematics.
IEEE Trans. Autom. Contr. 39(3), 643–647 (1994)
189. C.M. Gosselin, J. Sefrioui, Polynomial solutions for the direct kinematic problem of pla-
nar three-degree-of-freedom parallel manipulators. in International Conference on Advanced
Robotics
190. O. Ma, J. Angeles, Architecture singularities of parallel manipulators. Int. J. Robot. Autom.
7(1), 23–29 (1992)
191. G. Yang, W. Chen, I.M. Chen, A geometrical method for the singularity analysis of 3-rrr planar
parallel robots with different actuation schemes. in IEEE/RSJ International Conference on
Intelligent Robots and Systems
192. C. Gosselin, J. Angeles, Singularity analysis of closed-loop kinematic chains. IEEE Trans.
Robot. Autom. 6(3), 281–290 (1990)
193. L.W. Tsai, Robot Analysis: The Mechanics of Serial and Parallel Manipulators (John Wiley
and Sons, 1999)
194. G. Yang, I.M. Chen, Equivolumetric partition of solid spheres with applications to orientation
workspace analysis of robot manipulators. IEEE Trans. Robot. 22, 869–879 (2006)
195. C.M. Gosselin, Determination of the workspace of 6-dof parallel manipulators. J. Mech. Des.
112(3), 331–336 (1990)
196. J. Angeles, C.S. López-Cajún, Kinematic isotropy and the conditioning index of serial robotic
manipulators. Int. J. Robot. Res. 11(6), 560–571 (1992)
197. Rigelsford J, Fundamentals of robotic mechanical systems. Industrial Robot: An International
Journal (1973)
198. C.M. Gosselin, L. Perreault, C. Vaillancourt, Simulation and computer-aided design of spher-
ical parallel manipulators. in Oceans
199. S.J. Ryu, J. Kim, F.C. Park, J. Kim, Design and performance analysis of a parallel mechanism-
based universal machining center. in Proceedings of 3rd International Conference on
Advanced Mechatronics, (1998), pp. 359–363
200. F. Badano, M. Bétemps, R. Clavel, A. Jutard, M. Hongler, Evaluation of exploration strategies
in robotic assembly. IFAC Proceedings Volumes 27(14), 63–68 (1994)
201. M. Russo, X. Dong, A calibration procedure for reconfigurable gough-stewart manipulators.
Mech Mach Theory 103920 (2020)
202. J.-S. Gao, L. Cheng, Y.S. Zhao, Kinetic self-calibration of novel 5-dof parallel machine tool.
Comput. Integr. Manufactured Manuf. Syst. 13(4), 738 (2007)
203. T. Sun, B. Lian, S. Yang, Y. Song, Kinematic calibration of serial and parallel robots based
on finite and instantaneous screw theory. IEEE Trans Robot 36(3), 816–834 (2020)
204. I. Dressler, A. Robertsson, R. Johansson, Automatic kinematic calibration of a modular gantry-
tau parallel robot from a kinematics point of view. in 2008 IEEE International Conference on
Robotics and Automation, (IEEE, 2008), pp. 1282–1287
205. G. Yang, I.M. Chen, W.K. Lee, S.H. Yeo, Self-calibration of three-legged modular reconfig-
urable parallel robots based on leg-end distance errors. Robotica 19(2), 187 (2001)
206. Y.J. Chiu, M.H. Perng, Self-calibration of a general hexapod manipulator using cylinder
constraints. Int. J. Mach. Tools Manuf. 43(10), 1051–1066 (2003)
207. Y. Meng, H. Zhuang, Autonomous robot calibration using vision technology. Robot.
Computer-Integrated Manuf. 23(4), 436–446 (2007)
208. D. Guanglong, P. Zhang, Online robot calibration based on vision measurement. Robot.
Computer-Integrated Manuf. 29(6), 484–492 (2013)
209. Y.J. Chiu, M.H. Perng, Self-calibration of a general hexapod manipulator with enhanced
precision in 5-dof motions. Mech Mach Theory 39(1), 1–23 (2004)
186 References
210. Y. Chen, F. Xie, X. Liu, Y. Zhou, Error modeling and sensitivity analysis of a parallel robot
with scara (selective compliance assembly robot arm) motions. Chin. J. Mech. Eng. 27(4),
693–702 (2014)
211. H. Wang, T. Gao, J. Kinugawa, K. Kosuge, Finding measurement configurations for accurate
robot calibration: validation with a cable-driven robot. IEEE Trans Robot 33(5), 1156–1169
(2017)
212. A. Müller, M. Ruggiu, Self-calibration of redundantly actuated pkm exploiting kinematic
landmarks, Computational Kinematics, (Springer, 2014), pp. 93–102
213. G. Ecorchard, P. Maurine, Self-calibration of delta parallel robots with elastic deformation
compensation. in 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems,
(IEEE, 2005), pp. 1283–1288
214. M. de Campos Porath, L.A.F. Bortoni, R. Simoni, J.S. Eger. Offline and online strategies to
improve pose accuracy of a stewart platform using indoor-gps. Precis. Eng. 63, 83–93 (2020)
215. G. Chen, L. Kong, Q. Li, H. Wang, A simple two-step geometric approach for the kinematic
calibration of the 3-prs parallel manipulator. Robotica 37(5), 837–850 (2019)
216. H. Zhuang, Self-calibration of parallel mechanisms with a case study on stewart platforms.
IEEE Trans. Robot. Autom. 13(3), 387–397 (1997)
217. H. Zhuang, Self-calibration of parallel mechanisms with a case study on stewart platforms.
IEEE Trans. Robot. Autom. 13(3), 387–397 (1997)
218. H. Zhuang, L. Liu, Self-calibration of a class of parallel manipulators. in Proceedings of IEEE
International Conference on Robotics and Automation, vol. 2 (IEEE, 1996), pp. 994–999
219. A. Nahvi, J.M. Hollerbach, V. Hayward, Calibration of a parallel robot using multiple kine-
matic closed loops. in Proceedings of the 1994 IEEE International Conference on Robotics
and Automation, (IEEE, 1994), pp. 407–412
220. D.J. Bennett, J.M. Hollerbach et al. Autonomous calibration of single-loop closed kinematic
chains formed by manipulators with passive endpoint constraints. IEEE Trans. Robot. Autom.
7(5), 597–606 (1991)
221. C.W. Wampler, J.M. Hollerbach, T. Arai, An implicit loop method for kinematic calibration
and its application to closed-chain mechanisms. IEEE Trans. Robot. Autom. 11(5), 710–724
(1995)
222. C.G. Iurascu, F.C. Park, Geometric algorithms for closed chain kinematic calibration. in
Proceedings 1999 IEEE International Conference on Robotics and Automation (Cat. No.
99CH36288C), vol. 3, (IEEE, 1999), pp. 1752–1757
223. L. Notash, R.P. Podhorodeski, Kinematic calibration of parallel manipulators. in IEEE Interna-
tional Conference on Systems, Man and Cybernetics. Intelligent Systems for the 21st Century,
vol. 4 (IEEE, 1995), pp. 3310–3315
224. F.C. Park, K. Okamura, Kinematic calibration and the product of exponentials formula,
Advances in robot kinematics and computational geometry (Springer, 1994), pp. 119–128
225. I.M. Chen, G. Yang, Kinematic calibration of modular reconfigurable robots using product-of-
exponentials formula. J. Rob. Syst. 14(11), 807–821 (1997)
226. G. Yang, I.M. Chen, A novel kinematic calibration algorithm for reconfigurable robotic sys-
tems. in Proceedings of International Conference on Robotics and Automation, vol. 4 (IEEE,
1997), pp. 3197–3202
227. H. Zhuang, Z.S. Roth, R. Sudhakar, Simultaneous robot/world and tool/flange calibration
by solving homogeneous transformation equations of the form ax= yb. IEEE Trans. Robot.
Autom. 10(4), 549–554 (1994)
228. F.C. Park, B.J. Martin, Robot sensor calibration: solving ax= xb on the euclidean group. IEEE
Trans. Robot. Autom. 10(5), 717–721 (1994)
229. F. Dornaika, R. Horaud, Simultaneous robot-world and hand-eye calibration. IEEE Trans.
Robot. Autom. 14(4), 617–622 (1998)
230. M. Shah, Solving the robot-world/hand-eye calibration problem using the kronecker product.
J. Mech. Robot. 5(3) (2013)
231. Aiguo Li, Lin Wang, Wu Defeng, Simultaneous robot-world and hand-eye calibration using
dual-quaternions and kronecker product. International Journal of Physical Sciences 5(10),
1530–1536 (2010)
References 187
232. Jan Heller, Didier Henrion, and Tomas Pajdla. Hand-eye and robot-world calibration by global
polynomial optimization. In 2014 IEEE international conference on robotics and automation
(ICRA), pages 3157–3164. IEEE, 2014
233. Wu Liao, Hongliang Ren, Finding the kinematic base frame of a robot by hand-eye calibration
using 3d position data. IEEE Transactions on Automation Science and Engineering 14(1),
314–324 (2016)
234. Guilin Yang, I-Ming Chen, Song Huat Yeo, and Wee Kiat Lim. Simultaneous base and tool
calibration for self-calibrated parallel robots. Robotica, 20(4):367, 2002
235. Floris Ernst, Lars Richter, Lars Matthäus, Volker Martens, Ralf Bruder, Alexander Schlaefer,
Achim Schweikard, Non-orthogonal tool/flange and robot/world calibration. The Interna-
tional Journal of Medical Robotics and Computer Assisted Surgery 8(4), 407–420 (2012)
236. Junhyoung Ha, Donghoon Kang, Frank C. Park, A stochastic global optimization algorithm
for the two-frame sensor calibration problem. IEEE Transactions on Industrial Electronics
63(4), 2434–2446 (2015)
237. Lars Richter, Floris Ernst, Alexander Schlaefer, Achim Schweikard, Robust real-time robot-
world calibration for robotized transcranial magnetic stimulation. The International Journal
of Medical Robotics and Computer Assisted Surgery 7(4), 414–422 (2011)
238. Wei Li, Mingli Dong, Lu Naiguang, Xiaoping Lou, Peng Sun, Simultaneous robot-world and
hand-eye calibration without a calibration object. Sensors 18(11), 3949 (2018)
239. Zijian Zhao, Simultaneous robot-world and hand-eye calibration by the alternative linear
programming. Pattern Recognition Letters 127, 174–180 (2019)
240. Yang Li, Junlei Hu, Baoxin Tao, Dedong Yu, Yihan Shen, Shengchi Fan, Yiqun Wu, and Xiao-
jun Chen. Automatic robot-world calibration in an optical-navigated surgical robot system
and its application for oral implant placement. International Journal of Computer Assisted
Radiology and Surgery, pages 1–8, 2020
241. Guilin Yang, I-Ming Chen, Wee Kiat Lim, and Song Huat Yeo. Design and kinematic analysis
of modular reconfigurable parallel robots. In Proceedings 1999 IEEE International Confer-
ence on Robotics and Automation (Cat. No. 99CH36288C), volume 4, pages 2501–2506.
IEEE, 1999
242. M.L. Curtis, Matrix Groups, 2nd edn. (Springer-Verlag, New York, USA, 1984)
243. W. Stephen, Mathematica: A System for Doing Mathematics by Computers, 2nd edn.
(Addison-Wesley, USA, 1991)