Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
218 views197 pages

Modular Robots - Theory and Practice

The document discusses the Research on Intelligent Manufacturing, focusing on modular reconfigurable robot systems (MRRS) and their applications in manufacturing and service sectors. It outlines the challenges and advancements in kinematics, dynamics modeling, and configuration optimization of MRRS, while also providing a comprehensive framework for analysis and design. The book aims to serve as a scientific platform for researchers and engineers to share findings and ideas in the field of intelligent manufacturing.

Uploaded by

Mina Listrik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
218 views197 pages

Modular Robots - Theory and Practice

The document discusses the Research on Intelligent Manufacturing, focusing on modular reconfigurable robot systems (MRRS) and their applications in manufacturing and service sectors. It outlines the challenges and advancements in kinematics, dynamics modeling, and configuration optimization of MRRS, while also providing a comprehensive framework for analysis and design. The book aims to serve as a scientific platform for researchers and engineers to share findings and ideas in the field of intelligent manufacturing.

Uploaded by

Mina Listrik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 197

Research on Intelligent Manufacturing

Guilin Yang · I-Ming Chen

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.

More information about this series at http://www.springer.com/series/15516


Guilin Yang · I-Ming Chen

Modular Robots: Theory


and Practice
Guilin Yang I-Ming Chen
Ningbo Institute of Materials Technology School of Mechanical and Aerospace
and Engineering Engineering
Chinese Academy of Sciences (CAS) Nanyang Technological University (NTU)
Ningbo, China Singapore, Singapore

ISSN 2523-3386 ISSN 2523-3394 (electronic)


Research on Intelligent Manufacturing
ISBN 978-981-16-5006-2 ISBN 978-981-16-5007-9 (eBook)
https://doi.org/10.1007/978-981-16-5007-9

Jointly published with Huazhong University of Science and Technology Press


The print edition is not for sale in China (Mainland). Customers from China (Mainland) please order the
print book from: Huazhong University of Science and Technology Press.
ISBN of the China (Mainland) edition: 978-7-5680-7364-6

© 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

A Modular Reconfigurable Robot System (MRRS) consists of an inventory of joint


link modules that can be assembled into various robot configurations for a diversity of
task requirements. Compared to the conventional robot systems with fixed configura-
tions, such an MRRS has the advantages of reconfigurability, reusability, versatility,
and ease of maintenance. Therefore, it has attracted extensive attention from both
academic and industrial communities. A variety of MRRSs has been developed for
both manufacturing and service applications.
In recent years, the research and development of the MRRSs have been extended
from serial robots to parallel robots, especially to those symmetrical parallel robots.
Nevertheless, the modular and reconfigurable characteristics of the MRRS bring in
a lot of challenges in its kinematics and dynamics modeling, performance analysis,
configuration optimization, kinematic calibration, and application developments.
To tackle the unfixed-configuration issue of the MRRS, it is critical to investigate
configuration-independent modeling and analysis algorithms.
This book is a comprehensive presentation of the work accomplished by the
authors in the area of MRRSs, which includes nine chapters. Chapter 1 presents a brief
introduction to MRRSs as well as the organization of this book. 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 generations. 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 three-structured modular robots. Chapter 6 addresses the
dynamics issues of modular serial robots. A configuration-independent dynamic

v
vi Preface

modeling method based on the Newton-Euler equation is employed to automati-


cally formulate the dynamic models of general three-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 Evolu-
tionary Algorithm (EA) is employed to conduct both type and dimension optimiza-
tion 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, instantaneous 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 calibration modeling
method, i.e., self-calibration followed by base-tool calibration, is proposed for the
three-legged modular parallel robots.
By taking tools from graph theory and differential geometry, a unified geometric
framework that addresses most of the modeling, analysis, and design issues of the
MRRS has been developed by the authors, which is the major feature of this book.
A large number of case studies and analysis examples are provided to facilitate
the audience to make use of this book for both academic research and practical
implementation. It is worth to mentioning that the modeling and analysis methods
developed for the MRRS are generic so that they can be applied to conventional serial
and parallel robots. Hence, although this book is primarily intended for researchers
and engineers working on modular reconfigurable robots, it could also be of interest
to readers in a broad area of robotics.
This book would not have been possible without the help of many people. In
particular, we would like to thank Prof. Song Huat Yeo from Nanyang Technological
University who contributed very useful suggestions to this book. We would also
like to thank our graduate students Mr. Wenji Jia, Mr. Renfeng Zhu, Mr. Yi Wang,
Ms. Wenjun Shen, Mr. Jie Zhao, Mr. Qinghao Du, Mr. Tuopu Zhang, Mr. Lefeng
Gu, Mr. Kaisheng Yang, Mr. Hao Zhang Mr. Guolong Zhang, and Mr. Mengshen
Yang for their great assistance in preparing the manuscripts. The research work
presented in this book is partially supported by Nanyang Technological University
and Singapore Institute of Manufacturing Technology, Singapore, which are dutifully
acknowledged. The authors also gratefully acknowledge the continuous financial
support of the National Natural Science Foundation of China (NSFC), especially,
under the grants U1509202 and 92048201.

Ningbo, China Guilin Yang


Singapore, Singapore I-Ming Chen
March 2021
Contents

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

4.4.3 Computation Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


4.4.4 Remarks on Computation Results . . . . . . . . . . . . . . . . . . . . . . 54
5 Kinematic Calibration for Modular Serial Robots . . . . . . . . . . . . . . . . . 55
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Kinematic Calibration Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2.1 Basic Calibration Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.2 An Iterative Least-Squares Algorithm . . . . . . . . . . . . . . . . . . . 62
5.2.3 Kinematic Calibration of Tree-structured Robots . . . . . . . . . 63
5.3 Computation Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.3.1 Calibration of a three-module Robot . . . . . . . . . . . . . . . . . . . . 66
5.3.2 Calibration of a SCARA Type Robot . . . . . . . . . . . . . . . . . . . . 69
5.3.3 Calibration of a Tree-structured Robot . . . . . . . . . . . . . . . . . . 74
6 Modular Serial Robot Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2 Newton-Euler Equation for a Link Assembly . . . . . . . . . . . . . . . . . . . 79
6.3 Dynamic Formulation for a Tree-Structured Modular Robot . . . . . . 82
6.3.1 Recursive Newton-Euler Algorithm . . . . . . . . . . . . . . . . . . . . . 82
6.3.2 Closed Form Equations of Motion . . . . . . . . . . . . . . . . . . . . . . 83
6.3.3 Remarks on the Dynamics Algorithms . . . . . . . . . . . . . . . . . . 85
6.3.4 Implementation and Examples . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.4 Inverse and Forward Dynamics Problem . . . . . . . . . . . . . . . . . . . . . . . 88
6.4.1 Inverse Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.4.2 Forward Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7 Optimization of Modular Serial Robot Configurations . . . . . . . . . . . . . 93
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2 General Design Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.3 Optimization Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3.1 Definition of Robot Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3.2 Design Parameters and the Search Space . . . . . . . . . . . . . . . . 99
7.3.3 Objective Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
7.3.4 Performance Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.4 Evolutionary Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.4.1 Coding Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.4.2 AIM Generating Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.4.3 Genetic Operators on AIMs . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.4.4 Implementation of the Evolutionary Algorithm . . . . . . . . . . . 107
7.5 Computation Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8 Modular Parallel Robot Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.2 Displacement Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
8.2.1 Forward Displacement Analysis . . . . . . . . . . . . . . . . . . . . . . . . 122
8.2.2 Inverse Displacement Analysis . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.3 Instantaneous Kinematics Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Contents ix

8.3.1 Forward Instantaneous Kinematics Analysis . . . . . . . . . . . . . 129


8.3.2 Inverse Instantaneous Kinematics Analysis . . . . . . . . . . . . . . 132
8.4 Singularity Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.1 Forward Singularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.4.2 Inverse Singularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.4.3 Combined Singularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.5 Workspace Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.5.1 Numerical Orientation Workspace Analysis . . . . . . . . . . . . . . 142
8.5.2 Finite Partition Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9 Kinematic Calibration for Modular Parallel Robots . . . . . . . . . . . . . . . 155
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
9.2 Self-calibration for Three-legged Modular Parallel Robots . . . . . . . . 157
9.2.1 Self-calibration Model Based on Leg-end Distance
Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.2.2 An Iterative Least-squares Algorithm . . . . . . . . . . . . . . . . . . . 163
9.2.3 Computation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.3 Base-tool Calibration for Three-leg Modular Reconfigurable
Parallel Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.3.1 Base-tool Calibration Model Based on POE Formula . . . . . . 168
9.3.2 An Iterative Least-squares Algorithm . . . . . . . . . . . . . . . . . . . 170
9.3.3 Computation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
List of Figures

Fig. 1.1 Application scenarios of robotic automation systems . . . . . . . . . . 2


Fig. 1.2 An RMMS link and pivot joint module . . . . . . . . . . . . . . . . . . . . . 3
Fig. 1.3 A robot configuration constructed by RMMS modules . . . . . . . . 4
Fig. 1.4 Robot modules in the MRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Fig. 1.5 A SCARA type modular robot configuration constructed
by MRS modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Fig. 1.6 The modular joints developed in NIMTE . . . . . . . . . . . . . . . . . . . 6
Fig. 1.7 M-TRAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Fig. 1.8 ATRON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Fig. 1.9 SUPERBOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Fig. 1.10 SMORSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Fig. 1.11 Three different types of rotations . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Fig. 1.12 A 2-DOF RMD-1 assembly configuration . . . . . . . . . . . . . . . . . . 9
Fig. 1.13 Modular and reconfigurable robot system built by ESI . . . . . . . . 9
Fig. 1.14 MoRSE drive modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Fig. 1.15 A PUMA type robot configuration constructed by MoRSE
modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Fig. 1.16 SCHUNK Powerball LWA 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Fig. 2.1 Revolute joint module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Fig. 2.2 FH-2000 series motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Fig. 2.3 Coordinate frames in a revolute joint module . . . . . . . . . . . . . . . . 15
Fig. 2.4 Prismatic joint module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Fig. 2.5 Coordinate frames in a prismatic joint module . . . . . . . . . . . . . . . 16
Fig. 2.6 Cubic link module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Fig. 2.7 Coordinate frames in cubic link module . . . . . . . . . . . . . . . . . . . . 17
Fig. 3.1 A graph and a directed graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Fig. 3.2 A connected graph and a tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Fig. 3.3 A labeled graph and a specialized graph . . . . . . . . . . . . . . . . . . . . 21
Fig. 3.4 A tree and a directed tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Fig. 3.5 A planar 6-bar linkage and its kinematic graph . . . . . . . . . . . . . . 26
Fig. 3.6 Redefined links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Fig. 3.7 A modular robot assembly configuration . . . . . . . . . . . . . . . . . . . 28
xi
xii List of Figures

Fig. 3.8 Relative orientations of a joint attaching to a link’s


connecting port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Fig. 4.1 Two connected modules (a dyad) . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Fig. 4.2 Determination of the initial pose of a dyad . . . . . . . . . . . . . . . . . . 41
Fig. 4.3 A tree-structured modular robot configuration (9-DOF) . . . . . . . 43
Fig. 4.4 Flow chart of iterative inverse kinematics algorithm . . . . . . . . . . 49
Fig. 4.5 A 6-DOF serial robot configuration . . . . . . . . . . . . . . . . . . . . . . . . 52
Fig. 5.1 Coordinate frames in a dyad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Fig. 5.2 Coordinate frames in the end-effector . . . . . . . . . . . . . . . . . . . . . . 59
Fig. 5.3 Iterative calibration algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Fig. 5.4 A tree-structured modular robot configuration (7-DOF) . . . . . . . 65
Fig. 5.5 A 3-module robot configuration (2-DOF) . . . . . . . . . . . . . . . . . . . 66
Fig. 5.6 Calibration convergence (three-module robot) . . . . . . . . . . . . . . . 69
Fig. 5.7 A SCARA type modular robot configuration . . . . . . . . . . . . . . . . 71
Fig. 5.8 Calibration convergence (SCARA robot) . . . . . . . . . . . . . . . . . . . 72
Fig. 5.9 Calibration convergence for branch one . . . . . . . . . . . . . . . . . . . . 75
Fig. 5.10 Calibration convergence for branch two . . . . . . . . . . . . . . . . . . . . 76
Fig. 6.1 Coordinate system in a link assembly . . . . . . . . . . . . . . . . . . . . . . 79
Fig. 6.2 Flow chart of dynamic model generation . . . . . . . . . . . . . . . . . . . 86
Fig. 6.3 A tree-structured modular robot configuration (5-DOF) . . . . . . . 87
Fig. 6.4 Flow chart of the forward dynamic algorithm . . . . . . . . . . . . . . . . 90
Fig. 6.5 Joint acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Fig. 6.6 Joint velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Fig. 6.7 Joint displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Fig. 6.8 Robot postures at different time instants . . . . . . . . . . . . . . . . . . . . 92
Fig. 7.1 Flow chart of the iterative design methodology . . . . . . . . . . . . . . 97
Fig. 7.2 Virtual module in the kinematic structure . . . . . . . . . . . . . . . . . . . 100
Fig. 7.3 Crossover operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Fig. 7.4 Mutation operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Fig. 7.5 The kinematic design algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Fig. 7.6 Task evaluation procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Fig. 7.7 Robot configurations in the initial generation (position
problem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Fig. 7.8 Robot configurations in the final generation (position
problem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Fig. 7.9 Average fitness value in every generation (position problem) . . . 111
Fig. 7.10 Minimal fitness value in every generation (position
problem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Fig. 7.11 Optimal robot configuration (position problem) . . . . . . . . . . . . . . 112
Fig. 7.12 Execution of the given task with the optimal robot
configuration (position problem) . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Fig. 7.13 Sub-optimal robot configurations (position problem) . . . . . . . . . . 112
Fig. 7.14 Robot configurations in the initial generation (pose
problem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Fig. 7.15 Robot configurations in the final generation (pose problem) . . . . 114
List of Figures xiii

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

Table 4.1 Computation results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53


Table 5.1 Preset geometric errors for the three-module robot . . . . . . . . . . . 68
Table 5.2 Identified kinematic errors for the three-module robot . . . . . . . . 68
Table 5.3 End link poses before and after calibration (three-module
robot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Table 5.4 Preset geometric errors for the SCARA robot . . . . . . . . . . . . . . . 71
Table 5.5 Identified kinematic errors for the SCARA robot . . . . . . . . . . . . . 72
Table 5.6 End link poses before and after calibration (SCARA robot) . . . . 73
Table 5.7 Preset geometric errors for the tree-structured robot . . . . . . . . . . 73
Table 5.8 Identified kinematic errors for the tree-structured robot . . . . . . . 73
Table 5.9 End link poses before and after calibration (tree-structured
robot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Table 6.1 Computational complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Table 6.2 Joint acceleration (1/s2 or m/s2 ) . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Table 6.3 Joint velocity (1/s or m/s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Table 6.4 Joint displacement (rad or m) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Table 7.1 Task points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Table 7.2 The adaptive probabilities for the mutation operators
(position problem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Table 7.3 Task poses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Table 7.4 The adaptive probabilities for the mutation operators (pose
problem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Table 8.1 Computation results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Table 8.2 Computation of orientation workspace volume . . . . . . . . . . . . . . 152
Table 8.3 Computation errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Table 9.1 Preset kinematic errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Table 9.2 Identified kinematic errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Table 9.3 Preset and identified kinematic errors . . . . . . . . . . . . . . . . . . . . . . 172
Table 9.4 Nominal and calibrated TB0,B and T A,E . . . . . . . . . . . . . . . . . . . . 172
Table 9.5 Three given mobile platform poses TB,A (q) . . . . . . . . . . . . . . . . . 173

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

© Huazhong University of Science and Technology Press, Wuhan and Springer 1


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_1
2 1 Introduction

Fig. 1.1 Application


scenarios of robotic
automation systems

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.

1.2 Past Research and Development Efforts

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

(a) link module (b) pivot joint module

Fig. 1.2 An RMMS link and pivot joint module

figurable Modular Manipulator System (RMMS) at Carnegie Mellon University [9,


10], the Dynamically Reconfigurable Robotic System (DRRS) at the Science Univer-
sity of Tokyo [6], the TOshiba Modular Manipulator System (TOMMS) at Toshiba
Corp. [8], and other modular robot systems at University of Toronto [5], University
of Stuttgart [12], and University of Texas [1, 11].
The RMMS at Carnegie Mellon University [9, 10, 22] consists of two types of 1-
DOF revolute joints: “rotate” and “pivot” joints, and links of different sizes (Fig. 1.2).
The revolute joints are actuated by DC motors in conjunction with harmonic-drive
mechanisms. The links have cylindrical shapes. The mechanical coupling uses the
V-band clamp, which is an integral part of link and joint modules. In the second
generation of the RMMS [9, 22], a quick-coupling mechanism is designed for easy
module connection. An RMMS robot configuration is shown in Fig. 1.3. The modules
are communicated with a VME-based host controller over a local area network
called the ARMbus. The control software for the RMMS has been developed using
the Chimera real-time operating system. Because closed-form inverse kinematics
solutions do not exist for all possible RMMS configurations, a damped least-squares
kinematic control algorithm is employed. A number of research issues are addressed
extensively for the RMMS: the automatic generation of kinematics [17], the global
fault tolerant planning [22, 35], and the task-based design problem [22, 31–33, 36].
The Modular Robotic System (MRS) at University of Toronto [5] includes two
types of 1-DOF main joint modules (rotary and prismatic), three types of 1-DOF end-
effector joint modules (yaw, pitch, and roll type), and link modules with hollow cylin-
drical geometry (Fig. 1.4). All the joint modules are designed to be self-contained
independent units. A revolute joint module driven by a DC motor with a harmonic-
drive mechanism can generate rotary motion; a prismatic joint module driven by a
DC motor in conjunction with a ball-screw mechanism can generate linear motion. A
4-DOF SCARA type modular robot configuration constructed with these modules is
shown in Fig. 1.5. A unique feature of this system is the development of a 45-degree
(relative to the modules’ main axes) connection structure. This structure allows both
types of straight and perpendicular connections by simply rotating the next module
4 1 Introduction

Fig. 1.3 A robot configuration constructed by RMMS modules

Fig. 1.4 Robot modules in the MRS

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

Fig. 1.5 A SCARA type


modular robot configuration
constructed by MRS
modules

The modular robot at University of Stuttgart [12] consists of link modules of


different sizes and a variety of rotational joint modules. The joint modules driven
by AC motors in conjunction with differential gears can create complicated 2-DOF
or 3-DOF motions. A simple male-female fastening device is designed to connect
modules in any order quickly and exactly. All the necessary specifications of link
and joint modules are stored in a database file. A program that can select modules to
construct special-purpose modular manipulators is proposed.
The TOMMS at Toshiba Corp. [8] contains one type of 1-DOF revolute joint
module actuated by a DC motor with harmonic gears, and one type of link module.
The joint module has three input ports and two output ports. The three input ports are
used for the alignment of the rotational axis with three axes of the joint coordinate
system respectively, while the two output ports are used to permit the module to either
rotate or bend. The link module consists of two cylinders that can slide relative to
each other so that the length of the link module is adjustable. Based on numerical
inverse kinematics, a position control algorithm is designed for the TOMMS.
There are also many research efforts dedicated to the modular joints designs and
applications, such as the collaborative robots. Some research groups have devel-
oped modular joint prototypes, the modular joint integrates electronics and mechan-
ical components, which includes high efficiency and high power density Permanent
Magnet Synchronous Motor (PMSM), harmonic drive, dual encoders (motor-side
6 1 Introduction

Fig. 1.6 The modular joints


developed in NIMTE

Fig. 1.7 M-TRAN

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

Fig. 1.8 ATRON

Fig. 1.9 SUPERBOT

Fig. 1.10 SMORSE

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

Fig. 1.11 Three different types of rotations

The RMD-1 is a reconfigurable and modular (rotary) mechatronic drive system


(joint) (Fig. 1.11). Each RMD-1 comprises a built-in actuator, a gear mechanism, a
position encoder, a brake, all of the necessary electronics, and the on-board processing
unit. RMD-1 is available in various power capacities starting from 50 W to about
400 W. The size of RMD-1 varies with its power capacity. Each RMD-1 module
can be reconfigured to provide three different types of rotations: roll, pitch, and yaw.
Serving as a “building block” of motion control automation, RMD-1 can either be
used individually to provide accurate motion control of a payload about a single axis,
or as an assembly of several modules to provide control about multiple axes. Because
of its inherent modularity, any number of modules can be added or removed easily
from an existing configuration. Figure 1.12 shows two modules interconnected in a
2-DOF configuration. And a modular and reconfigurable robot system built by ESI
is shown in Fig. 1.13. Note that both Figs. 1.11 and 1.12 are adapted from the product
catalog of ESI Company, Canada.
The MoRSE system stands for Modular Robot System for Engineering. It con-
sists of a variety of drive modules of different sizes: 1-DOF revolute drive modules,
1-DOF linear drive modules, 2-DOF wrist modules, and gripper modules (Fig. 1.14).
Each MoRSE module is a totally self-contained unit. The brushless DC servo motor,
the motor controller, the harmonic-drive mechanism, the break, the opto-isolated
digital and analog I/O, and the Fieldbus (CAN bus) interface are all encapsulated
in a compact design. Due to the standardized cubic design, the modules of MoRSE
system can be connected via simple coupling elements (connectors). An existing
robot configuration can be easily altered when required. A PUMA type robot config-
uration constructed by using MoRSE drive modules is shown in Fig. 1.15. Note that
both Figs. 1.14 and 1.15 are adapted from the product catalog of AMTEC GmbH,
Germany.
Another Germany company SCHUNK, has launched a commercial MRRS named
Powerball LWA 4 (Fig. 1.16). The SCHUNK Powerball LWA 4 is a compact
lightweight arm that utilizes all the advantages of the SCHUNK mechatronic modu-
lar system. Three ERB modules can achieve up to six degrees of freedom. The ERB
modules combine the movements of two servo axes per module in a very compact
1.2 Past Research and Development Efforts 9

Fig. 1.12 A 2-DOF RMD-1


assembly configuration

Fig. 1.13 Modular and


reconfigurable robot system
built by ESI

design. The combination of different sizes results in a customized, flexible manipu-


lator for modern handling concepts with a payload of up to 3 kg.
Based on the existing MRSs, the conceptual design of an MRRS has been proposed
in our early work [27]. It contains most of the features of the existing systems. An
individual joint module can be used as an independent motion control element. The
fully assembled systems can be used as standard robots with various configurations
and DOFs. The modules making up the MRRS can be divided into two categories,
10 1 Introduction

Fig. 1.14 MoRSE drive


modules

Fig. 1.15 A PUMA type


robot configuration
constructed by MoRSE
modules
1.2 Past Research and Development Efforts 11

Fig. 1.16 SCHUNK


Powerball LWA 4

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.

1.3 Overview of This Book

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.

2.1 Module Design Requirements

In order to develop a Modular Reconfigurable Robot System (MRRS) with versatile


reconfigurability, the module design in an MRRS should satisfy the following design
requirements:
• Each joint module should be a self-contained and independent actuator with its
own motion control capabilities;
• Each joint or link module should be designed with multi-connectivity;
• Each joint or link module should be designed with minimum weight and inertia;
• The connections between modules should be precise and rigid.
The first requirement focuses on the reconfigurability of the system, which implies
that the joint module should have built-in servo-motor, gearbox, amplifier, controller,
encoder, brake, and communication interface. The second requirement is the essen-
tial embodiment to increase the reconfigurability of the system. When each type of
the module is designed with multiple connecting sockets, many possible robot con-
figurations including serial, three-structured, and parallel types can be constructed.
The third requirement is important for a modular robot to increase its loading capac-

© Huazhong University of Science and Technology Press, Wuhan and Springer 13


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_2
14 2 Module Designs

ity. The last requirement is essential for a modular robot to perform tasks requiring
high accuracy and rigidity.

2.2 Joint Modules

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.

2.2.1 Revolute Joint Modules

A revolute joint module is designed to generate a rotary motion. To generalize the


revolute joint module, it is conceptually designed as a cube, as shown in Fig. 2.1. The
actuator is packed within the joint housing. Among its six connecting sockets, one is
the revolute socket driven by the built-in actuator. For example, in order to get a high
torque/weight ratio within a compact design, the commercial FH-2000 series hollow-
shaft servo actuators (from Harmonic Drives GmbH, Germany) can be selected for
the design, as shown in Fig. 2.2. Such an actuator combines a maintenance-free AC
servo motor with an encoder, a backlash-free harmonic drive, and a brake in a compact
design. The unique feature of the actuators is the hollow shaft which can allow the
electrical wiring to pass through the shaft.
For the conceptual revolute joint module (Fig. 2.3), note that the term ‘C M’ refers
to the center of mass. 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.3. The initial matrix is given
with respect to the frame at C M, termed as C M frame. The C M frame is parallel
with the module frame.

2.2.2 Prismatic Joint Modules

A prismatic joint module is designed to generate a translational motion. Such a


module is conceptually designed to have the similar multiple connecting sockets
on its housing as the revolute joint modules, as shown in Fig. 2.4. One of them
is the translational socket driven by an actuator in conjunction with a ball-screw
transmission mechanism. The FH series AC servo motors (without harmonic drives)
can also be used as the actuators of the prismatic joint modules for the same reason
mentioned above.
2.2 Joint Modules 15

Fig. 2.1 Revolute joint


module

Fig. 2.2 FH-2000 series


motor

Fig. 2.3 Coordinate frames


in a revolute joint module
16 2 Module Designs

Fig. 2.4 Prismatic joint


module

Fig. 2.5 Coordinate frames


in a prismatic joint module

Similar to the conceptual revolute joint module design, 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.5. The initial matrix is given with respect to the C M frame. Note that for
a prismatic joint module, the linear motion of the cylindrical tube will change the
position of the C M (with respect to the module frame). In this case, the whole module
cannot be considered as a rigid body. Hence, we divide a prismatic joint module into
two parts: the movable cylindrical tube and the remaining part, which is still called
a prismatic joint module without confusion.

2.3 Link Modules

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

Fig. 2.6 Cubic link module

Fig. 2.7 Coordinate frames


in cubic link module

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].

3.1.1 Basic Graph Definitions

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).

© Huazhong University of Science and Technology Press, Wuhan and Springer 19


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_3
20 3 Modular Robot Representation

Fig. 3.1 A graph and a


directed graph

Fig. 3.2 A connected graph


and a tree

(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.

Definition 3.6 (Specialized Graph [14]) A specialized graph G̃ is a labeled graph


G with an assignment ( f v , f e ) on its vertices and edges. It can be written as G̃ =
(G, Ṽ , Ẽ, f v , f e ), where Ṽ ( Ẽ) represents the set of vertex (edge) types on G, and
f v : V → Ṽ and f e : E → Ẽ are injective mappings which are called vertex and
edge assignments, respectively (Fig. 3.3b).

Example 3.1 A labeled graph G is shown in Fig. 3.3a, where V = (v1 , v2 , . . . , v6 )


and E = (e1 , e2 , . . . , e5 ). Its specialized graph G̃ is shown in Fig. 3.3b, where Ṽ =
{A, B, C} and Ẽ = {x, y, z}.
3.1 Graphs 21

Fig. 3.3 A labeled graph


and a specialized graph

3.1.2 Matrix Representation of Graphs

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.

Definition 3.7 (Adjacency Matrix) Let G = (V, E) be a labeled graph, where V =


{v1 , v2 , . . . , vm } and E = {e1 , e2 , . . . , en }. The adjacency matrix B(G) is the m × m
matrix in which the entry in row i and column j is 1, if there is an edge joining
vertices vi and vj ; it is 0, otherwise.

Definition 3.8 (Incidence Matrix) Let G = (V, E) be a labeled graph, where V =


{v1 , v2 , . . . , vm } and E = {e1 , e2 , . . . , en }. The incidence matrix M(G) is the m × n
matrix in which the entry in row i and column j is 1, if edge ej is incident on vertex
vi ; it is 0, otherwise.

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

According to the definition of adjacency matrix of an underlying graph, B(G) is


a square and symmetric matrix.
Definition 3.9 (Adjacency Matrix—for a directed graph) Let G = (V, E) be a
labeled digraph, where V = {v1 , v2 , . . . , vm } and E = {e1 , e2 , . . . , en }. The adja-
cency matrix B(G) is the m × m matrix in which the entry in row i and column j is
1, if there is an edge from vertices vi to vj ; it is 0, otherwise.
Definition 3.10 (Incidence Matrix—for a directed graph) Let G = (V, E) be a
labeled digraph, where V = {v1 , v2 , . . . , vm } and E = {e1 , e2 , . . . , en }. The inci-
dence matrix M(G) is the m × n matrix in which the entry in row i and column j
is 1 if vi is the initial vertex of ej ; it is −1, if vi is the terminal vertex of ej ; it is 0,
otherwise.
Example 3.3 The adjacency and incidence matrix of the labeled digraph shown in
Fig. 3.4b can be written as:

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:

B(G) = D(G) − M(G)M(G)T , (3.1)

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).

Definition 3.11 (Accessibility Matrix) Let G = (V, E) be a labeled digraph, where


V = {v1 , v2 , . . . , vm } and E = {e1 , e2 , . . . , en }. The accessibility matrix R(G) is the
m × m matrix in which the entry in row i and column j is 1, if there is at least one
path from vi to vj ; it is 0, otherwise.

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

Fig. 3.4 A tree and a


directed tree

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

A specialized graph mentioned in the previous section can also be described


in an incidence-matrix-like structure as well. An additional row and column are
required for the assignments of vertex types and edge types, respectively. Let G̃ be a
specialized graph with m vertices and n edges, the following matrix representation
is defined for G̃ .

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.

The upper-left submatrix of M(G̃) is identical to the incidence matrix of its


underlying labeled graph G because they have the identical graph topology. The
vertex and edge assignments are kept in the last column and the last row of M(G̃),
respectively.

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

3.2 Kinematic Graphs

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

Fig. 3.5 A planar 6-bar linkage and its kinematic graph

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].

3.3 Re-classification of Links and Joints

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

Fig. 3.6 Redefined links

set, J contains nine elements: J = {Jr 1 , Jr 2 , Jr 3 , J p1 , J p2 , J p3 , J f 1 , J f 2 , J f 3 }, where


Jri , J pi , and J f i represent the revolute joint, the prismatic joint, and the fixed joint,
respectively. The subscript i indicates the size of a joint, i.e., large (i = 1), medium
(i = 2), and small (i = 3) joints. Large, medium, and small joints are derived from
the large connector, the adapter, and the small connector, respectively. Note that,
hereafter, the term link and joint will indicate the redefined ones if not specified.
Based on the actual module designs, the redefined links are shown in Fig. 3.6. For
our modeling purpose, each link is attached with a body-fixed frame (or the module
frame). The origin of this frame is located at the centroid of the cubic part of a link.
The coordinate axes are perpendicular to the faces of modules. If the link is L ri or
L pi (i = 1, 2), for convenience, the z-axis of the link frame is defined to be along
the direction of moving sockets.
After this re-classification, a modular robot structure can be transformed into a
common kinematic chain, and thus can be converted into a kinematic graph.

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

Fig. 3.7 A modular robot assembly configuration

3.4 Assembly Incidence Matrix

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

Fig. 3.8 Relative


orientations of a joint
attaching to a link’s
connecting port

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

© Huazhong University of Science and Technology Press, Wuhan and Springer 31


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_4
32 4 Modular Serial Robot Kinematics

in a robot so that arbitrary assignment of link coordinate frames is inconvenient. Also,


the D-H parameters are configuration dependent. The same robot may have differ-
ent sets of D-H parameters just because of the different initial configurations. For a
modular robot, the reconfigurability calls for a configuration independent modeling
method which is more flexible and adaptable.
Based on the screw theory, Brockett [60] showed that the kinematic equations
for an open kinematic chain containing either revolute joints or prismatic joints can
be expressed by a product of matrix exponentials (see Sect. 4.2 for more details).
Because of its connection with Lie groups and Lie algebras, the POE formula provides
a modern geometric interpretation of the classical screw theory. By drawing upon
well-established principles of the classical screw theory and the modern differential
geometry, the POE formula not only has the intuitive simplicity and theoretical
appeal, but can also be used as a computationally effective tool [60–64]. There are
several advantages of using the POE formula in robot kinematics modeling. The first
advantage is that the POE formula provides a general and uniform representation of
the forward kinematics of a spatial mechanism regardless of the types of joints. The
second advantage is that the POE formula embodies all the advantages of the screw
coordinates method, and allows a global description of the rigid motion which does
not suffer from singularities due to the use of local coordinates. Such singularities
are inevitable when one chooses to represent the rotation via Euler angles. The third
advantage is that the POE formula is basically a zero reference position method so
that it also embodies all the advantages of the zero reference position method. The
description of the robot is in terms of the joint axis (twists) directions and locations in
the zero reference position. Hence, the local coordinate frames in POE representation
can be arbitrarily defined. Due to these advantages, the POE formula proved to be a
more convenient and powerful modeling method for a Modular Reconfigurable Robot
System (MRRS) in which the kinematics, dynamics, and calibration algorithms are
to be independent of robot configurations.
The derivation of the forward kinematics for a conventional robot is quite straight-
forward once a kinematic modeling method is chosen. For a modular robot, the
forward kinematics should be formulated automatically once a specific robot con-
figuration (an Assembly Incidence Matrix (AIM)) is given. Researches in CMU [10,
17] and University of Toronto [3] have proposed techniques, based on the D-H repre-
sentation, to generate modular robot forward kinematics automatically. The method
of [10, 17] used two sets of coordinate frames to describe a modular robot: modular
frames for individual modules showing kinematic parameters of links and joints of
the Reconfigurable Modular Manipulator System (RMMS), and D-H frames defined
with D-H notation. According to a given connecting sequence of modules, the D-H
parameters of the entire robot can be obtained automatically by employing a con-
version algorithm from the modular frames to D-H frames. However, only revolute
joints were considered in the kinematic parameter conversion scheme. The work of
[3] generalized this modeling technique to include both revolute joints and prismatic
joints. Also, the multiple attachment of joints on one link module was considered by
defining input/output frames on every link.
Based on the POE formula, another kinematic modeling approach was proposed
by Chen and Yang [27], which can generate the forward kinematics of a tree-
structured modular robot from a given AIM automatically. In this technique, only
4.1 Introduction 33

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.

4.2 Geometric Background and the POE Formula

In this section, the POE formula as well as the geometric background is reviewed.
For more details, please refer to [60–62, 87].

4.2.1 Geometric Background

In robot kinematics, it is sufficient to think of S E(3), the Special Euclidean Group


of rigid body motions, as consisting of matrices of the form
 
R p
, (4.1)
0 1

where R ∈ S O(3) is interpreted as a rigid body rotation and p ∈ 3×1 as a rigid


body translation. Here, S O(3), the Special Orthogonal Group, denotes the group of
3 × 3 rotation matrices. Elements of S E(3) can also be denoted by the ordered pair
( p, R), with group multiplication understood to be ( p1 , R1 ) · ( p2 , R2 ) = (R1 p2 +
p1 , R1 R2 ). S E(3) is a Lie group of dimension six.
The Lie algebra of S E(3), denoted se(3), consists of matrices of the form
 
ŵ v
, (4.2)
0 0

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

Ad X (x) = ( p × Rw + Rv, Rw), (4.5)

which also admits the 6 × 6 matrix representation


  
R p̂ R v
Ad X (x) = . (4.6)
0 R w

It is easily verified that Ad X−1 = Ad X −1 and Ad X AdY = Ad X Y for any X, Y ∈ S E(3).


Elements of a Lie algebra can also be identified with a linear mapping between
its Lie algebra via the Lie bracket. Given an element x ∈ g, its adjoint representation
is the linear map adx : g → g defined by adx (y) = [x, y]. If x = (v1 , w1 ) and y =
(v2 , w2 ) are elements of se(3), then

adx y = (w1 × v2 − w2 × v1 , w1 × w2 ), (4.7)

which also admits the matrix representation


  
ŵ1 v̂1 v2
adx y = . (4.8)
0 ŵ1 w2

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

If φ is very small, ŵ ≈ (R − R T )/2. If the trace(R) = −1, it can be shown that


log R = (2k + 1)π v̂, where k is any integer and v is the unit eigenvector of log R
corresponding to the eigenvalue 1.
An actual example of Lie algebra in robot kinematics is the generalized velocities
of rigid bodies [62, 87]. There are two ways in which the tangent vector Ẋ (t) of
a curve X (t) = ( p(t), R(t)) ∈ S E(3) can be identified with an element of se(3).
If X (t) describes the motion of a rigid body relative to a spatial reference frame,
then both Ẋ X −1 =( ṗ − Ṙ R −1 p, Ṙ R −1 ) and X −1 Ẋ = (R −1 ṗ, R −1 Ṙ) are elements of
se(3). X −1 Ẋ is referred to as the body velocity representation of Ẋ , since R −1 Ṙ and
R −1 ṗ are the angular velocity and translational velocity of the rigid body relative to its
body-fixed frame, respectively. Similarly, Ẋ X −1 is referred to as the spatial velocity
representation of Ẋ . One subtle and important difference in the interpretation of the
spatial velocity is that R −1 Ṙ is indeed the angular velocity of the rigid body relative
to the spatial frame, while the translational velocity relative to the spatial frame is
not ṗ − Ṙ R −1 p, but simply ṗ. If X (t) undergoes a coordinate transformation of
the form X (t) → X (t)T , where T ∈ S E(3) is constant, then its new body velocity
representation is T −1 X −1 Ẋ T = AdT −1 (X −1 Ẋ ).
4.2 Geometric Background and the POE Formula 37

4.2.2 The POE Formula

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

T0,n (q1 , q2 , . . . , qn ) = T0,1 (q1 )T1,2 (q2 ) . . . Tn−1,n (qn )


= T0,1 (0)eŝ1 q1 T1,2 (0)eŝ2 q2 . . . Tn−1,n (0)eŝn qn . (4.15)

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

T0,n (q1 , q2 , . . . , qn ) = eŝ0,1 q1 eŝ0,2 q2 . . . eŝ0,n qn T0,n (0), (4.17)


−1
where ŝ0,i = T0,i (0)ŝ
i T 0,i (0) = AdT0,i (0) si , in which T0,i (0) = T0,1 (0)T1,2 (0) . . .
n
Ti−1,i (0). T0,n (0) = i=1 Ti−1,i (0) represents the initial position and orientation of
the end-effector frame relative to the base frame.
If all of the twists are expressed in the end-effector (end link) frame n, Eq. (4.15)
can also be rewritten as

T0,n (q1 , q2 , . . . , qn ) = T0,n (0)eŝn,1 q1 eŝn,2 q2 . . . eŝn,n qn , (4.18)


−1
where ŝn,i = Ti,n (0)ŝi Ti,n (0) = AdTi,n−1 (0) si , in which Ti,n (0) = Ti,i+1 (0)Ti+1,i+2
(0) . . . Tn−1,n (0).
Equations (4.15)–(4.18) are all called the POE formula, in which Eqs. (4.15)
and (4.16) are called the local frame representation of POE formula, i.e., the local
POE formula. The POE formula provides a clear geometric representation of the
kinematics of a robot and can simplify the kinematic analysis of the mechanism [88].
38 4 Modular Serial Robot Kinematics

4.3 Forward Kinematics

In this section, we focus on the forward kinematics of tree-structured modular robots


which most of the industrial robots belong to. A tree-structured kinematic chain
generally consists of several branches (from the base to each of the pendent links).
The forward kinematics of an n-DOF tree-structured modular robot can thus be
described as: given a set of joint angles q = {q1 , q2 , . . . , qn }, we wish to determine
the poses of all the end-effector frames relative to the unique base frame. Although
different branches may have several common links and joints, in formulating the
forward kinematics, each branch can still be considered as a serial chain. Since each
joint connects two and only two consecutive links, it is reasonable to first consider the
description of kinematic relationship between two consecutive links and then obtain
the overall description of robot kinematics in a recursive fashion. Therefore, the local
frame representation of the POE formula is more suitable for our purpose. Note that
in the following context, we consider modular robots without end-effectors, so that
the desired poses are referred to as the poses of end link frames.

4.3.1 Dyad Kinematics

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 ŝ j ∈ se(3) is the twist of joint ej expressed in frame j, Ti j (q j ) and Ti j (0) ∈


S E(3). Note that in the following context, the pose of a coordinate frame is referred
to as the 4 × 4 homogeneous matrix including both the orientation and position of
the frame with respect to a reference frame. In Eq. (4.19), Ti j (0) is the initial pose
4.3 Forward Kinematics 39

Fig. 4.1 Two connected


modules (a dyad)

of frame j relative to frame i, and


 
Ri j (0) di j (0)
Ti j (0) = , (4.20)
0 1

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

where ŵ j is a skew-symmetric matrix related to w j = (w j x , w j y , w j z )T , the unit


directional vector of the joint axis expressed in frame j, and v j = (v j x , v j y , v j z )T is
the position vector of the joint axis relative to frame j. ŵ j is given by
⎡ ⎤
0 −w j z w j y
ŵ j = ⎣ w j z 0 −w j x ⎦ . (4.22)
−w j y w j x 0

The twist, ŝ j , can also be represented by a 6-dimensional vector through a map-


ping: ŝ j → (v j , w j ) ∈ 6×1 , termed twist coordinates. Based on the module design,
the joint j’s axis always passes through frame j’s origin. For revolute joints,
s j = (0, w j ), where w j is the unit directional vector of the joint axis expressed
in frame j. For prismatic joints, s j = (v j , 0), where v j is the unit directional vector
of the joint axis relative to frame j. For fixed joints, s j = (0, 0). Therefore, Eq. (4.9)
can also be simplified as  ŵ q 
e j j vjqj
eŝ j q j = , (4.23)
0 1

where q j is the joint j’s displacement and

eŵ j q j = I + ŵ j sin q j + ŵ 2j (1 − cos q j ). (4.24)


40 4 Modular Serial Robot Kinematics

Since a specific modular robot is given in an AIM format as mentioned in the


previous chapter, the initial orientation Ri j (0), the initial position di j (0), and the
twist coordinate s j of each dyad are to be determined from the given AIM in order
to generate the dyad kinematics automatically. In an AIM, as shown in Eq. (4.25),
five entries are related to the dyad of links vi and vj , i.e., (aik , ain , a jk , a jn , an+1,k ),
termed a dyad vector. an+1,k represents the type of joint ek ; ain and a jn indicate the
type of links vi and vj , respectively; aik = { pik , qik } and a jk = { p jk , q jk } represent
that the aik -port of vi is connected with a jk -port of vj by a joint ek .
⎡ ⎤
... ... ... ...
⎢. . . aik . . . ain ⎥
⎢ ⎥
⎢. . . . . . . . . . . .⎥
A(G) = ⎢
⎢. . . a jk
⎥. (4.25)
⎢ . . . a jn ⎥

⎣. . . . . . . . . . . .⎦
. . . an+1,k ... 0

• Determination of Initial Orientation Ri j (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

Fig. 4.2 Determination of


the initial pose of a dyad

Ri1j (0) = Ri2j (0) × Ri3j (0), (4.26)


Ri2j (0) = Ri3j (0) × Ri1j (0), (4.27)
Ri3j (0) = Ri1j (0) × Ri2j (0). (4.28)

• Determination of Initial Displacement di j (0)


The initial displacement vector represents the position of the origin of frame j
y y
relative to frame i initially. di j (0)= (dixj , di j , dizj ) ∈ 3×1 , where dixj , di j , and dizj
represent the x, y, and z coordinates of frame j’s origin relative to frame i, respec-
tively. Because all the connecting sockets of a module are centered on the faces
of the cube and the module frame is assigned to the centroid of the cube, the
origin of frame j is always in one of frame i’s axes, i.e., along the direction of
pik . Therefore, two elements in this vector must be zero. According to pik , we can
first determine which element in di j (0) is the non-zero entry, and also the entry’s
sign. The absolute value of the non-zero entry is equal to the distance between the
origin of frame i and the origin of frame j, which can be calculated by

||di j (0)|| = dvi + dvj + dek , (4.29)

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

Then the forward kinematics transformation from frame i to j can be calculated by


Eq. (4.19).

4.3.2 Forward Kinematics for a Tree-Structured Modular


Robot

The forward kinematics of a tree-structured robot is to determine the kinematic


transformations from the base to each of the pendant links (or the end-effectors).
Hence, finding out the connecting orders of links from a given AIM is essential.
There are two tree-traversing algorithms usually used in graphs, the Breadth-First-
Search (BFS) algorithm and the Depth-First-Search (DFS) algorithm. They can both
be employed to determine the connecting orders of links as well as the corresponding
dyad vectors from a given AIM.
A recursive forward kinematics algorithm for a tree-structured modular robot was
proposed by Chen and Yang [27] by using the BFS algorithm to traverse a given
AIM and applying Eq. (4.19) to every dyad. The input of this algorithm is a given
AIM and a set of joint angles; the output is the poses of all the end links with respect
to the base frame. Alternatively, the forward kinematic equation can be derived by
means of the path matrix. Since the rows in the AIM are arranged in BFS order, the
path matrix can be derived from the given AIM as mentioned in Chap. 3. Once the
path matrix is obtained, the dyad vectors can be derived from the AIM accordingly.
Now we consider a tree-structured modular robot consisting of n + 1 modules
and having m branches. Therefore, the path matrix of this robot has m rows and
4.3 Forward Kinematics 43

Fig. 4.3 A tree-structured modular robot configuration (9-DOF)

n + 1 columns. Suppose that row k (k = 1, 2, . . . , m) has n[k] + 1 non-zero entries,


sequentially 0k (or simplify to be 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]. The forward kinematics of branch k thus can be given by:

T0,n[k]k = T0,1k (q1k )T1k ,2k (q2k ) . . . T(n[k]−1)k ,n[k]k (qn[k]k )


n[k]
= (T(i−1)k ,ik (0)eŝik qik ). (4.30)
i=1

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

4.4 Inverse Kinematics

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.

4.4.1 Differential Kinematics Model for a Single Branch

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

∂ T0,n[k]k ∂(T(i−1)k ,ik (0)eŝik qik )


= T0,(i−1)k Tik ,n[k]k
∂qik ∂qik
= T0,(i−1)k T(i−1)k ,ik (0)eŝik qik ŝik Tik ,n[k]k
= T0,ik ŝik Tik ,n[k]k , (4.33)

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

Equation (4.35) is termed as the differential kinematic equation of branch k. Geo-


metrically, it describes the differential change of the end link pose resulting from the
differential changes of joint angles, viewing at the end link frame.
d
Let T0,n[k]k
denote the desired pose of the end link. When it is in the neighborhood
of a nominal pose of the end link, denoted by T0,n[k]k , we have

dT0,n[k]k = T0,n[k]
d
k
− T0,n[k]k . (4.36)

Therefore, the left side of Eq. (4.35) becomes


−1 −1
T0,n[k]k
dT0,n[k]k = T0,n[k] Td
k 0,n[k]k
− I4×4 . (4.37)

According to the definition of matrix logarithm [242],


46 4 Modular Serial Robot Kinematics

−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)

Substituting Eq. (4.39) into Eq. (4.35), we obtain


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

Since T0,n[k]k = T0,ik Tik ,n[k]k , we get AdTi−1,n[k] = AdT0,n[k]


−1 AdT0,ik . Equation (4.41) can
k k k
be rewritten as:


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:

DTk = Jk dqk , (4.43)

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

dqk = column[dq1k , dq2k , . . . , dqn[k]k ] ∈ n[k]k ×1 .

Equation (4.43) is the differential inverse kinematic equation of a branch. We


can get an inverse solution for a desired pose of the end link (an element of S E(3))
iteratively by using the Newton-Raphson method with Eq. (4.43). However, if the
desired pose is not an element of S E(3), rather, a pure orientation (an element of
S O(3)) or a pure position (a 3 × 1 vector) problem, the inverse kinematic equation
needs to be modified. For this purpose, we express DTk in a block matrix form as
DTk = [D Pk , D Rk ]T , in which D Pk ∈ 3×1 and D Rk ∈ 3×1 represent the position
difference vector and the orientation difference vector, respectively. Accordingly,
JTk = [J Pk , J Rk ]T , in which J Pk ∈ 3×n[k] and J Rk ∈ 3×n[k] represent the body posi-
tion Jacobian matrix and the body orientation Jacobian matrix, respectively. Equa-
tion (4.43) becomes    
DPk JP k
= dqk . (4.44)
D Rk JRk

1. Pure orientation problem


A pure orientation problem means that the desired pose of the end link frame is
an element of S O(3), i.e., only the frame orientation is to be satisfied. Based on
Eq. (4.44), we have
D R k = J Rk dqk , (4.45)

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.

4.4.2 Differential Kinematics Model for a Tree-Structured


Robot

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)

q i+1 = q i + dq i+1 , (4.49)

where i represents the number of iterations and J ∗ is the Moore-Pennose pseu-


doinverse of J . The Singular Values Decomposition (SVD) method is employed to
4.4 Inverse Kinematics 49

Fig. 4.4 Flow chart of


iterative inverse kinematics
algorithm

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

4.4.3 Computation Examples

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

Fig. 4.5 A 6-DOF serial


robot configuration

⎡ ⎤
−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.

4.4.4 Remarks on Computation Results

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

Abstract This chapter addresses the kinematic calibration of a modular robot to


compensate for the kinematic errors in the robot. Based on the local frame repre-
sentation of the Product-of-Exponentials (POE) formula, a set of compact kinematic
calibration models has been formulated for modular reconfigurable robots. The kine-
matic errors are attributed to the initial poses in the dyads so that the calibration mod-
els are significantly simplified. An iterative least square algorithm is employed for
the calibration solution. Three corresponding simulation examples are demonstrated.

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.

© Huazhong University of Science and Technology Press, Wuhan and Springer 55


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_5
56 5 Kinematic Calibration for Modular Serial Robots

Basically, kinematic calibration is necessary for all kinds of robots. In recent


years, there has been an explosion in the literature on the topic of kinematic cali-
bration, reflecting its current importance and development in robotics. Many cali-
bration models have been presented by researchers who are motivated by the need
for robot calibration [89–93]. Based on the different kinematic modeling techniques
used, we categorized them into (1) the Denavit-Hartenberg (D-H) parameterization
approach [93–99], (2) the zero reference position modeling approach [100–103], (3)
the Continuous and Parametrically Complete (CPC) modeling approach [104–106],
and (4) the Product-of-Exponentials (POE) formulation approach [23–26, 107–109].
The use of the D-H representation [56] for kinematics is the de-facto standard
in robotics. This modeling technique intelligently uses a minimal set of parame-
ters to describe the relationship between adjacent joint axes for the formulation of
the kinematics. However, being adopted for calibration modeling, this method is
not amenable to direct identification as all the parameters in this kinematic model
are stringently defined and are unique to the particular robot configuration con-
cerned [93]. In addition, it has the singularity problem when neighboring joint axes
are nearly parallel. For example, one of the parameters in the D-H model is the length
of the normal between two consecutive joint axes. If two axes are parallel, an infinite
number of common normals exists with all having the same length. However, when
one of the axes becomes slightly misaligned (with two axes still in a same plane),
the length of this common normal will instantaneously jump to zero. This variation
of kinematic parameters with respect to changes in joint axis being not continuous,
may result in severe numerical difficulties during the parameter identification of the
calibration process [92]. A number of researchers used modified forms of the D-H
formulation to overcome the singularity problem. Hayati et al. [94–97] introduced
an angular alignment parameter βi in place of the di parameter in the D-H model to
represent a small misalignment between two consecutive parallel axes, and an addi-
tional linear parameter for handling prismatic joints. Many researchers [110–113]
pursued their research based on Hayati’s modified D-H model. Stone [93] used a six-
parameter representation (S-model) in which two additional parameters are added to
the D-H model to allow for arbitrary placement of link frames.
Mooring [102], Mooring and Tang [103], and Kazerounian and Qian [100, 101]
followed a so-called “zero-reference” position method as described in [58, 59]. This
method described the robot kinematics in terms of the axes directions and locations in
the zero reference position. Construction of a calibration model based on this method
was not very straightforward. The elimination of redundant parameters in [103]
required an assumption that the rotation and translation errors in certain directions
are negligible. However, this technique is not prone to the difficulties encountered
in case of parallel or nearly parallel joint axes when using the D-H notations.
Zhuang et al. [104–106] proposed a six-parameter CPC model. In this model, a
singularity-free line representation consisting of four line parameters was adopted
to ensure parameterically continuous, while two additional parameters were used to
allow arbitrary placement of the link coordinate frames to make the model complete.
The POE formula is uniform in modeling robots with both revolute and prismatic
joints, and provides a very structured parameterization for an open chain robot. Sig-
5.1 Introduction 57

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.

5.2 Kinematic Calibration Models

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

Fig. 5.1 Coordinate frames


in a dyad

T0,n+1 (q) = T0,1 (q1 )T1,2 (q2 ) . . . Tn−1,n (qn )Tn,n+1


= T0,1 (0)eŝ1 q1 T1,2 (0)eŝ2 q2 . . . Tn−1,n (0)eŝn qn Tn,n+1 , (5.1)

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

Fig. 5.2 Coordinate frames


in the end-effector

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.

5.2.1 Basic Calibration Models

According to the definition of matrix logarithm defined on S E(3), we can find at


least a p̂ ∈ se(3) for a given T ∈ S E(3), such that e p̂ = T . Hence, it is sufficient
to let e p̂i = Ti−1,i (0) (with e p̂n+1 = Tn,n+1 ), where p̂i ∈ se(3) (i = 1, 2, . . . , n + 1).
Equation (5.1) can be rewritten as

T0,n+1 = e p̂1 eŝ1 q1 e p̂2 eŝ2 q2 . . . e p̂n eŝn qn e p̂n+1 . (5.2)

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

dT0,n+1 = d(e p̂1 )eŝ1 q1 e p̂2 eŝ2 q2 . . . e p̂n eŝn qn e p̂n+1


+ e p̂1 eŝ1 q1 d(e p̂2 )eŝ2 q2 . . . e p̂n eŝn qn e p̂n+1
+ . . . + e p̂1 eŝ1 q1 . . . e p̂n−1 eŝn−1 qn−1 d(e p̂n )eŝn qn e p̂n+1
+ e p̂1 eŝ1 q1 . . . e p̂n eŝn qn d(e p̂n+1 )
= e p̂1 d p̂1 eŝ1 q1 e p̂2 eŝ2 q2 . . . e p̂n eŝn qn e p̂n+1
+ e p̂1 eŝ1 q1 e p̂2 d p̂2 eŝ2 q2 . . . e p̂n eŝn qn e p̂n+1
+ . . . + e p̂1 eŝ1 q1 . . . e p̂n−1 eŝn−1 qn−1 e p̂n d p̂n eŝn qn e p̂n+1
+ e p̂1 eŝ1 q1 . . . e p̂n eŝn qn e p̂n+1 d p̂n+1 . (5.3)

−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

5.2.2 An Iterative Least-Squares Algorithm

Based on the calibration models, an iterative least-squares algorithm is employed


for the calibration solution. This algorithm is suitable for each of the calibration
models. For simplicity, we will introduce this algorithm according to the error model
of Eq. (5.6).
Apparently, Eq. (5.6) can also be expressed as a linear equation of the form

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

algorithm is employed for the parameter identification. The least-square solution of


x is given by

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)

After calibration, the forward kinematic equation becomes

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)

5.2.3 Kinematic Calibration of Tree-structured Robots

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

Fig. 5.3 Iterative calibration


algorithm

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

Fig. 5.4 A tree-structured modular robot configuration (7-DOF)

⎡(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

5.3 Computation Examples

This section provides three computation examples to demonstrate the convergence,


effectiveness, and generality of the proposed calibration algorithm. The first exam-
ple is a 3-module (2-DOF) serial robot. Because of the simple configuration, the
modeling strategy can be clearly demonstrated. The second example is a 7-module
(4-DOF) SCARA type robot. The purpose of this example is to demonstrate that the
proposed calibration algorithm does not suffer from the singularity problem when
two neighboring joint axes are close to parallel. The last example is a general tree-
structured modular robot consisting of different types of joints. It is used to show
the generality of the algorithm. Note that, all of the computation results are based on
the calibration model of Eq. (5.6). In these examples, we consider modular robots
without any end-effector or tool.

5.3.1 Calibration of a three-module Robot

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

Fig. 5.5 A 3-module robot


configuration (2-DOF)
5.3 Computation Examples 67

According to the AIM, we find that:


s1 = (0, 0, 0, 1, 0, 0)T ; s2 = (0, 0, 0, 0, 0, 1)T ;
⎡ ⎤ ⎡ ⎤
010 0 0 −1 0 0
⎢0 0 1 0 ⎥ ⎢1 0 0 0 ⎥
T0,1 (0) = ⎢ ⎥ ⎢
⎣1 0 0 350⎦; T1,2 (0) = ⎣0 0 1 312.5⎦.

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:

dpi , dqi , and dsi (i = 1, 2) (listed in Table 5.1);


• Find the actual initial pose in each dyad:

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

Table 5.1 Preset geometric errors for the three-module robot


d pi dsi dqi
Dyad1 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 2., −0.0002, 0.02, 0)T 0.02
Dyad2 (2., 2., 2., 0.02, 0.02, 0.02)T (2., 0, 0, 0, 0.02, −0.0002)T 0.02

Table 5.2 Identified kinematic errors for the three-module robot


d pi
Dyad1 (−0.961, −0.073, 2.010, 0.0272, 0.0201, 0.0397)T
Dyad 2 (0.009, 0.939, 1.013, 0.0001, 0.0072, 0.0270)T
Compensation (−0.007, −1.990, 1.033, 0.0200, −0.0001, −0.0070)T
Dyad

s1a =s1 +ds1 =(0, 0, 2., .9998, .02, 0)T and


s2a =s2 +ds2 =(2., 0, 0, 0, .02, .9998)T .
According to the preset errors, the actual module frames with respect to the base
frame can be computed as
⎡ ⎤
.0200 .9990 −.0396 2.000
⎢−.0204 .0400 .9990 2.040 ⎥
a
T0,1 (0) = ⎢⎣ .9996 −.0192 .0212 352.001⎦;

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

Fig. 5.6 Calibration convergence (three-module robot)

s1a [c]= AdT−1c (0) AdT0,1


a
a T
(0) s1 =(0, 0, 0, 1, 0, 0) =s1 and
0,1

s2a [c]= AdT−1c (0) AdT0,2


a
a T
(0) s2 =(0, 0, 0, 0, 0, 1) =s2 .
0,2

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.

5.3.2 Calibration of a SCARA Type Robot

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

Fig. 5.7 A SCARA type modular robot configuration

Table 5.4 Preset geometric errors for the SCARA robot


dpi dsi dqi
Dyad 1 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 2., 0, 0.02, 0, −0.0002)T 0.02
Dyad 2 (2., 2., 2., 0.02, 0.02, 0.02)T (0.0002, 0.02, 0, 0, 0, 0)T 0.02
Dyad 3 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 0, 0, 0, 0)T 0
Dyad 4 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 2., −0.0002, 0.02, 0)T 0.02
Dyad 5 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 0, 0, 0, 0)T 0
Dyad 6 (2., 2., 2., 0.02, 0.02, 0.02)T (2., 0, 0, 0, 0.02, 0.0002)T 0.02

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

Fig. 5.8 Calibration convergence (SCARA robot)

Table 5.5 Identified kinematic errors for the SCARA robot


dpi
Dyad 1 (−0.110, 2.016, −0.661, 0.0171, 0.0413, −0.1044)T
Dyad 2 (0.628, −0.020, 11.561, −0.1634, 0.0405, −0.0024)T
Dyad 3 (0, 0, 0, 0, 0, 0)T
Dyad 4 (0.675, 0.001, 11.581, 0.1447, 0.0010, 0.0800)T
Dyad 5 (0, 0, 0, 0, 0, 0)T
Dyad 6 (0.001, 3.577, −0.678, 0.0566, −0.0192, 0.0618)T
Compensation (0.001, −2.010, 0.741, 0.0201, −0.0005, 0.0338)T
Dyad
5.3 Computation Examples 73

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.7 Preset geometric errors for the tree-structured robot


dpi dsi dqi
Dyad 1 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 2., 0.02, 0.0002, 0)T 0.02
Dyad 2 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 2., 0.02, −0.0002, 0) 0.02
Dyad 3 (0, 0, 0, 0, 0, 0)T (0, 0, 0, 0, 0, 0)T 0
Dyad 4 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 2., 0, 0.0002, 0, 0.02)T 0.02
Dyad 5 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 2., 0, 0.02, 0.0002, 0)T 0.02
Dyad 6 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0.0002, 0.02, 0, 0, 0)T 2.
Dyad 7 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 2., 0.02, 0.0002, 0)T 0.02
Dyad 8 (2., 2., 2., 0.02, 0.02, 0.02)T (0, 0, 2., 0.02, 0.0002, 0)T 0.02

Table 5.8 Identified kinematic errors for the tree-structured robot


dpi
Dyad 1 (0.078, −0.044, 1.998, 0.0201, 0.0172, 0.0398)T
Dyad 2 (0.574, 1.087, 0.050, 0.0196, 0.0062, 0.0172)T
Dyad 3 (0, 0, 0, 0, 0, 0)T
Dyad 4 (−1.850, 0, 1.084, −0.0249, 0.0400, 0.0343)T
Dyad 5 (7.695, 0.005, 0.572, 0.0590, −0.0306, 0.0605)T
Dyad 6 (−1.852, −0.971, 0, 0.0045, 0.0111, −0.0001)T
Dyad 7 (0, 1.961, 0.003, 0.0206, 0.0277, 0.0467)T
Dyad 8 (0, 0.960, 1.963, 0.0228, −0.0388, 0.0370)T
Compensation (1.851, 0.970, −0.004, −0.0197, −0.0088, −0.0002)T
Dyad (branch 1)
Compensation (−1.993, −0.994, −0.005, 0.0016, −0.0586, 0.0204)T
Dyad (branch 2)
74 5 Kinematic Calibration for Modular Serial Robots

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

5.3.3 Calibration of a Tree-structured Robot

In this example, we wish to calibrate a tree-structured modular robot as shown in


Fig. 5.4. According to the given AIM and path matrix, the calibration model can
also be automatically generated. Similar to previous examples, we first preset small
geometric errors dpi , dsi , and dqi (i = 1, 2, . . . 8) into Dyad i (Table 5.7), and then
compute a number of measured poses (m = 40) for each of the two end link frames.
All dpi in the dyads are still preset to the identical value, i.e., dpi =(2.,2.,2., 0.02, 0.02,
0.02)T . A uniform random measurement noise is also added into the two measured
end link poses, which is the same as the previous example. The calibration results
are shown in Tables 5.8 and 5.9 and Figs. 5.9 and 5.10. Note that for Table 5.9,
the corresponding joint angles are q = (1.5403,1.0310,0,0.3315,-0.6231,82.032,-
2.5323,1.3762)T .
5.3 Computation Examples 75

Fig. 5.9 Calibration convergence for branch one


76 5 Kinematic Calibration for Modular Serial Robots

Fig. 5.10 Calibration convergence for branch two

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-

© Huazhong University of Science and Technology Press, Wuhan and Springer 77


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_6
78 6 Modular Serial Robot Dynamics

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

Fig. 6.1 Coordinate system


in a link assembly

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.

6.2 Newton-Euler Equation for a Link Assembly

As mentioned in Chap. 4, let vi and vj be two adjacent links connected by joint ej


as shown in Fig. 4.1 and vi precedes vj . Denote the module coordinate frame on vi
by frame i, vj by frame j. Frame i and j are module frames located at the centroid
of the cubes (Fig. 3.6). Note that joint ej and link vj are rigidly connected together,
termed link assembly j.
Now consider two coordinate frames located in link assembly j shown in Fig. 6.1.
Link frame j is the module (local) coordinate frame defined for the modular robot
kinematics. The mass frame j ∗ is located at the center of mass of the entire link
assembly j. Normally, these two frames do not coincide with each other. Let
T j ∗ j = ( p j ∗ j , R j ∗ j ) ∈ S E(3) be the pose of link frame j relative to mass frame j ∗ ,
where p j ∗ j ∈ 3×1 and R j ∗ j ∈ S O(3) are the position vector and rotation matrix,
respectively. Note that T j ∗ j is a constant because frames j and j ∗ are located on the
same rigid link assembly.
The N-E equation of this rigid link assembly with respect to its mass frame j ∗ is
given by [62]
      
f j∗ mjI 0 v̇ j ∗ w j∗ × m j v j∗
F j∗ = = + . (6.1)
τ j∗ 0 J j∗ ẇ j ∗ w j∗ × J j∗ w j∗
80 6 Modular Serial Robot Dynamics

Based on the fact that v j ∗ × m j v j ∗ = 0, this equation can be written as


  
mjI 0 v̇ j ∗
F j∗ =
0 J j∗ ẇ j ∗
   
−ŵ j ∗ 0 mjI 0 v j∗
− , (6.2)
−v̂ j ∗ −ŵ j ∗ 0 J j∗ w j∗

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)

The following notations are adopted in Eq. (6.3):


 
v j∗
• Vj∗ = ∈ 6×1 is the generalized body velocity. v j ∗ and w j ∗ are 3 × 1 vec-
w j∗
tors defining the body translational velocity, v j ∗ = (vx , v y , vz )T , and the angular
velocity, w j ∗ = (wx , w y , wz )T , respectively.
• v̂ j ∗ and ŵ j ∗ ∈ 3×3 are skew symmetric matrices related to v j ∗ and w j ∗ having
the following form:
⎡ ⎤ ⎡ ⎤
0 −vz v y 0 −wz w y
v̂ j ∗ = ⎣ vz 0 −vx ⎦; ŵ j ∗ = ⎣ wz 0 −wx ⎦.
−v y vx 0 −w y wx 0
• adVTj ∗ ∈ 6×6 is the transpose of the adjoint matrix adV j ∗ related to V j ∗ such that

 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

where AdTTj ∗ , j is the transpose of AdT j ∗ , j such that

 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

Note that p̂ j ∗ j is the 3 × 3 skew symmetric matrix representation of p j ∗ j . Simi-


larly, the generalized body velocity V j ∗ and the generalized body acceleration V̇ j ∗
expressed in frame j ∗ can also be transformed into the equivalent V j and V̇ j in link
frame j as follows:

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,

AdT j ∗ , j adV j = ad AdT j ∗ , j V j AdT j ∗ , j , (6.9)

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

6.3 Dynamic Formulation for a Tree-Structured Modular


Robot

6.3.1 Recursive Newton-Euler Algorithm

The recursive algorithm is a two-step iteration process. For a tree-structured robot,


the generalized velocity and acceleration of each link are propagated from the base
to the end links of all branches. The generalized force of each link is propagated
backward from the end links of all branches to the base. At the branching module,
generalized forces transmitted back from all branches are combined.
Forward iteration
The general velocity and acceleration of the base link are given initially:

Vb = V0 = (0, 0, 0, 0, 0, 0)T , (6.13)


V̇b = V̇0 = (0, 0, g, 0, 0, 0) , T
(6.14)

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

V j = AdTi,−1j (Vi ) + s j q̇ j , (6.15)


V̇ j = AdTi,−1j (V̇i ) + ad AdT −1 (Vi ) (s j q̇ j ) + s j q̈ j , (6.16)
i, j

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

ad AdT −1 (Vi ) (s j q̇ j ) = −ads j q̇ j (AdTi,−1j (Vi )). (6.17)


i, j

In Eq. (6.15), we find that

AdTi,−1j (Vi ) = V j − s j q̇ j . (6.18)


6.3 Dynamic Formulation for a Tree-Structured Modular Robot 83

Substituting Eq. (6.18) into (6.17), we have

ad AdT −1 (Vi ) (s j q̇ j ) = −ads j q̇ j (V j ). (6.19)


i, j

Therefore, Eq. (6.16) can also be written as

V̇ j = AdTi,−1j (V̇i ) − ads j q̇ j (V j ) + s j q̈ j . (6.20)

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

Fdi = −Fdei + Mdi V̇di − adVTd (Mdi Vdi ), (6.21)


i

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)

6.3.2 Closed Form Equations of Motion

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)

M(q)q̈ + C(q, q̇)q̇ + N(q) = τ, (6.28)

where
6.3 Dynamic Formulation for a Tree-Structured Modular Robot 85

Table 6.1 Computational complexity


Multiplications Additions
Recursive Algorithm 342n − 103 266n − 174
Closed-form Algorithm 48n 3 + 68n 2 + 387n − 108 48n 3 + 50n 2 + 317n − 78

M(q) = ST HT MHS; (6.29)


C(q, q̇) = ST HT (MHA1 + A2 M)HS; (6.30)
N(q) = ST HT MHT0 V̇0 + ST HT FE . (6.31)

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.

6.3.3 Remarks on the Dynamics Algorithms

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.

6.3.4 Implementation and Examples

Now, we concentrate on how to generate the closed-form equations of motion auto-


matically, i.e., Eq. (6.28), from a given AIM. To formulate Eq. (6.28), we need to
determine the contents of the matrices M(q), C(q, q̇) and N(q).
1. The joint twists in S are represented in local module frames and are usually parallel
to the coordinate axes. They can be obtained from the AIM directly and remain
unchanged during the robot motion.
86 6 Modular Serial Robot Dynamics

Fig. 6.2 Flow chart of


dynamic model generation AIM A (G )

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

2. The inertia properties of robot modules can be calculated or measured individually,


which are listed in Chap. 2. Since the accessibility and path matrices can be
derived from the AIM, the generalized mass matrix M j ∗ (relative to the mass
frame j ∗ ) and M j (relative to the module frame j) of link assembly j can be
derived automatically.
3. The forward kinematic algorithms proposed in Chap. 4 and [4] can determine
the forward kinematic transformations between any two connective modules in
a tree-structured modular robot automatically once the AIM and joint angles are
given. Hence, all the adjoint representations in H and HT0 can be calculated. The
procedure to obtain the closed-form equations of motion for a modular robot is
shown in Fig. 6.2.
The dynamic formulation algorithm has been successfully implemented in Mathe-
matica code as shown in Fig. 6.2. Once a new modular robot assembly is constructed,
a new AIM will be formed and so will the equations of motion of the robot. Note
that the symbolic expression of the dynamic equations can be obtained as well. Here
we give a computation example to illustrate the proposed algorithm.

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

Fig. 6.3 A tree-structured modular robot configuration (5-DOF)

⎡ ⎤
(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

Here we denote the joint angles by q = (q1 , q2 , . . . , q7 )T , joint velocity by q̇ =


(q̇1 , q̇2 , . . . , q̇7 )T , and joint acceleration by q̈ = (q̈1 , q̈2 , . . . , q̈7 )T . Note that since
joints 2 and 3 are both fixed joints, q2 = q3 = 0; q̇2 = q̇3 = 0; and q̈2 = q̈3 = 0.
Also, assume that the generalized external forces applied on the link assemblies are
all equal to zero. According to the given AIM as well as the physical parameters
defined on links and joints, the proposed algorithm can automatically generate a set
of closed-form dynamics equations for this modular robot at an arbitrary posture
(determined by q, q̇, q̈) as follows:

τ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.

6.4 Inverse and Forward Dynamics Problem

6.4.1 Inverse Dynamics

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

6.4.2 Forward Dynamics

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

q̈ = M−1 (q)(τ − C(q, q̇)q̇ − N(q)). (6.32)

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

Fig. 6.4 Flow chart of the


forward dynamic algorithm

Table 6.2 Joint acceleration (1/s2 or m/s2 )


Time (s) Joint 1 Joint 2 Joint 3 Joint 4 Joint 5 Joint 6 Joint 7
0 0.1106 0 0 −0.7147 0.7147 0.0123 0.0123
0.3 0.1106 0 0 −0.7080 0.7080 0.0288 0.0288
0.6 0.1106 0 0 −0.6667 0.6667 0.0769 0.0769
0.9 0.1106 0 0 −0.5392 0.5392 0.1494 0.1494
1.2 0.1106 0 0 −0.2913 0.2913 0.2261 0.2261
1.5 0.1106 0 0 0.0193 −0.0193 0.2771 0.2771
6.4 Inverse and Forward Dynamics Problem 91

Table 6.3 Joint velocity (1/s or m/s)


Time (s) Joint 1 Joint 2 Joint 3 Joint 4 Joint 5 Joint 6 Joint 7
0 0 0 0 0 0 0 0
0.3 0.0332 0 0 −0.2138 0.2138 0.0054 0.0054
0.6 0.0663 0 0 −0.4215 0.4215 0.0205 0.0205
0.9 0.0996 0 0 −0.6052 0.6052 0.0540 0.0540
1.2 0.1328 0 0 −0.7326 0.7326 0.1106 0.1106
1.5 0.1660 0 0 −0.7734 0.7734 0.1871 0.1871

Table 6.4 Joint displacement (rad or m)


Time (s) Joint 1 Joint 2 Joint 3 Joint 4 Joint 5 Joint 6 Joint 7
0 0 0 0 0 0 0 0
0.3 0.0050 0 0 −0.0321 0.0321 0.0007 0.0007
0.6 0.0199 0 0 −0.1277 0.1277 0.0042 0.0042
0.9 0.0448 0 0 −0.2827 0.2827 0.0148 0.0148
1.2 0.0797 0 0 −0.4852 0.4852 0.0389 0.0389
1.5 0.1245 0 0 −0.7134 0.7134 0.0832 0.0832

Fig. 6.5 Joint acceleration

Fig. 6.6 Joint velocity


92 6 Modular Serial Robot Dynamics

Fig. 6.7 Joint displacement

t=0 t = 0.3 t = 0.6

t = 0.9 t = 1.2 t = 1.5

Fig. 6.8 Robot postures at different time instants


Chapter 7
Optimization of Modular Serial Robot
Configurations

Abstract This chapter discusses issues pertinent to the optimization of modular


robot configurations. The optimization model dealing with the issues of the task
specification, the design parameters, the searching space, the objective function, and
performance constraints is discussed. Based on the classical Genetic Algorithm (GA)
and effective coding schemes defined on Assembly Incidence Matrices (AIMs), an
Evolutionary Algorithm (EA) approach is employed to search for optimal solutions.
A virtual module concept is introduced into the coding schemes to guarantee the
operation of EA. Examples that demonstrate the problem solving strategy are pre-
sented.

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-

© Huazhong University of Science and Technology Press, Wuhan and Springer 93


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_7
94 7 Optimization of Modular Serial Robot Configurations

terizing these workspaces. Among the analytical approaches, a topological analysis


of robot workspaces was given by Gupta and Roth [133], and Gupta [134]. In their
works, the shapes of reachable workspace and dexterous workspace were analyzed.
The concepts of workspace holes and voids were defined, and their existence con-
ditions were identified. Further analytical studies of workspaces were addressed in
Freudenstein and Primrose [135], where the relationships between robot kinematic
parameters and workspace parameters were developed. This work was followed by
an application to workspace optimization for 3-DOF robots [136]. A more general
analysis of workspace optimization was presented by Paden and Sastry [131]. The
optimal criteria of a serial type robot were defined in terms of the work-volume
subject to a constraint on its length, and the well-connected workspace—the ability
to reach all positions in its workspace in every pose. It was shown that the optimal
design of a 6-R robot is an elbow manipulator, in which (1) the fourth, fifth, and sixth
joint axes intersect at one point; (2) the Denavit-Hartenberg (D-H) twist angles are 0
or 90 degrees; and (3) either the link length offset or the joint offset is zero for each
link. A geometric approach was given by Park [132], in which the workspace volume
was precisely defined by regarding the rigid body motion as a Riemannian manifold.
The significance of this work is that the so defined workspace volume depends only
on the joint axes, while the lengths of links and the fixed reference frames need not be
taken into account. Numerical studies of the robot workspace have been carried out
by Kumar and Waldron [139], Yang and Lee [137], Tsai and Soni [138], and Yang
and Hang [140]. These studies rely on numerical methods to generate projections of
the workspace. The advantage of the numerical schemes over the analytical ones is
that kinematic constraints can be easily included. However, the more general design
principles and intuitions are more difficult to obtain, and the computation for the
description of the workspace becomes very time consuming.
The manipulability or dexterity of a robot can be described as the ability to move
and apply force and torque in arbitrary directions. One of the early papers to consider
manipulability was the work of Salisbury and Craig [141]. The condition number of
the Jacobian matrix (J ), Cond(J ) = σmax /σmin , was proposed to measure the trans-
mission of the joint velocity errors to the fingertip velocity errors, where σmax and
σmin are the maximum and minimum singular value of the Jacobian matrix, respec-
tively. A clearer description of robot’s manipulability was given by Yoshikawa [142],
where the manipulability ellipsoid was introduced.
√ The product of all singular values
of the Jacobian matrix, which is equal to det J J T , was defined as the manipula-
bility measure. This scalar quantity can measure how much the end-effector moves
for a given infinitesimal movement of joint angles, averaged over all directions. In
order to measure the closeness of a robot posture to a singularity, the Condition Index,
C I (J ) = 1/Cond(J ) = σmin /σmax , has been proposed by Angeles [143]. Definitely,
the range of C I is from 0 to 1. C I becomes zero if the robot is in a singular posture.
A robot is called isotropic if its C I attains one. All the manipulability or dexterity
measures mentioned above are local indices in the sense that they characterize the
manipulability or dexterity of a robot at a given posture. They are useful for evaluat-
ing the motion ability of an existing robot. For the design of a general-purpose robot,
however, global ones may be more desirable. A straightforward way that derives
7.1 Introduction 95

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

7.2 General Design Methodology

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

Fig. 7.1 Flow chart of the


iterative design methodology
98 7 Optimization of Modular Serial Robot Configurations

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.

7.3 Optimization Model

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.

7.3.1 Definition of Robot Tasks

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.

7.3.2 Design Parameters and the Search Space

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

Fig. 7.2 Virtual module in


the kinematic structure

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

N pc = 4(n−1) × 5(n−2) × 62n . (7.2)

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

Taking m = 6 as an example, the total number of the possible assembly configurations


is 1.4 × 1015 . Note that in these configurations, there are some kinematically identical
ones which are not eliminated from Eqs. (7.2) and (7.3). In [14], Chen proposed an
algorithm that can enumerate all of the distinct modular robot configurations from
a given set of modules. Chen’s enumeration algorithm can effectively reduce the
size of the search space so that it is more suitable for the case of exhaustive search.
7.3 Optimization Model 101

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

Also taking m = 6 as an example, the possible assembly configurations are reduced


to 2.2 × 1013 (about one-sixtieth of the size of the original search space).
In the second step, the large modules in the optimal (or sub-optimal) robot config-
uration will be replaced with small modules of the same types as many as possible.
The module replacement will be done from the end link module to the base link mod-
ule one by one. Each module replacement will also satisfy the computation results
of Stages (2), (3), and (4) in Fig. 7.1 and the assembly rules to be mentioned in Sect.
7.4. Moreover, when we replace a large module with a small one in a robot, the length
of the corresponding connectors should be enlarged accordingly in order to remain
the kinematic parameters unchanged. It follows that after the module replacement
step, the kinematic structure of the robot still remains the same. The resulting robot
configuration, on the other hand, becomes more reasonable for the given task. Since
this chapter focuses on the kinematic design of modular robot configurations, only
the first step, the optimization step, is addressed here.

7.3.3 Objective Function

The objective function is to evaluate the “goodness” of a robot assembly configuration


for a given task. Since the performance measures are defined to quantify the features
of robot performance, a straightforward way to define the objective function is to
list all necessary performance measures such as reachability, manipulability, and
fault tolerance index, and then choose an important one among them as a single
objective function [14, 27, 31] or combine some or all of them in a weighted sum
102 7 Optimization of Modular Serial Robot Configurations

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:

F = k p1 N p1 + kr 1 Nr 1 + kc1 Nc1 , (7.5)

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).

7.3.4 Performance Constraints

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

• Joint Range Availability;


• Manipulability;
• Mechanical Constructability.
The reachability constraint is used to inspect whether all of the given task
points/poses are within a robot’s reachable workspace. If this constraint is satisfied,
the robot configuration is able to perform the given task kinematically. To study
the reachability constraint of a robot, we transform the problem into the inverse
kinematics problem. Because a modular robot has unfixed assembly configurations,
the numerical inverse kinematic algorithm presented in Chap. 4 is employed. For
a candidate robot, if an inverse solution is found at each of the task points/poses,
the reachability constraint is considered to be satisfied. Suppose that each of the
given task points or poses is w pi ∈ 3×1 or S E(3) (i = 1, 2, . . . , m), the reachability
constraint for a robot with n + 1 modules is given by:

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:

σmin /σmax ≥ , (7.8)

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.

7.4 Evolutionary Algorithm

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.

7.4.1 Coding Scheme

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.

7.4.2 AIM Generating Scheme

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.

7.4.3 Genetic Operators on AIMs

7.4.3.1 Crossover Operator

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

Fig. 7.3 Crossover operation

Fig. 7.4 Mutation operation

7.4.3.2 Mutation Operators

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

Fig. 7.5 The kinematic


design algorithm

7.4.4 Implementation of the Evolutionary Algorithm

The proposed EA is successfully implemented in Mathematica. As shown in Fig. 7.5,


the input parameters include an inventory of link modules L, the population size n p ,
the number of destination generation n g , the maximum allowable number of modules
n m , the crossover operator pc , and the mutation operators pml and pmp . The first step is
to randomly generate n p AIMs for the initial generation by using the AIM generating
scheme. It is followed by the task evolution procedure to compute the fitness value
for each AIM (Fig. 7.6). After the task evolution procedure, a new generation of
AIMs is produced through reproduction, crossover, and mutation operations. The
entire process will be repeated until the predetermined number of generations n g is
reached. In the final generation, we choose the AIM with the smallest fitness value
(F) as the optimal assembly configuration. Moreover, during the search procedure,
the optimal one in each generation is also recorded. Several sub-optimal AIMs can
thus be derived from the intermediate optimal configurations.
The task evaluation procedure, as shown in Fig. 7.6, consists of two parts: per-
formance constraint detection and fitness value computation. If an AIM can pass all
the constraints, i.e., reachability, joint range availability, and manipulability, its fit-
ness can be calculated by Eq. (7.5); otherwise, the fitness is assigned to an infinitely
large number to indicate that such an AIM is infeasible. In the real implementa-
tion, however, an infinitely large fitness value is not convenient for the reproduction
108 7 Optimization of Modular Serial Robot Configurations

Fig. 7.6 Task evaluation


procedure

(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.

7.5 Computation Examples

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.1 Task points


Point 1 Point 2 Point 3 Point 4
(−212.52, −533.07, 0) (247.48, −597.48, 0) (641.18, −265.59,0) (700.00,0,0)

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

Fig. 7.7 Robot configurations in the initial generation (position problem)

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.8 Robot configurations in the final generation (position problem)

Fig. 7.9 Average fitness


value in every generation
(position problem)

Fig. 7.10 Minimal fitness


value in every generation
(position problem)
112 7 Optimization of Modular Serial Robot Configurations

Fig. 7.11 Optimal robot configuration (position problem)

Fig. 7.12 Execution of the given task with the optimal robot configuration (position problem)

Fig. 7.13 Sub-optimal robot configurations (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

Fig. 7.14 Robot configurations in the initial generation (pose problem)

⎡ ⎤
(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.15 Robot configurations in the final generation (pose problem)

Fig. 7.16 Average fitness value in every generation (pose problem)


7.5 Computation Examples 115

Fig. 7.17 Minimal fitness value in every generation (pose problem)

Fig. 7.18 Optimal robot configuration (pose problem)

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

Fig. 7.20 Sub-optimal robot


configurations (pose
problem)

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.3 Task poses


Pose 1 Pose 2
⎡ ⎤ ⎡ ⎤
−0.433 0.866 0.250 −478.11 0.500 0.707 −0.500 −597.49
⎢ 0.750 −0.500 −0.433 −128.11⎥ ⎢ 0.500 −0.707 −0.500 −102.52⎥
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎣−0.500 0 −0.866 −256.22⎦ ⎣−0.707 0 −0.707 −144.98⎦
0 0 0 1 0 0 0 1
Pose 3 Pose 4
⎡ ⎤ ⎡ ⎤
0.268 0.500 −0.824 −751.57 0 0 −1 −700
⎢ 0.155 −0.866 −0.475 −29.76 ⎥ ⎢ 0 −1 0 350 ⎥
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎣−0.951 0 −0.309 133.68 ⎦ ⎣−1 0 0 350 ⎦
0 0 0 1 0 0 0 1

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 1 In this section, we present two computation examples for demonstra-


tion purpose. The computation results are quite encouraging because the optimal
robot configurations in both “position” and “pose” design examples are kinemati-
cally identical to the configurations used to generate the given task points and poses,
respectively. We can also geometrically show that each of the derived optimal MDOF
robots (2 DOFs) contains the minimal DOFs. Taking the “position” design example
for instance, four given task points (Table 7.1) do not fall in a circle or a straight line.
Hence, it would require at least two DOFs to perform this task.

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.

Remark 3 It is the consideration of virtual modules that allows the algorithm to


perform both type and dimension synthesis uniformly. To a certain extent, the search
118 7 Optimization of Modular Serial Robot Configurations

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

A Parallel Kinematic Machine (PKM) is a closed-loop mechanism in which the


moving platform is connected to the base by at least two serial kinematic chains
(legs). Compared with the series mechanisms, the parallel mechanisms have some
particular features, such as high dynamic performance, great structural stiffness, high
speed and high precision. Parallel mechanisms can be divided into 6-DOF robots
and less DOF robots according to the number of DOFs. The conventional Stewart-
Gough platform [151] has six extensible legs and hence leads to a rigid kinematic
structure. However, such a six-leg fully parallel manipulator has coupled-motion
characteristics, complicated kinematics, and limited workspace, which makes its
design and application development difficult.
To overcome the difficulties in the traditional PKMs, the PKMs with a fewer
number of legs, decoupled motions, simple kinematics, and large workspace have
been received a great attention in recent robotics literature, e.g., the three-leg 3-
DOF Universal Cartesian Robot (UCR) [152, 153], the three-leg 6-DOF Tri-Scott
manipulator [154], the three-legged 6-DOF Eclipse manipulator [155], the three-leg

© 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)

Prismatic Joint Revolute Joint Mobile


(Active) (Passive) Platform
Revolute Joint
(Active)
Revolute Joint
(Passive)

Spherical Joint Mobile


Revolute Joint Spherical Joint (Passive) Platform
(Active) (Passive)

Fig. 8.1 Two modular three-leg parallel robot configurations

In this chapter, a class of three-legged modular 6-DOF parallel mechanisms is


identified as having simple kinematics and desirable characteristics. Such a paral-
lel robot consists of three legs, and each leg has two actuating joints, one passive
revolute joint, and one passive spherical joint. Figure 8.1 shows two such possible
three-legged parallel robot configurations, i.e., a three-legged RRRS-type parallel
robot and a three-legged RRRS-type parallel robot. This chapter presents the forward
kinematics position analysis approaches, i.e., the sensor-based solution approach,
the numerical solution approach and the projection approach. The instantaneous
kinematics analysis is derived based on passive joint velocities method. The singu-
larity analyses are discussed for 3RRRS, 3RPRS PKMs by passive-joint-velocity
based method and projection method, respectively. Finally, the constant orientation
workspace analysis is presented for a 3RPRS PKM, and the numerical orientation
workspace analysis with different parameterization method is proposed to achieve
the visualization of 3-D orientation workspace, which is used to analyse and validate
the workspace of a 3-DOF SPM.

8.2 Displacement Analysis

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.

8.2.1 Forward Displacement Analysis

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.

Sensor-based Solution Approach


The sensor-based method is a simple and practical approach for the forward displace-
ment analysis of parallel robots. The basic idea is to install sensors in the passive
joint modules to measure the corresponding joint displacements.
As shown in Fig. 8.2, the position of point Ai with respect to the base frame B
can be directly determined as a function of the actuating joint displacements and the
sensed passive joint displacement in leg i. For each leg, the computation is identical
to the forward kinematics of serial chains. Based on the local Product-of-Exponential
(POE) formula (Eq. (4.30)), the position vector of point Ai , pi , can be given by
    
pi ŝi3 qi3 pi
= TB,Bi0 TBi0 ,Bi1 (0)e ŝi1 qi1
TBi1 ,Bi2 (0)e ŝi2 qi2
TBi2 ,Bi3 (0)e , (8.1)
1 1

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

Fig. 8.2 Kinematic structure of a three-legged parallel robot

     
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

Therefore, the pose of the mobile platform, TB,A , can be given by


       −1
p1 p2 p3 p12 × p23 p1 p2 p3 p12 × p23
TB,A = . (8.5)
1 1 1 0 1 1 1 0
      
p1 p2 p3 p12 × p23
Note that the matrix is a constant matrix for a special robot
1 1 1 0
configuration, and it is always invertible if point A1 , A2 and A3 neither coincide with
each other nor fall on the same line.

Numerical Solution Approach


The limitation of the sensor-based algorithm is that it can only be implemented on
124 8 Modular Parallel Robot Kinematics

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)

The differential form of Eq. (8.7) can be written as

−−−→ (P2 − P1 )T
d A1 A2  = −−−→ (d P2 − d P1 ). (8.8)
 A1 A2 

According to Eq. (8.6), we find



d Pi = Ti eŝi3 qi3 ŝi3 Pi dqi3 . (8.9)

The actual distance from point A1 to point A2 is a constant, denoted by a12 . Then,

−−−→ −−−→ (P2 − P1 )T


d A1 A2  = a12 −  A1 A2  = −−−→ (d P2 − d P1 ). (8.10)
 A1 A2 

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 

Combining Eqs. (8.10), (8.11), and (8.12), we get

dq = J −1 da, (8.13)

where
8.2 Displacement Analysis 125

dq = column [dq13 , dq23 , dq33 ] ,


 −−−→ −−−→ −−−→ 
da = column a12 −  A1 A2 , a23 −  A2 A3 , a31 −  A3 A1  ,
⎡ (P2 −P1 )T ⎤
− −−−→ Ṗ1 (P− 2 −P1 )
T
−−→ Ṗ2 0
 A1 A2   A1 A2 
⎢ ⎥
J =⎢ − (P−3 −P2 )
−−−→ Ṗ3 ⎥ ,
T
(P3 −P2 )T
⎣ 0 −−→ Ṗ2

 A2 A3   A2 A3 
(P1 −P3 )T (P1 −P3 )T
−−−→ Ṗ1 0 − −−−→ Ṗ3
 A3 A1   A3 A1 

in which Ṗi can be obtained according to Eq. (8.9).


Equation (8.13) can be written as an iterative form, i.e.,

q (k+1) = q (k) + (J −1 da)(k) , (8.14)

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

Fig. 8.3 A Schematic


diagram of the 3RPRS PKM
with DMA

Fig. 8.4 Projected planar


3RRR PKM

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

Table 8.1 Computation results


Input Derived poses
⎡ ⎤
100 0
⎢0 1 0 0 ⎥
⎢ ⎥
qa = (0, 0, 0, 0, 0, 0)T ⎢ ⎥
q p = (0.2218, 0.2218, 0.2218)T N = 3 ⎣ 0 0 1 867.75 ⎦
000 1
⎡ ⎤
0.9737 −0.2195 0.0616 −81.42
⎢ 0.2170 0.9752 −9.32 ⎥
⎢ 0.0436 ⎥
qa = (0, 0.1, 0.2, 0, 0.1, 0.2)T ⎢ ⎥
q p = (0.1386, 0.4121, 0.1735)T N = 3 ⎣ −0.0696 −0.0291 0.9972 857.21 ⎦
0 0 0 1
⎡ ⎤
0.9084 −0.4038 0.1089 −158.52
⎢ 0.3840 0.9085 −35.25 ⎥
⎢ 0.1651 ⎥
qa = (0, 0.2, 0.4, 0, 0.2, 0.4)T ⎢ ⎥
q p = (0.0605, 0.6486, 0.1882)T N = 4 ⎣ −0.1656 −0.1081 0.9802 826.15 ⎦
0 0 0 1
⎡ ⎤
0.8367 −0.5313 0.1328 −217.24
⎢ 0.4673 0.8191 −71.67 ⎥
⎢ 0.3327 ⎥
qa = (0, 0.3, 0.6, 0, 0.3, 0.6)T ⎢ ⎥
q p = (0.0011, 0.9069, 0.2650)T N = 4 ⎣ −0.2855 −0.2163 0.9336 780.98 ⎦
0 0 0 1
⎡ ⎤
0.7843 −0.5987 0.1623 −249.90
⎢ 0.4532 0.7317 −109.10 ⎥
⎢ 0.5091 ⎥
qa = (0, 0.4, 0.8, 0, 0.4, 0.8)T ⎢ ⎥
q p = (−0.0280, 1.1732, 0.4047)T N = 4 ⎣ −0.4236 −0.3258 0.8452 731.63 ⎦
0 0 0 1

8.2.2 Inverse Displacement Analysis

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.

8.3 Instantaneous 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.

8.3.1 Forward Instantaneous Kinematics Analysis

The purpose of the forward instantaneous kinematics analysis is to determine the


passive joint velocities and then the mobile platform velocity from the actuator joint
velocities. For the 3RRRS PKM, as shown in Fig. 8.2, using the base frame repre-
sentation of leg-end point Ai , i.e., pi ∈ 3×1 (i = 1, 2, 3), the three constant leg-end
distances can be written as
−−−→
 A1 A2 2 = ( p2 − p1 )T ( p2 − p1 ),
−−−→
 A2 A3 2 = ( p3 − p2 )T ( p3 − p2 ),
−−−→
 A3 A1 2 = ( p1 − p3 )T ( p1 − p3 ). (8.15)

Differentiating both sides of Eq. (8.15) with respect to time, we have

( p2 − p1 )T ( ṗ2 − ṗ1 ) = 0,
( p3 − p2 )T ( ṗ3 − ṗ2 ) = 0,
( p1 − p3 )T ( ṗ1 − ṗ3 ) = 0, (8.16)

where ṗi is the leg-end velocity of leg i.


Differentiating both sides of Eq. (8.1) with respect to time, we have
    
ṗi pi
= TB,Bi0 TBi0 ,Bi1 (0)eŝi1 qi1 ŝi1 TBi1 ,Bi2 (0)eŝi2 qi2 TBi2 ,Bi3 (0)eŝi3 qi3 q̇i1
0 1
  
pi
+ TB,Bi0 TBi0 ,Bi1 (0)eŝi1 qi1 TBi1 ,Bi2 (0)eŝi2 qi2 ŝi2 TBi2 ,Bi3 (0)eŝi3 qi3 q̇i2
1
  
pi
+ TB,Bi0 TBi0 ,Bi1 (0)eŝi1 qi1 TBi1 ,Bi2 (0)eŝi2 qi2 TBi2 ,Bi3 (0)eŝi3 qi3 ŝi3 q̇i3 , (8.17)
1

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

where p̂ ∈ 3×3 is the cross-product matrix  (a skew-symmetric


 matrix) of vector
p ∈ 3×1 . In Eq. (8.19), the block matrix I3×3 − p̂ ∈ 3×6 can be considered as
the transition matrix associated with the position vector p. Geometrically, it transmits
the rigid body motion to a point motion defined by p. We term such a matrix as the
position transition matrix and denote it as T p . Equation (8.19) can then be rewritten
as    
p T
ŝ = p s, (8.20)
1 0

where s = (v, w) ∈ R 6×1 is a 6−dimensional vector representation of ŝ. Substituting


Eq. (8.20) into Eq. (8.18), we have
     
ṗi T pi1,i
 T pi2,i

= TB,Bi1 si1 q̇i1 + TB,Bi2 si2 q̇i2
0 0 0
 
T pi3,i

+ TB,Bi3 si3 q̇i3 , (8.21)
0

where si j is the twist coordinates of joint i j expressed in frame Bi j . Since


 
R B,Bi j p B,Bi j
TB,Bi j = ,
0 1

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

ṗi = R B,Bi1 T pi1,i i1 i1 + R B,Bi2 T pi2,i


 s q̇
i2 i2 + R B,Bi3 T pi3,i
 s q̇  s q̇ .
i3 i3 (8.22)

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

ṗi = u i1 q̇i1 + u i2 q̇i2 + u i3 q̇i3 (i = 1, 2, 3). (8.23)

Substituting Eq. (8.23) into Eq. (8.16), we have


8.3 Instantaneous Kinematics Analysis 131

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 .

If the Jacobian matrix J p is non-singular, the passive-joint velocity vector q̇ p is


given by

q̇ p = J p−1 Ja q̇a . (8.25)

Since J p is a 3 × 3 matrix with a simple structure, J p −1 can also be simply computed


in symbolic form. Equation (8.25) shows that the passive-joint velocities can be
determined from the active joint velocities. When both the active and passive joint
velocities are all known, the mobile platform velocity can be readily derived as
described below.
Differentiating both sides of Eq. (8.5) with respect to time, we have
 
ṗ1 ṗ2 ṗ3 ( ṗ2 − ṗ1 ) × p23 + p12 × ( ṗ3 − ṗ2 )
ṪB,A =
0 0 0 0
     −1
p1 p2 p3 ( p2 − p1 ) × ( p3 − p2 )
. . (8.26)
1 1 1 0

−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].

8.3.2 Inverse Instantaneous Kinematics Analysis

The purpose of the inverse instantaneous kinematics analysis is to determine the


passive and active joint velocities from the mobile platform velocity. For the 3RRRS
PKM, the velocity of the mobile platform is represented by its spatial velocity v̂sB,A .
The velocity of point Ai (i = 1, 2, 3) thus can be computed as
   
ṗi pi
= v̂sB,A . (8.29)
0 1

Based on Eq. (8.20), Eq. (8.29) has the form

ṗi = T pi vsA,B , (8.30)

where vsB,A = (v sB,A , w sB,A )T ∈ 6×1 is the 6-dimensional vector representation of


v̂sB,A and T pi ∈ 3×6 is the position transition matrix associated with pi , i.e., T pi =
 
I3×3 − p̂i .
Equation (8.23) can also be rewritten as:

ṗi = Ji q̇i , (8.31)

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

q̇i = Ji−1 ṗi = Ji−1 T pi vsA,B . (8.32)


8.3 Instantaneous Kinematics Analysis 133

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.

8.4 Singularity Analysis

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

8.4.1 Forward Singularity

The forward singularity configuration refers to a specific robot configuration in which


the moving platform gains one or more degrees of freedom, instantaneously. Kine-
matically, it also means that there exists some nonzero vectors of the moving platform
velocity when all of the active-joint velocities are equal to zero. In other words, if
all of the active joints are completely locked, the moving platform will still posses
infinitesimal motion in certain directions. Examples utilizing the proposed methods
are presented as follows.
Passive-joint-velocity based method
From the instantaneous velocity analysis in Sect. 8.3, we realize that a singularity
will occur when J p or any Ji (i = 1, 2, 3) becomes a singular matrix. The forward
singularity occurs when matrix J p ∈ 3×3 is singular. If J p is singular, we will not be
able to determine the passive joint velocities as well as the mobile platform velocity
from the active-joint velocities. Matrix J p has the form
⎡ ⎤
− p12
T T
u 13 p12 u 23 0
⎢ ⎥
Jp = ⎣ 0 − p23
T T
u 23 p23 u 33 ⎦ ∈ 3×3 . (8.33)
T
p31 u 13 0 − p31
T
u 33

The determinant  p of matrix J p can be computed as

 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)

Obviously, if  p = 0, a forward singularity will occur. In principle,  p can be


numerically determined from Eq. (8.34) when the active- and passive-joint angles
are known. Since the passive joints are usually revolute joints and vectors p12 , p23 ,
and p31 cannot be zero, we can obtain the following three geometric conditions for
the forward singularities:
• A forward singularity will occur if any passive-joint axis ŝi3 passes through its
corresponding leg-end point Ai (i = 1, 2, 3). It follows that the contribution of
the i3th joint velocity to the point velocity of Ai vanishes, i.e., u i3 = 0. At least
one of the column vectors in J p (Eq. (8.33)) vanishes and hence,  p =0.
Example 1: Figure 8.5 shows a particular three-legged parallel robot in which the
three passive joint axes ŝ13 , ŝ23 , and ŝ33 always pass through their corresponding
leg-end points A1 , A2 , and A3 . As a result, u 13 = u 23 = u 33 = 0 and  p = 0.
In fact, this forward singularity is caused by a particular robot architecture and
exists for all configurations inside the entire robot workspace. This is, therefore,
an architecture singularity [190] and can be avoided by design.
• A forward singularity will occur if any passive joint axis ŝi3 falls in the plane
formed by points A1 , A2 , and A3 . It follows that u i3 will be perpendicular to the
plane as well as any vector in this plane, e.g., p12 , p23 , and p31 . At least one of the
column vectors in J p vanishes and hence,  p =0.
8.4 Singularity Analysis 135

Fig. 8.5 A forward


z A3
singularity configuration: A1 y
passive joint axes pass A s 33
s13 x
through leg-end points
A2 s 32
s12 s 23

s 31
s11 B31
B 11 z s 22
B
y
x

s 21
B 21

Fig. 8.6 A forward


A3
singularity configuration: z
A1 y s 33
one passive joint axis falls A
into plane A1 A2 A3 s13 x

A2 s32
s12
s23

s 31
s11 B31
B11 z s22
B
y
x

s21
B21

Example 2: Figure 8.6 shows a specific configuration of a three-legged parallel


robot, in which the passive joint axis ŝ23 falls in the plane formed by points A1 , A2 ,
and A3 . As a result, u 23 ⊥ p12 and u 23 ⊥ p23 , and hence  p = 0. A forward
singularity occurs in this specific configuration.
• A forward singularity will occur if any two passive-joint axes, ŝi3 and ŝ j3 (i, j =
1, 2, 3; i = j), are simultaneously parallel with the vector defined by points Ai
and A j , pi j (or p ji ). It follows that both u i3 and u j3 will be perpendicular to vector
pi j (or p ji ). At least one of the row vectors in J p vanishes and hence,  p =0.
Example 3: Figure 8.7 shows a specific configuration of a three-legged parallel
robot, in which two passive joint axes ŝ23 and ŝ33 are simultaneously parallel
−−−→
with vector A2 A3 , i.e., w23  w33  p23 . As a result, u 23 ⊥ p23 and u 33 ⊥ p23 ,
and the determinant of J p vanishes. A forward singularity occurs in this specific
configuration.
136 8 Modular Parallel Robot Kinematics

Fig. 8.7 A forward A3


singularity configuration: z
A1 y
two passive joint axes are A s 33
s13
parallel to A2 A3 x

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

Fig. 8.8 Reduced 3RS


parallel mechanism

 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)

where V = ( p12 × p23 ).  H represents the determinant of matrix H, which is given


by ⎡ ⎤
r1y −r1x r1x p1y − r1y p1x
 H = ⎣r2y −r2x r2x p2y − r2y p2x ⎦ ∈ 3×3 .
r3y −r3x r3x p3y − r3y p3x

It can also be symbolically verified that  J p is identical to the determinant of the


6 × 6 forward kinematics Jacobian matrix of the 3RPRS PKM with DMA. With
Eq. (8.37), we can now geometrically conduct the forward singularity analysis. Since
V represents the projection of the normal of the triangular plate P1 P2 P3 onto
the vertical direction ωdi , V will take a value of zero if the triangular plate is
perpendicular to the base plane, and in turn  J p = 0. Therefore, the PKM with
DMA will be always a forward singularity configuration when the titling angle of
the moving platform reaches 90◦ .
On the other hand, if the triangular plate is not perpendicular to the base plane
such that V = 0, the forward singularity condition will only be dependent on the
value of  H , i.e.,  J p = 0 if and only if  H = 0. It can be further verified that  H is
identical to the determinant of the forward kinematics Jacobian of the 3RRR planar
PKM [191] obtained by projecting the 3RPRS PKM with DMA onto a horizontal
plane. In other words, if the triangular plate is not perpendicular to the base plane,
the forward singularity conditions can be derived from the projected 3RRR planar
138 8 Modular Parallel Robot Kinematics

Fig. 8.9 Forward singularity configurations

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.

8.4.2 Inverse Singularity

The inverse singularity configuration refers to a specific robot configuration in which


the moving platform loses one or more degrees of freedom, instantaneously. In other
words, the active joint velocities cannot be determined from the given moving plat-
form velocity at an inverse singularity configuration.
8.4 Singularity Analysis 139

Fig. 8.10 An inverse


singularity configuration: z A3
one joint axis passes through A1 y
A s33
its corresponding leg-end x
point
A2
s13
s23 s32
s12

s31
s11 B31
B 11 z
s22

B
x y

s21
B 21

Passive-joint-velocity based method


For the 3RRRS PKM, the inverse singularity occurs when any matrix Ji ∈ 3×3
(i = 1, 2, 3) is singular. If Ji is singular, neither the passive- nor the active-joint
velocities can be determined from the mobile platform velocity. Obviously, if the
determinant of matrix Ji , denoted by i , is equal to zero, then an inverse singularity
will occur. Since Ji = [u i1 u i2 u i3 ], the inverse singularity can also be numerically
identified when the active- and passive-joint angles are known. In fact, the inverse
singularity analysis of the three-legged parallel robot is equivalent to that of three
3-DOF serial-type robot manipulators. Therefore, we can readily list two useful
geometric conditions for an inverse singularity:
• An inverse singularity will occur if any revolute joint axis ŝi j (i, j = 1, 2, 3) passes
through its corresponding leg-end point Ai . When this happens, the contribution
of the i jth joint velocity to the point velocity of Ai vanishes, i.e., u i j = 0. As a
result, i = 0.
Example 4: Figure 8.10 shows a specific configuration of a three-legged parallel
robot, in which the joint axis ŝ11 passes through its corresponding leg-end point
A1 . As a result, u 11 = 0 and 1 = 0. An inverse singularity occurs in this specific
configuration.
• An inverse singularity will occur if three revolute joint axes ŝi j ( j = 1, 2, 3) of
leg i are parallel and coplanar. When this happens, the contributions of the three
joint velocities to the point velocity of Ai , i.e., u i1 , u i2 , and u i3 , will be linearly
dependent. As a result, i = 0.
Example 5: Figure 8.11 shows a specific configuration of a three-legged parallel
robot, in which the three revolute joint axes in leg 1, i.e., ŝ11 , ŝ12 , and ŝ13 , are
parallel and coplanar. Therefore, u i1 , u i2 , and u i3 are linearly dependent such that
i = 0. An inverse singularity occurs in this particular configuration.
140 8 Modular Parallel Robot Kinematics

Fig. 8.11 An inverse z A3


singularity configuration: A1 y s 33
A
three joint axes in a leg are s13 x

parallel and coplanar


A2 s32
s12
s 23

s 11 s31
B31
B 11 z
s 22
B
y
x

s 21
B21

Fig. 8.12 Inverse singularity


configurations

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.

8.4.3 Combined Singularity

The combined singularity configuration refers to a specific robot configuration in


which the moving platform simultaneously gains and loses one or more degrees of
freedom. Hence, the combined singularity occurs if and only if both forward and
inverse singularities simultaneously occur. For the 3RRRS PKM, the example 1 is
8.4 Singularity Analysis 141

Fig. 8.13 Combined


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.

8.5 Workspace Analysis

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

integration measures. Following this approach, various global performance measures


of the orientation workspace can also be readily computed. A comparison study is
conducted to evaluate the effectiveness of the three parameterization methods on the
numerical orientation workspace analysis. It has shown that the matrix exponential
coordinates method is more effective because it has no formulation singularity and
exhibits higher computation accuracy.

8.5.1 Numerical Orientation Workspace Analysis

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.

8.5.1.1 Euler Angles Representation

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

Fig. 8.14 Visualization of


S O(3) with Euler angles
representation

Consequently, integration or convolution of a rotation-dependant function f (R) over


a set of rotations S ∈ S O(3) in the Euler angles domain is given by
   
 
f (R)d VR = f (R α, β, γ ) sin βdαdβdγ , (8.40)
R∈S α,β,γ ∈Q e

where Q e denotes the parameter space of the ZYZ Euler angles, i.e., a subset of the
rectangular parallel piped.

8.5.1.2 Tilt-and-Torsion Angles Representation

A very intuitive parameterization method of rigid body rotations is that of Tilt-and-


Torsion angles, i.e., T&T angles. The T&T angles are defined in two stages: a tilt
and a torsion. This does not, however, mean that only two angles define the T&T
angles but simply that the axis of tilt is variable and is defined by another angle. It is
actually a three-angle orientation representation and can be considered as a modified
Euler angles set.
It has been verified that the T&T angles (θ, φ, σ ) are equivalent to the ZYZ Euler
angles (φ, θ, σ − φ). Therefore, the rotation matrix resulting from the T&T angles
(θ, φ, σ ), RT &T is given by:
⎡ ⎤
cφcθ c (σ − φ) − sφs (σ − φ) −cφcθ s (σ − φ) − sφc (σ − φ) cφsθ
⎣ sφcθ c (σ − φ) + cφs (σ − φ) −sφcθ s (σ − φ) + cφc (σ − φ) sφsθ ⎦ .
−sθ c (σ − φ) sθ s (σ − φ) cθ
(8.41)
144 8 Modular Parallel Robot Kinematics

Fig. 8.15 Visualization of


S O(3) with T&T angles
representation

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

Fig. 8.16 Visualization of


S O(3) with exponential
coordinates representation

   
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.

8.5.1.3 Exponential Coordinates Representation

The exponential coordinates parameterization method is a mathematically elegant


representation of rigid body rotations. It has been realized that the rigid body rotation
group, i.e., the Special Orthogonal Group S O(3), when embodied in 3 , can be
geometrically visualized as a solid sphere of radius π , centered at the origin with
the antipodal points as shown in Fig. 8.16. A point w = (wx , w y , wz ) within the
sphere represents a rotation by an angle w w2 = wx2 + w 2y + wz2 about the
line passing through the origin and w (directed from the origin to w). In other words,
the rigid body rotations can be parametrically represented by the coordinates of the
points within the sphere.
Based on differential geometry and group theory, the rotation matrix associated
with a point coordinate w = (wx , w y , wz ) can be obtained through a matrix expo-
nential mapping defined as follows:

sin w 1 − cos w 2


eŵ = I + ŵ + ŵ , (8.45)
w w2
⎡ ⎤
0 −wz w y
where ŵ = ⎣ wz 0 −wx ⎦ is a skew-symmetric matrix associated with w and
−w y wx 0
w2 = wx2 + w 2y + wz2 ≤ π 2 .
146 8 Modular Parallel Robot Kinematics

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 D 3 represents the solid sphere of radius π .


The integration or convolution of a rotation-dependant function f (R) over a set
of rotations S ∈ S O(3) in the exponential coordinates domain can be given by
 
2 (1 − cos w)
f (R)d VR = f (R [w]) dwx dw y dwz , (8.47)
R∈S w∈Q m w2

where Q m denotes the parameter space of the exponential coordinates, i.e., a subset
of the solid sphere.

8.5.2 Finite Partition Schemes

8.5.2.1 Isotropic Partition of the Rectangular Parallel Piped

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

Fig. 8.17 Isotropic Partition


of a rectangular parallel
piped

(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

Consequently, Eq. (8.40) can be written as:


    
f (R) d VR ≈ Ve f R αi jk , βi jk , γi jk sin βi jk , (8.50)
R∈S

where (αi jk , βi jk , γi jk ) ∈ Q e .

8.5.2.2 Equi-volumetric Partition of the Solid Cylinder

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

Consequently, Eq. (8.39) can be written as:


   
 f R θi jk , φi jk , σi jk sin θi jk
f (R) d VR ≈ Vt , (8.52)
R∈S θi jk

where (θi jk , φi jk , σi jk ) ∈ Q t .

8.5.2.3 Equi-volumetric Partition of the Solid Sphere

For numerical orientation workspace analysis using matrix exponential coordinates,


a novel equi-volumetric partition method has been proposed for the solid sphere of
8.5 Workspace Analysis 149

Fig. 8.18 Equi-volumetric partition of a solid cylinder

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

Fig. 8.19 Equi-volumetric partition of a hemispherical shell

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

Consequently, Eq. (8.47) can be rewritten as:


      
 f R wi jk 1 − cos wi jk 
f (R) d VR ≈ 2Vm   , (8.54)
R∈S wi jk 2

where wi jk ∈ Q m .
8.5 Workspace Analysis 151

Fig. 8.20 Integration


measure distributions

8.5.2.4 Comparison Study

In the previous part, three parameterization methods as well as their corresponding


partition schemes have been introduced for numerical orientation workspace anal-
ysis. To have a clearer understanding about these three approaches, a comparison
study in terms of integration measures, element convergency, and computation accu-
racy, is discussed.

Integration Measure Distribution

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

Table 8.2 Computation of orientation workspace volume


Division number n Euler angles T&T angles Exponential
coordinates
10 79.2825 79.2925 79.2082
20 79.0381 79.0386 79.0196
30 78.9929 78.9930 78.9847
40 78.9771 78.9772 78.9725
50 78.9698 78.9698 78.9669
100 78.9601 78.9601 78.9593

Table 8.3 Computation errors


Division number n Euler angles T&T angles Exponential
coordinates
10 −0.3256 −0.3336 −0.2513
20 −0.0812 −0.0817 −0.0628
30 −0.0361 −0.0362 −0.0279
40 −0.0203 −0.0203 −0.0157
50 −0.0130 −0.0130 −0.0100
100 −0.0032 −0.0032 −0.0025

coordinates analysis approach, an equi-volumetric partition scheme is proposed for


the solid sphere, which is realized in radial, latitudinal, and longitudinal directions.
The solid sphere of radius π is divided into 2n 3 finite elements with equal volume.
Regardless of the partition schemes, the 3D of each element are inversely propor-
tional to the division number n, while its geometric volume is inversely proportional
to n 3 . The elements in n-division and (n + 1)-division have the same volume ratio of
(n+1)3
n3
, which is approximately equal to unity when n is sufficiently large. Hence, it
can be concluded that the elements in each of the partition schemes are all uniformly
convergent when the division number n is large enough.

Computation Accuracy

A computation example is employed to compare the computation accuracy of these


three numerical approaches (especially when n is not sufficiently large). In this
example, the orientation workspace volume of the entire rigid-body rotation group
is numerically computed with different division number n through three partition
schemes, separately. It is noted the theoretical value of the orientation workspace
volume, i.e., the volume of S O(3), is 8π 2 (= 78.9568rad2 ), regardless of the param-
eterization methods. The computation results are listed in Table 8.2. Based on the
results listed in Table 8.2, we can further calculate the computation errors which
is defined as the differences between the theoretical orientation workspace volume
8.5 Workspace Analysis 153

(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.

9.2 Self-calibration for Three-legged Modular Parallel


Robots

In order to develop a self-calibration model for the three-legged modular parallel


robots, the forward kinematics analysis is necessary, which has been briefly intro-
duced in Chap. 8. This section mainly addresses the formulation of the self-calibration
algorithm for a class of three-legged modular parallel robots.
158 9 Kinematic Calibration for Modular Parallel Robots

9.2.1 Self-calibration Model Based on Leg-end Distance


Errors

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

Fig. 9.1 A three-leg parallel robot


9.2 Self-calibration for Three-legged Modular Parallel Robots 159

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 TB,i j ( j = 1, 2, 3) represents the forward kinematic transformation from frame


  
B to frame i j and pi j,i ∈ 3×1 (with pi0,i = p B,i ) represents the position vector of
point Ai with respect to frame i j.
Equation (9.4) is actually a differential equation. It describes the gross kinematic
error of the leg-end position vector pi resulting from the kinematic errors in the initial

pose Ti( j−1),i j (0) and the position vector pi . However, Eq. (9.4) appears to have a
nonlinear form, which is undesirable in robot calibration. With some modifications,
Eq. (9.4) can be converted into a clear linear equation
 as
 described as follows.
δ ŵ δv
Let δ tˆ be an element of se(3) such that δ tˆ = and p ∈ 3×1 be a position
0 0
vector. We have
           
p δ ω̂ δv p δv + δ ω̂ p δv − p̂δω I3×3 − p̂ δv
δtˆ = = = = .
1 0 0 1 0 0 0 0 δω
  (9.5)
In Eq. (9.5), the matrix I3×3 − p̂ ∈ 3×6 can be considered as the transition matrix
related to the position vector p. We term such a matrix as the positional transition
matrix and denote it by T p . Therefore, Eq. (9.5) can be rewritten as
   
p T
δ tˆ = p δt, (9.6)
1 0

where δt = (δv, δw)T ∈ 6×1 is a 6-dimensional vector representation of δ tˆ.


Substituting Eq. (9.6) into Eq. (9.4), we have
         
δpi T p T p T p δpi
= B,i δti1 + TB,i1 i1,i δti2 + TB,i2 i2,i δti3 + TB,i3 . (9.7)
0 0 0 0 0
 
R B,i j p B,i j
Since TB,i j = , in which R B,i j and p B,i j (i, j = 1, 2, 3) represent the
0 1
orientation and position of frame i j with respect to the base frame B, respectively.
Equation (9.7) can also be further simplified as

δpi = T p δti1 + R B,i1 T p δti2 + R B,i2 T p δti3 + R B,i3 δpi = Ji δti , (9.8)
B,i i1,i i2,i

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)

Differentiating Eq. (9.9) with respect to p1 and p2 , we have

( 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 .

In the modified calibration model, we have altogether 66 error parameters to be


identified, which reflect the kinematic errors of a three-legged modular parallel robot.
9.2 Self-calibration for Three-legged Modular Parallel Robots 163

9.2.2 An Iterative Least-squares Algorithm

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

x = (ÃT Ã)−1 ÃT Ỹ , (9.18)


 −1
where ÃT Ã ÃT is the pseudoinverse of Ã. Due to the closed-loop structure
of the parallel robot, the determinant of ÃT Ã is normally very small. To avoid the
computational difficulty, the Singularity Value Decomposition (SVD) method can
be employed to derive the pseudoinverse of Ã.
The solution of Eq. (9.18) can be further improved through iterative substitution
as shown in Fig. 9.2. Once the kinematic error parameter vector, x is identified,

the initial pose Ti( j−1),i j (0), the position vector pi , and the actual leg-distances are
updated by substituting x into the following equations:

Ti( j−1),i j (0)new = eδtˆi j Ti( j−),i j (0)old ,


 new  old 
pi = pi + δpi ,
new old ∗
0
a12 = a12
0
+ δa12 ,
0 new 0 old ∗
a23 = a23 + δa23 ,
0 new 0 old ∗
a31 = a31 + δa31 . (9.19)

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

(i) (i) (i)


where a12 , a23 and a31 are the three leg-end distances computed according to the
calibration results, respectively.

9.2.3 Computation Example

In this section, a simulation example of calibrating a 6-DOF 3RRRS parallel robot


is given to demonstrate the effectiveness of the calibration algorithm. As shown in
the kinematic diagram in Fig. 9.1, the nominal kinematic parameters of the 6-DOF
modular parallel robot are given as follows:
⎡1 √ ⎤ ⎡ ⎤
− 3
0 −250 −1 0 0 500

2
⎢ 3 1
2 √
TB,10 = ⎢ 0 −250 3 ⎥ ⎢
⎥ , TB,20 = ⎢ 0 −1 0 0 ⎥,

⎣ 02 02 1 90 ⎦ ⎣ 0 0 1 90 ⎦
0 0 01 0 0 01
⎡1 √ ⎤ ⎡ ⎤
3
0 −250 0 0 1 90
⎢ − 3 1 0 250√3 ⎥
2 √ 2
⎢ ⎥
TB,30 = ⎢ ⎥ , Ti0,i1 = ⎢ 0 1 0 0 ⎥,
⎣ 0 2 02 1 90 ⎦ ⎣ −1 0 0 0 ⎦
0 0 01 0 001
⎡ ⎤ ⎡ ⎤
0 0 −1 −330 0 10 0
⎢ 0 −1 0 0 ⎥ ⎢ ⎥
Ti1,i2 = ⎢ ⎥ , Ti2,i3 = ⎢ 0 0 −1 0 ⎥ ,
⎣ −1 0 0 0 ⎦ ⎣ −1 0 0 0 ⎦
0 0 0 1 0 00 1
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
−205√ 410 −205√ 0
p1 = ⎣ −205 3 ⎦ , p2 = ⎣ 0 ⎦ , p3 = ⎣ 205 3 ⎦ , pi = ⎣ −330 ⎦ ,
   

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.

Table 9.1 Preset kinematic errors


Parameter Preset errors Parameter Preset errors
dti j (2, 2, 2, 0.02, 0.02, 0.02)T dqi j ( j = 3) 0.02
dsi j (0, 0, 0, 0, sin(0.02), cos(0.02) − 1)T dqi j ( j = 3) 0

dpi (2, 2, 2)T da (2, 2, 2)T
166 9 Kinematic Calibration for Modular Parallel Robots

Table 9.2 Identified kinematic errors


Dyad Kinematic errors Ti(c j−1),i j (0)
⎡ ⎤
−0.02284 −0.86569 0.50005 −210.664
⎢ ⎥
⎢ 0.01763 0.49976 0.86599 −348.699 ⎥
⎢ ⎥
0-1(Leg1) (−7.698, 7.941, −0.160, ⎢ ⎥
0.01763, 0.02284, −0.00001)T ⎣ 0.99958 0.02859 0.00384 88.383 ⎦
0 0 0 1
⎡ ⎤
0.5964 −0.6385 0.4864 −117.155
⎢ ⎥
⎢ 0.8001 0.5217 −0.2962 216.306 ⎥
⎢ ⎥
1-2(Leg1) (1.36772, 8.42726, 3.04695, ⎢ ⎥
0.00027, 0.01880, 0.02956)T ⎣ −0.0647 0.5658 0.8220 445.614 ⎦
0 0 0 1
⎡ ⎤
0.5964 −0.6385 0.4864 −117.155
⎢ ⎥
⎢ 0.8001 0.5217 −0.2962 216.306 ⎥
⎢ ⎥
2-3(Leg1) (2.022, −0.097, −1.296, ⎢ ⎥
0.05999, 0.00135, −0.00058)T ⎣ −0.0647 0.5658 0.8220 445.614 ⎦
0 0 0 1
⎡ ⎤
0.00384 −0.00018 −0.99999 407.081
⎢ ⎥
⎢ 0.02860 −0.99959 0.00007 −8.100 ⎥
⎢ ⎥
0-1(Leg2) (−2.570, −10.644, −0.171, ⎢ ⎥
−0.02861, −0.00384, −0.00013)T ⎣ −0.99958 0.02860 −0.00384 91.514 ⎦
0 0 0 1
⎡ ⎤
−0.01879 0.02954 −0.99939 −328.530
⎢ ⎥
⎢ −0.00001 −0.99956 −0.02955 −1.304 ⎥
⎢ ⎥
1-2(Leg2) (1.368, 8.427, 2.581, ⎢
−0.99982 −0.00054

0.00027, 0.01880, 0.02955)T ⎣ 0.01879 8.771 ⎦
0 0 0 1
⎡ ⎤
−0.00125 0.99999 −0.00062 2.021
⎢ ⎥
⎢ 0.05995 −0.00054 −0.99820 −0.057 ⎥
⎢ ⎥
2-3(Leg2) (2.022, −0.096, −1.301, ⎢ ⎥
0.05999, 0.00127, −0.00058)T ⎣ −0.99820 −0.00124 −0.05995 −1.304 ⎦
0 0 0 1
⎡ ⎤
0.01899 0.86585 0.49994 −196.414
⎢ ⎥
⎢ 0.01097 0.49982 −0.86606 356.794 ⎥
⎢ ⎥
0-1(Leg3) (10.271, 2.697, −0.086, ⎢ ⎥
0.01097, −0.01899, −0.00007)T ⎣ −0.99976 0.02194 −0.00001 90.006 ⎦
0 0 0 1
⎡ ⎤
−0.01903 0.02268 −0.99956 −328.548
⎢ ⎥
⎢ 0.01011 −0.99969 −0.02288 0.888 ⎥
⎢ ⎥
1-2(Leg3) (1.377, 8.436, 2.776, ⎢ ⎥
0.01033, 0.01891, 0.02278)T ⎣ 0.99977 −0.01055 0.01879 9.008 ⎦
0 0 0 1
⎡ ⎤
−0.00075 0.99994 −0.01060 2.021
⎢ ⎥
⎢ 0.05996 −0.01053 −0.99815 −0.052 ⎥
⎢ ⎥
2-3(Leg3) (2.022, −0.080, −1.316, ⎢ ⎥
0.05999, 0.00106, −0.01057)T ⎣ −0.99820 −0.00138 −0.05995 −1.31884 ⎦
0 0 0 1
c
Position Kinematic errors pi
vector

p1 (−4.000, 4.598, 0.057)T (−4.000, −325.402, 0.057)T

p2 (−4.025, 4.598, 0.058)T (−4.025, −325.402, 0.058)T

p3 (−3.994, 4.598, 0.084)T (−3.994, −325.402, 0.084)T
Leg-end Kinematic errors c , a c , a c )T
(a12 23 31
distance
(1 − (−3.599, −3.599, −3.599)T (706.542, 706.542, 706.542)T
2, 2 − 3,
3 − 1)
9.3 Base-tool Calibration for Three-leg Modular Reconfigurable … 167

Fig. 9.2 Iterative calibration


loop

9.3 Base-tool Calibration for Three-leg Modular


Reconfigurable Parallel Robots

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

Fig. 9.3 Coordinate frames


for base and tool calibration

9.3.1 Base-tool Calibration Model Based on POE Formula

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

TB0,E (q) = TB0,B TB,A (q)T A,E , (9.21)

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

TB0,E (q) = etˆB0,B TB,A (q)etˆA,E . (9.22)

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

TB0,A (q) = TB0,B TB,A (q),


−1 −1
δTB0,E (q)TB0,E (q) ≈ TB0,E
a
(q)TB0,E (q) − I4×4 .

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 .

Hence, Eq. (9.24) can be rewritten as:


 a −1
∨
log TB0,E (q)TB0,E (q) = δt B0,B + AdTB0,A (q) δt A,E , (9.25)
 a −1
∨
where log TB0,E (q)TB0,E (q) ∈ 6×1 is the vector representation of log
 a −1

TB0,E (q)TB0,E (q) ∈ se(3). Similarly, δt B0,B and δt A,E are the 6-dimensional vec-
tor representations of δ tˆB0,B ∈ se(3) and δ tˆA,E ∈ se(3), respectively. Geometrically,
 a −1
∨
log TB0,E (q)TB0,E (q) represents the gross kinematic error of the tool frame
expressed in the robot world frame. From Eq. (9.25), it is equal to the sum of the
kinematic errors in TB0,B and T A,E expressed in the robot world frame, i.e., the sum
of the world frame representation of δt B0,B and δt A,E . Note that, in each of the 6-
dimensional error vectors δt B0,B and δt A,E , the first three parameters represent the
position errors (δx, δy, δz), while the last three parameters represent the orienta-
tion errors (δαx , δβ y , δγz ). A detailed geometrical description of these parameters
can be obtained by using the math tools in Appendix B. With such a geometrical
treatment, the formulation of the calibration model can be systematically simplified.
Equation (9.25) can also be further simplified as the following linear calibration
170 9 Kinematic Calibration for Modular Parallel Robots

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.

9.3.2 An Iterative Least-squares Algorithm

Based on the calibration model Eq. (9.26), an iterative least-squares algorithm is


employed for the calibration solution. To obtain the reliable calibration result, we
usually need to measure the end-effector poses in a number of different robot postures.
Suppose we need to take m sets of measured data. For the ith measurement, we can
obtain a y[i] as well as an identification Jacobian matrix J[i] . After m measurements,
we can stack y[i] and J[i] to form the following equation:

ỹ = 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

x = ( J˜T J˜)−1 J˜T ỹ, (9.28)

where ( J˜T J˜)−1 J˜T is the pseudoinverse of J˜.


The solution of Eq. (9.28) can be further improved through iterative substitution
as shown in Fig. 9.4. Once the kinematic error parameter vector, x, is identified,
TB0,B and T A,E are updated by substituting x into the following equations:
9.3 Base-tool Calibration for Three-leg Modular Reconfigurable … 171

Fig. 9.4 Iterative calibration


loop

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)

After calibration, the forward kinematic equation becomes


c
TB0,E (q) = TB0,B
c
TB,A (q)T A,E
c
. (9.31)

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.

9.3.3 Computation Example

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:

Table 9.3 Preset and identified kinematic errors


Preset errors Identified errors

δt B0,B (20, 20, 20, 0.2, 0.2, 0.2)T (20, 20, 20, 0.2, 0.2, 0.2)T

δt A,E (−25, −25, −25, −0.25, −0.25, −0.25)T (−25, −25, −25, −0.25, −0.25, −0.25)T

Table 9.4 Nominal and calibrated TB0,B and T A,E


Nominal Calibrated
⎡ ⎤ ⎡ ⎤
−1 0 0 0 −0.9604 0.2158 −0.1762 20
⎢ 0 0 1 0⎥ ⎢ −0.2158 −0.1762 20 ⎥
⎢ ⎥ ⎢ 0.9604 ⎥
TB0,B ⎢ ⎥ ⎢ ⎥
⎣ 0 1 0 0⎦ ⎣ 0.1762 0.9604 0.2158 20 ⎦
0 001 0 0 0 1
⎡ ⎤ ⎡ ⎤
100 0 0.9358 0.2730 −0.2115 −46.150
⎢0 1 0 0 ⎥ ⎢ −0.2115 0.9358 2.303 ⎥
⎢ ⎥ ⎢ 0.2730 ⎥
T A,E ⎢ ⎥ ⎢ ⎥
⎣ 0 0 1 100 ⎦ ⎣ 0.2730 −0.2115 0.9358 68.847 ⎦
000 1 0 0 0 1
9.3 Base-tool Calibration for Three-leg Modular Reconfigurable … 173

Table 9.5 Three given mobile platform poses TB,A (q)


Posture TB,A (q)
⎡ ⎤
0.5964 −0.6385 0.4864 −117.155
⎢ 0.8001 0.5217 −0.2962 216.306 ⎥
⎢ ⎥
1 ⎢ ⎥
⎣ −0.0647 0.5658 0.8220 445.614 ⎦
0 0 0 1
⎡ ⎤
0.6219 −0.7604 0.1873 −226.347
⎢ 0.7372 0.6491 0.1875 −57.298 ⎥
⎢ ⎥
2 ⎢ ⎥
⎣ −0.2642 0.0215 0.9642 571.754 ⎦
0 0 0 1
⎡ ⎤
0.7082 −0.7013 −0.0811 126.003
⎢ 0.4699 0.5540 −0.6872 −120.154 ⎥
⎢ ⎥
3 ⎢ ⎥
⎣ 0.5268 0.4486 0.7220 421.954 ⎦
0 0 0 1

 
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 ;

3. Calculate the actual end-effector frame poses at different robot postures


a
TB0,E (q) = TB0,B
a
TB,A (q)T A,E
a
.

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

Fig. 9.5 Calibration convergence


= 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

Fig. 9.6 Quantified deviation versus number of measurement postures

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

1. R.O. Ambrose, Design, Construction and Demonstration of Modular, Reconfigurable Robots


(University of Texas at Austin, U.S.A, 1991). PhD thesis
2. R.O. Ambrose, D. Tesar, Modular robot connection design. in Proceedings of ASME Confer-
ence on Flexible Assembly Systems, (Scottsdate, AZ, 1992), pp. 41–48
3. B. Benhabib, R. Cohen, M.G. Lipton, M.Q. Dai, Design of a rotary-joint-based modular robot.
in Proceedings of ASME Mechanism Conference, (1990), pp. 239–243
4. I.M. Chen, G. Yang, Configuration independent kinematics for modular robots. in Proceedings
of IEEE Conference on Robotics and Automation, (1996), pp. 1845–1849
5. R. Cohen, M.G. Lipton, M.Q. Dai, B. Benhabib, Conceptual design of a modular robot. ASME
J. Mech. Des. 114, 117–125 (1992)
6. T. Fukuda, S. Nakagawa, Dynamically reconfigurable robotic system. in Proceedings of IEEE
Conference on Robotics and Automation, (Philadelphia, PA, April 1988), pp. 1581–1586
7. J. Han, W.K. Chung, S.H. Kim, Task based design of modular robot manipulator using efficient
genetic algorithm. in Proceedings of IEEE Conference on Robotics and Automation, (New
Mexico, USA, 1997), pp. 507–511
8. T. Matsumaru, Design and control of the modular robot system: Tomms. in Proceedings of
IEEE Conference on Robotics and Automation, (Nagoya, Japan, May 1995), pp. 2125–2131
9. C.J.J. Paredis, H.B. Brown, R.W. Casciola, J.E. Moody, P.K. Khosla, A rapidly deployable
manipulator system, in International Workshop on Some Critical Issues in Robotics. (Singa-
pore, 1995), pp. 175–185
10. D. Schmitz, P. Khosla, T. Kanade, The cmu reconfigurable modular manipulator system.
Technical Report CMU-RI-TR-88-7, (Carnegie Mellon University, 1988)
11. D. Tesar, M.S. Butler, A generalized modular architecture for robot structures. ASME J.
Manuf. Rev. 2(2), 91–117 (1989)
12. K.H. Wurst, The conception and construction of a modular robot system. in International
Symposium on Industrial Robotics, (1986), pp. 37–44
13. B. Benhabib, G. Zak, M.G. Lipton, A generalized kinematic modeling method for modular
robots. J. Rob. Syst. 6(5), 545–571 (1989)
14. I.M. Chen, Theory and Applications of Modular Reconfigurable Robotic Systems (California
Institute of Technology, CA, USA, 1994). PhD thesis

© 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

37. N. Napp, S. Burden, E. Klavins. The statistical dynamics of programmed self-assembly. in


Robotics and Automation, 2006. ICRA 2006. Proceedings 2006 IEEE International Confer-
ence on, (2006)
38. M.T. Tolley, J.D. Hiller, H. Lipson, Evolutionary Design and Assembly Planning for Stochastic
Modular Robots (Springer, Berlin Heidelberg, 2011)
39. M. Yim, Y. Zhang, K. Roufas, D. Duff, C. Eldershaw, Connecting and disconnecting for chain
self-reconfiguration with polybot. IEEE/ASME Trans. Mechatron. 7(4), 442–451 (2003)
40. J. Zhao, X. Cui, Y. Zhu, S. Tang, A new self-reconfigurable modular robotic system ubot:
Multi-mode locomotion and self-reconfiguration. in 2011 IEEE International Conference on
Robotics and Automation (ICRA), (2011)
41. J. Zhao, X. Cui, Y. Zhu, S. Tang, Ubot: a new reconfigurable modular robotic system with
multimode locomotion ability. Industrial Robot, volume 39(2):178–190(13), 2012
42. H. Kurokawa, K. Tomita, A. Kamimura, S. Kokaji, T. Hasuo, S. Murata, Distributed self-
reconfiguration of m-tran iii modular robotic system. Int. J. Rob. Res. 27(3–4), 373–386
(2008)
43. E.H. ØStergaard, K. Kassow, R. Beck, H.H. Lund, Design of the atron lattice-based self-
reconfigurable robot. Auton. Robots 21(2), 165–183 (2006)
44. W.M. Shen, M. Krivokon, H. Chiu, J. Everist, M. Rubenstein, J. Venkatesh, Multimode loco-
motion via superbot reconfigurable robots. Auton. Robots, 20(2), 165–177 (2006)
45. J. Davey, N. Kwok, M. Yim, Emulating self-reconfigurable robots - design of the smores
system. in IEEE/RSJ International Conference on Intelligent Robots and Systems, (2012)
46. T. Fukuda, T. Ueyama, F. Arai, Control strategy for a network of cellular robots. in Proceedings
of IEEE Conference on Robotics and Automation, (Sacramento, CA, April 1991), pp. 1616–
1621
47. R.J. Alattas, P. Sarosh, T.M. Sobh, Evolutionary modular robotics: survey and analysis. J.
Intell. Rob. Syst. (2018)
48. B. Bollobás, Graph Theory - An Introductory Course (Springer-Verlag, 1979)
49. R.J. Wilson, J.J. Watkins, Graphs - An Introductory Approach (John Wiley & Sons Inc., New
York, USA, 1989)
50. G. Chartrand, O.R. Oellermann, Applied and Algorithmic Graph Theory (McGraw-Hill Inc,
USA, 1993)
51. S. Skiena, Implementing Discrete Mathematics (Addison-Wesley, Redwood City, CA, 1990)
52. L. Dobrjanskyj, F. Freudenstein, Some applications of graph theory to the structural analysis
of mechanisms. ASME J. Eng. Ind. 89, 153–158 (1967)
53. F. Harary, H. Yan, Logical foundations of kinematic chains: graphs, line graphs, and hyper-
graphs. ASME J. Mech. Des. 112, 79–83 (1990)
54. L.S. Woo, Type synthesis of plane linkages. ASME J. Eng. Ind. 89, 159–172 (1967)
55. H.-S. Yan, Y.-W. Hwang, The specialization of mechanisms. Mechanism and Machine Theory
26(6), 541–551 (1991)
56. J. Denavit, R.S. Hartenberg, Kinematic notation for lower-pair mechanisms based on matrices.
ASME Journal of Applied Mechanics 2, 215–211 (1955)
57. J. Duffy, Analysis of Mechanisms and Robot Manipualtors (John Wiley & Sons, 1980)
58. C.H. Suh, C.W. Radcliffe, Kinematics and Mechanisms Design (John Wiley & Sons, 1978)
59. K.C. Gupta, Kinematic analysis of manipulator using the zero reference position description,
in The Kinematics of Robot Manipulators. ed. by J.M. McCarthy. pp. (MIT Press, Cambridge,
MA, 1987), pp. 3–11
60. R. Brockett, Robotic manipulators and the product of exponential formula, in International
Symposium in Math. Theory of Network and Systems. (Beer Sheba, Israel, 1983), pp. 120–129
61. Z. Li, Geometrical considerations of robot kinematics. IEEE Trans. Robot. Autom. 5(3),
139–145 (1990)
62. R. Murray, Z. Li, S.S. Sastry, A Mathematical Introduction to Robotic Manipulation (CRC
Press, 1994)
63. F.C. Park, On the optimal kinematic design of spherical and spatial mechanisms. in Proceed-
ings of IEEE Conference on Robotics and Automation, (Sacramento, CA, April 1991), pp.
1530–1535
180 References

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)

You might also like