141
Design and control of low-cost manipulator prototypes Radu Florin Burcea Thesis submitted for the degree of Master in Robotics and Intelligent Systems 60 credits Department of Informatics Faculty of mathematics and natural sciences UNIVERSITY OF OSLO Spring 2020

Design and control of low-cost manipulator prototypes - UiO

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Design and control of low-cost manipulator prototypes - UiO

Design and control of low-costmanipulator prototypes

Radu Florin Burcea

Thesis submitted for the degree ofMaster in Robotics and Intelligent Systems

60 credits

Department of InformaticsFaculty of mathematics and natural sciences

UNIVERSITY OF OSLO

Spring 2020

Page 2: Design and control of low-cost manipulator prototypes - UiO
Page 3: Design and control of low-cost manipulator prototypes - UiO

Design and control of low-costmanipulator prototypes

Radu Florin Burcea

Page 4: Design and control of low-cost manipulator prototypes - UiO

© 2020 Radu Florin Burcea

Design and control of low-cost manipulator prototypes

http://www.duo.uio.no/

Printed: Reprosentralen, University of Oslo

Page 5: Design and control of low-cost manipulator prototypes - UiO

Abstract

Affordable robotic manipulators that are dexterous, highly-programmable,modular and easy to assemble are very much desired. Many roboticmanipulators that are able to automate a task with precision, usually comeswith a high price tag, due to high-precision actuators used in their joints,together with custom machined metal links and advanced positioningand control algorithms. Cheaper manufacturing and high availabilityof tools, materials and actuators that everyone can acquire and use todesign, manufacture and build their own manipulator would help advancerobotics technology. This would facilitate a faster integration of robots inour daily life.

Positioning and control of many degrees of freedom manipulatorsaffected by non-linear forces is a challenging and demanding task.Frameworks that aid in deployment of control algorithms on manipulatorswould result in a faster and easier programming experience for the user.

This thesis proposes both a modern manufacturing process to constructthe structural components of two manipulator models, and the usageof a framework that facilitates the implementation of advanced controlalgorithms. The two manipulator models involve 3D printed links andin order to test their performance against mainstream manufacturedstructural components, a third manipulator model with aluminium linkshas been proposed.

A position controller, joint trajectory controller and inverse dynamicscontroller have been implemented on a 3D printed five degrees of freedommanipulator and six degrees of freedom manipulator with aluminiumlinks. The controllers have been tested on these manipulators in both reallife and in simulation, and their performance was compared. In this thesiswe also explore different ways to achieve lighter and stronger links thanaluminium links available on the market, by using a carbon fiber nyloncomposite material. Price is also an important factor in the design andmanufacturing process, thus a price comparison between the proposed 3Dprinted models and other research and commercial manipulators has beenperformed.

The proposed manufacturing process has shown significant improve-ment in weight reduction of the manipulator links while maintaining highstiffness. The joint trajectory controller and inverse dynamics controller im-plemented using the proposed framework has offered advanced capabilit-ies for our manipulators and show great promise in improving the controlimplementation experience.

i

Page 6: Design and control of low-cost manipulator prototypes - UiO

ii

Page 7: Design and control of low-cost manipulator prototypes - UiO

Contents

1 Introduction 11.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Background 52.1 Actuators and sensors . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Actuators . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.2 Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Manipulator kinematic configuration . . . . . . . . . . . . . . 72.3 Inverse kinematics . . . . . . . . . . . . . . . . . . . . . . . . 132.4 Dynamics of rigid robots . . . . . . . . . . . . . . . . . . . . . 15

2.4.1 Euler-Lagrange equations . . . . . . . . . . . . . . . . 152.4.2 Newton-Euler equations . . . . . . . . . . . . . . . . . 162.4.3 Iterative Newton-Euler dynamics algorithm . . . . . 172.4.4 Properties of the dynamic equations . . . . . . . . . . 20

2.5 Motion control of rigid manipulators . . . . . . . . . . . . . . 202.5.1 Previous work on estimation of inertia parameters of

manipulator links and loads . . . . . . . . . . . . . . . 212.5.2 A Newton-Euler links and loads estimation procedure 222.5.3 Inverse dynamics control . . . . . . . . . . . . . . . . 252.5.4 Robust and adaptive motion control . . . . . . . . . . 27

2.6 Overview of low-cost manipulators . . . . . . . . . . . . . . 292.6.1 A 6-DOF cartesian manipulator . . . . . . . . . . . . . 292.6.2 A 7-DOF articulated and compliant manipulator . . . 312.6.3 A 3-DOF light-weight articulated manipulator . . . . 322.6.4 A robust highly articulated manipulator . . . . . . . . 33

2.7 Overview of various research and commercial manipulators 342.7.1 Robotic research arms . . . . . . . . . . . . . . . . . . 342.7.2 Robotic arms using stepper motors . . . . . . . . . . . 34

3 Engineering methods, processes and tools 353.1 3D design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2 3D printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.3 Hardware and software . . . . . . . . . . . . . . . . . . . . . 37

3.3.1 Electronics and mechanics . . . . . . . . . . . . . . . . 373.3.2 Gazebo simulator . . . . . . . . . . . . . . . . . . . . . 393.3.3 Robot operating system . . . . . . . . . . . . . . . . . 39

iii

Page 8: Design and control of low-cost manipulator prototypes - UiO

3.3.4 MoveIt! . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4 Robot design, manufacturing and control 414.1 Robot design and Manufacturing . . . . . . . . . . . . . . . . 41

4.1.1 Kinematic configuration and DOF . . . . . . . . . . . 444.1.2 Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.1.3 Workspace and reach . . . . . . . . . . . . . . . . . . . 444.1.4 Payload . . . . . . . . . . . . . . . . . . . . . . . . . . 444.1.5 Link materials and design . . . . . . . . . . . . . . . . 444.1.6 Torque requirement . . . . . . . . . . . . . . . . . . . 47

4.2 Estimation and computation of inertia parameters of manip-ulator links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.2.1 Base link . . . . . . . . . . . . . . . . . . . . . . . . . . 544.2.2 Link 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.2.3 Link 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.2.4 Links 3 and 4 . . . . . . . . . . . . . . . . . . . . . . . 584.2.5 Link 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.2.6 Link 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.3 Robot control . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.3.1 Universal robot description file (URDF) . . . . . . . . 614.3.2 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . 614.3.3 Position controller . . . . . . . . . . . . . . . . . . . . 624.3.4 Joint trajectory controller . . . . . . . . . . . . . . . . 634.3.5 Inverse dynamics controller . . . . . . . . . . . . . . . 65

5 Robot control, experiments and results 695.1 Position controller . . . . . . . . . . . . . . . . . . . . . . . . . 705.2 Joint trajectory controller . . . . . . . . . . . . . . . . . . . . . 715.3 Inverse dynamics controller . . . . . . . . . . . . . . . . . . . 74

5.3.1 Gazebo Simulations . . . . . . . . . . . . . . . . . . . 745.3.2 Real robot experiments . . . . . . . . . . . . . . . . . . 785.3.3 Trajectory tracking error . . . . . . . . . . . . . . . . . 815.3.4 Accuracy calculation and measurement . . . . . . . . 815.3.5 Repeatability experiments . . . . . . . . . . . . . . . . 82

6 Discussion 856.1 Choice of link design . . . . . . . . . . . . . . . . . . . . . . . 856.2 Link weight reduction . . . . . . . . . . . . . . . . . . . . . . 856.3 Torque requirements validation . . . . . . . . . . . . . . . . . 866.4 Robot control . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.4.1 Position controller . . . . . . . . . . . . . . . . . . . . 876.4.2 Joint trajectory controller . . . . . . . . . . . . . . . . 876.4.3 Inverse dynamics controller . . . . . . . . . . . . . . . 886.4.4 Accuracy and repeatability comparison . . . . . . . . 89

6.5 General discussion . . . . . . . . . . . . . . . . . . . . . . . . 906.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916.7 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

iv

Page 9: Design and control of low-cost manipulator prototypes - UiO

Appendices 93

A Rotation Matrix calculations 95

B Additional results 97

C Estimated and computed inertia parameters 101C.1 6DOF aluminium manipulator . . . . . . . . . . . . . . . . . 101

C.1.1 Base Link . . . . . . . . . . . . . . . . . . . . . . . . . 101C.1.2 Link 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 102C.1.3 Link 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 104C.1.4 Link 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 105C.1.5 Link 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 107C.1.6 Link 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 108C.1.7 Link 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

C.2 5DOF onyx manipulator . . . . . . . . . . . . . . . . . . . . . 110C.2.1 Base Link . . . . . . . . . . . . . . . . . . . . . . . . . 110C.2.2 Link 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 111C.2.3 Link 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 112C.2.4 Link 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 114C.2.5 Link 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 115C.2.6 Link 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Bibliography 121

v

Page 10: Design and control of low-cost manipulator prototypes - UiO

vi

Page 11: Design and control of low-cost manipulator prototypes - UiO

List of Figures

2.1 A representation of a RRR manipulator configuration. . . . . 82.2 Workspace of the RRR manipulator. . . . . . . . . . . . . . . 82.3 A representation of the spherical manipulator. . . . . . . . . 92.4 Workspace of the RRP or spherical manipulator. . . . . . . . 92.5 A representation of the SCARA manipulator. . . . . . . . . . 102.6 Workspace of the SCARA manipulator. . . . . . . . . . . . . 102.7 A representation of the cylindrical manipulator. . . . . . . . 112.8 Workspace of the cylindrical manipulator. . . . . . . . . . . . 112.9 The Cartesian (PPP) manipulator. . . . . . . . . . . . . . . . . 122.10 Workspace of the Cartesian manipulator. . . . . . . . . . . . 122.11 A two-link planar manipulator with multiple inverse kin-

ematic solutions. . . . . . . . . . . . . . . . . . . . . . . . . . 132.12 Diagram for solving the joint angles based on the end-

effector coordinates. . . . . . . . . . . . . . . . . . . . . . . . . 142.13 Inner loop/outer loop structure of non-linear control al-

gorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1 The 3D models of the two 6DOF manipulator prototypesdesigned in Fusion 360. . . . . . . . . . . . . . . . . . . . . . . 42

4.2 The 3D model of the 5DOF carbon fiber reinforced onyxprototype designed in Fusion 360. . . . . . . . . . . . . . . . 43

4.3 The 3D representation of base link composition created inFusion 360, together with an image of the physical base. . . . 45

4.4 3D representation of the aluminium and reinforced onyxlinks 2 and 3 created in Fusion 360. . . . . . . . . . . . . . . . 46

4.5 3D representation of the aluminium and reinforced onyxlinks 1 and 4 created in Fusion 360. . . . . . . . . . . . . . . . 47

4.6 3D representation of the aluminium and reinforced onyxlinks 5 and 6 created in Fusion 360. The two MX-28servomotors are included in both link 6 models. . . . . . . . 48

4.7 Internal part view of link 3 showing carbon fiber reinforcedgroups and their layers in Eiger. . . . . . . . . . . . . . . . . 48

4.8 3D model of the manipulator at full stretch, constituting"worst-case" scenario, with the representation of each linkand motor length and weight. . . . . . . . . . . . . . . . . . . 53

vii

Page 12: Design and control of low-cost manipulator prototypes - UiO

4.9 Base link representation with the servomotor and its centerof mass represented by dotted lines and position vectorslocating the motor center of mass in both frames, with redarrows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.10 Link 1 representation with the servomotors, their centers ofmass and position vectors locating the centers of mass inboth their own frame and link frame, illustrated with redarrows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.11 Illustration of the rotations needed in order for the motorsframe to be aligned with link 1 reference frame . . . . . . . . 57

4.12 Link 2 representation with the servomotor, its center of massand position vectors locating the center of mass in both itsown frame and link frame, illustrated with red arrows. . . . 59

4.13 Link 5 representation with the servomotor, its center of massand position vector locating the center of mass in both itsown frame and link frame, illustrated with red arrows. . . . 60

4.14 A partial view of the URDF file for the 6DOF aluminiummanipulator, containing the description of link 1, joint 1 andits transmission. . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.15 A view of the spawned 5DOF onyx manipulator in Gazebo. 634.16 A view of the spawned 6DOF aluminium manipulator in

Gazebo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.17 A view of the 6DOF aluminium manipulator in Rviz. . . . . 654.18 Torque values for each joint in the 5DOF onyx manipulator.

The torque values output from the joints_efforts[idx]torque vector are from within the inverse dynamics control-ler, while the Command values are the torques received by themotor driver. to_mA are the converted current values. . . . . 67

5.1 The constructed 5DOF onyx manipulator and 6DOF manip-ulator prototypes. . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.2 Position controller - Velocity joint 3 - 6DOF aluminiummanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.3 Position controller - Position joint 3 - 6DOF aluminiummanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.4 Joint trajectory controller - Position joint 1 - 6DOF alu-minium manipulator. . . . . . . . . . . . . . . . . . . . . . . . 72

5.5 Joint trajectory controller - Position joint 2 - 6DOF alu-minium manipulator. . . . . . . . . . . . . . . . . . . . . . . . 72

5.6 Joint trajectory controller - Position joint 3 - 6DOF alu-minium manipulator. . . . . . . . . . . . . . . . . . . . . . . . 72

5.7 Joint trajectory controller - Position joint 4 - 6DOF alu-minium manipulator. . . . . . . . . . . . . . . . . . . . . . . . 73

5.8 Joint trajectory controller - Position joint 5 - 6DOF alu-minium manipulator. . . . . . . . . . . . . . . . . . . . . . . . 73

5.9 Joint trajectory controller - Position joint 6 - 6DOF alu-minium manipulator. . . . . . . . . . . . . . . . . . . . . . . . 73

viii

Page 13: Design and control of low-cost manipulator prototypes - UiO

5.10 Inverse dynamics controller - Simulation - Position joint 1 -6DOF aluminium manipulator. . . . . . . . . . . . . . . . . . 74

5.11 Inverse dynamics controller - Simulation - Position joint 2 -6DOF aluminium manipulator. . . . . . . . . . . . . . . . . . 75

5.12 Inverse dynamics controller - Simulation - Position joint 3 -6DOF aluminium manipulator. . . . . . . . . . . . . . . . . . 75

5.13 Inverse dynamics controller - Simulation - Position joint 4 -6DOF aluminium manipulator. . . . . . . . . . . . . . . . . . 75

5.14 Inverse dynamics controller - Simulation - Position joint 5 -6DOF aluminium manipulator. . . . . . . . . . . . . . . . . . 76

5.15 Inverse dynamics controller - Simulation - Position joint 6 -6DOF aluminium manipulator. . . . . . . . . . . . . . . . . . 76

5.16 Inverse dynamics controller - Simulation - Position joint 1 -5DOF onyx manipulator. . . . . . . . . . . . . . . . . . . . . . 76

5.17 Inverse dynamics controller - Simulation - Position joint 2 -5DOF onyx manipulator. . . . . . . . . . . . . . . . . . . . . . 77

5.18 Inverse dynamics controller - Simulation - Position joint 3 -5DOF onyx manipulator. . . . . . . . . . . . . . . . . . . . . . 77

5.19 Inverse dynamics controller - Simulation - Position joint 4 -5DOF onyx manipulator. . . . . . . . . . . . . . . . . . . . . . 77

5.20 Inverse dynamics controller - Simulation - Position joint 5 -5DOF onyx manipulator. . . . . . . . . . . . . . . . . . . . . . 78

5.21 Inverse dynamics controller - Position joint 1 - 5DOF onyxmanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.22 Inverse dynamics controller - Position joint 2 - 5DOF onyxmanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.23 Inverse dynamics controller - Position joint 3 - 5DOF onyxmanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.24 Inverse dynamics controller - Position joint 4 - 5DOF onyxmanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.25 Inverse dynamics controller - Position joint 5 - 5DOF onyxmanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.26 Setup for testing the repeatability of the two manipulators,with the dial indicator in the bottom right side of the image. 83

B.1 Inverse dynamics controller - Position joint 1 - 5DOF onyxmanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

B.2 Inverse dynamics controller - Velocity joint 2 - 5DOF onyxmanipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

B.3 Inverse dynamics controller - Acceleration joint 2 - 5DOFonyx manipulator. . . . . . . . . . . . . . . . . . . . . . . . . . 98

B.4 Inverse dynamics controller - Simulation - Velocity joint 2 -6DOF aluminium manipulator. . . . . . . . . . . . . . . . . . 99

B.5 Inverse dynamics controller - Simulation - Acceleration joint2 - 6DOF aluminium manipulator. . . . . . . . . . . . . . . . 99

ix

Page 14: Design and control of low-cost manipulator prototypes - UiO

x

Page 15: Design and control of low-cost manipulator prototypes - UiO

List of Tables

2.1 Various research manipulators with their specifications,various features and price point. . . . . . . . . . . . . . . . . 34

2.2 Various research manipulators using stepper motors withtheir specifications, various features and price point. . . . . . 34

4.1 Weight and price for the structural components of the6-DOF robot prototype made out of aluminium (Servosnot included in the calculations). Prices taken fromwww.CrustCrawler.com and www.trossenrobotics.com. . . . 49

4.2 Weight and price for the 3D printed structural componentsof the 6-DOF robot prototype in onyx material w/ carbonfiber reinforcement (Servos not included in the calculations). 49

4.3 Weight and price reduction between the 3D printed struc-tural components of the 6DOF robot prototype in Onyx ma-terial w/ carbon fiber reinforcement and the structural com-ponents of the 6DOF aluminium prototype. The * denotes anincrease in link weight/price. . . . . . . . . . . . . . . . . . . 50

4.4 Weight and price for the 3D printed structural componentsof the 5-DOF robot prototype in Onyx material w/ carbonfiber reinforcement (Servos not included in the calculations). 50

4.5 Torque requirements for each joint in the 5DOF onyxmanipulator prototype. The red colored value in the tabledenotes exceeded available torque. . . . . . . . . . . . . . . . 52

4.6 Torque requirements for each joint in the 3D printed 6DOFonyx manipulator prototype. . . . . . . . . . . . . . . . . . . 52

4.7 Torque requirements for each joint in the 6DOF aluminiummanipulator prototype. . . . . . . . . . . . . . . . . . . . . . . 52

5.1 Table containing the calculated RMS error in radians for thetrajectory tracking in the joint trajectory controller (JTraC)and inverse dynamics controller (InvDyn) for the 5DOFonyx manipulator and 6DOF aluminium manipulator. The"Sim" at the end of the InvDyn stands for simulation, while"Real" stands for real life experiment. . . . . . . . . . . . . . . 81

5.2 Table containing the calculated and measured accuracy ofthe 5DOF onyx manipulator and 6DOF aluminium manipu-lator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

xi

Page 16: Design and control of low-cost manipulator prototypes - UiO

5.3 Measured repeatability of the 6DOF aluminium manipulatorand the 5DOF onyx manipulator. . . . . . . . . . . . . . . . . 82

5.4 Specifications of the three robot manipulator prototypes.The "*" denotes estimated value. . . . . . . . . . . . . . . . . 83

xii

Page 17: Design and control of low-cost manipulator prototypes - UiO

Preface

This thesis originated from my passion for learning robotics, and from thecuriosity and desire to develop robots from scratch. This master thesis iswritten at the Department of Informatics, at the University of Oslo. I amgrateful for having the opportunity to take my master in collaboration withthe research group Robotics and Intelligent Systems (ROBIN).

First, I would like to thank my main supervisor, Kim Mathiassen, forhelping me understand the theoretical background of my research, and be-ing always available when I needed help. His advice and ideas have beeninvaluable are very much appreciated.

I would also like to thank both PhD student Jørgen Halvorsen Nord-moen for all the times he helped me solve key problems that would keepme from going further with my research, and engineer Vegard Søyseth forthe help he provided with 3D printing and suppling the necessary hard-ware for the robots.

Thanks also go to my other supervisors Kyrre Glette for providing thepractical information and administrative part of the thesis, and KristianLund for all the moral support he offered during our time together at myprevious workplace, Sonitor Technologies AS.I also want to thank Sonitor Technologies AS for supplying additional hard-ware needed to conduct my research.

And last, but not least i would like to thank my girlfriend for all herpatience and love towards me, and supporting me throughout my entirestudies, especially during my thesis.

xiii

Page 18: Design and control of low-cost manipulator prototypes - UiO

xiv

Page 19: Design and control of low-cost manipulator prototypes - UiO

Chapter 1

Introduction

Even though the price of automation has gone down in recent years, manyrobotic manipulators with good performance are still expensive, mainlydue to the high cost of precise high-end actuators but also due to cus-tom made rigid links, together with complex motion control algorithmsimplemented on the robotic systems. These are the main reasons that haskept and still keeps many people, organizations and small companies awayfrom robotics. The high price tag of a robot manipulator for educationalpurposes, for example, is preventing schools from teaching students robot-ics in a practical way in order to visualize the result of the complex equa-tions involved in manipulator motion. For young hobbyists might be evenmore unaffordable to set in motion their passion for robotics and exploretheir creativity. Small companies are also prevented from either automat-ing small tasks or accelerate the development of their products by testingprototypes in-house.

Although a manipulator with many degrees of freedom (DOF) could bevery flexible and easily adapted to all sorts of tasks [1], it could have toomuch functionality for some tasks and may not be worth the investment inthe early stages.

A modular manipulator that one could build depending on the com-plexity of the task and payload requirements would be much more pre-ferred. 3D printing can help facilitate modularity in an easier, faster, lessmessy and less expensive way than machining can. Carbon fiber rein-forced 3D printed parts that offer a higher strength-to-weight ratio thanaluminium are now possible to manufacture straight from your desk.

Space is another thing worth considering since usually, in high perform-ing robots that can move high loads, the robot links and actuators are quitelarge. When the need for higher payloads arises, it would be very practicalto add an extra motor at the robot joint that is most affected by the addedload in order to increase its lifting capacity.

Either buying or building a cheap robot manipulator with fairly good

1

Page 20: Design and control of low-cost manipulator prototypes - UiO

actuators that provide at least position feedback and then applying amotion control algorithm that could follow a given trajectory [1] withdecent precision could be appealing, since most commercial robots like theones from Trossen Robotics or CrustCrawler Robotics that sell manipulatorarms for under 5000$ do not come with a motion control solution and thereis no data on performance evaluation for these robots. Research robotslike the one in [2], with an estimated manufacturing cost of roughly $4000,do have performance evaluation but no motion control algorithm. It isthus difficult to evaluate their performance against more expensive robotsolutions that have advanced motion control algorithms.

Robot manipulators can be evaluated based on dimensions such asmotor backlash [3], max payload, repeatability, speed, accuracy, cost and soon. But the most important dimensions that define a robot’s performanceare accuracy and repeatability.

There are many factors to consider when the objective is achieving ahigh performing robot, but choosing proper motors, rigid links and imple-menting accurate control algorithms has a huge impact in performance.

There are a variety of different motion control algorithms nowadaysbut during the last decades, the Proportional-Integral-Derivative controlalgorithm (PID[4]) has been widely used because of its less complex struc-ture, easy implementation and fairly good performance. Even though thisalgorithm provides good performance at low speeds it does not take intoaccount the coupling and nonlinear effects of the robotic system dynam-ics [1] that arise at higher speeds. Another disadvantage of the PID is thatit does not handle model imprecision, uncertainties or payload variations.In order to eliminate the drawbacks of the PID, more sophisticated controlstrategies that take into account the nonlinearities and disturbances fromthe environment are needed. Such strategies involve estimation of the iner-tial parameters of the robotic system like mass, center of mass and momentsof inertia by using either force-torque sensors at the joints of the manipu-lator that measure the joint forces or torques and relate them linearly to theinertial parameters or adaptive inverse dynamics control algorithms thatuse feedback loops to detect and correct for these disturbances and nonlin-earities. Good simulation models of the manipulator motions are requiredin order to examine the control methods used.

Based on the requirements for a high performance low-cost manipu-lator arm, this thesis conducts experiments with both designing and build-ing different robot configurations from scratch, and implementing bothsimple and advanced control algorithms to test their performance in bothsimulations and in the real world. Exploration of efficient ways to improveperformance in low-cost manipulators by exploiting the properties of dif-ferent structural materials used in manufacturing of robotic links togetherwith the use of available open-source software is conducted in this thesis.

2

Page 21: Design and control of low-cost manipulator prototypes - UiO

1.1 Motivation

Us humans are very much dependent on our dexterous hands every dayin order to complete different complex tasks. Usually the more hands wehave at our disposal the faster and more efficient our tasks get done, or inother situations the tasks are simply too complex to be carried out by oneperson. For example mounting a TV on the wall might require one personto hold the wall mount in place while another person attaches it.

The most visible benefits of robotics can be seen in the health care de-partment, where robots like the da Vinci Surgical Care, made by theAmerican company Intuitive Surgical, have been a breakthrough in min-imally invasive surgery. It allows the surgeons hand movements to betranslated into smaller, more precise movements with the help of the sys-tem´s robotic arms, able to perform various types of surgeries without theshaking effect of the human hand[5], [6]. But the benefits do not stop atsurgeries.

Assistive robots can help people with disabilities achieve goals thatthey, on their own, can not. Having a robotic arm mounted on a wheel-chair can help people with limited arm or hand function achieve a moreindependent life. Such robotic arms can be controlled via a joystick, anumpad or any other type of controller and make eating and drinking pos-sible without a human assistant. This will also improve their mental healthby making themselves not feel so helpless anymore.

Research in low-cost robotics can have numerous advantages in bothaccelerating human evolution by making robots more widely adopted andmaking assistive robots more affordable for everyone.

1.2 Outline

The thesis is composed of six chapters: Introduction, Background, Engin-eering methods, processes and tools, Robot design, manufacturing andcontrol, Robot control, experiments and results, and Discussion.

• Background - gives a description of actuators and sensors used inrobotic manipulators, an introduction to the theory used in the thesiswork, together with an overview of various low-cost and high-costmanipulators and their characteristics.

• Engineering methods, processes and tools - provides a descriptionof methods and processes used to construct the manipulator proto-types, and the necessary tools for designing, programming and test-ing the proposed manipulators.

• Robot design, manufacturing and control - provides a more in depthdescription of the factors involved when designing a manipulator

3

Page 22: Design and control of low-cost manipulator prototypes - UiO

from scratch and the necessary computations performed in order toimplement the controllers from within the framework used.

• Robot control, experiments and results - outlines the experimentsperformed on both the physical robots and in the simulation, togetherwith short discussions where needed.

• Discussion - contains discussions about important areas in the thesisand some general discussions along with a conclusion and proposedfuture work.

4

Page 23: Design and control of low-cost manipulator prototypes - UiO

Chapter 2

Background

2.1 Actuators and sensors

Actuators and sensors are an important aspect in achieving accuratemotion control of robots, as discussed in the sections below. Choosing theright actuator with the right sensor has a huge impact on the performanceof the robot.

2.1.1 Actuators

Motion in a manipulator is achieved by the use of actuators. The mostcommonly used actuators in robot arms are servomotors [3] because oftheir control versatility. Even though stepper motors [7] can have betterprecision than servomotors and are actually used in robot manipulatorsbecause of their low cost, they are too large in size for the torque theyproduce. Stepper motors are only suitable for low speed tasks because theylose torque at high speeds.

The problem with servomotors is that they typically provide highspeeds with low torques and manipulator joint motions require low speedswith high torques and thus transmission gears [3] are used in order totransfer the power from the motor to the joint. And this leads to thedrawback of the servomotor which is friction and backlash effects dueto transmission gears, although harmonic drives [8] can be used for gearreduction and increase rotational speed. These transmission effects aredifficult to model and lead to problems in motion control.

Based on the manipulator size and the load it needs to carry there aretwo types of servomotors being used: electric servomotors for small sizedmanipulators carrying light loads and hydraulic servomotors for largemanipulators carrying heavy loads.

2.1.2 Sensors

Different useful and common sensors are briefly presented below toillustrate their strengths, weaknesses and possible use case in robotics.These sensors are explained in more detail by Kurfess [7].

5

Page 24: Design and control of low-cost manipulator prototypes - UiO

Rotary Incremental Encoder

Incremental Encoders are the most widely used position feedback sensorsin robotic systems. In the case of revolute joints, rotary encoders are usedto measure the angular position and direction of the motor.

A glass or metal disk with both transparent and opaque regions isplaced on, for example, a motor shaft while a light source is placed onone side of the disk and a photodetector on the other side. When the diskis spinning, the light reaching the photodetector will be interrupted andbased on this, a signal will be created and used as position feedback.

Tachometer

A tachometer is an incremental encoder which consists of one photode-tector, used to determine the rotational speed of the shaft in for examplea motor, from frequency pulses. But the output of a tachometer does notindicate the direction of rotation. The use of two photodetectors will makepossible determining both position and direction. Encoders that containtwo photodetectors er called quadrature encoders.

Absolute Encoder

Absolute encoders are among the most accurate, if not the most accurateposition encoders used in servomotors. They are more complex and offera more robust position measuring of the rotating shaft. They are similarto incremental encoders but the number of transparent regions is muchhigher. This number corresponds to the binary resolution of the encoder.The binary output encodes the absolute position of the motor shaft. Havingthe binary resolution large makes the encoder more accurate, but at theexpense of an increase in cost.

Resolver

A resolver is a type of analog displacement sensor used to determineabsolute position over one revolution. It is mostly a transformer that usestwo windings to determine the position of the motor shaft. They are usedtypically in robot systems to provide joint feedback.

Force-torque sensors

Force and torque sensors are very important for robot control purposes.Their importance is discussed in section 4 below.

The way they work is by indirect measurement of the deformation of astrain gauge or a piezoelectric material, caused by an applied mechanicalstrain. In piezoelectric sensors the strain produces an electrostatic chargethat is converted to output voltage. That voltage is then used to measurethe forces and torques.

6

Page 25: Design and control of low-cost manipulator prototypes - UiO

Force-torque sensors are mostly used at the manipulator’s wrist inorder to measure the three components of force and three components oftorque of the load.

2.2 Manipulator kinematic configuration

Depending on the task a robot should perform, there are different geomet-rical configurations of a robot’s joints that are more suitable than others.There are two types of joints that are primarily used in robotics: revol-ute joints and prismatic joints [1]. The number of revolute or prismaticjoints in a manipulator will define its DOF. There are various types of ro-bot configurations which consist of either revolute joints, prismatic jointsor a combination of both, each with their advantages and disadvantages.Usage of either one or the other comes always with a trade-off betweenflexibility, footprint and load capacity, among others. Most manipulatorsused in both research and in the industry have between six and three DOFand are categorized based on the first three DOF. The main categories are:articulated (RRR), spherical (RRP), SCARA (RRP), cylindrical (RPP) andCartesian (PPP)[9]. The "R" stands for revolute joint and the "P" stands forprismatic joint. Deciding which manipulator configuration to use dependson its workspace. In robotics, workspace refers to the volume of space thatthe end-effector can reach [1].

Articulated (RRR) This type of manipulator design features only revol-ute joints and it is called a revolute or anthropomorphic manipulator. Arepresentation of this type of manipulator can be seen in Figure 2.1 and itsworkspace can be seen in Figure 2.2.

Spherical (RRP) By replacing the third joint in the articulated manipu-lator with a prismatic joint, the result will be a spherical manipulator con-figuration. It is called spherical because of its spherical coordinate systemthat relates the end-effector’s position with respect to a frame whose originis located at the intersection of three z-axis. A visual representation of thespherical manipulator can be seen in Figure 2.3. From Figure 2.4, it can beobserved that the workspace of a spherical manipulator is slightly reducedcompared to the RRR one.

SCARA (RRP) The SCARA manipulator, or Selective Compliant ArticulatedRobot for Assembly, is a very popular RRP manipulator design used spe-cifically for assembly tasks. Pick and place tasks of heavy load can also beof great interest as both revolute joints in this manipulator do not requirepowerful motors to sustain the heavy load as most of the weight can besupported by ball bearings placed between the actuator and the joint. Theonly downside of the SCARA compared to the spherical manipulator is amore reduced workspace, mostly dependent on the height of the first link.Figures 2.5 and 2.6 displays the geometry and workspace of this manipu-lator.

7

Page 26: Design and control of low-cost manipulator prototypes - UiO

Figure 2.1: A representation of a RRR manipulator configuration.

Figure 2.2: Workspace of the RRR manipulator.

Cylindrical (RPP) As can be seen from Figure 2.7, this type of manip-ulator has only its first joint as revolute while the other two are prismatic.The workspace of this manipulator is similar to that of the SCARA but witha height offset though, making it suitable for tasks involving manipulationof objects located at a certain height. The workspace of this manipulator isshown in Figure 2.8.

8

Page 27: Design and control of low-cost manipulator prototypes - UiO

Figure 2.3: A representation of the spherical manipulator.

Figure 2.4: Workspace of the RRP or spherical manipulator.

9

Page 28: Design and control of low-cost manipulator prototypes - UiO

Figure 2.5: A representation of the SCARA manipulator.

Figure 2.6: Workspace of the SCARA manipulator.

10

Page 29: Design and control of low-cost manipulator prototypes - UiO

Figure 2.7: A representation of the cylindrical manipulator.

Figure 2.8: Workspace of the cylindrical manipulator.

11

Page 30: Design and control of low-cost manipulator prototypes - UiO

Cartesian (PPP) One very popular manipulator configuration used intable-top assembly applications, material transfer as well as 3D printers,due to its simplicity and robustness, is the Cartesian manipulator or PPPmanipulator. The workspace and visual representation of the Cartesianmanipulator can be seen in Figures 2.10 and 2.9 respectively.

Figure 2.9: The Cartesian (PPP) manipulator.

Figure 2.10: Workspace of the Cartesian manipulator.

12

Page 31: Design and control of low-cost manipulator prototypes - UiO

2.3 Inverse kinematics

When dealing with a task that a robot should perform, the very first steptowards solving it is usually for the robot to move from one position toanother. By robot movement we actually mean end-effector movement,since the end-effector is the point of interaction between the robot and theenvironment.

Figure 2.11: A two-link planar manipulator with multiple inverse kin-ematic solutions.

Given desired end-effector positions we need to calculate the angles ofeach joint, needed to achieve those positions [9]. Inverse kinematics is thusthe problem of finding the values of the joint variables θ1, θ2, ..., θn relatingto x, y, z coordinates of the end-effector.

An issue with solving the inverse kinematics of a manipulator is that asolution may not be easy found due to the non-linearities of the equations.Another aspect is that there could be either no solution, due to unreachablecoordinates, or multiple solutions for joint angles that satisfy the desiredend-effector position. For a given (x,y) coordinates of an end-effector seenin the two-link planar manipulator from Figure 2.11, we can have multiplesolutions for the inverse kinematics, given reachable coordinates.

The calculation of the inverse kinematics for this manipulator ispresented below and is based on the diagram of Figure 2.12. Applyingthe Law of Cosines we can express the angle θ2 by:

cos θ2 =x2 + y2 − a2

1 − a22

2a1a2:= D (2.1)

This equation helps us find θ2 as:

θ2 = cos−1(D) (2.2)

13

Page 32: Design and control of low-cost manipulator prototypes - UiO

Figure 2.12: Diagram for solving the joint angles based on the end-effectorcoordinates.

The only problem with Equation (2.2) is that it restricts the inversekinematics to only one solution. A better way of finding θ2 is bymaking some observations. Based on Equation (2.1), and applying basictrigonometry we can express sin θ2 as:

sin θ2 = ±√

1− D2 (2.3)

giving θ2 as:

θ2 = tan−1 ±√

1− D2

D(2.4)

Because we now have a positive and negative value of θ2 we can relatethese values to the elbow up and elbow down configurations of the armthat satisfy the inverse kinematics in Figure 2.11. Solving the inversekinematics of multi-DOF manipulators always starts with calculating theangle of the last joint and working downwards towards the first joint,or base joint. The reason for this is that the proximal joint values aredependent on the distal joint values. This can be seen from the calculationof θ1 in Equation (2.5).

θ1 = tan−1(xy)− tan−1(

a1sin θ2

a1 + a2cos θ2) (2.5)

14

Page 33: Design and control of low-cost manipulator prototypes - UiO

2.4 Dynamics of rigid robots

Being able to establish the dynamic model of a robot is of high importancein order to simulate the motion of the robot and analyze the robot structure.In order to understand the dynamics equations of a robot, it is necessaryto understand the Euler-Lagrange equations [10] and the Newton-Eulerequations [1] which are used to derive it. The Lagrangian formulation is an"energy-based" approach, while the Newton-Euler formulation is a "forcebalance" approach to dynamics.

2.4.1 Euler-Lagrange equations

Calculating the forces and torques of an system in order for motion to takeplace requires differentiation of the total kinetic and potential energy of thesystem. The Lagrangian, denoted by L is the difference between the kineticenergy K and potential energy P of the system.

L = K− P (2.6)

Computing the torque for a given trajectory of a manipulator requiresthat the position, velocity and accelerations of the joints are known. Thetotal kinetic energy of a manipulator is the sum of the kinetic energy foreach of its links. Consider the kinetic energy of the ith link, ki [1] expressedas

ki =12

mivTCi

vCi+

12

iωTi

Ci Iiiωi (2.7)

where mi is the mass of the link, vCiis the velocity of the center of mass

of link i, iωi is angular acceleration of link i with respect to the ith linkreference frame, and Ii is the moment of inertia of link i. The first term ofthis equation, on the right side, is the kinetic energy as a result of linearvelocity of the link’s center of mass and the second term is the kineticenergy as a result of angular velocity of the link. We can thus write thetotal kinetic energy of the manipulator as

K =n

∑n=1

ki (2.8)

It is important to note that vCiand iωi are functions of q and q, where q =

(q1, ... , qn)T and q = (q1, ... , qn)

T are two sets of generalized coordinates[11], where we can for example let θ = q denote the position vector for themanipulator joints and θ = q denote the velocity vector for the manipulatorjoints. We can thus always write the total kinetic energy for rigid-linkrobots as a function of q and q as follows:

K(q, q) =12

qT M(q)q (2.9)

where M(q) is the mass matrix, a n×n matrix, also called the inertia matrix[11]. It is worth mentioning that the kinetic energy must always be positive

15

Page 34: Design and control of low-cost manipulator prototypes - UiO

and the mass matrix must thus be a symmetric and positive definite matrixfor each q ∈ Rn.

The potential energy of the ith link, pi [1] can be written as

pi = −mi0gT 0PCi

+ pre fi(2.10)

where 0g is the 3×1 gravity vector, 0PCiis the vector that locates the center

of mass of the ith link with respect to the reference frame of link 0, and pre fiis a constant chosen such that the minimum value of pi is zero. Summingup the potential energy for each of the manipulators links, gives us the totalpotential energy of the manipulator:

P =n

∑i=1

pi (2.11)

Given that the vectors 0PCiin (5) are dependent on the joints position vector

q, the potential energy is thus described as a function of the position vectorq.

The Lagrangian can thus be written as

L(q, q) = K(q, q)− P(q) (2.12)

And the equations of motion, also called the Euler-Lagrange equations[10], for the manipulator are expressed as

ddt

∂L∂q− ∂L

∂q= τ (2.13)

where τ is the n×1 generalized forces [ortega1988adaptive] vector whichwe denote in our case as the vector of actuator torques.

By solving the left-hand side of (8), evaluating the result and groupingthe terms that have a common dependency on certain generalized coordin-ates we can then express the dynamic equations [ortega1988adaptive] as

M(q)q + C(q, q)q + g(q) = τ (2.14)

where M(q) is the mass matrix, C(q, q) is the vector containing the Coriolisand centrifugal forces, and g(q) is the vector containing the gravitationalforces. The first term in the dynamic equations was defined by groupingthe terms from the equations of motion involving the second derivativeof the generalized coordinates. The second term involves quadratic termsof the first derivatives of q. This term is further classified into two parts,where the quadratic terms containing q2

i are called the centrifugal termsand the quadratic terms containing the product qi qj are called the Coriolisterms. The third term of the equation contains only terms involving the qgeneralized coordinates.

2.4.2 Newton-Euler equations

The difference between the Newton-Euler formulation and the Lagrangianformulation is that the former provides a more computational effective way

16

Page 35: Design and control of low-cost manipulator prototypes - UiO

of deriving the equations of motion and is more suitable for robots withmany degrees of freedom [12].

The Newton-Euler formulation is based on the dynamics of a singlerigid body. It thus treats each of the manipulator links separately and usesthe dynamics equations to describe both their linear and rotational motion[9].

Movement of a link requires that a force is applied to it, which interm imposes an acceleration of the link. The acceleration depends onthe characterization of the link’s mass distribution [1]. Therefore, in orderto determine the forces acting on each link we need knowledge of theacceleration and the mass.

Using Newton’s equation [1] we can describe the linear acceleration ofthe ith link center of mass as

Fi = mvCi(2.15)

where m is the link mass and vCiis the acceleration of the link’s center of

mass.Using Euler’s equation [1] for a rotating rigid body we can describe the

moment acting on link i, causing its motion by the equation

Ni =Ci Iωi + ω× Ci Iωi (2.16)

where Ci I is the inertia tensor, also called rotational inertia matrix [12], ofthe ith link written in the frame {Ci}, with origin at the link’s center of massand has the same orientation as the link frame, {i}.

There are two types of algorithms used to determine the torque at thejoints. One is the iterative Newton-Euler dynamics algorithm [1] whichcomputes the link velocities and accelerations recursively starting from link1 to link n and then the forces and torques acting on each link, together withthe joint actuator torques are computed in the same way but starting fromlink n and ending at link 1.

The closed-form Newton-Euler dynamics equations [1] give a betterunderstanding of the significance of the gravity effects compared to theinertial effects, which can be described using closed-form equations.

2.4.3 Iterative Newton-Euler dynamics algorithm

This formulation considers the inverse dynamics problem of computingthe joint torques for an n-link open chain manipulator given joint positions,velocities and accelerations. In other words, it computes the joint torquescorresponding to a given trajectory. Knowledge of the manipulatorkinematics and mass-distribution information for each of its links are alsorequired.

The algorithm for solving this problem consists of a forward andbackward iteration. The idea is breaking the manipulator structure downand analyzing each of the links separately in order to eliminate the internalforces acting on the links.

17

Page 36: Design and control of low-cost manipulator prototypes - UiO

In the forward iteration, positions, velocities and accelerations of eachlink are propagated from the base link to the last link while in the backwarditeration the forces and torques experienced by each link are propagatedfrom the last link to the base link.

Forward propagation to compute velocities and accelerations

As velocities are propagated, both linear and angular accelerations of thecenter of mass of each link are computed and from the accelerations, theinertial forces acting on the links are in terms computed. This is done inan iterative way by starting from the first link and moving in successionthrough each link until the last link is reached.

The propagating angular velocity, for rotational joint i + 1, is given by:

i+1ωi+1 = i+1i R iωi + θi+1

i+1Zi+1 (2.17)

where i+1ωi+1 is the angular velocity of link i+ 1 written in terms of its ownframe, i+1

i R is the rotation matrix that describes frame i relative to i + 1, θ isthe joint rates, and Z is the z-axis unit vector of the i + 1 coordinate systemwritten in terms of its own coordinate system, about which the rotation isapplied.

By taking the derivative of the velocity while at the same time applyingthe equations for expressing the rotation of the coordinate frame of onelink relative to its neighboring link frame, we obtain the equation fortransforming the angular acceleration from link i to link i + 1 [1]:

i+1ωi+1 = i+1i R iωi +

i+1i R iωi × θi+1

i+1Zi+1 + θi+1i+1Zi+1 (2.18)

If joint i + 1 is prismatic, then we only have linear accelerations and theequation simplifies to:

i+1ωi+1 = i+1i R iωi (2.19)

The linear acceleration of each link-frame origin is calculated using:

i+1νi+1 = i+1i R[iωi × iPi+1 +

iωi × (iωi × iPi+1) +iνi] (2.20)

For joint i + 1 prismatic, the equation becomes:

i+1νi+1 = i+1i R[iωi × iPi+1 +

iωi × (iωi × iPi+1) +iνi]

+ 2i+1ωi+1 × di+1i+1Zi+1 + di+1

i+1Zi+1

(2.21)

where iPi+1 is the position vector relating frame i + 1 origin to framei, di+1 and di+1 is the velocity and the acceleration respectively, of thedisplacement of joint i + 1. Besides the linear and angular velocities andaccelerations of the link origins, the linear acceleration of the center of massof each link is also needed, and can be found as:

iνCi= iωi × iPCi

+ iωi × (iωi +iPCi

) + iνi (2.22)

After computing the linear and angular accelerations of the mass center ofeach link in the manipulator chain, equations (2.15) and (2.16) can then be

18

Page 37: Design and control of low-cost manipulator prototypes - UiO

applied in order to compute the inertial forces and torques acting at thecenter of mass of each link.

Backward propagation to compute forces and torques

After computing the forces and torques acting on each link, the jointtorques that will create these net forces and torques are then computed.This can be done by writing a force-balance and moment-balance equationbased on a free body diagram, by taking the sum of the forces acting oneach link and taking the sum of the torques about the center of mass ofeach link respectively.

We know that for each link there are forces and torques exerted on themby neighbouring links while at the same time also experiencing an inertialforce and torque.Force-balance equation:

iFi =i fi − i

i+1R i+1 fi+1 (2.23)

where fi is the force exerted on link i by link i− 1.Torque-balance equation:

iNi =ini − ini+1 + (−iPCi

)× i fi − (iPi+1 − iPCi)× i fi+1 (2.24)

where ni is the torque exerted on link i by link i− 1.

Rearranging equation (2.23) and inserting it in equation (2.24) togetherwith some rotation matrices we get the relation:

iNi =ini − i

i+1R i+1ni+1 − iPCi× iFi − iPi+1 × i

i+1R i+1 fi+1 (2.25)

In order to create an iterative algorithm for solving these forces andtorques we need to express them in an iterative form:

i fi =ii+1R i+1 fi+1 +

iFi (2.26)ini =

iNi +ii+1R i+1ni+1 +

iPCi× iFi +

iPi+1 × ii+1R i+1 fi+1 (2.27)

To express the joint torques we extract the Z component of the torqueapplied by one link on its neighboring link:

τi =inT

iiZi − for revolute joint i (2.28)

τi =i f T

iiZi − for prismatic joint i (2.29)

Inclusion of gravity in the dynamics algorithm

The missing part in the iterative Newton-Euler dynamics algorithm isthe gravity. The effects of gravity on the links can easily be added byspecifying that 0ν0 = G, where G is the is the magnitude of the gravityvector.

19

Page 38: Design and control of low-cost manipulator prototypes - UiO

2.4.4 Properties of the dynamic equations

When we are talking about complex robotic systems with multiple degreesof freedom, the dynamic equations become complex and non-linear. Butfortunately they have some proprieties that make the calculations easier, asdescribed by Ortega & Spong [11].

The first property states that the mass matrix M(q) is symmetric andpositive definite, and both M(q) and M(q)−1 are uniformly bounded as afunction of q ∈ Rn.

The second property states that each degree of freedom has anindependent control input.

The third property states that parameters like the link masses, centersof mass and moments of inertia are expressed as coefficients to functions ofthe generalized coordinates.

The forth property consists of defining a skew symmetric matrix

N(q, q) = M(q)− 2C(q, q) (2.30)

based on the symmetry of the mass matrix M.

2.5 Motion control of rigid manipulators

Moving a manipulator arm in its workspace in order for the end-effector toreach certain points in a path without considering orientation preferenceor any other specifications, is a task being taken care of by the arm’sinverse kinematics [1]. But specifying a time frame for reaching the pointsin the path, also known as a trajectory, requires knowledge of velocityand acceleration even though we can only input torque to the actuators.Although this task is in theory taken care of by the equations of motion,there are some factors that influences the computed torque values highly.Motion control builds upon the equations of motion to determine theactuator torques in order to accurately follow the given trajectory bytaking into account model uncertainties together with nonlinearities anddisturbances from the environment. Atkeson et al. [13] emphasize thatestimating the inertial parameters of the links and loads of a manipulatoras accurate as possible will be the key in achieving precision in movement.They also mention how these parameters are unknown even for the robotmanufacturers.

Since the moment of inertia of a manipulator link rotating about oneend is dependent on the mass of the link and the distance between its otherend and the center of the axis its being rotated about, it is very importantto know these parameters and can be fairly easy to measure. But havingmultiple links connected together where each link is rotating about its ownaxis on the other hand, becomes exponentially more difficult to calculatethe moment of inertia because relying only on each of their masses andlengths does not help at all. For calculating the moments of inertia of amulti-degree of freedom manipulator requires knowledge of center of massand that is not so easy to calculate [13]. This applies also for load, since

20

Page 39: Design and control of low-cost manipulator prototypes - UiO

adding a load at the wrist of the manipulator will simply be defined as anextension of the last link so it is a good idea to incorporate the load inertialparameters into the inertial parameters of the last link [13].

It is important to note that estimating the inertial parameters of amanipulator would have to involve movement, although determining theload mass and center of mass could be done when the manipulator is at rest,but it requires that certain parameters are known beforehand, as describedin the subsection below.

2.5.1 Previous work on estimation of inertia parameters of ma-nipulator links and loads

There have been various methods used in estimation of the inertiaparameters of manipulator loads and links during the last decades. Thesemethods are mostly based around the same idea but applied in differentways and utilize the same tools but in different places.

Load estimation methods

Paul [14] presented two methods for estimating the load mass at rest usinga force-torque sensor at the wrist. The drawbacks of these methods isthat one method required knowledge of the joint torques and in the other,knowledge of the of the forces and torques at the wrist were required.Center of mass and load moments of inertia were not identified.

Coiffet [15] performed estimation of the load mass and center of massat rest using torque sensors at the joints. Estimation of the load moments ofinertia was performed by either moving the manipulator joints one axisat a time, or by applying test torques. But this method did not proveefficient due to the fact that the link masses and mass moments have ahigh impact on the measurements and it was thus difficult to extract thecontribution of the load. A force-torque sensor at the wrist is a moreeffective way of accurately measuring the load parameters in order forthe inertial parameters of the other links to not have an effect on themeasurements.

Olsen & Bekey [16] used a force-torque sensor at the wrist to determinethe load parameters but without any special motions.

Murkejee [17], Murkejee & Ballard [18] and Atkeson [13], presentedsimilar methods for load parameters estimation, where the load wasconsidered an integral part of the last link (wrist) and thus force-torquesensor at the last link was used for the measurements. The measurementswere taken during general motion of the link. But since only the procedureused by Atkeson was actually verified we will focus our discussion on hismethod.

Link estimation methods

Some of the load estimation methods described above were also appliedfor link estimation directly, providing a sensor at each joint, while others

21

Page 40: Design and control of low-cost manipulator prototypes - UiO

used only the wrist sensor for the last link parameters and used the torquedetermined from current measurements of the actuators of the other links.Both the Lagrangian and the Newton-Euler formulations were used forestimating the inertial parameters in the methods described below.

Mayeda et al. [8] used three sets of special test motions to estimatethe coefficients of a closed-form Lagrangian dynamics formulation. Eachlink has ten inertial parameters and all of them were added into thesecoefficients. The only drawback is that these coefficients are repetitiveand sensitive to numerical errors. But the good news is that every oneof these coefficients can be identified. They used only movement from atmost two joints at a time and related the servo motor voltage as torque. ButAtkeson suggested that the drawback with this method is that transmissionof dynamic effects, related to rotor inertia and friction, from the distal linksconnected to the one the torque is measured, produce noise and that theiralgorithm did not take this noise into account.

Murkejee applied its load estimation method directly to link estimationusing full force-torque sensing at each joint. But this is impractical andunnecessary because of joint force-torque sensing about the rotation axis.He did not talk about the issue that some inertial parameters can not beidentified. Also, no verification of the algorithm in neither simulation orpractice for neither load estimation or link estimation has been performed.

Olsen & Bekey proposed a link estimation procedure using joint-torquesensing and special test motions with single joints. But the problem of notbeing able to identify specific inertial parameters persisted. Applying least-squares estimation would then fail because it is linearly dependent on someinertial parameters that were not identified. Their method was also nottested on a practical robot or in simulation.

A hybrid link estimation procedure is presented by Neuman et al. [19],as a mixture between the Newton-Euler and Lagrange-Euler dynamicsformulation. In their article they actually mentioned the unidentifiableparameters. In this method they needed the link mass to be known.

Atkeson proposed a better method than the ones discussed above bytaking into consideration noise and other disturbances which the othermethods did not. Using the Newton-Euler formulation to express thedynamics of the manipulator and applied test motions in order to estimateboth load and link parameters. He used a force-torque sensor at the wrist tomeasure the torque at the wrist in order to estimate the load parameters andcurrent measurements at the joints for link estimation. And what separatesthis method from the rest is that they actually tested the theories in theprevious proposed methods and gave a very detailed description of theresults and discussed how model uncertainty affect the performance.

2.5.2 A Newton-Euler links and loads estimation procedure

One often used method, developed and tested by Atkeson, for estimatingthe inertial parameters is by applying the Newton-Euler equations in sucha way that it is possible to linearly relate the measured joint forces ortorques from a sensor to the inertial parameters by using acceleration-

22

Page 41: Design and control of low-cost manipulator prototypes - UiO

dependent coefficients. The way this procedure works is by treating eachlink separately, without taking the other connecting joints in consideration,then applying a torque on each link’s adjacent joint and measuring theinertia force from the acceleration of the link. In link estimation, thetorque was measured from the actuator current while in load estimationthe torque was measured using a full force-torque sensor at the wrist of themanipulator.

The load estimation procedure was applied on a MIT Serial LinkDirect Drive Arm (DDarm) and on a PUMA 600 robot, both equippedwith full force-torque sensors at their wrists although different sensors fordetermining the joint accelerations (angular accelerations).

The Puma was equipped with a joint-angle encoder which was used toderive the joint velocities and accelerations by differentiation of the anglereadings. The DDarm was equipped with a tachometer that measured theangular velocity so it was only needed to differentiate the velocity in orderto obtain the angular acceleration.

Load estimation

The load was treated as an extension of the last link and can thus beconsidered as a link estimation procedure.

Having a full force-torque sensor at the wrist which provides measure-ment of all six components of force and torque, combined with the generalmovement of the load, makes the inertial parameters easier to estimate thanfor the other links.

Adding a rigid load to the last link will simply add more mass andeffectively changing the center of mass of the link. This means that in orderto estimate the load we simply estimate the changed inertial parameters ofthe last link.

On the PUMA robot they estimated the mass and center of mass, bothat rest and during movement, while on the MIT robot it was done onlyduring movement.

When stationary, only the mass and center of mass can be identifiedbecause the wrist forces and torques are due only to gravity.

Determining the load mass by subtracting the gripper mass is easy toachieve but determining the load center of mass is more difficult becausewe do not know the center of mass of the gripper. What they did on thePUMA to work around this issue, was moving the load along the gripperapproach axis by known amounts and tracked the change in center of mass.This made it easy to compute. The load was estimated to within 10 gr andthe load center of mass within 1 mm.

When moving the robot arm, the mechanical vibrations were interferingwith the data sampled from the force-torque sensor and produced a biggeroffset in the estimation. It estimated the mass within 40 g of the actual massand the center of mass at a distance of 2 mm apart from the actual center ofmass.

Estimation of the moments of inertia only works if the manipulator ismoving and on the results from the PUMA were very inaccurate due to

23

Page 42: Design and control of low-cost manipulator prototypes - UiO

poor signal-to-noise ratio in the acceleration and force-torque data. Thetorque due to gravity was around 40 times greater than the torque due tomaximum angular acceleration of the load. This confirms that even slightamount of noise is enough to completely disturb inertia measurements.

In order to compensate for the low inertia readings, a heavier load wasused with large masses at the extremities. This would produce a largemoment in two directions and a small moment in the third. Determiningthe inertia of the gripper alone was done first and then for the added load.Subtracting the gripper inertia from the gripper plus load inertia resultedin the absolute load moments of inertia.

When they compared the measured forces and torques to thosecomputed from the estimated parameters and measured joint data, theyfound out that the two sets actually match really well, even undermechanical vibrations. This is a really important because it suggests thateven bad estimates of the inertial parameters do not have a big impacton the force and torque estimates required to follow a trajectory. This isquite true because the gravitational force components have a much higherimpact on the load, than the angular accelerations experienced by the load.

To maximize the estimation of the inertia parameters an increase in loadangular velocity is required. This will reduce the effects of errors in theestimation.

Both robots estimated the load mass and location of the center of masswith high precision but the load moments of inertia were estimated witha lot better precision on the DDarm robot because of significantly reducednoise and higher acceleration produced by the actuator.

Link estimation

For link estimation we simply calculate the total forces and torques at somejoint i by summing up all the forces and torques for all links distal to jointi. These forces and torque of a joint are two variables in a vector calledthe wrench [12]. But it is crucial that each distal wrench is transmittedacross intermediate joints in order to account for its effects at joint i. Thisis done by defining a transmission matrix based on the geometry of thelinkage. This transmission matrix contains information about the positionand orientation of link i + 1 in relation to link i.

The link joints were each equipped with a resolver and a tachometer fordetermining the angular accelerations.

The link estimation procedure was applied only on the MIT robotbecause of the higher acceleration of the actuators, and no transmissionmechanism between the links and the motors, which is supposed toproduce better estimates of the inertial parameters, being as close aspossible to an ideal rigid manipulator. Thus the ideal rigid-body dynamicsmodel for this arm was used as a reference because of non-existing jointfriction or backlash, which is usually common in manipulators.

A good match was obtained between joint torques predicted fromthe estimated parameters of the robot CAD model and the joint torquesdetermined from motor currents. Estimation from the motor currents

24

Page 43: Design and control of low-cost manipulator prototypes - UiO

was actually slightly better when compared to the ideal model, possiblybecause of modeling errors in the CAD model. Accurate joint accelerationestimates together with high angular accelerations did in fact improveinertia estimation by a high amount.

They addressed the unidentifiable inertia parameters due to con-strained motion near the base and suggested that they did not affect themotion control.

Identifiability of inertial parameters

The inertial parameters can be categorized into three categories [13]:

1. Fully identifiable2. Identifiable in linear combinations3. Completely unidentifiable

Even though some link parameters are unidentifiable because ofrestriction of motion, lack of full force-torque sensing at each joint, orrotation axis parallel with the gravity vector, they have no affect on jointtorque and can be set to 0.

In a robot with multiple links some parameters can only be identifiedin linear combinations of others because of the connections between thelinks. These parameters are thus carried down to proximal links until theidentification is completed.

2.5.3 Inverse dynamics control

The inverse dynamics control is a method developed specially for thetracking control problem [20]. Applying this method requires the completedynamics model of the manipulator.

Inverse dynamics can be applied using both Euler-Lagrange orNewton-Euler formulations. Recursive schemes based on these two for-mulations have reduced the number of calculations dramatically. Controlarchitectures that decrease computation time and increase controller band-width have been developed and can complement the advances achieved indynamics modeling.

The goal of the inverse dynamics, is to derive a nonlinear feedback con-trol law by relating the torque from equation (2.14) as a function of position,velocity and time [9]

τ = f (q, q, t) (2.31)

that we can substitute in (2.14), in order to achieve a linear closed loopsystem. Spong et al. [9] obtained a linear system by choosing the torquecontrol as:

τ = M(q)aq + C(q, q)q + g(q) (2.32)

This nonlinear control law is called the inverse dynamics control [9]. Bysubstituting (2.32) in (2.14), and taking advantage of the invertibility of themass matrix M(q), reduces the combined system to

25

Page 44: Design and control of low-cost manipulator prototypes - UiO

q = aq (2.33)

where aq is simply an input used to control the linear system. This has thusreduced the nonlinear system to a linear and decoupled system, achievingquite an impressive result. Using the assumption of Spong et al. that aqk

isa function only of qk and its derivatives, concluded that qk will be affectedby aqk

independently of the motion of the other links.Because aqk

controls a linear second order system, it was suggestedSpong et al. that an obvious design for it would be:

aq = −Kpq− Kdq + r (2.34)

where Kp and Kd are diagonal matrices with position gains andrespectively, velocity gains as diagonal elements, while r is a referenceinput.

Substituting (2.34) into (2.33) results in the closed loop linear system:

q + Kdq + Kpq = r (2.35)

This equation can now be used to track a trajectory. Considering a desiredtrajectory:

t→ (qd(t), qd(t)) (2.36)

and choosing the reference input r(t) as:

r(t) = qd(t) + Kpqd(t) + Kdqd(t) (2.37)

will make the tracking error e(t) = q− qd satisfy:

e(t) + Kde(t) + Kpe(t) = 0 (2.38)

The gain matrices, Kp and Kd are diagonal matrices, written as:

Kp = diag{ω21, ..., ω2

n}Kd = diag{2ω1, ..., 2ωn}

(2.39)

The resulting closed loop system is globally decoupled and each jointresponse is equal to the response of a critically damped linear second ordersystem with natural frequency ωi [9]. ωi determines the speed of responseof the joint, or more intuitively, the rate by which the tracking error isdiminished, also called rate of decay.

The approach presented above is a solid basis for motion control ofmanipulators, on which various other methods are derived from.

A typical inverse dynamics control algorithm can be visualized inFigure 1, adapted from Ortega & Spong, with the inner loop blockproviding feedback for the non-linear control while the outer loop blockprovides linear compensation for the tracking error.

26

Page 45: Design and control of low-cost manipulator prototypes - UiO

Figure 2.13: Inner loop/outer loop structure of non-linear control algorithm

This algorithm has different versions of implementation based oncertain assumptions and can be classified as cases [11]. These cases arethe known parameter case and adaptive case.

In the known parameter case we make the assumption that the wehave a "best-case" performance of the system and we try to eliminate thenonlinearities in the system in order to obtain a closed-loop linear anddecoupled system.

In the adaptive case, we do not know the nonlinear parameters buttry to estimate them given either acceleration measurements or bothacceleration measurements and assuming boundedness of the estimatedinverse inertia matrix or neither of them.

2.5.4 Robust and adaptive motion control

Even though the inverse dynamics approach achieves good results it doeshave a drawback. It requires that all the parameters of the system areknown exactly. This poses a problem when, for example, the parametersof a manipulator are changed because a different load is picked up. Theaccuracy of motion with the new load will degrade the heavier the loadand the greater the offset of the previous estimated position of load centerof mass. Thus a more robust and adaptive control is needed in order topreserve performance in terms of stability, tracking error and the likes,regardless of uncertainties [9].

A robust controller is designed to maintain performance specificationsunder a fair number of possible uncertainties, whereas and adaptivecontroller is designed to estimate inertia parameters on-line, which is whata classic inverse dynamics controller is lacking.

Most fundamental problems in motion control of manipulators havebeen solved around 30 years ago by focusing on their dynamics propertieslike feedback linearizability, multiple time-scale behavior and passivity [9],while others have been solved by improving the control architecture bytaking into account that some uncertainties like frictional effects in gearedmanipulators are changing with time [20].

27

Page 46: Design and control of low-cost manipulator prototypes - UiO

Robust control

In robust feedback linearization the goal is to eliminate the nonlinearities inthe manipulator equations of motion by compensating for modeling errors,unknown loads and computation errors. One method used to modifythe outer loop control in order to stabilize the system is the guaranteedstability of uncertain systems [9].

Another method is the passivity based robust control [9] that takesadvantage of the passivity and linearity of the parameters in the rigidmanipulator dynamics, and tries to modify the inner loop in order toexpress the parametric uncertainty of the system and then find a way tobound the tracking error.

Adaptive control

There are four versions of adaptive inverse dynamics control worthmentioning. One version requires measurement of joint acceleration anda way to ensure that the inverse of the estimated mass matrix is bounded[21]. The second version of the algorithm, explained by Spong & Ortega[22], does not require the boundedness condition of the estimated massmatrix by Craig et al. [21]. The third version, explained by Amestegui et al.[23], does not require the boundedness condition either, but has a differentparameter update law. The forth version, explained by Middletone etal. [24], discards the measurement of the joint acceleration but is stilldependent on the boundedness of the estimated M(q)−1 .

Other types of adaptive robot controllers, like the model-referencedadaptive control (MRAC), the self-tuning adaptive control (STAC) andthe linear perturbation adaptive control [20], are worth discussing in moredetail.

The model-referenced adaptive control method is based on a type ofadjustable feedback that diminishes the state errors until they are canceledout. It also requires asymptotic stability of the system. There are differentvariations of this control method but a sophisticated one presented byHorowitz & Tomizuka [25], uses a PID controller as an outer loop aroundthe MRAC control loop that adjusts the dynamic decoupling parameters,instead of the feedback gains. Although this method takes into account thejoint inertial couplings, it does not include gravity effects.

Self-tuning adaptive controllers are different than the MRAC techniquebecause they model the manipulator using linear discrete time models. theSTAC controller uses the recursive least-squares algorithm on input-outputsignals in order to estimate the control parameters. The drawback of theSTAC is it does not take into account parameter that could change overtime.

The linear perturbation adaptive control differs from the previousmethods in that it uses the dynamic model of the manipulator andcompensate for coupling effects between the links via a feedforwardcontrol. This feedforward control is manipulated using a signal generatedby the deviations from the desired trajectory. Based on simulation results,

28

Page 47: Design and control of low-cost manipulator prototypes - UiO

this technique has proven to be reliable but requires major computationpower.

The general problem with all these various adaptive control methodsis that their robustness is questionable because not all of them have beentested on real robots and are mostly theoretical. Some have been simulatedand the results can not always be interpreted easily, due to previouslydiscussed reasons.

2.6 Overview of low-cost manipulators

The robotics systems presented below are designed in such a way as to keepboth the cost of motors, hardware, electronics and structural componentsas low as possible without affecting the performance.

While some of these robotics systems are designed for specific tasks,most of them have a multipurpose functionality.

2.6.1 A 6-DOF cartesian manipulator

The configuration and specifications of a a 6-DOF robotic system thatwon the Amazon Robotics Challenge in 2017 [26] are presented is thisthesis. The robot could perform pick and place tasks in a cluttered,disorganized and dynamic environment. Challenges like motion planningand control problem for multi-DOF in performing these tasks in thespecified environment, were mentioned.

The robot’s 6-DOF are composed of three prismatic joints which formthe X-, Y- and Z-axes contributing to linear movement and three revolutejoints consisting of roll, pitch and yaw axes that form the wrist joint aidingthe gripper positioning.

It is not clear from the article what the workspace requirements were forthe competition but the developers imposed the following specifications fortheir robot design:

• Workspace of 1.2 m × 1.2 × 1.0 m.

• 6-DOF.

• Top linear velocity of 1 m/s under load.

• Top angular velocity of 1 rad/s under load.

• Load capacity of 2 kg.

• Easy deconstruction/reconstruction.

Cost:

• Roughly $7000.

29

Page 48: Design and control of low-cost manipulator prototypes - UiO

The robot managed to successfully achieve these specifications at thecost presented above. Reducing the design cost usually leads to complexityreduction, which can be a good thing when considering solving the motionplaning problem, which they addressed. Robust and reliable roboticsolutions will thus result from reduced complexity.

The main advantage of using prismatic joints over revolute joints inmanipulators for pick and place tasks is that singularities are almostcompletely eliminated and discontinuity in trajectories are reduced in acartesian workspace.

One of the trade-offs with this design is the large mechanical footprintthat a cartesian manipulator usually requires, in ratio to its workspace.The reason for this is that the linear motion requires support along theentire axis length. The support used in their design is an aluminium T-slot stand which supports not only the frame where the X-axis actuationsystem is integrated on, but also the weight of all the robot’s actuation andtransmission systems.

Motors used for the three linear motions were closed-loop brushlessservo motors from Technic’s ClearPath which are more advanced thanstepper motors but with the same low-cost and simplicity as standardstepper motors. These were chosen because of their integrated positionalencoder and motor controller, all in one unit.

For power transmission, a belt and pulley system was used to actuatethe prismatic joints, together with a transmission rod to avoid bendingof the frame under load. But this differential belt system was designedin a way that two motors could actuate two axes by working together.This helped in reducing the weight on the Y- and Z-axis by placing themotors as far away from these axes as possible instead of having a motoron each axis that would require more powerful and expensive motors inorder to drive them considering that proximal actuators would then haveto carry the weight of all connected distal actuators in addition to theiraxis weight. Bearings and rails were also used for weight distribution andstability/support. But using thinner rails for the Y-axis in order to keepthe weight low had a downside in that it produced oscillations at the end-effector. This was a trade-off they accepted because steady state accuracywas still obtained once the oscillations stopped.

Motors used for the roll, pitch and yaw axes were three Dynamixel Proservo motors from ROBOTIS Co. Ltd. because of their high operatingtorque which could hold a 2kg load on the end-effector during motion.

Results show an average error of 9.62 mm in position from the X-axis movement, 9.42 mm from the Y-axis and 7.91 mm from the Z-axismovement. When all three axes are moving at the same time, the resultingmean error is 29.63 mm. The wrist had almost 0 mean error and even lowerstatic error in both roll, pitch and yaw movements. But the static error isactually very close to zero in all cases. Considering that final point accuracyis more important than in-motion accuracy the results are quite decent.

The conclusion is that the design has its limitations due to variousmechanical effects like belt slippage, axis oscillations and coupling effectsof the differential belt system but the manipulator still achieves a low

30

Page 49: Design and control of low-cost manipulator prototypes - UiO

steady state error.

2.6.2 A 7-DOF articulated and compliant manipulator

Quigley et al. [2] presented a low-cost 7-DOF compliant robotic arm thatfeatures backlash-free motion, accurate repeatability, high speed and highpayload, considering its size and number of DOF.

The measured properties of the arm are the following:

• Reachability of 1 m.

• 7-DOF.

• Top speed of 1.5 m/s.

• Load capacity of 2 kg.

• Repeatability under 3 mm.

Cost:

• Roughly $4135.

Its design is focused mainly on human safety, high performance andtask flexibility while maintaining a low cost. In order to achieve these goals,a few trade-offs were made.

Although it is difficult to estimate design expenses, prototyping andtesting costs, the parts for building the robotic arm presented abovewas estimated at around roughly $4135. Their experiments proved thatrepeatability at the millimeter-scale is possible using low-cost structuralcomponents and joint actuators.

The robot joints are actuated using a combination of both steppermotors with timing belts and cable circuits for speed reduction followedby a series-elastic coupling at the first four joints and ROBOTIS DynamixelRX-64 servo motors at the distal three joints.

The use of stepper motors in this manipulator is due to their lowprice, good precision and high torque at low-speed. Aided by a two-stagereduction of timing belts together with cable drives contributed to a largergear reduction than using only one stage, backlash-free performance, andopens the possibility of placing some of the heavier actuators at groundlevel and last but not least, further reduction in price compared to morecompact and thus more expensive gear heads. The trade-off is that thesereduction mechanisms need a large volume, thus making the first four DOFquite large compared to the last three.

The structural materials of the arm was mostly laser cutted 5-plyplywood for the first four links and folded sheet metal for the last threelinks. Even though wood is a good material for rapid prototyping andrigid enough to offer good repeatability, folded metal structures are morerigid but cannot be made with as good precision as custom machined parts.

The control technique used for the manipulator motion was closed-loopPID control in joint space, with the aid of joint encoders.

31

Page 50: Design and control of low-cost manipulator prototypes - UiO

What sets this manipulator apart from others in its price range is theseries-elastic couplings between the proximal four DOF and distal threeDOF which provides the arm with both compliance and force sensing. Thetrade-off here is arm inertia and series elastic stiffness. This can causethe arm to oscillate and the stepper motors might not be able to handlethe increased inertia causing it to slip and thus reducing manipulatorperformance.

2.6.3 A 3-DOF light-weight articulated manipulator

An interesting design and use case of a manipulator is presented by Satoshiet al. [27], where light weight and multiple degrees of freedom are anecessity.

Declared specifications:

• 3-DOF.

• Reachability of 1.2 m.

• Maximum load capacity of 0.5 kg.

• Manipulator weight of 2.5 kg.

Cost:

• Not specified. But based on the number of motors used and theirprice on ROBOTIS website, and low-cost structural materials, themanipulator should cost at least $2000.

The aim was to develop a flexible and light manipulator in orderto access narrow places where people can not, and perform variousinfrastructure inspections on bridges.

Because the robot needed to be mounted on an UAV, the weight wasrestricted to 2.5 kg.

They used the small, compact MX-series Dynamixel servo motors theirhigh precision, low mechanical footprint and light weight.

Because the reach of the robotic arm was required to be 1.2 meters,smart solutions were needed in order to reduce weight and implicitlytorque requirements.

The first joint was actuated by two motors side by side in order toproduce the necessary torque. The second joint was actuated using oneservo motor, mounted on the same plane as the ones actuating joint 1,together with a belt feed mechanism, thus reducing weight of the upperpart of the arm which in turn reduced the torque requirement at joint 1.This smart solution allowed the robot arm to sustain a payload of up to 300grams. Although in the manipulator link diagram they specify a load of 0.5kg, only tests with a payload of max 0.3 kg were carried.

Using the light and compact servo motors in the way describedmaximized the strength-to-weight ratio of the robotic manipulator.

32

Page 51: Design and control of low-cost manipulator prototypes - UiO

2.6.4 A robust highly articulated manipulator

Usually manipulators with high degrees of freedom can be very expensive,fragile and also limited to a certain number of degrees of freedom becauseof heavy and large actuators. The manipulator proposed by Cheng etal. [28] focuses on robustness, high-force, low-cost and many degrees offreedom, without using standard actuators at the joints. It instead usesspool valve motors with tension cables and variable stiffness to actuate thejoints and achieve the desired configuration. The way the system worksis by means of jamming and unjamming different types of granulatedmaterial that are enclosed in segments, by applying vacuum to achieve itsstiffness and softness respectively. The manipulator is composed of thesesegments where each segments has granulated material enclosed in them.Alternating between jamming and unjamming, together with the tensioncables controlled by spool motors helps the robot manipulator fluctuatebetween rigid and flexible and achieve high degree of complexity in termsof degrees of freedom.

The cost of this robot is very low because of its simple design and cheapmaterials. The manipulator in the article is composed of five segmentsfilled with ground coffee together with inner springs. The segment wallsare made of latex and each segment is separated by the others. On thesegment end caps there are tube fittings which connect to solenoid valvesin order to control the air flow. A vacuum pump was used for the pressureand servo motors for adjusting the cables length.

The granulated material that was used in their two prototypes wascoarsely ground coffee, chosen by executing compression tests usingdifferential jamming pressure of 75 kPa and achieving high strength-to-weight ratio and large absolute strength.

Even though this type of manipulator is fast, reliable, safe and hasa payload capacity of twice its weight, which is quite an achievement,the jamming system using vacuum pressure is limited to atmosphericpressure. Therefore limiting the strength of the granular material. Butthe most significant problem of this manipulator design is the difficulty inachieving motion control and path planning due to the global actuationcoupled with binary local control. It is therefore difficult to model theoperations required to reach a desired end-effector position. To add moreto the complexity of the task, mechanical compliance of the manipulator isanother big issue. Though possibility of using visual tracking to provide aclosed-loop feedback in order to control the manipulator was addressed.

33

Page 52: Design and control of low-cost manipulator prototypes - UiO

2.7 Overview of various research and commercialmanipulators

2.7.1 Robotic research arms

Manipulator DOF Speed Repeatability Payload Reach Actuation Features Price

Barret WAM[29] 7 3 m/s2 mm

(0.2 mm with encoder)3 kg 1 m

Servo motorswith

Cable transmission

cable-driven,high backdrivability,

zero backlash,used in joint surgery

∼ $100.000

UR5 [30] 6 1 m/s 0.1 mm 5 kg 0.85 m

AC Motors(permanent magnet)

withHarmonic Drives

agile,flexible,

safe$35.000

DLR-LWR III [31] 7 1.9 m/s - 10 kg 1.2 m

DC motors(brushless)

withHarmonic Drives

lightweight,carbon fiber links,detects collisions,

modular

-

Schunk LWA 4D 1 7 ∼0.7 m/s 0.15 mm 10 kg 1.1 mBrushless Servomotors

withPermanent magnet brake

high speed,high torque,light-weight,

extremely compact

-

KUKA LBR IIWA 2 7 - 0.1 mm 7 kg 0.8 m -highly sensitive,highly flexible,

light-weight$50.000 - $100.000

PANDA arm 3 7 2 m/s 0.1 mm 3 kg 0.85 m -compliant,easy to use

∼$27.000

Table 2.1: Various research manipulators with their specifications, variousfeatures and price point.

2.7.2 Robotic arms using stepper motors

Manipulator DOF Speed Repeatability Payload Reach Features PriceHippocrate [32] 6 0.01 m/s 0.1 mm 2 kg 0.837 m used in surgery -Dermarob [33] 6 0.1 m/s 0.1 mm ∼13 kg 0.91 m used in surgery -

R17 arm 4 5 0.8 m/s0.2 mm

(without payload)3 kg 0.75 m

low-costfast

reliableaccurate

easy to program

$11.100

DOBOT Magician5 4 ∼0.5 m/s 0.2 mm 0.5 kg 0.32 mprecise,

intelligent,low-cost

$1499

Table 2.2: Various research manipulators using stepper motors with theirspecifications, various features and price point.

1www.schunk-modular-robotics.com2https://cobotsguide.com3www.generationrobots.com4http://strobotics.com5www.dobot.cc

34

Page 53: Design and control of low-cost manipulator prototypes - UiO

Chapter 3

Engineering methods,processes and tools

This chapter provides a description of methods and tools used throughoutthe thesis in designing, building and testing the manipulator prototypes.While in the background the main focus was on the theoretical fundament-als of manipulator motion, in this chapter the focus is on the practical meth-ods and tools used to facilitate testing of the prototypes in both simulationand real world applications. This encompasses the 3D design, 3D print-ing, the electronics and mechanical parts used in constructing the physicalmanipulator prototypes together with the software used in simulating andtesting the prototypes.

3.1 3D design

Fusion 3601 is a powerful 3D CAD (computer aided design) prototypingsoftware made by Autodesk Inc. that is able to visualize, simulate andanalyze real-world performance. The features provided by Fusion 360 aremore than enough to satisfy any engineer, designer or architect, but whatsets it apart from other popular CAD software is its portability as it is acloud-based platform.

Providing a multi-component part system solution, makes building andassembling different components in fusion 360 much easier than in otherassembly-driven software, because everything can be build and assembledin the same file. Fusion 360 also provides many useful easy-to-use analysispackages in order to simulate material behaviour in the presence of externalforces and also automatically reshape a part in order to maximize strengthwith lowest possible volume. These analysis packages include: static stressanalysis, thermal analysis, buckling and shape optimization.

1https://www.autodesk.com/products/fusion-360

35

Page 54: Design and control of low-cost manipulator prototypes - UiO

3.2 3D printing

Benefits 3D printing is an important process, also known as additive pro-cess, used for rapid prototyping by offering both manufacturing time andcost reduction in a very practical way. Being able to manufacture your ownprototype at home or at the office, straight from the CAD model is the keyto accelerate not only robotics research and development but also other re-search areas [34].

Printing processes There are many types of 3D printing methods/processes.They can be grouped in categories like: Vat Photopolymerization, MaterialJetting, Binder Jetting, Powder Bed Fusion, Material Extrusion, Direct En-ergy Deposition. The most widely used method is Material Extrusion, alsoknown as Fused Filament Fabrication (FFF) or Fused Deposition Modeling(FDM) [35]. The reason for this is its wide adaptability, ease of use andlow cost. The 3D printers using FDM have simple mechanics and low cost.The materials used are also low cost, that is why this type of printing is soaccessible to everyone. Another 3D printing method growing in popular-ity because of its extremely fast printing time is the one by deposition ofpowdered material in layers [34], but it comes with a very high price tag.

The FDM printing process is an additive manufacturing process basedon melting a continuous filament of thermoplastic material in a hot end ofa 3D printer and extruded at a desired diameter through a moving printerhead that deposits the material in horizontal layers on a print bed, that isusually heated for better first layer adhesion. The option of adding supportmaterial when printing an object that has overhang areas is highly recom-mended as the layers might collapse if the overhang area is large enough,due to the way layer adhesion works.

Model processing Before producing a 3D object, the digital design, ormore specific the CAD model, needs to be translated into commands forthe 3D printer. These commands are sent in the form of G-code [36], whichis a programming language, in order to tell the motors where and how fastto move and also what path the tool should take in order to generate thehorizontal layers where material extrusion should take place. This processis called slicing. The two most popular free slicers are Slic3r2 and Cura3.

There are different settings to choose from when slicing a 3D model,which will offer certain advantages but also come with certain disadvant-ages. Increasing printing speed by adjusting to a faster material extrusionwill affect print quality in the same way that larger layer height will de-crease printing time at the expense of resolution. But the most importantsetting that offers minimal drawback but saves a lot of printing time andmaterial is infill percentage. A non-solid infill offers minimal strength de-crease over a solid infill due to the smart infill patterns that offer high struc-tural strength. There are various infill patterns where the choice of which to

2www.slic3r.org3https://ultimaker.com/software/ultimaker-cura

36

Page 55: Design and control of low-cost manipulator prototypes - UiO

use depends on application. Popular infill patterns are rectilinear, concent-ric, honeycomb, cubic. The differences in these infill patters is the trade-offbetween printing time and strength. The rectilinear pattern is used in mod-els that require fast printing and where the low strength trade-off is not anissue, while the honeycomb and cubic patterns offer high-strength at theexpense of increased printing time. The concentric pattern is used in flex-ible 3D prints to preserve or enhance the flexing properties of the material.

Materials Among the many types of 3D printing materials, PolylacticAcid, known as PLA and Acrylonitrile Butadiene Styrene, known as ABS,are the most popular. PLA is probably the most used material due to its lowcost and versatility while ABS comes in second. Although PLA is a goodcandidate for robot construction in that it satisfies the requirements of highstiffness and high strength, it losses these properties almost completelywhen exposed to temperatures above 50 degrees Celsius. PLA has ingeneral low durability, thus making it suitable in the end only for testingout ideas or for hobby applications. ABS on the other hand is not as strongor rigid as PLA but is tougher, lighter and more durable, with a impactresistance of up to four times higher than PLA. It also has the advantage ofbeing more durable and heat resistant than PLA but that also makes it moredifficult to print, requiring a higher temperature in order to be extrudedthrough the 3D printer nozzle and has a high rate of warping and shrinkingif not extruded in a warm and closed environment.

Composite material filaments are beginning to gain traction in theindustrial usage as they offer much better properties than what singlematerial types offer on their own. Carbon fiber filled nylon compositefilament is a fantastic candidate for printing strong, stiff and highly durableparts, due to the properties of carbon fiber but also provide heat andchemical resistance due to the properties of nylon. This composite materialis called Onyx4, developed by Markforged and offers better propertiesthan both PLA and ABS combined.Onyx can be further reinforced bylayers of continuous carbon fiber during printing in order to achievehigher strength-to-weight ratio than 6061 T6 aluminium, according toMarkforged, thus making this material industrial grade.

3.3 Hardware and software

3.3.1 Electronics and mechanics

Microcontroller While a microprocessor is a multi-purpose unit, amicrocontroller serves only one specific purpose [37], making it morecompact and easy to integrate in other components. A microcontrollerusually contains a processor, memory and input/output peripherals, allon one chip.

The Cortex-M3 designed by ARM is a 32-bit architecture microcontrol-ler that can support 4 gigabytes of memory space with memory access in-

4www.markforged.com/materials/onyx/

37

Page 56: Design and control of low-cost manipulator prototypes - UiO

structions of 8-bit, 16-bit, 32-bit and 64-bit data, including multiple 32-bitdata transfer instructions [38].

Servomotors There are various types of servomotors on the market thatcome in different sizes with or without integrated driver and controller,depending on the application. Servomotor types can range from hobbyservomotors, used for learning the basic workings of a servomotor, toresearch and industrial servomotors used for more advanced applications,having a more significant price tag than standard servomotors.

Control algorithms for robot motion are usually closed-loop and thusdemand more than standard actuators in order to be applied successfully.The most important requirement is that the actuators have position feed-back. Most low-cost servomotors usually output their position throughPWM (Pulse Width Modulation)[39] signals, but these are not as reliable asa feedback mechanism, because there is no guarantee of their accuracy. Italso adds more complexity to the control algorithm. The Dynamixel5 line ofservomotors offers highly compact all-in-one solutions that are both power-ful, low-cost and include reduction gears, driver, controller and network inone unit. The Dynamixel MX-series offers quite a few advanced functionslike precise speed control, 360 degrees positioning with a resolution of 12bits that equal 4096 positions, PID control and high speed communicationof up to 4.5 Mbps (4,500,000 bits per second). They can be controlled viaposition, velocity and torque commands and provide both position, ve-locity and torque feedback, which makes them suitable for implementingadvanced motion control algorithms on.

Serial communication Serial input/output is essential in communicatingdata between a computer and a microcontroller because of incompatiblehardware interfaces. TTL (transistor-transistor logic) is a very simple serialcommunication method that allows bits of data to be sent sequentially andasynchronous at a specific rate called baud rate. The voltage limit at thislevel of communication is typically between 0V and 5V, where a logic high"1" is represented by 5V and a logic low "0" is 0V.

In order to send and receive data between a computer and a motor, aUSB communication converter is typically used. The U2D2 from Robotisis a compact USB communication converter used to control Dynamixel ser-vomotors from a computer. It provides both TTL communication protocolas well as RS-485 protocol, used for another Dynamixel series.

Power When it comes to power requirements, there are many factors liketorque output, speed, motor size, that influence the voltage and currentneeds of a motor, thus power. When talking about motors there aretwo power types: input power and output power. Input power can becalculated using the formula:

P = V × I (3.1)

5http://www.robotis.us/dynamixel/

38

Page 57: Design and control of low-cost manipulator prototypes - UiO

where P is input power, measured in watts, V is voltage, measured in voltsand I is current, measured in ampere.

The relationship between power input and power output is based onthe formula [40]:

Power input =Mechanical output power

E f f iciency(3.2)

The speed of a motor has a significant impact on the power output since:

P = τ ×ω (3.3)

where P is power output, τ is torque and ω is the angular velocity [40].Another factor that motor speed influences is price. Large, low-

speed, high-torque motors are more expensive than small, high-speed, low-torque motors that can achieve the same high torque using gears or belts.Servomotors used in small-scale robotics require a standard voltage of 4.8VDC for hobby projects and between 10 and 15V DC for research or smallautomation purposes. The Dynamixel MX-series servomotors run on aninput voltage between 10 and 14.8V, with the recommended voltage use of12V. At 12V the current draw of the motors range from 1.3A with a stalltorque output of 2.5Nm and 50rev/min no load speed, to 5.2A with a stalltorque output of 8.4Nm and 45rev/min. This results in a input powerbetween 15.6 and 62.4W, according to equation (3.1) and a power outputbetween 125 and 378W, according to equation (3.3). Inserting these valuesin equation (3.2) and rearranging the terms results in an efficiency of 60%for the higher torque model and 80% for the lower torque model. Thisillustrates how speed affects efficiency also.

3.3.2 Gazebo simulator

Testing a physical robot prototype in a real world application beforesimulating first might be dangerous. It is also highly recommendedto simulate a robot model first, in order to test the design beforebuilding/constructing the physical robot. The gazebo6 simulator is anadvanced tool used by roboticists in order to simulate single- or multi-robotic systems in both indoor and outdoor environments. It can simulatevarious complex robots, sensors and other 3D objects. The simulator offersa variety of advanced physics engines, high-end graphics and user friendlygraphical interface, all free of cost.

3.3.3 Robot operating system

The robot operating system7 (ROS) is an open source framework thatcontains libraries and tools in order to facilitate the programming ofrobotic systems. It is called an operating system because of its underlying

6www.gazebosim.org7www.ros.org

39

Page 58: Design and control of low-cost manipulator prototypes - UiO

functionality, which is similar to that of an operating system. ButROS is in fact a meta-operating system that runs on top of the LinuxUbuntu operating system. It provides powerful features that makes itrelatively easy to implement complex systems involving multiple robotswith multiple sensors interacting with each other, without having to dealwith the hardware part. ROS is a collection of topics, services, actionservers and messages, also known as the ROS API, that robots use in orderto communicate with each other. The use of an universal API for interactingwith different hardware makes life for roboticists a lot easier than havingto learn and use new API‘s from each of the manufacturers hardware partslike sensors and actuators.

ROS provides some valuable tools like the rqt_plot, which is a toolfor plotting in the ROS environment and rosbag, which is a powerful toolfor recording and playback a simulation by storing all of the data from thesimulation in a .bag file.

3.3.4 MoveIt!

While ROS runs on top of Linux, MoveIt!8 runs on top of ROS. MoveIt!can be seen as an extension to ROS, providing high-level functionalityfor kinematics, motion planning, collision checking, robot interaction and3D perception among others. Calculating the kinematics for a multi-DOFmanipulator can be a challenge even for the more experienced roboticist,but it has to be done in order to make manipulation easier. Creating amotion plan from scratch for a manipulator is also challenging and timeconsuming. MoveIt! provides a variety of kinematic solvers like KDL(Kinematics And Dynamics Library), IKFast and TRAC-IK and motionplanners like OMPL, STOMP, CHOMP. MoveIt! comes standard with KDLkinematic solver and OMPL motion planner while the others have to beinstalled and set up manually.

8https://moveit.ros.org/

40

Page 59: Design and control of low-cost manipulator prototypes - UiO

Chapter 4

Robot design, manufacturingand control

4.1 Robot design and Manufacturing

A robot’s design is usually dependent on the application it is intended for,in order to maximize its capabilities at a minimum cost. As seen in chapter2, there are various types of robots that are suited for some tasks morethan others. The task the robot has to perform will decide its workspace,reach, payload and configuration which will further decide the torquerequirements and then the actuator types.

In this thesis, the design of the manipulator is focused on multi-purposeapplications. The manipulator is meant to be flexible, have a decent reach,weigh as little as possible, easy to assemble and be able to perform a varietyof tasks.

There will be three manipulator designs presented in this thesis. Onewill feature "off the shelf" commercial links made of 6061 aluminium fromCrustCrawler Robotics while the other two will consist of 3D printedlinks made out of carbon fiber reinforced onyx on Markforged. The baselink of the 3D printed model has been developed in the IN55901 course ofthe University of Oslo, and improved in this thesis. The 3D representationand the physical base link can be seen in Figure 4.3.

Although the manipulators will have almost the same characteristics,there will be some differences in weight of the links, total height and DOF.

The proposed 6DOF manipulator models can be seen in Figure 4.1 whilethe 5DOF model can be seen in Figure 4.2.

The reason for having two manipulators was to verify if further changesin performance and price can be achieved, but the reason for implementingthe third manipulator was necessary due to hardware issues discoveredwhen the aluminium model was tested in real life. These issues will beexplained in chapter 5. The proposed 6DOF manipulator with 3D printedlinks has thus not been implemented in real life, but the 5DOF one has beeninstead.

1https://www.uio.no/studier/emner/matnat/ifi/IN5590/index-eng.html

41

Page 60: Design and control of low-cost manipulator prototypes - UiO

(a) 6DOF Aluminium Prototype (b) 6DOF Carbon Fiber Rein-forced Onyx Prototype

Figure 4.1: The 3D models of the two 6DOF manipulator prototypesdesigned in Fusion 360.

42

Page 61: Design and control of low-cost manipulator prototypes - UiO

Figure 4.2: The 3D model of the 5DOF carbon fiber reinforced onyxprototype designed in Fusion 360.

43

Page 62: Design and control of low-cost manipulator prototypes - UiO

4.1.1 Kinematic configuration and DOF

Taking into consideration the workspace of the previously presentedmanipulator kinematic configurations and the number of DOF that offermost flexibility for least complexity, a RRR-manipulator configuration with6DOF has been chosen. Since there are three translational axes and threerotational axes, six degrees of freedom is the minimum required to placean end-effector in three dimensional space given any orientation andtranslation.

4.1.2 Budget

The maximum budget for the aluminium manipulator was set to $5000while for the equivalent 3D printed version research has been done to trylower the cost of the links.

4.1.3 Workspace and reach

The robots presented in Table 2.1 have a reach between 0.32m and 1.2m.We will be focusing on an average between these values, choosing a reachof about 0.7m as our design parameter. This chosen reach was determinedby calculating the torque requirements given available servomotors andaluminium links on the market that matched our budget. MATLAB scriptshave been created in this thesis in order to determine possible reaches ofour manipulators.

4.1.4 Payload

In this thesis we are aiming for a 1 kg maximum payload as our designparameter for our manipulators due to the low budget.

4.1.5 Link materials and design

In one manipulator prototype we will have links made out of 6061aluminium while the other will be composed of carbon fiber reinforcedonyx material being printed on a Markforged X7 3D printer.

The purchased aluminium links have an open, or U-shape rectangularbody design while our 3D printed links have closed-shape rectangularbody design. These can be better seen from the 3D models created in Fusion360 of links 2 and 3, displayed in Figure 4.4. The design for the other linkscan be seen in Figures 4.5 and 4.6.

The 3D printed parts will be reinforced with continuous carbon fiber inthree groups composed of a few number of layers with one group in thecenter and one on each of the two edges of the link, as seen in Figure 4.7.

The weight and price for each link in each of the three manipulatorprototypes are listed in Tables 4.1, 4.2 and 4.4. The percentage in weightand price reduction of the onyx links compared to the aluminium links inthe 6DOF manipulators can be found in Table 4.3.

44

Page 63: Design and control of low-cost manipulator prototypes - UiO

(a) 3D model of the complete base (b) Printed onyx base link

Figure 4.3: The 3D representation of base link composition created inFusion 360, together with an image of the physical base.

45

Page 64: Design and control of low-cost manipulator prototypes - UiO

(a) Link 2 - aluminium (b) Link 2 - onyx

(c) Link 3 - aluminium (d) Link 3 - onyx

Figure 4.4: 3D representation of the aluminium and reinforced onyx links 2and 3 created in Fusion 360.

46

Page 65: Design and control of low-cost manipulator prototypes - UiO

(a) Link 1 - aluminium (b) Link 1 - onyx

(c) Link 4 - aluminium (d) Link 4 - onyx

Figure 4.5: 3D representation of the aluminium and reinforced onyx links 1and 4 created in Fusion 360.

4.1.6 Torque requirement

Torque calculations for a manipulator mainly depends on the weight andlength of each structural link and motor in the chain. We need to calculatethe torque requirement for each link in each manipulator in order toestablish what torque is needed to rotate each joint so we can choosethe right motor and establish what the maximum payload will be. Thecalculations are done starting from the link 6, also known as the gripper,and all the way to link 1. Starting from the last link makes it easier totrack and add the correct values for weight and length of each link sincethe torque requirements for link li is dependent on the weight and lengthof link li+1 and all other distal links connected to li+1.

We know that:F = mg (4.1)

τ = F× L (4.2)

and by inserting Equation (4.1) in (4.2) we get:

τ = mg× L (4.3)

where F is the force acting on an object, g is the gravity and τ is thetorque required to hold a mass m at a distance L from a pivot point. Theseequations will be used as a base for the torque calculation of each joint inour manipulators.

When we calculate the torque for each joint we need to keep in mindthat each link is composed of not only the structural link that connects two

47

Page 66: Design and control of low-cost manipulator prototypes - UiO

(a) Link 5 - aluminium (b) Link 5 - onyx

(c) Link 6 - aluminium (d) Link 6 - onyx

Figure 4.6: 3D representation of the aluminium and reinforced onyx links5 and 6 created in Fusion 360. The two MX-28 servomotors are included inboth link 6 models.

(a) Link 3 diagonal view (b) Link 3 side view

Figure 4.7: Internal part view of link 3 showing carbon fiber reinforcedgroups and their layers in Eiger.

48

Page 67: Design and control of low-cost manipulator prototypes - UiO

6DOF aluminium manipulatorPart Name Weight [g] Price [$]

Link 6 92 122Link 5 24 62Link 4 23 45Link 3 59 104Link 2 108 230Link 1 96 42Base 333 179Total 735 (w/o base) 784 (w/ base)

Table 4.1: Weight and price for the structural components of the 6-DOF robot prototype made out of aluminium (Servos not includedin the calculations). Prices taken from www.CrustCrawler.com andwww.trossenrobotics.com.

6DOF onyx manipulatorPart Name Weight [g] Price [$]

Link 6 41 26Link 5 19 9Link 4 13 7Link 3 46 28Link 2 102 55Link 1 120 41Base 1300 132Total 341 (w/o base) 298 (w/ base)

Table 4.2: Weight and price for the 3D printed structural components ofthe 6-DOF robot prototype in onyx material w/ carbon fiber reinforcement(Servos not included in the calculations).

joints together but also the actuator at the end of each link, which actuatesthe succeeding joint. In [41] they do not take into consideration the lengthof their actuators when calculating total link length and that the weight isdistributed along its length. They simply assume that an actuator is simplya point at the end of a link and that all its mass is concentrated at thatpoint. But our actuators contribute with quite a fair amount in the finallink length of each link. The torque calculation formulas in [41] have thusbeen adapted to our case and used in this thesis.

Considering that the actuator is much heavier than the structural linksand located farthest from the pivot point, it will contribute the most to thetotal link inertia. We will refer to the force in Equation (4.1) as the weight ofa link that connects two actuators and denote it by Wi for easier reference,where i is the link number:

Wi = Flinki= mlinki

g (4.4)

while for the weight of the actuator that contributes to the total link length

49

Page 68: Design and control of low-cost manipulator prototypes - UiO

6DOF onyx vs aluminiumPart Name Weight reduction Price reduction

Link 6 55% 78%Link 5 20% 85%Link 4 43% 84%Link 3 22% 73%Link 2 0.5% 76%Link 1 +0.2%* +0.2%*Base +74%* 26%Total 53% (w/o base) 62% (w/ base)

Table 4.3: Weight and price reduction between the 3D printed structuralcomponents of the 6DOF robot prototype in Onyx material w/ carbonfiber reinforcement and the structural components of the 6DOF aluminiumprototype. The * denotes an increase in link weight/price.

5DOF onyx manipulatorPart Name Weight [g] Price [$]

Link 5 41 26Link 4 19 9Link 3 46 28Link 2 68 55Link 1 118 41Base 1300 132Total 292 (w/o base) 291 (w/ base)

Table 4.4: Weight and price for the 3D printed structural components of the5-DOF robot prototype in Onyx material w/ carbon fiber reinforcement(Servos not included in the calculations).

we denote it by Ai:Ai = Factuatori

= mactuatorig (4.5)

The torque at each joint is calculated based on the "worst-case" scenario,with the arm at full stretch, as seen in Figure 4.8. For joint 1 and joint 6the torque is hard to calculate due to fact that the weight of their links issupported by the bearings around the shaft. The rotation of these jointsonly needs to resist moment of inertia and friction. These are relatively lowand was decided that Dynamixel MX-64 servomotors should be more thansufficient to actuate these two joints.

The required torque calculations for each joint in the proposed config-uration for our 6DOF manipulators are carried out using the equations in(4.6). For the 5DOF manipulator we have simply removed the weight andlength contributions of link 4 from the torque calculations.

Based on Figure 4.8 we have calculated the contribution of bothstructural link and actuator length and weight when deriving the equationsfor joint torque in (4.6). In the equations we assume the location of thecenter of mass of each structural link at the middle. The same assumption

50

Page 69: Design and control of low-cost manipulator prototypes - UiO

is made for each actuator. The torque for each joint is calculated usingEquation (4.3), where L in our case is the distance from the center of massof a component in the link, to the joint.

τ6 = N/A

τ5 = Wload(L6 + L5) + W6(L62

+ L5) + A6(lA6

2+ l5) + W5

l52

τ4 = Wload(L6 + L5 + L4) + W6(L62

+ L5 + L4) + A6(lA6

2+ l5 + L4) + W5(

l52

+ L4) + A5(lA5

2+ l4) + W4

l42

τ3 = Wload(L6 + L5 + L4 + L3) + W6(L62

+ L5 + L4 + L3) + A6(lA6

2+ l5 + L4

+ L3) + W5(l52+ L4 + L3) + A5(

lA5

2+ l4 + L3) + W4(

l42+ L3) + A4(lA4

+ l3) + W3l32

τ2 = Wload(L6 + L5 + L4 + L3 + L2) + W6(L62

+ L5 + L4 + L3 + L2) + A6(lA6

2

+ l5 + L4 + L3 + L2) + W5(l52+ L4 + L3 + L2) + A5(

lA5

2+ l4 + L3 + L2)

+ W4(l42+ L3 + L2) + A4(

lA4

2+ l3 + L2) + W3(

l32+ L2) + A3(

lA3

2+ l2)

+ W2l22

τ1 = N/A(4.6)

The torque equations presented above are used to calculate what is calledholding torque, because no motion is involved. To complete the torquecalculations we need to include the required torque to accelerate the linksfrom a static position[42]. The total torque is thus:

τtotal = τholding + τmotion = Iα (4.7)

where I is the moment of inertia and α is the acceleration of the link. In [41],they used a "safety factor" and multiplied the required torque by 2 in orderto compensate for the lack of inertia and acceleration values. For simplicity,the same course of action was also taken in this thesis.

The calculated torque requirements for each joint in the 6DOF alu-minium manipulator can be seen in Table 4.7, for the 6DOF onyx manipu-lator in Table 4.6 and for the 5DOF in Table 4.5. Calculations for no-load,0.5 kg load and 1 kg load have been included together with the maximumavailable torque output from our motors.

The motors chosen for the joints are a mix of Dynamixel MX-64 andMX-106, while for the gripper, two MX-28 motors were used. These motorshave been chosen due to their compact size, low weight, high torque andtheir ability to be controlled using position, velocity and torque commands.

51

Page 70: Design and control of low-cost manipulator prototypes - UiO

An MX-64 has 6.0 Nm of torque, an MX-106 has 8.4 Nm of torque while thedual-motor joint constituting of two MX-106 output a total of 16.8 Nm oftorque, hence the values presented in the tables.

Even though for joints 5 and 6 a MX-28 motor should have more thanenough torque to handle our load requirements they do not posses torquecontrol capabilities and MX-64 motors had to be used instead. This hasadded an unnecessary weight to the distal links of the manipulators andhave constrained the torque requirements for the first two joints.

Joint No-load Stall Torque [Nm] 0.5Kg Stall Torque [Nm] 1Kg Stall Torque [Nm] Available Stall Torque [Nm]Joint 5 0.16 0.95 1.75 6.0Joint 4 0.43 1.63 2.83 6.0Joint 3 1.18 3.15 5.11 6.0Joint 2 2.42 5.29 8.16 6.0Joint 1 N/A N/A N/A 6.0

Table 4.5: Torque requirements for each joint in the 5DOF onyx manipulatorprototype. The red colored value in the table denotes exceeded availabletorque.

Joint No-load Stall Torque [Nm] 0.5Kg Stall Torque [Nm] 1Kg Stall Torque [Nm] Available Stall Torque [Nm]Joint 6 0.15 0.95 1.75 6.0Joint 5 0.39 1.6 2.80 6.0Joint 4 0.78 2.42 4.06 6.0Joint 3 1.72 4.12 6.53 8.4Joint 2 3.57 7.08 10.58 16.8Joint 1 N/A N/A N/A 6.0

Table 4.6: Torque requirements for each joint in the 3D printed 6DOF onyxmanipulator prototype.

Joint No-load Stall Torque [Nm] 0.5Kg Stall Torque [Nm] 1Kg Stall Torque [Nm] Available Stall Torque [Nm]Joint 6 0.19 0.99 1.8 6.0Joint 5 0.47 1.68 2.89 6.0Joint 4 0.91 2.55 4.19 6.0Joint 3 1.96 4.36 6.77 8.4Joint 2 3.98 7.49 10.99 16.8Joint 1 N/A N/A N/A 6.0

Table 4.7: Torque requirements for each joint in the 6DOF aluminiummanipulator prototype.

52

Page 71: Design and control of low-cost manipulator prototypes - UiO

Figure 4.8: 3D model of the manipulator at full stretch, constituting "worst-case" scenario, with the representation of each link and motor length andweight.

4.2 Estimation and computation of inertia parametersof manipulator links

Several methods estimating the inertia parameters of manipulator links,have been presented in the background chapter. These methods rely on a6-axis force torque sensor to estimate these parameters. Since we did notposes such a sensor, the inertia parameters like center of mass and momentof inertia at center of mass and at the link origin (or pivot point) of each linkhave been estimated using Fusion 360, while the weight was measured.In order to get the moment of inertia from the 3D model as accurately aspossible the links were modelled with very high precision.

For the 3D printed parts we know that what we model is what weget when printing it, due to the fact that the chopped carbon fiber insidethe Onyx filament helps it not shrink as much when cooling down afterextrusion, as other filament materials do. The only issue is that Fusion360 does not have the Onyx material in its database and thus not so easyto get the correct inertia tensor. The workaround was weighing the linksand finding a material in the database that could match the 3D printedreinforced Onyx mass. It was found that bamboo was a 99% match withthe 37% infill Onyx in mass/density.

The 6061 aluminium material was found in the database, then appliedas the physical material for the links and the inertia tensor was directlyextracted afterwords.

But as we previously discussed, each link i is composed of both thestructural component between two actuators, Ai and Ai+1, and the actuatorAi+1 connecting link i to link i+ 1. We must then find the moment of inertiaof the complete link by adding together the inertia tensor of the structurallink and the inertia tensor of the actuator. This applies for all inertiaparameters. The datasheet from the manufacturer of each servomotor usedin the manipulator joints provides their mass, center of mass and inertiatensor at the center of mass.

Finding the center of mass of each complete link was not always

53

Page 72: Design and control of low-cost manipulator prototypes - UiO

straight foreword as the coordinate system of the structural link was notalways aligned with the coordinate system of the servomotor and certaintransformations had to be applied. We will be taking each link with thecorresponding actuator in one of the manipulator prototypes and apply thenecessary transformations and summations to find the inertia parametersof the complete link. Having both manipulators with the same link lengthsand configuration we will use the same formulas for finding the inertiaparameters for each of them. These formulas have been implementedin MATLAB in order to compute the parameters for each link in ourmanipulators. The only exception is for the last link, where the parametersare estimated using the CAD model.

4.2.1 Base link

The base link is composed of the motor and the base and calculating theinertia parameters of the base link is easiest due to the fact that both mo-tor and base coordinate frames are aligned and only displaced by an offsetalong the z-axis, as seen in Figure 4.9. We will denote the base by B, themotor by M and the complete link, or base link, by L. It is also important tomention that the base frame is perfectly aligned with the base link frame,and thus only one frame will be displayed in the figure. The same will befor all the structural links in each complete link.

Center of Mass

Figure 4.9: Base link representation with the servomotor and its center ofmass represented by dotted lines and position vectors locating the motorcenter of mass in both frames, with red arrows.

We know the location of the center of mass of the motor in its own coordin-ate frame, rM

cM, from the datasheet and we know the location of the center of

mass of the base in its own coordinate frame, rBcB

, from the CAD model. Inorder to find the center of mass of the base link we must first find the loca-tion of the center of mass of the motor in the base frame. In our equations,we will denote cA as the center of mass of link A and IcA

The z-axis of the base frame is aligned with its center of mass and vectorlocating its center of mass about the origin is equal to the displacement

54

Page 73: Design and control of low-cost manipulator prototypes - UiO

along the z-axis. Since the coordinate systems of our base and motor arealigned we can relate the position of the center of mass of the motor in thebase coordinate frame as follows:

rBcM

= rBM + rM

cM(4.8)

whererB

cM= vector locating the center of mass of the motor, cM, in the base

frame.rB

M = vector locating the motor origin in the base frame.rM

cM= vector locating the center of mass of the motor in its own coordin-

ate frame.

We can now find the location of the center of mass of the base link as:

rLcL=

mMrBcM

+ mBrBcB

mM + mB(4.9)

where mM and mB are the masses of the motor and base respectively.

Inertia Tensor

Calculating the inertia tensor of the base link is not really importantbecause the base link is going to be static and has no effect on the motioncontrol of the robot but it is required by Gazebo in order to run thesimulation.

Having calculated the location of the center of mass of the motor withrespect to the base link origin and knowing that the motor and base framesare aligned, we can calculate the inertia tensor of the motor at the baseorigin as [43]:

IBM = IM

cM+ mM{[(rB

cM)TrB

cM]I3 − [rB

cM(rB

cM)T]} (4.10)

whereIBM = inertia tensor of the motor at its origin with respect to the base

frame.IMcM

= inertia tensor of the motor at its center of mass with respect tomotor frame.

mM = motor mass.rB

cM= vector locating the center of mass of the motor in the base frame.

(rBcM)T = the transpose of rB

cM.

I3 = the 3× 3 identity matrix.

We can now calculate the total moment of inertia at the base link originby adding the inertia tensor of the motor from Equation (4.10) to theestimated inertia tensor from the CAD model as:

ILL = IB

M + IBB (4.11)

where ILL is the inertia tensor of the base link at its origin.

55

Page 74: Design and control of low-cost manipulator prototypes - UiO

4.2.2 Link 1

Link 1 contains two motors that work together to actuate joint 2, analuminium cylinder and an aluminium plate on which the motors areattached.

The most contribution to the link inertia will be due to the two motorssince they account for most of the weight and volume of the link. Butconsidering that the rotation of link 1 will be about the z-axis and all theweight of link 1 and of all the other distal links is supported on ball bearingsresiding under aluminium plate will thus result in minimal effort for theactuator of joint 1 to rotate the entire arm.

Calculating the moment of inertia for link 1 is more demanding than thefor the base link because the motors reference frames have not only beentranslated along 2 axes with respect to the link origin but also rotated suchthat the principal axes of rotation of the motors are no longer parallel to thelink’s principal axes of rotation. The calculations are based on the diagramin Figure 4.10.

Figure 4.10: Link 1 representation with the servomotors, their centers ofmass and position vectors locating the centers of mass in both their ownframe and link frame, illustrated with red arrows.

Center of Mass

To find the location of the center of mass of each motor with respectto the link reference frame will require a homogeneous transformationincluding both rotational and translational terms. This homogeneoustransformation is applied to rM1

cM1and rM2

cM2, the position vectors locating the

center of mass of motor 1 and motor 2 respectively, in their own coordinateframes.

56

Page 75: Design and control of low-cost manipulator prototypes - UiO

We can see from Figure 4.11 that the motor frames need to undertakeone rotation of -90 degrees about the y-axis followed by another -90 degreesabout the x-axis in order to have the same orientation as the link referenceframe. The rotation matrix for these two actions is defined as:

Figure 4.11: Illustration of the rotations needed in order for the motorsframe to be aligned with link 1 reference frame .

RLM = RyM ,−π

2RxM ,−π

2=

0 1 00 0 11 0 0

(4.12)

The detailed expression of Equation (4.12) can be found in Appendix A.1.Using the rotation matrices RL

M1= RL

M2= RL

L and the measured vectors,using Fusion 360, locating the origin of both motors in the link frame, rL

M1

and rLM2

, we can find the vectors rLcM1

and rLcM2

locating their centers of massin the link frame as follows:[

rLcM1

1

]=

[RL

M1rL

M1

0 1

] [rM1

cM1

1

]= TL

M1

[rM1

cM1

1

][

rLcM2

1

]=

[RL

M2rL

M2

0 1

] [rM2

cM2

1

]= TL

M2

[rM2

cM2

1

] (4.13)

where TLM1

and TLM2

are the homogeneous transformation matrices.

Inertia Tensor

The inertia tensor at the center of mass of each motor will also sustainfirst a rotational transformation using the similarity transform [9]:

IM′

cM= RL

M IMcM

(RLM)

T(4.14)

where

IM′

cM= inertia tensor of motor at its center of mass relative to the rotated

motor origin.RL

M = the coordinate transformation matrix from M frame to L frame.IMcM

= inertia tensor of motor at its center of mass relative to motor origin.

57

Page 76: Design and control of low-cost manipulator prototypes - UiO

(RLM)

T = the transpose of the coordinate transformation matrix RLM.

so that the moment of inertia about the principal axes of the motor isaligned with the moment of inertia about the principal axes of the link inorder to add the inertia tensors together.

To complete the inertia tensor we have to relate the moment of inertiaof the motor center of mass at the link origin by including the displacementterm. This is done in the same way as in Equation (4.10).

The inertia tensor of each motor’s center of mass calculated at the linkorigin is thus:

ILcM

= RLM IM

cM(RL

M)T+ mM{[(rM

cM)TrM

cM]I3 − [rM

cM(rM

cM)T)]} (4.15)

Finding the inertia tensor for the whole link is done in the same way asfor the base link, we sum all the tensors for the two motors and the tensorfor the structural link. This can be seen in the equation below:

ILL = IL

cM1+ IL

cM2+ IL

cL(4.16)

where ILL is the inertia tensor of link 1 at its origin.

4.2.3 Link 2

This link contains only one motor and an aluminium frame, called girder.This link is attached to the two motors of link 1 and is the longest link inthe manipulator.

The computation of the inertia parameters for link 2 is similar to that oflink 1, the only difference being that there is only one motor involved, butthe equations applied remain the same. The representation of the structureof link 2 with its corresponding vectors and coordinate frames can be seenin Figure 4.12.

4.2.4 Links 3 and 4

Links 3 and 4 have the same basic structure as link 2, with coordinateframes for the motor and the girder having the same orientation. The onlydifference, from link to link, is the distance between their origins. Thus thesame equations apply for these two links also.

4.2.5 Link 5

This is the wrist link and has a different orientation for both the motor andthe bracket coordinate frame as opposed to the other previous links. Thiscan be seen from Figure 4.13. The same principle applies to the calculationof inertia parameters for this link as for the other previous single-motorlinks. The difference here is that we need another rotation matrix, as a

58

Page 77: Design and control of low-cost manipulator prototypes - UiO

Figure 4.12: Link 2 representation with the servomotor, its center of massand position vectors locating the center of mass in both its own frame andlink frame, illustrated with red arrows.

rotation of about 180 degrees about the motor’s z-axis is needed to align itscoordinate frame to the link’s frame. The rotation matrix is thus equal to:

RLM = RzM ,π =

cos(π) −sin(π) 0sin(π) cos(π) 0

0 0 1

=

−1 0 00 −1 00 0 1

(4.17)

4.2.6 Link 6

Link 6 is also known as the gripper and its inertia parameters are probablythe most complex to calculate among the other links. This is due to thehigher number of components the gripper is composed of and their mis-aligned axes to the link origin. The way of finding the gripper’s center ofmass and inertia tensor is no different than the method we used for link 1.But due to the large number of components we have used the CAD modelof the gripper and estimated its inertia tensor at both the origin and centerof mass of the gripper from Fusion 360.

59

Page 78: Design and control of low-cost manipulator prototypes - UiO

Figure 4.13: Link 5 representation with the servomotor, its center of massand position vector locating the center of mass in both its own frame andlink frame, illustrated with red arrows.

4.3 Robot control

In order to send commands to a robot, a proper communication betweenhardware and software needs to be established. Using ROS, all that isneeded is to have a driver for the actuators that can take in commandsfor movement to take effect. The driver for the Dynamixel motors used inthis thesis has been provided by the university from the IN3140 roboticscourse. Once a driver is in place, the ros_control packages takes care ofthe rest. ros_control is a set of packages that contain the implementationof robot controllers, controller managers, hardware interface, transmissioninterfaces and robot control toolboxes.

The list of ROS packages that include the standard ROS controllers is asfollows:

• joint_position_controller: contains a simple implementation ofthe joint position controller

• joint_state_controller: publishes robot joint states.

• joint_effort_controller: contains an implementation of jointeffort controller.

• joint_trajectory_controller: contains an implementation of jointtrajectory controller.

Some of the most widely used hardware interface packages used in ROSare as follows:

• Joint Command Interface: sends commands to the robot hardware:

– Effort Joint Interface: sends effort commands.

– Velocity Joint Interface: sends velocity commands.

– Position Joint Interface: sends position commands.

60

Page 79: Design and control of low-cost manipulator prototypes - UiO

• Joint State Interface: receives joint states from the actuatorsencoder.

In this thesis we will be using all of the above controllers together with theEffort Joint Interface and Joint State Interface.

4.3.1 Universal robot description file (URDF)

In order to check any proposed robot model for possible design flawsbefore moving to manufacturing must first be simulated. For testingthe model we would need a virtual representation of how the real robotmight look like but more importantly, an accurate representation of all itsphysical characteristics. Having this virtual representation in place willnot only allow for visualization, simulation and control but also provideinformation about its structure and its kinematics that can be obtainedusing ROS tools.

The ROS package used to create the robot model inside ROS is the urdfpackage. This package is used to parse the Unified Robot DescriptionFormat (URDF), which is an XML file that represents the robot model, toC++ code.

The URDF file contains XML tags that specify everything about thephysical characteristics of the robot’s links and joints, like inertia, visualand collision parameters for the links and effort limits, joint limits anddynamics damping for the joints. Information about which joint isconnected to which link and exactly where is also specified and must beaccurate.

The 3D robot model constructed from the URDF file can be visualizedusing the RViz visualization tool which is also part of ROS. In this thesiswe have created two URDF files, one for the 6DOF aluminium manipulatorand one for the 5DOF onyx manipulator. In Figure 4.14 we present a part ofthe URDF file created and used in this thesis, containing all the informationabout link 1, joint 1 and its transmission.

4.3.2 Simulation

Once the URDF file, containing the complete description of the robotmodel, is created, the robot can be simulated using the Gazebo simulator.Simulation parameters such as transmissions tags, inertia tags and thegazebo plugin have added to the URDF file in order for the simulationto work in Gazebo. The transmission tags are important because theyenable the joints to be actuated in the simulator. A view of the 5DOF onyxmanipulator and the 6DOF aluminium manipulator spawned in Gazebocan be seen in Figures 4.15 and 4.16.

In order to simulate the different controllers presented earlier, aconfiguration file is needed to specify the used controller. This controllerconfiguration file is needed for both the simulation and the real robotin order to tell ROS what controllers to load in either situations. Aconfiguration file for each of the controllers the robots were tested on has

61

Page 80: Design and control of low-cost manipulator prototypes - UiO

Figure 4.14: A partial view of the URDF file for the 6DOF aluminium ma-nipulator, containing the description of link 1, joint 1 and its transmission.

been created for two manipulators. The manipulators have been testedusing a position controller, a joint trajectory controller and ainverse dynamics controller. In each configuration file a joint statecontroller has also been added in order to get access to the joint encodersand read their position.

4.3.3 Position controller

Using a position controller one can specify the desired position to which acertain joint should move. This can be achieved by publishing the positionvalue (usually in radians) as a message of type std_msgs/Float64. Noother information besides this value is specified.

The way this controller works in ROS is by publishing commands inthe form of a float number to a topic which the robot hardware node is

62

Page 81: Design and control of low-cost manipulator prototypes - UiO

Figure 4.15: A view of the spawned 5DOF onyx manipulator in Gazebo.

subscribed to. This hardware node contains the source code for the actuatordrivers in order to communicate to the actuators. The hardware nodemust thus be able to take in float numbers and transform them to uint32numbers, that the motors can receive.

This controller has been used in this thesis to find the maximum linearvelocity of one of the joints in our 6DOF aluminium manipulator. This hasbeen determined by first plotting the angular velocity of the joint, duringits movement to a desired position, and converting the maximum angularvelocity to linear velocity by the equation:

v = rω (4.18)

where v is the linear velocity, r is the radius, or in our case, the distancefrom the joint origin to the end-effector, while ω is the angular velocity.

The linear velocity has been measured and used as a comparison metricbetween our manipulators and the ones described in the backgroundchapter.

A ROS joint state controller is added in the configuration file thatpublishes joint states to a joint_states topic which we can access bysubscribing to it and retrieve encoder information from the motors. Thisway we can check if our command was successfully executed.

For visualizing the robot, either in simulation or in real life, and actuallysee the joint movements, a URDF file is needed.

All of these required files have been implemented in this thesis.

4.3.4 Joint trajectory controller

Using a joint trajectory controller we would need to specify both the posi-tion, velocity and acceleration for each joint, at each step in time, in orderto achieve the desired movement. This requires motion planning and is

63

Page 82: Design and control of low-cost manipulator prototypes - UiO

Figure 4.16: A view of the spawned 6DOF aluminium manipulator inGazebo.

usually taken care of by the MoveIt! C++ APIs. The joint trajectory con-troller used with MoveIt! opens up for advanced capabilities like collisionavoidance, perception using sensors, grasping, picking and placing.

In order to generate a trajectory for our manipulators, a MoveIt!package was created. MoveIt! requires a URDF file of a robot in orderto work. Using its setup assistant we have loaded the URDF file for each ofour manipulators and configured the package. The configuration consistedof multiple steps like:

• generating a self-collision matrix to check for pairs of links in therobot that can be safely disabled from the online collision checkingduring the motion planning, to decrease processing time.

• adding virtual joints like a world frame.

• adding planning groups, one for the arm control and one for thegripper control.

• configure the planning groups by defining the kinematic chain.

• adding desired poses to the groups to test the trajectories.

• adding an end-effector.

MoveIt! then generates an SRDF (Semantic Robot Description Format)file where it stores these configuration parameters. A desired pose hasbeen created for testing each joint in the manipulators and using the 3Dvisulization tool Rviz, included in ROS, we have been able to plan atrajectory and execute these poses at a touch of a button. A view of the6DOF aluminium manipulator in Rviz can be seen in Figure 4.17.

64

Page 83: Design and control of low-cost manipulator prototypes - UiO

Figure 4.17: A view of the 6DOF aluminium manipulator in Rviz.

MoveIt! also contains a default inverse kinematics planner that readsthe URDF file and can calculate the inverse kinematics of a given pose,based on the information of links and joints specified the file.

This controller has been used in this thesis to test the repeatability andaccuracy of the proposed robot models.

4.3.5 Inverse dynamics controller

In the previous controllers, internal and external forces are not beingtaken into consideration when giving commands to the joints. Includingthese forces into the calculations will make the robot aware of them andtake measures in order to automatically compensate for them so thatperformance is not affected in a negative way.

The inverse dynamics controller builds upon the joint trajectorycontroller but using instead effort commands to control the robot joints andplan the motion.

The Orocos2 KDL library containing the recursive Newton-Euleralgorithm has been used in this thesis to calculate the required joint effortsneeded to follow a desired trajectory created by MoveIt!. The Orocos KDL,calculates the torques based on the equations presented in this thesis, in thebackground chapter.

A closed-loop PD controller has been added to the inverse dynamicsalgorithm in order to track the error and minimize it.

Unlike the other two controllers, where we have only created theconnection between them and the robot hardware interface for the realrobot and the simulation, this controller had to be implemented fromscratch.

When writing custom controllers in ROS, some library packages haveto be included. Our ROS controller must inherit a base class called

2https://www.orocos.org/

65

Page 84: Design and control of low-cost manipulator prototypes - UiO

controller_interface::Controller from the ros_control package [44].This base class contains four fundamental functions: init(), start(),update(), and stop().

Initializing the controller

Before the controller actually starts running it has to be initialized. Theinit() function takes in two arguments:

• hardware_interface *robotHW: represents the hardware interfaceused by the controller.

• ros::NodeHandle &nh: node handle used for reading the robotconfiguration and advertise topics.

As our hardware interface argument we have used the:

std::vector<hardware_interface::JointHandle>

which is a vector of joint handles that can read and command the jointsin our robot.

In this function we have set up all the necessary parameters in order forthe KDL inverse dynamics solver to calculate the joint torques.

First, the URDF file is loaded from the ROS parameter server, thenparsed, and a KDL chain containing all the information about the jointsand the links in the robot is created. All the estimated inertia paramet-ers needed for the inverse dynamics have been inserted in the URDF. Jointstates, joint commands and joint efforts vectors, together with the inversedynamics solver declared outside the function are initialized inside thisfunction. The inverse dynamics solver instance takes in the KDL chain andthe gravity vector as input to establish the initialization.

Starting the controller

After the initialization, the starting() method will be executed. In thisfunction, one can set initial positions for the joints to be used in the controlprocedure. In this function we set the joint handles effort commands to 0.

Updating the controller

The update() function is the core of the controller algorithm function-ality. It is the most important function in the controller.

In this function we take in the time, period, desired joint trajectory con-troller state and joint trajectory state error as input. We then compute theouter loop control by multiplying state error position with the Kp gain, thestate error velocity with the Kd gain and adding them up. This is then fed tothe inverse dynamics solver together with the updated position and velo-city for each of the joints. The solver will then output the torques requiredto actuate the joints and move them to the desired position. The torquesare then sent to the joint handles which will further send the commands

66

Page 85: Design and control of low-cost manipulator prototypes - UiO

to the motor driver where they will be translated into current values. Thisprocess will repeat until the controller is stopped. The update() functionexecutes the code inside it by a default rate of 1000 Hz.

Stopping the controller

When we wish to stop the controller, the stop() function will be ex-ecuted. It will only execute once and return nothing. The execution of thismethod will always succeed.

A visualization of the output data when running the algorithm on the5DOF manipulator can be seen in Figure 4.18. The torque values from thejoints_efforts[idx] vector are the output torques from the KDL inversedynamics solver inside the controller for each joint in the manipulator. Theidx index value denotes the joint number, where idx 0 is joint 1 and idx4 is joint 5. The other set of outputs, denoted by the Command vector arethe torques received by the motor driver node. The to_mA values are thecurrent values that are converted from the torques and sent to the motors.

Figure 4.18: Torque values for each joint in the 5DOF onyx manipulator.The torque values output from the joints_efforts[idx] torque vector arefrom within the inverse dynamics controller, while the Command values arethe torques received by the motor driver. to_mA are the converted currentvalues.

67

Page 86: Design and control of low-cost manipulator prototypes - UiO

68

Page 87: Design and control of low-cost manipulator prototypes - UiO

Chapter 5

Robot control, experiments andresults

In this chapter we present the experiments and results from testing the po-sition controller, joint trajectory controller and inverse dynamics controllerpreviously discussed. The position controller and joint trajectory control-ler will only be tested on the physical 6DOF aluminium manipulator whilethe inverse dynamics controller will be simulated and tested in real life onboth the 6DOF manipulator and the 5DOF manipulator. Due to the issuesencountered when running the inverse dynamics controller on the physical6DOF manipulator, we will only present results from the simulated exper-iments of this manipulator.

The 5DOF onyx manipulator and the 6DOF aluminium manipulatorconstructed and used in this thesis to carry out the real life experimentscan be seen in Figures 5.1.

Before describing the experiments and presenting the results, thereare some notions that need explaining in order to understand how theexperiments were conducted.

When all joints are at a 0 degrees position, the manipulators will havean upright pose, exactly like the one in Figures 4.1 and 4.2 presented earlier.During the experiments we will denote this as the rest position.

Testing the manipulators will involve testing each joint at a time in aworst-case scenario, where all the distal links connected to the joint undertesting will be parallel to the ground. For example, in Figure 4.8, we cansee the worst-case scenario of joint 2, where the joint has been rotated 90degrees from its rest position. The positions will be displayed in radians,thus all joints under testing will start from a rotated position of 1.57 radiansfrom rest.

The results from the experiments were all plotted using the ROSrqt_plot while some were recorded using the rosbag in order to laterunpack the data into MATLAB and calculate the RMS (Root-Mean-Square)error in trajectory tracking for the joint trajectory controller and inversedynamics controller. Using the MATLAB robot toolbox, we were able toread the data inside the .bag files and extract it.

69

Page 88: Design and control of low-cost manipulator prototypes - UiO

(a) 6DOF aluminium manipu-lator

(b) 3D printed 5DOF carbonfiber reinforced onyx manipu-lator prototype

Figure 5.1: The constructed 5DOF onyx manipulator and 6DOF manipu-lator prototypes.

All the experiments involving the testing of the implemented robotcontrollers were first conducted on the 6DOF aluminium manipulatorwhile the 3D printed model was being manufactured. During theseexperiments some issues were uncovered when the Newton-Euler inversedynamics controller was applied on the robot. This resulted in anunsuccessful execution due to poor synchronization of the dual motorsconstituting joint 2 and the decision to 3D model and print a 5DOFmanipulator with a single-motor joint 2 was made, in order to test thecontroller in real life.

5.1 Position controller

This controller has been used to test the worst-case maximum speed andthe position response of the 6DOF aluminium manipulator in real life. Weare interested in what is the maximum speed of this manipulator whenno trajectory is involved. The experiments were performed on its joint 3,actuated by a MX-106 motor, which is slower than the MX-64. Joint 3 is alsothe most affected among all the joints due to the weight it supports and itsavailable stall torque.

When sending the command to move joint 3 back to rest, the positionand velocity response were measured. The results can be seen from theplots in Figures 5.2 and 5.3.

70

Page 89: Design and control of low-cost manipulator prototypes - UiO

Figure 5.2: Position controller - Velocity joint 3 - 6DOF aluminiummanipulator.

Figure 5.3: Position controller - Position joint 3 - 6DOF aluminiummanipulator.

5.2 Joint trajectory controller

A MoveIt! configuration package was created for both robot models inROS, in order to control our robots, both in simulation and real world,using generated trajectories. The two robots were both run using theposition_controllers/JointTrajectoryController in the real world.The trajectory tracking of the controller was plotted and the error wasmeasured.

The joint trajectory controller was tested in the same way as for theposition controller, having each joint start at 90 degrees with all the otherdistal joints at 0 degrees, resulting in a fully stretched configuration orworst-case scenario for the joint under testing.

The motion of each joint in the 6DOF aluminium manipulator wasplotted and also recorded using the rosbag tool integrated into ROS. Thedata inside the bag file was later extracted in MATLAB and the error wasmeasured. The plots showing the results of testing the controller on thephysical robot can be viewed in Figures 5.4 to 5.9.

71

Page 90: Design and control of low-cost manipulator prototypes - UiO

Figure 5.4: Joint trajectory controller - Position joint 1 - 6DOF aluminiummanipulator.

Figure 5.5: Joint trajectory controller - Position joint 2 - 6DOF aluminiummanipulator.

Figure 5.6: Joint trajectory controller - Position joint 3 - 6DOF aluminiummanipulator.

72

Page 91: Design and control of low-cost manipulator prototypes - UiO

Figure 5.7: Joint trajectory controller - Position joint 4 - 6DOF aluminiummanipulator.

Figure 5.8: Joint trajectory controller - Position joint 5 - 6DOF aluminiummanipulator.

Figure 5.9: Joint trajectory controller - Position joint 6 - 6DOF aluminiummanipulator.

73

Page 92: Design and control of low-cost manipulator prototypes - UiO

Figure 5.10: Inverse dynamics controller - Simulation - Position joint 1 -6DOF aluminium manipulator.

5.3 Inverse dynamics controller

The controller has been tested on the 5DOF onyx manipulator in bothreal life and simulation while only in simulation for the 6DOF aluminiummanipulator.

The same worst-case scenario testing procedure as in the joint trajectorycontroller section has been used for testing this controller.

5.3.1 Gazebo Simulations

The simulation results from the 6DOF aluminium manipulator can befound in Figures 5.10 to 5.15. Plots of velocity and acceleration of joint 2have been also added and can be seen in Figures B.4 and B.5.

Unfortunately, we can see from Figure B.5 that only the desiredacceleration was displayed. But it can be seen from Figure B.4 of thevelocity plot that if we were to take the derivative of the actual velocitycurve, it should look very much like the desired acceleration curve fromFigure B.5.

The simulation results from the 5DOF onyx manipulator can be foundin Figures 5.16 to 5.20.

74

Page 93: Design and control of low-cost manipulator prototypes - UiO

Figure 5.11: Inverse dynamics controller - Simulation - Position joint 2 -6DOF aluminium manipulator.

Figure 5.12: Inverse dynamics controller - Simulation - Position joint 3 -6DOF aluminium manipulator.

Figure 5.13: Inverse dynamics controller - Simulation - Position joint 4 -6DOF aluminium manipulator.

75

Page 94: Design and control of low-cost manipulator prototypes - UiO

Figure 5.14: Inverse dynamics controller - Simulation - Position joint 5 -6DOF aluminium manipulator.

Figure 5.15: Inverse dynamics controller - Simulation - Position joint 6 -6DOF aluminium manipulator.

Figure 5.16: Inverse dynamics controller - Simulation - Position joint 1 -5DOF onyx manipulator.

76

Page 95: Design and control of low-cost manipulator prototypes - UiO

Figure 5.17: Inverse dynamics controller - Simulation - Position joint 2 -5DOF onyx manipulator.

Figure 5.18: Inverse dynamics controller - Simulation - Position joint 3 -5DOF onyx manipulator.

Figure 5.19: Inverse dynamics controller - Simulation - Position joint 4 -5DOF onyx manipulator.

77

Page 96: Design and control of low-cost manipulator prototypes - UiO

Figure 5.20: Inverse dynamics controller - Simulation - Position joint 5 -5DOF onyx manipulator.

5.3.2 Real robot experiments

The real life experiments involving this controller were not possible to beconducted on the 6DOF aluminium manipulator due to an issue causedby the joint 2 motors. The dual-motor joint was causing the manipulator tobecome highly unstable when a desired trajectory was given for it to follow.It was discovered that the two motors were not entirely synchronized.When the algorithm was run, one of the motors was starting to move beforethe other and was, in a sense, dragging the other along with it. This causedthe slower reacting motor to compensate for this external force appliedby the faster reacting motor and thus causing it to move in the oppositedirection. This reaction was then causing the faster reacting motor to dothe same, resulting in a highly unstable joint 2. The behaviour could notbe plotted as the robot needed to be unplugged as fast as possible to avoiddamage to itself.

Experiments not involving change in joint 2 position have beenconducted but with little success. The other joints were either not movingvery much, given a desired trajectory, or moving at the same time with joint2 which caused the robot to be unstable in the end.

While the goal was to test this controller on the two 6DOF manipulatorsand compare the results, we had to have a manipulator with a single-motorjoint 2 in order to succeed. Due to the exceeding torque requirement fordriving joint 2 with a single motor, this could not be achieved with thecurrent configuration.

In order to properly test this controller on a physical manipulator,a smaller arm had to be designed, hence the 5DOF model. Thisrequired a length reduction in link 2 and a removal of 1DOF from theoriginal 6DOF manipulator design to ensure a good enough reductionin torque requirement for the joint. These modifications ensured thereuse of the carbon fiber reinforced onyx parts from the partly 3D printed6DOF manipulator. The experiments were thus conducted on the 5DOFmanipulator presented in chapter 4 in the same manner as for thesimulation. The plotted results from each joint can be viewed in Figures

78

Page 97: Design and control of low-cost manipulator prototypes - UiO

Figure 5.21: Inverse dynamics controller - Position joint 1 - 5DOF onyxmanipulator.

Figure 5.22: Inverse dynamics controller - Position joint 2 - 5DOF onyxmanipulator.

5.21 to 5.25.A velocity and acceleration plot for joint 2 were also added for a

better visualization of the generated trajectory. Unfortunately the actualacceleration could not be plotted and thus, only the desired accelerationcan be viewed. These plots can be seen in Figures B.2 and B.3.

79

Page 98: Design and control of low-cost manipulator prototypes - UiO

Figure 5.23: Inverse dynamics controller - Position joint 3 - 5DOF onyxmanipulator.

Figure 5.24: Inverse dynamics controller - Position joint 4 - 5DOF onyxmanipulator.

Figure 5.25: Inverse dynamics controller - Position joint 5 - 5DOF onyxmanipulator.

80

Page 99: Design and control of low-cost manipulator prototypes - UiO

5.3.3 Trajectory tracking error

Using the rosbag tool, all the simulated and real life experiments carriedon the two manipulators, and displayed in our plots, have been recordedand all the data in the .bag files has been unpacked in MATLAB. Based onthat data, the RMS error for each joint in each manipulator was computed.The results can be found in Table 5.1.

Root-Mean-Square error in [rad]Joint Name 6DOF 5DOF

JTraC - Real InvDyn - Sim InvDyn - Real InvDyn - SimJoint 6 0.0506 0.3641 N/A N/AJoint 5 0.0559 0.0198 0.8205 0.6484Joint 4 0.0655 0.0052 0.7990 0.0676Joint 3 0.0738 0.0331 0.1757 0.0222Joint 2 0.0711 0.0008 0.1358 0.0073Joint 1 0.0487 0.0584 0.6632 0.2752Total 0.3656 0.4814 2.5942 1.0207

Table 5.1: Table containing the calculated RMS error in radians for thetrajectory tracking in the joint trajectory controller (JTraC) and inversedynamics controller (InvDyn) for the 5DOF onyx manipulator and 6DOFaluminium manipulator. The "Sim" at the end of the InvDyn stands forsimulation, while "Real" stands for real life experiment.

5.3.4 Accuracy calculation and measurement

Based on the backlash value from the datasheets of the MX-64 and MX-106motors and physical measurements of the backlash, we have been able todetermine the accuracy for each of the two manipulators.

First, the accuracy of each joint was calculated separately by determin-ing the chord length using the formula:

l = 2rsin(θ

2) (5.1)

where r is the radius, θ is the angle in radians and l is the chord length.After determining each chord length for each distance between each jointorigin (except joint 1 and the wrist joint) and end-effector, we added themtogether to find the total accuracy of the manipulator.

Physical measurements were taken by first commanding each of themanipulators joint 2, to rotate 90 degrees from rest position using Moveit!.That would put the manipulators into a fully stretched position. Theheight of the end-effector from the ground, which is along the z-axis of themanipulator base frame, was measured. The height was then compared tothe measured height of the end-effector in Fusion 360 when fully stretched.The difference between these values gave us the total measured value ofthe accuracy in the manipulators.

81

Page 100: Design and control of low-cost manipulator prototypes - UiO

The calculated and measured accuracy of the two manipulators can befound in Table 5.2. The values represent the displacement in millimetersfrom the expected position of the end-effector. Thus lower values denotebetter accuracy.

Manipulator z-axis Accuracy in [mm]Joint Name 6DOF 5DOF

Calculated Measured Calculated MeasuredJoint 6 N/A N/A N/A N/AJoint 5 1.29 - N/A N/AJoint 4 1.91 - 1.4 -Joint 3 1.29 - 2.3 -Joint 2 4.11 - 3.36 -Joint 1 N/A N/A N/A N/ATotal 10.12 15.2 7.06 8.13

Table 5.2: Table containing the calculated and measured accuracy of the5DOF onyx manipulator and 6DOF aluminium manipulator.

5.3.5 Repeatability experiments

The repeatability of a robot defines a robot’s ability to reproduce the desiredposition.

The experiments for testing the repeatability of the two manipulatorsinvolved a dial indicator like the one in Figure 5.26. A pose wherethe manipulators were fully stretched and would make their end-effectorbarely touch the tip of the dial indicator was determined and executedusing MoveIt!. This pose was run for about ten iterations, after which theaverage value was calculated. The repeatability of both manipulators canbe found in Table 5.3.

6DOF 5DOFRepeatability 1.2 mm 0.9 mm

Table 5.3: Measured repeatability of the 6DOF aluminium manipulator andthe 5DOF onyx manipulator.

82

Page 101: Design and control of low-cost manipulator prototypes - UiO

Figure 5.26: Setup for testing the repeatability of the two manipulators,with the dial indicator in the bottom right side of the image.

The results obtained from all the experiments and measurements havebeen gathered and inserted into Table 5.4.

Robot Prototype Link Material Accuracy Repeatability Reach Max Payload Price6DOF Aluminium 6061 15.2 mm 1.2 mm 0.71 m 0.5 Kg 4926 $6DOF CF reinforced onyx 10.19* mm 1.2* mm 0.7 m 0.5* Kg 4476 $5DOF CF reinforced onyx 8.13 mm 0.9 mm 0.58 m 0.3 Kg 2269 $

Table 5.4: Specifications of the three robot manipulator prototypes. The "*"denotes estimated value.

83

Page 102: Design and control of low-cost manipulator prototypes - UiO

84

Page 103: Design and control of low-cost manipulator prototypes - UiO

Chapter 6

Discussion

6.1 Choice of link design

The aluminium links of the aluminium manipulator have proven tobe compliant and tend to bend, especially when the joints are beingaccelerated. This creates a pendulum effect and contributes to inaccuraciesin both trajectory following and picking and placing small objects, as itneeds more time to stabilize. Link 2 is the link that bends the most since itis the longest among all links and supports the most weight.

The main flaw in the design of the aluminium links is the open U-shapestructure of the two girders in link 2 and link 3 that are causing the bending.That is why we have chosen to design the 3D printed links as a closedrectangular structure for their body.

Another reason why the 3D printed carbon fiber reinforced onyxlinks are superior compared to the aluminium links is that they donot permanently deform if bended, due to the carbon fiber and nylonproperties inside the onyx, while the aluminium links do. During afew accidental shutdowns of the aluminium manipulator while fullystretched the gripper fingers had sustained some damage and permanentdeformation occurred.

6.2 Link weight reduction

Because of the new design, there has been exhibited both less link bendingand dramatic change in link weight and price for almost all links in themanipulator. We have seen in Tables 4.1 and 4.2 the weight and cost foreach of the links in two manipulator prototypes. From Table 4.3 we cansee the percentages in weight and price reduction between the aluminiumlinks and the onyx links. There are some onyx links that have sustained anincrease in weight due to an increase in size and addition of componentsthat ensures a more stable and rigid manipulator. But it is important to notethat these increases took place in areas where it will not affect the torquerequirements. The base link had a large weight increase due to the largetaper roller bearing inside the robot base, but has no negative impact onthe performance since it will be bolted to a table. The weight increase in

85

Page 104: Design and control of low-cost manipulator prototypes - UiO

link 1 is also a result of increase in stability for the entire arm. And itsweight is supported by the bearing, thus having little to no impact on thetorque requirements for joint 1.

6.3 Torque requirements validation

The torque calculations are based on the formulas presented in chapter 4.The results from the aluminium manipulator can be seen in Table 4.7 andfor the 3D printed manipulator in Table 4.6.

As previously discussed, it is difficult to calculate the torque require-ments for joints 1 and 6 due to the contribution of only the dynamics ef-fects when the two joints are in motion. Regarding joint 1 we know that allthe manipulator weight, excluding the base link, is supported on a rollerbearings in both prototypes. Regarding joint 6, we could consider the sameargument since the link weight is mostly concentrated around the rotor andsupported by bearings. The calculations for joint 6 torques are mostly sym-bolic since the link length used in the calculations is not entirely valid inthis case, but rather its width, due to the joint’s rotation axis. This has beenreflected in the results from running the inverse dynamics controller on the5DOF manipulator.

Even though we obtained a 53% reduction in weight for the structurallinks 1 to 6 by 3D printing with onyx material, there has been observedlittle decrease in torque requirements for the 6DOF onyx manipulatorcompared to the 6DOF aluminium one. The reason for this is that theweight reduction constituted only a few grams, which are distributed alongthe entire length of each link, while each actuator has a larger weight thanany link in either manipulators, distributed along a much smaller lengthand situated at the end of each structural link. These two factors make eachactuator weight impose a much higher increase in torque requirementsthan any structural link can. Only for larger manipulators with lessdifference between actuator weight and link weight will the impact be morenoticeable.

Based on the data from Tables 4.6 and 4.7 we should expect that bothour 6DOF manipulators can handle a 1 kg load at the end-effector, butwill be considerably slower compared to no-load motion. Unfortunately,when adding a 1 kg load at the end-effector with a fully stretched arm, theactuators overheated and shut themselves down when only trying to holdthe load. Adding a 0.5 kg load at the end-effector of the 6DOF aluminiummanipulator and moving it to a desired pose has been successful, thoughwith a low speed. This suggests that a large torque overhead is requiredfor moving even a load accounting for less than 50% of the maximum stalltorque of the servomotors. Other loads between 0.5 kg and 1 kg have notbeen tested.

For the 5DOF manipulator we have experienced the same problem, andonly a 0.3 Kg load was successfully handled.

86

Page 105: Design and control of low-cost manipulator prototypes - UiO

6.4 Robot control

6.4.1 Position controller

Sending simple position commands, using the ROS position controller,to a robot arm that has no velocity or acceleration control in placeis dangerous. There is thus no trajectory involved, just movement atmaximum speed to a given desired position. Although the ROS positioncontroller comes with a PID controller that can be tuned to control toachieve a lower velocity and acceleration, we have had little success inachieving stability. We have used the ROS dynamic_reconfigure tool todynamically tune the wrist link, or joint 6, in the 6DOF manipulator, byincreasing the Kd gain, in an attempt to lower its velocity and obtain asmoother stop.

When sending desired position commands, the arm would abruptlystop when the readings from the encoders would match the desiredposition. Thus only the weakest joint was tested in order to establishthe maximum speed of the 6DOF aluminium manipulator. Joint 3 isthe weakest joint among all other joints due to the weight it supportsconsidering its available stall torque, making it the perfect candidate forfinding the worst-case maximum velocity of our aluminium manipulator.

From the peak in Figure 5.2, we can see that the maximum angularvelocity achieved by joint 3 was about 3.9 rad/s. Using Equation ?? fromthe appendix, we can find the linear velocity by multiplying the distancefrom joint 3 origin to the end-effector with the angular velocity. This givesus a top speed of about 2.2 m/s, which places our manipulator in the top 2manipulators listed in Table 2.1. We decided to determine the cartesianvelocity of our manipulator only for comparison purposes against themanipulators presented in the background. The only unknown is whetherthe speed of the manipulators presented in Table 2.1 is achievable with no-load or with maximum payload. Our manipulator was tested with no-load.

From the position response in Figure 5.3, we can see our manipulatortakes some time to reach steady-state and is not ideal for precise manipu-lation tasks.

6.4.2 Joint trajectory controller

The joint trajectory controller has been tested only on the physical 6DOFaluminium manipulator since, based on the results seen in Figures 5.4 to5.9, we would not expect much different results when using this controlleron the 5DOF manipulator due to the fact that both manipulators use thesame hardware. We observe a small delay in all joints when following thedesired trajectory generated by MoveIt! and would expect the same foreach joint in the 5DOF manipulator.

The reason for the delay is not certain but could be a communicationdelay between MoveIt! and ROS or a delay from when the trajectory isgenerated and when the commands are actually sent to the motor drivers.

Based on the error in trajectory tracking for each joint in the manipu-

87

Page 106: Design and control of low-cost manipulator prototypes - UiO

lator found in Table 5.1 we can see this error is about the same for all joints.The error is slightly higher in joint 2 and joint 3, having an almost equalerror. It should be expected since their actuators as slower than the onesthat actuate the other joints. Since the error in joint 2 and 3 are almost equaland the error values between the other joints are equal, it might suggest itis a communication delay between the hardware and software.

6.4.3 Inverse dynamics controller

Simulating the controller in Gazebo compared to testing in real life resultedin the usage of very different Kp and Kd values in order to achieve thesame stability. In the simulator, the gains needed to be about one hundredtimes larger for the Kp and ten times larger for the Kd compared to reallife testing. The issue could be due to a scale factor between the torquevalues used in the simulator and current values converted to torque on thephysical manipulator. The PD controller in the outer feedback loop hasbeen manually tuned and gain values that stabilize the two manipulatorshave been found. The gain values used inside the diagonal matrices Kpand Kd when testing on the physical 5DOF manipulator and in simulationof both the 5DOF and 6DOF manipulators are:

• Physical manipulators: Kp = 50, Kd = 2

• Gazebo simulations: Kp = 1600, Kd = 600

Gazebo Simulations

The results were, for the most part, quite successful with very goodtrajectory tracking by the joints of the 6DOF manipulator. The velocity andacceleration plots from the trajectory of joint 2 has been added in AppendixB.4 and B.5 for a complete trajectory representation.

The results from joint 6 could have been caused by some error in theestimated inertia parameters but it could also likely to be a simulation errorsince the spawned robot in Gazebo could not keep joint 6 at rest from thestart and could neither make it move to its rest position.

We can see from the RMS error in Table 5.1 of the simulated inversedynamics controller on both manipulators, that their joint 1 and wrist jointerrors were the highest among all their other joints by quite a large amount.Looking at the error of these two joints in the real life testing of the control-ler on the 5DOF manipulator we can see it is higher than the other joints,though not by as large amount as in the simulations. We can conclude thatit is a possible error in the inertia parameters used in these two joints.

Real life experiments

The results seen in Figures 5.21 to 5.25 were very different from theprevious controller in the sense that for some joints the trajectory was notfollowed very well while for others not at all. Joints 1 and 5 in the 5DOFmanipulator did not move at all when the desired trajectory was given

88

Page 107: Design and control of low-cost manipulator prototypes - UiO

while the other joints followed it very poorly. The best result was obtainedfor joint 2 with a relative small trajectory tracking error, while joint 3 camein second. Compared to the simulated robot, the results are very poor.

Another experiment conducted was setting all gains to zero andtransforming the inverse dynamics controller into a controller that wouldcompensate for gravity, velocity and acceleration. When applying anexternal force to the manipulator, the manipulator should have compliedand move with the force and when the force would disappear themanipulator should retain its last pose. But when trying to manually dragthe manipulator arm to another pose resulted in an opposition and a slowlyrestoration of its original pose.

The reason behind the experienced behaviour and the high trajectorytracking error from the plots using this controller has been researched anda cause, besides the possible error in inertia parameters estimation, hasbeen found. In [45], they implemented an inverse dynamics controller on ahumanoid robot using Dynamixel MX-64 motors in its joints, and foundhigh inconsistencies between current readings and torque values. Theydetermined that the current readings were unreliable and the current wasnot proportional to torque. They afterwords discovered that the cause ofthese inconsistencies was the way the current was measured. It is thus ahardware issue.

An email was sent to the manufacturer where they confirmed that theyhad not been able to successfully implement even gravity compensation ontheir MX-series servomotors.

It is still not excluded that the high error in joint 1 and 5 could be causedby the incomplete way the torque calculations were performed on thesejoints since most of their weight is supported by their bearings. Furtherinvestigation involving the inertia parameters of these joints needs to beconducted.

We have seen that based on the simulations of the inverse dynamicscontroller, it should be possible to achieve near zero trajectory trackingerror using this controller. The challenge is thus achieving the same resulton the manipulator in real life.

6.4.4 Accuracy and repeatability comparison

When referring to the accuracy of a robot we say it is within a certain value,usually in millimeters.

The computation of the total accuracy did not involve the backlash ofjoint 1 and the wrist joint in each manipulator since it did not contribute tothe displacement along the z-axis of the robots.

Physical measurements of the accuracy involved more factors thatnegatively influenced it besides the backlash. In the 6DOF aluminiummanipulator these factors involved link bending, due to the compliantnature of its links, and bad connection between the aluminium turntableand the base link, due to the non-uniform bearing balls supporting it.This resulted in an uneven support of the turntable, an thus the entiremanipulator, causing it to lean a few millimeters on the side where the

89

Page 108: Design and control of low-cost manipulator prototypes - UiO

manipulator was fully stretched. These factors contributed in loweringthe accuracy of the aluminium manipulator compared to the 5DOFmanipulator.

The 5DOF manipulator had a higher accuracy also due to the smallerreach and removal of 1DOF.

Compared to the other manipulators presented in Table 2.1 fromchapter 2, our manipulators have much lower accuracy. Unfortunatelywe could not get the inverse dynamics controller to work properly on thephysical robot and test for accuracy improvements.

Based on the values obtained in Table 5.3 we can also conclude thatthe repeatability of our manipulators is between eight to ten times worsethan for the manipulators presented in 2.1. Difficult to determine if it is ahardware or software issue regarding this result. Although a repeatabilitybetween 0.9 and 1.2 mm is good enough for many tasks that do not involvesub millimeter precision.

6.5 General discussion

Based on the robots used in this thesis we seen that the cost of amanipulator arm depends highly on the cost of the actuators and theirpower transmission. The more powerful the motor is, the higher thepayload capacity of the robot. Reducing the weight of the robot links willimprove payload capacity and at a lower price when 3D printing themusing carbon reinforced onyx. Although high payload capacity is stillachieved by aluminium made links in for example, KUKA IIWA and UR5robot arms, this being reflected by price point.

Based on the robots presented in the background section, there arecertain trade-offs that need to be made in designing a flexible roboticsystem that can perform different tasks at a low manufacturing price. Itall depends on the requirements imposed by the task.

Robot arms that can precisely perform many different tasks at a highspeed and with a high load capacity are come with a high price point andmight not be worth it. It could be worth buying two robots at a much lowerprice, with less functionality and have each perform a certain task.

For example, the cartesian manipulator presented in the background,designed for a pick and place task is an optimal solution because mostlyvertical and horizontal planar motion is performed during the task, andthere is no need for expensive motors to actuate the X-, Y- and Z-axis, sincemost of the weight is carried by the support frame, achieving thus a low-cost manipulator with larger workspace than most robotic arms that cost atleast five times as much.

A manipulator like the KUKA LBR IIWA can handle mostly any typeof task because of its high-end actuators, transmission drives, rigid linksand low mechanical footprint. The use of such expensive actuators is dueto the fact that the motors close to the base of the robot have to support theweight of all distal motors, in addition to the payload.

Motion planning and position control of a robotic system requires

90

Page 109: Design and control of low-cost manipulator prototypes - UiO

precise mathematical models of the robot and the more complex the robotis, the higher the risk of inaccuracy.

When designing a low-cost manipulator it is thus important to considerhaving as low as possible structure complexity for good accuracy, repeatab-ility and higher payload capacity. Another important factor is keeping theweight down by using lightweight but rigid enough materials in the struc-ture of the links or find a good way to support most of the weight of themanipulator links in order to minimize the cost of using high-torque actu-ators. Depending on the required specifications for the manipulator, light-weight high-torque servomotors from Dynamixel have been a first choicefor both research and commercial manipulators as they offer a powerfulDC motor with reduction gear head, controller, driver and network, all inone compact and light actuator module.

In principle, it is difficult to design a good manipulator solution thatcan perform a wide variety of tasks, have a long reach and high payload ata low price. Trade-offs have to be made.

The complete specifications regarding our manipulator prototypes canbe found in Table 5.4. Some values regarding the 6DOF onyx manipulatorhad to be estimated based on the results from the other two since it couldnot be tested in real life.

6.6 Conclusion

This thesis presented the design, manufacturing and control of twomanipulator prototypes. One with 5DOF and 3D printed carbon fiberreinforced onyx links and one with 6DOF and "off the shelf" aluminiumlinks. The other 6DOF manipulator with onyx links, that has been designedbut not entirely manufactured and built, was still used to compare the priceand weight of its links against the aluminium 6DOF manipulator. Some ofthe presented controllers were tested in both real life and in simulation onone manipulator while some were only simulated or only tested on theother. Nevertheless, we have managed to obtain a fair amount of data thatwe could use for comparison.

The analysis of the weight and price of the two types of links in ourmanipulators showed a very large variation. The results showed goodpromise for the use of 3D printing when manufacturing robotic links withstrong and stiff materials. The weight and price of the onyx links have beenconsiderably lower compared to the aluminium ones,and their stiffnesswas higher.

The use of ROS in this thesis, when implementing and deployingcontrol algorithms on robots, have facilitated faster testing and usage, dueto its powerful tools and advanced capabilities. For example, using itslibraries we were able to apply inverse kinematics to our manipulators,more or less "out of the box", and could focus more on the control part.

Having seen and discussed the simulated and real life results fromexperimenting on our low-cost manipulators, we can conclude that theyhave produced decent performance and can be used in many applications.

91

Page 110: Design and control of low-cost manipulator prototypes - UiO

Looking at Table 5.4 and comparing to the manipulators from thebackground section, we can see improvements in some areas and declinein others. Due to the hardware issues discovered we could not verify thetrue potential of our manipulators and thus future work for improving theresults has to be performed. Nevertheless, we have build two multi-DOFmanipulators that offer high performance at a low cost, compared to other,more expensive commercial and research manipulators.

6.7 Future work

Based on the research done, observations and results obtained we see aneed for a fair amount of future work regarding the improvement in theresults produced by the inverse dynamics controller in our manipulators.

Improve current readings The need for an accurate torque to currentconversion is crucial in obtaining low trajectory tracking error for our ma-nipulators, using the inverse dynamics controller. Due to the unreliablecurrent readings it is difficult to evaluate how accurate our estimated iner-tia parameters are. It would be interesting to test the model-based approachfrom [45] to estimate the produced torque of the motors. The method fo-cuses on the voltage applied by the PWM(Pulse Width Modulation) signaland current speed of the motor to estimate the produced electrical torque.

Determining stall torque overhead Since we did not manage to get theexpected maximum load based on the torque requirement calculations, itwould be beneficial knowing what the exact safety factor one should con-sider when determining the maximum load at the end-effector of a ma-nipulator using these servomotors, before building it. Thus more researchshould to be performed in determining the stall torque overhead neededfor a Dynamixel servomotor to accelerate a certain load.

Determining the cause of delay in joint trajectory controller A morein depth research needs to be performed in determining the cause of thedelay observed in the joint trajectory controller. The answer to how Mo-veIt! generates the trajectory and when the controller actually starts send-ing commands to the motor driver has not been yet found. Understandingthis would help in finding a way to decrease or eliminate the delay.

Testing the joint trajectory controller in Gazebo Testing the joint tra-jectory controller in the Gazebo simulator would maybe provide more in-sight in understanding the delay in trajectory tracking observed when test-ing the controller on the physical manipulator.

Determining the maximum velocity of both manipulators Furthertesting involving the velocity of each joint in both the 6DOF aluminiummanipulator and the 5DOF onyx manipulator, using all three controllerspresented in this thesis, should be performed.

92

Page 111: Design and control of low-cost manipulator prototypes - UiO

Appendices

93

Page 112: Design and control of low-cost manipulator prototypes - UiO
Page 113: Design and control of low-cost manipulator prototypes - UiO

Appendix A

Rotation Matrix calculations

R = RyM ,−π2× RxM ,−π

2

=

cos(−π2 ) 0 sin(−π

2 )0 1 0

−sin(−π2 ) 0 cos(−π

2 )

1 0 00 cos(−π

2 ) −sin(−π2 )

0 sin(−π2 ) cos(−π

2 )

=

0 0 −10 1 01 0 0

1 0 00 0 10 −1 0

=

0 1 00 0 11 0 0

(A.1)

95

Page 114: Design and control of low-cost manipulator prototypes - UiO

96

Page 115: Design and control of low-cost manipulator prototypes - UiO

Appendix B

Additional results

97

Page 116: Design and control of low-cost manipulator prototypes - UiO

Figure B.1: Inverse dynamics controller - Position joint 1 - 5DOF onyxmanipulator.

Figure B.2: Inverse dynamics controller - Velocity joint 2 - 5DOF onyxmanipulator.

Figure B.3: Inverse dynamics controller - Acceleration joint 2 - 5DOF onyxmanipulator.

98

Page 117: Design and control of low-cost manipulator prototypes - UiO

Figure B.4: Inverse dynamics controller - Simulation - Velocity joint 2 -6DOF aluminium manipulator.

Figure B.5: Inverse dynamics controller - Simulation - Acceleration joint 2 -6DOF aluminium manipulator.

99

Page 118: Design and control of low-cost manipulator prototypes - UiO

100

Page 119: Design and control of low-cost manipulator prototypes - UiO

Appendix C

Estimated and computedinertia parameters

C.1 6DOF aluminium manipulator

C.1.1 Base Link

Base only

Mass [kg]: 0.1300

Center of mass [m]:

XC = −0.002E− 03 YC = 0.812E− 03 ZC = 2.975E− 02

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 3.271E− 04 Ixy = 5.912E− 04 Ixz = 3.307E− 04Iyx = 5.912E− 04 Iyy = 3.307E− 04 Iyz = 3.271E− 04Izx = 3.307E− 04 Izy = 3.271E− 04 Izz = 5.912E− 04

Moment of Inertia at Origin [kg*m2]:

Ixx = 4.679E− 04 Ixy = 5.914E− 04 Ixz = 4.714E− 04Iyx = 5.914E− 04 Iyy = 4.714E− 04 Iyz = 4.679E− 04Izx = 4.714E− 04 Izy = 4.679E− 04 Izz = 5.914E− 04

Motor only - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

101

Page 120: Design and control of low-cost manipulator prototypes - UiO

Center of mass with respect to base coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 2.618E− 02

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 5.645E− 05 Ixy = −6.523E− 07 Ixz = 6.469E− 07Iyx = −6.523E− 07 Iyy = 2.932E− 05 Iyz = −5.892E− 06Izx = 6.469E− 07 Izy = −5.892E− 06 Izz = 4.511E− 05

Moment of Inertia at Base Origin [kg*m2]:

Ixx = 0.182E− 03 Ixy = −0.003E− 04 Ixz = 0.001E− 04Iyx = −0.003E− 04 Iyy = 0.118E− 03 Iyz = 0.051E− 03Izx = 0.001E− 04 Izy = 0.051E− 03 Izz = 0.082E− 03

Base & motor

Mass [kg]: 0.2884

Center of mass with respect to origin [m]:

XC = 0.697E− 04 YC = −0.007 ZC = 0.028

Moment of Inertia at origin [kg*m2]:

Ixx = 6.506E− 04 Ixy = 5.910E− 04 Ixz = 4.715E− 04Iyx = 5.910E− 04 Iyy = 5.894E− 04 Iyz = 5.910E− 04Izx = 4.715E− 04 Izy = 5.910E− 04 Izz = 6.740E− 04

C.1.2 Link 1

Turntable

Mass [kg]: 0.096

Center of mass with respect to origin [m]:

XC = −3.223E− 11 YC = −6.331E− 17 ZC = 7.079E− 03

Moment of Inertia at origin [kg*m2]:

Ixx = 4.526E− 05 Ixy = 1.218E− 04 Ixz = 8.639E− 05Iyx = 1.218E− 04 Iyy = 8.639E− 05 Iyz = 4.526E− 05

102

Page 121: Design and control of low-cost manipulator prototypes - UiO

Izx = 8.639E− 05 Izy = 4.526E− 05 Izz = 1.218E− 04

Motor 1 - Dynamixel MX-64T motor

Mass [kg]: 0.158

Center of mass [m] with respect to its own coordinate frame:

XC = 1.427E− 04 YC = −1.961E− 02 ZC = 2.545E− 03

Center of mass with respect to link coordinate frame (or global frame) [m]:

XC = 1.683E− 02 YC = 0.254E− 02 ZC = 6.433E− 02

Moment of Inertia at Center of Mass (rotated motor reference frame par-allel to link reference frame) [kg*m2]:

Ixx = 3.307E− 04 Ixy = 3.271E− 04 Ixz = 5.912E− 04Iyx = 3.271E− 04 Iyy = 5.912E− 04 Iyz = 3.307E− 04Izx = 5.912E− 04 Izy = 3.307E− 04 Izz = 3.271E− 04

Moment of Inertia at Link Origin [kg*m2]:

Ixx = 9.857E− 04 Ixy = 3.203E− 04 Ixz = 4.200E− 04Iyx = 3.203E− 04 Iyy = 1.290E− 03 Iyz = 3.048E− 04Izx = 4.200E− 04 Izy = 3.048E− 04 Izz = 3.728E− 04

Motor 2 - Dynamixel MX-106T motor

Mass [kg]: 0.158

Center of mass [m] with respect to its own coordinate frame:

XC = 1.427E− 04 YC = −1.961E− 02 ZC = 2.545E− 03

Center of mass with respect to link coordinate frame (or global frame) [m]:

XC = −5.606E− 02 YC = 0.254E− 02 ZC = 6.433E− 02

Moment of Inertia at Center of Mass (rotated motor reference frame par-allel to link reference frame) [kg*m2]:

Ixx = 3.307E− 04 Ixy = 3.271E− 04 Ixz = 5.912E− 04Iyx = 3.271E− 04 Iyy = 5.912E− 04 Iyz = 3.307E− 04Izx = 5.912E− 04 Izy = 3.307E− 04 Izz = 3.271E− 04

103

Page 122: Design and control of low-cost manipulator prototypes - UiO

Moment of Inertia at Link Origin [kg*m2]:

Ixx = 9.857E− 04 Ixy = 3.496E− 04 Ixz = 1.116E− 03Iyx = 3.496E− 04 Iyy = 1.741E− 03 Iyz = 3.048E− 04Izx = 1.161E− 03 Izy = 3.048E− 04 Izz = 8.248E− 04

Motor 1, Motor2 & Turntable

Mass [kg]: 0.412

Center of mass with respect to origin [m]:

XC = −1.546E− 02 YC = 2.007E− 03 ZC = 5.222E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 2.016E− 03 Ixy = 0.791E− 03 Ixz = 1.667E− 03Iyx = 0.791E− 03 Iyy = 3.118E− 03 Iyz = 0.655E− 03Izx = 1.667E− 03 Izy = 0.654E− 03 Izz = 1.319E− 03

C.1.3 Link 2

Motor - Dynamixel MX-106T motor

Mass [kg]: 0.158

Center of mass [m] with respect to its own coordinate frame:

XC = 1.427E− 04 YC = −1.961E− 02 ZC = 2.545E− 03

Center of mass with respect to link coordinate frame (or global frame) [m]:

XC = −0.001 YC = 0.0 ZC = 0.224

Moment of Inertia at Center of Mass (rotated motor reference frame par-allel to link reference frame) [kg*m2]:

Ixx = 3.307E− 04 Ixy = 3.271E− 04 Ixz = 5.912E− 04Iyx = 3.271E− 04 Iyy = 5.912E− 04 Iyz = 3.307E− 04Izx = 5.912E− 04 Izy = 3.307E− 04 Izz = 3.271E− 04

Moment of Inertia at Link Origin [kg*m2]:

Ixx = 8.319E− 03 Ixy = 0.335E− 03 Ixz = 1.339E− 03Iyx = 0.335E− 03 Iyy = 8.648E− 03 Iyz = 0.240E− 03

104

Page 123: Design and control of low-cost manipulator prototypes - UiO

Izx = 1.339E− 03 Izy = 0.240E− 03 Izz = 0.398E− 03

Girder

Mass [kg]: 0.108

Center of mass with respect to origin [m]:

XC = −1.466E− 03 YC = 1.617E− 03 ZC = 7.515E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 1.080E− 03 Ixy = 0.003E− 04 Ixz = 0.029E− 04Iyx = 0.003E− 04 Iyy = 1.162E− 03 Iyz = −0.197E− 04Izx = 0.129E− 04 Izy = −0.197E− 04 Izz = 1.075E− 04

Motor & Girder

Mass [kg]: 0.266

Center of mass with respect to origin [m]:

XC = −1.202E− 02 YC = 0.215E− 02 ZC = 1.607E− 01

Moment of Inertia at origin [kg*m2]:

Ixx = 9.399E− 03 Ixy = 0.443E− 03 Ixz = 2.500E− 03Iyx = 0.443E− 03 Iyy = 9.810E− 03 Iyz = 1.320E− 03Izx = 2.501E− 03 Izy = 1.320E− 03 Izz = 0.505E− 03

C.1.4 Link 3

Motor - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

Center of mass with respect to link coordinate frame [m]:

XC = −0.017 YC = 0.002 ZC = 0.157

105

Page 124: Design and control of low-cost manipulator prototypes - UiO

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 0.293E− 04 Ixy = −0.059E− 04 Ixz = −0.006E− 04Iyx = −0.059E− 04 Iyy = 0.451E− 04 Iyz = 0.006E− 04Izx = −0.006E− 04 Izy = 0.006E− 04 Izz = 0.564E− 04

Moment of Inertia at link origin [kg*m2]:

Ixx = 3.917E− 03 Ixy = −0.014E− 04 Ixz = 4.206E− 04Iyx = −0.014E− 04 Iyy = 3.978E− 03 Iyz = −0.409E− 04Izx = 4.206E− 04 Izy = −0.409E− 04 Izz = 1.025E− 04

Girder

Mass [kg]: 0.059

Center of mass with respect to origin [m]:

XC = 0.016E− 03 YC = 1.208E− 03 ZC = 6.293E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 3.563E− 04 Ixy = 2.641E− 05 Ixz = 3.681E− 04Iyx = 2.641E− 05 Iyy = 3.681E− 04 Iyz = 3.563E− 04Izx = 3.681E− 04 Izy = 3.563E− 04 Izz = 2.641E− 05

Motor & Girder

Mass [kg]: 0.1885

Center of mass with respect to origin [m]:

XC = −0.887E− 02 YC = 0.165E− 02 ZC = 1.178E− 01

Moment of Inertia at origin [kg*m2]:

Ixx = 4.997E− 03 Ixy = 0.106E− 03 Ixz = 1.582E− 03Iyx = 0.106E− 03 Iyy = 5.140E− 03 Iyz = 1.039E− 03Izx = 1.582E− 03 Izy = 1.039E− 03 Izz = 0.210E− 03

106

Page 125: Design and control of low-cost manipulator prototypes - UiO

C.1.5 Link 4

Motor - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

Center of mass with respect to link coordinate frame [m]:

XC = −0.017 YC = 0.002 ZC = 0.088

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 0.293E− 04 Ixy = −0.059E− 04 Ixz = −0.006E− 04Iyx = −0.059E− 04 Iyy = 0.451E− 04 Iyz = 0.006E− 04Izx = −0.006E− 04 Izy = 0.006E− 04 Izz = 0.564E− 04

Moment of Inertia at link origin [kg*m2]:

Ixx = 1.036E− 03 Ixy = −0.021E− 04 Ixz = 0.193E− 03Iyx = −0.022E− 04 Iyy = 1.089E− 03 Iyz = −0.185E− 04Izx = 0.194E− 03 Izy = −0.185E− 04 Izz = 0.943E− 04

Bracket

Mass [kg]: 0.023

Center of mass with respect to origin [m]:

XC = 0.002E− 11 YC = 0.331E− 03 ZC = 2.939E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 2.764E− 05 Ixy = −1.631E− 19 Ixz = −1.638E− 17Iyx = −1.631E− 19 Iyy = 3.356E− 05 Iyz = −3.469E− 07Izx = −1.638E− 17 Izy = −3.469E− 07 Izz = 1.104E− 05

Motor & Bracket

Mass [kg]: 0.1525

Center of mass with respect to origin [m]:

107

Page 126: Design and control of low-cost manipulator prototypes - UiO

XC = −1.425E− 02 YC = 0.146− 02 ZC = 0.078

Moment of Inertia at origin [kg*m2]:

Ixx = 1.064E− 03 Ixy = −0.002E− 03 Ixz = 0.194E− 03Iyx = −0.002E− 03 Iyy = 1.123E− 03 Iyz = −0.018E− 03Izx = 0.194E− 03 Izy = −0.019E− 03 Izz = 0.105E− 03

C.1.6 Link 5

Motor - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

Center of mass with respect to link coordinate frame [m]:

XC = −0.0002 YC = 0.0170 ZC = 0.061

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 0.565E− 04 Ixy = −0.006E− 04 Ixz = −0.006E− 04Iyx = −0.006E− 04 Iyy = 0.293E− 04 Iyz = 0.059E− 04Izx = −0.006E− 04 Izy = 0.059E− 04 Izz = 0.451E− 04

Moment of Inertia at link origin [kg*m2]:

Ixx = 0.571E− 03 Ixy = −0.003E− 04 Ixz = 0.006E− 04Iyx = −0.003E− 04 Iyy = 0.506E− 03 Iyz = −0.128E− 03Izx = 0.006E− 04 Izy = −0.128E− 03 Izz = 0.826E− 04

Bracket

Mass [kg]: 0.024

Center of mass with respect to origin [m]:

XC = 0.0016E− 11 YC = 0.331E− 03 ZC = 2.939E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 2.764E− 05 Ixy = −1.631E− 19 Ixz = −1.638E− 17

108

Page 127: Design and control of low-cost manipulator prototypes - UiO

Iyx = −1.631E− 19 Iyy = 3.356E− 05 Iyz = −3.469E− 07Izx = −1.638E− 17 Izy = −3.469E− 07 Izz = 1.104E− 05

Motor & Bracket

Mass [kg]: 0.1535

Center of mass with respect to origin [m]:

XC = −0.013E− 02 YC = 0.014 ZC = 0.0556

Moment of Inertia at origin [kg*m2]:

Ixx = 0.597E− 03 Ixy = −0.0003E− 03 Ixz = 0.0005E− 03Iyx = −0.0003E− 03 Iyy = 0.537E− 03 Iyz = −0.128E− 03Izx = 0.0005E− 03 Izy = −0.128E− 03 Izz = 0.093E− 03

C.1.7 Link 6

Mass [kg]: 0.238

Center of mass with respect to origin [m]:

XC = 0.102E− 03 YC = 1.418E− 03 ZC = 3.995E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 6.133E− 04 Ixy = −2.280E− 07 Ixz = −2.976E− 06Iyx = −2.280E− 07 Iyy = 7.562E− 04 Iyz = −3.698E− 05Izx = −2.976E− 69 Izy = −3.698E− 05 Izz = 2.242E− 04

109

Page 128: Design and control of low-cost manipulator prototypes - UiO

C.2 5DOF onyx manipulator

C.2.1 Base Link

Base only

Mass [kg]: 1.300

Center of mass [m]:

XC = −0.188E− 03 YC = −3.411E− 03 ZC = 3.736E− 02

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 3.346E− 03 Ixy = −1.874E− 05 Ixz = −8.312E− 06Iyx = −1.874E− 05 Iyy = 3.334E− 03 Iyz = −3.123E− 05Izx = −8.312E− 06 Izy = −3.123E− 05 Izz = 5.359E− 03

Moment of Inertia at Origin [kg*m2]:

Ixx = 6.139E− 03 Ixy = −1.892E− 05 Ixz = 6.609E− 06Iyx = −1.892E− 05 Iyy = 6.127E− 03 Iyz = 2.203E− 06Izx = 6.609E− 06 Izy = 2.203E− 06 Izz = 5.360E− 03

Motor only - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

Center of mass with respect to base coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 2.618E− 03

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 5.645E− 05 Ixy = −6.523E− 07 Ixz = 6.469E− 07Iyx = −6.523E− 07 Iyy = 2.932E− 05 Iyz = −5.893E− 06Izx = 6.469E− 07 Izy = −5.893E− 06 Izz = 4.511E− 05

Moment of Inertia at Base Origin [kg*m2]:

Ixx = 0.183E− 03 Ixy = −0.003E− 04 Ixz = 0.001E− 04Iyx = −0.003E− 04 Iyy = 0.118E− 03 Iyz = 0.052E− 03Izx = 0.001E− 04 Izy = 0.052E− 03 Izz = 0.082E− 03

110

Page 129: Design and control of low-cost manipulator prototypes - UiO

Base & Motor

Mass [kg]: 1.4925

Center of mass with respect to origin [m]:

XC = −0.002E− 01 YC = −0.005 ZC = 0.036

Moment of Inertia at origin [kg*m2]:

Ixx = 3.799E− 03 Ixy = 5.727E− 04 Ixz = 3.219E− 04Iyx = 5.727E− 04 Iyy = 3.753E− 03 Iyz = 3.536E− 04Izx = 3.219E− 04 Izy = 3.536E− 04 Izz = 5.988E− 03

C.2.2 Link 1

Link only

Mass [kg]: 0.120

Center of mass [m]:

XC = −0.0248755E− 03 YC = −0.116431E− 03 ZC = 30.1681E− 03

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 1.263E− 04 Ixy = 2.441E− 04 Ixz = −1.263E− 06Iyx = 2.441E− 04 Iyy = 1.263E− 04 Iyz = 1.263E− 04Izx = 1.263E− 04 Izy = 1.263E− 04 Izz = 2.441E− 04

Moment of Inertia at Origin [kg*m2]:

Ixx = 2.335E− 04 Ixy = 2.441E− 04 Ixz = 2.334E− 04Iyx = 2.441E− 04 Iyy = 2.334E− 04 Iyz = 2.335E− 04Izx = 2.334E− 04 Izy = 2.335E− 04 Izz = 2.441E− 04

Motor only - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

111

Page 130: Design and control of low-cost manipulator prototypes - UiO

Center of mass with respect to link coordinate frame [m]:

XC = −1.702E− 02 YC = 1.495E− 03 ZC = 8.831E− 02

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 5.646E− 05 Ixy = −6.523E− 07 Ixz = 6.469E− 07Iyx = −6.523E− 07 Iyy = 2.932E− 05 Iyz = −5.893E− 06Izx = 6.469E− 07 Izy = −5.893E− 06 Izz = 4.511E− 05

Moment of Inertia at link Origin [kg*m2]:

Ixx = 1.039E− 03 Ixy = −0.259E− 05 Ixz = 1.939E− 04Iyx = −0.259E− 05 Iyy = 1.093E− 03 Iyz = −0.165E− 04Izx = 1.939E− 04 Izy = −0.165E− 04 Izz = 9.426E− 05

Motor & Link

Mass [kg]: 0.2495

Center of mass with respect to origin [m]:

XC = −0.895E− 02 YC = 0.730E− 03 ZC = 0.607E− 01

Moment of Inertia at origin [kg*m2]:

Ixx = 0.127E− 02 Ixy = 0.241E− 03 Ixz = 0.427E− 03Iyx = 0.241E− 03 Iyy = 0.132E− 02 Iyz = 0.217E− 03Izx = 0.427E− 03 Izy = 0.217E− 03 Izz = 0.338E− 03

C.2.3 Link 2

Link only

Mass [kg]: 0.068

Center of mass [m]:

XC = −0.067E− 03 YC = −2.638E− 08 ZC = 7.607E− 02

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 9.434E− 05 Ixy = 2.376E− 05 Ixz = 1.056E− 04Iyx = 2.376E− 05 Iyy = 1.056E− 04 Iyz = 9.434E− 05

112

Page 131: Design and control of low-cost manipulator prototypes - UiO

Izx = 1.056E− 04 Izy = 9.434E− 05 Izz = 2.376E− 05

Moment of Inertia at Origin [kg*m2]:

Ixx = 4.627E− 04 Ixy = 2.376E− 05 Ixz = 4.739E− 04Iyx = 2.376E− 05 Iyy = 4.739E− 04 Iyz = 4.627E− 04Izx = 4.739E− 04 Izy = 4.627E− 04 Izz = 2.376E− 05

Motor only - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

Center of mass with respect to link coordinate frame [m]:

XC = −0.017 YC = 0.002 ZC = 0.186

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 5.646E− 05 Ixy = −6.523E− 07 Ixz = 6.469E− 07Iyx = −6.523E− 07 Iyy = 2.932E− 05 Iyz = −5.893E− 06Izx = 6.469E− 07 Izy = −5.893E− 06 Izz = 4.511E− 05

Moment of Inertia at link Origin [kg*m2]:

Ixx = 0.449E− 02 Ixy = −0.218E− 05 Ixz = 0.410E− 03Iyx = −0.218E− 05 Iyy = 0.455E− 02 Iyz = −0.397E− 04Izx = 0.410E− 03 Izy = −0.397E− 04 Izz = 0.945E− 04

Motor & Link

Mass [kg]: 0.1975

Center of mass with respect to origin [m]:

XC = −0.011 YC = 0.001 ZC = 0.148

Moment of Inertia at origin [kg*m2]:

Ixx = 0.496E− 02 Ixy = 0.216E− 04 Ixz = 0.884E− 03Iyx = 0.216E− 04 Iyy = 0.502E− 02 Iyz = 0.423E− 03Izx = 0.884E− 03 Izy = 0.423E− 03 Izz = 0.118E− 03

113

Page 132: Design and control of low-cost manipulator prototypes - UiO

C.2.4 Link 3

Motor only - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

Center of mass with respect to link coordinate frame [m]:

XC = −0.017 YC = 0.002 ZC = 0.156

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 5.646E− 05 Ixy = −6.523E− 07 Ixz = 6.469E− 07Iyx = −6.523E− 07 Iyy = 2.933E− 05 Iyz = −5.893E− 06Izx = 6.469E− 07 Izy = −5.8932E− 06 Izz = 4.511E− 05

Moment of Inertia at link Origin [kg*m2]:

Ixx = 0.317E− 02 Ixy = −0.218E− 05 Ixz = 0.343E− 05Iyx = −0.218E− 05 Iyy = 0.322E− 02 Iyz = −0.332E− 04Izx = 0.344E− 05 Izy = −0.332E− 04 Izz = 0.946E− 04

Link only

Mass [kg]: 0.046

Center of mass [m]:

XC = −0.073E− 03 YC = −3.476E− 08 ZC = 6.087E− 02

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 4.529E− 05 Ixy = 1.885E− 05 Ixz = 5.473E− 05Iyx = 1.885E− 05 Iyy = 5.473E− 05 Iyz = 4.529E− 05Izx = 5.473E− 05 Izy = 4.529E− 05 Izz = 1.885E− 05

Moment of Inertia at Origin [kg*m2]:

Ixx = 2.243E− 04 Ixy = 1.885E− 05 Ixz = 2.337E− 04Iyx = 1.885E− 05 Iyy = 2.337E− 04 Iyz = 2.243E− 04Izx = 2.337E− 04 Izy = 2.243E− 04 Izz = 1.885E− 05

114

Page 133: Design and control of low-cost manipulator prototypes - UiO

Motor & Link

Mass [kg]: 0.1755

Center of mass with respect to origin [m]:

XC = −0.013 YC = 0.001 ZC = 0.131

Moment of Inertia at origin [kg*m2]:

Ixx = 0.339E− 02 Ixy = 0.166E− 04 Ixz = 0.577E− 03Iyx = 0.166E− 04 Iyy = 0.346E− 02 Iyz = 0.191E− 03Izx = 0.577E− 03 Izy = 0.191E− 03 Izz = 0.113E− 03

C.2.5 Link 4

Motor only - Dynamixel MX-64T motor

Mass [kg]: 0.1295

Center of mass with respect to its own coordinate frame [m]:

XC = 1.583E− 04 YC = −1.702E− 02 ZC = 1.678E− 03

Center of mass with respect to link coordinate frame [m]:

XC = −0.0001 YC = 0.017 ZC = 0.061

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 5.646E− 05 Ixy = −6.523E− 07 Ixz = 6.469E− 07Iyx = −6.523E− 07 Iyy = 2.933E− 05 Iyz = −5.893E− 06Izx = 6.469E− 07 Izy = −5.893E− 06 Izz = 4.511E− 05

Moment of Inertia at link Origin [kg*m2]:

Ixx = 0.572E− 03 Ixy = −0.0003E− 03 Ixz = 0.0005E− 03Iyx = −0.0003E− 03 Iyy = 0.507E− 03 Iyz = −0.128E− 03Izx = 0.0006E− 03 Izy = −0.128E− 03 Izz = 0.083E− 03

Link only

Mass [kg]: 0.021

115

Page 134: Design and control of low-cost manipulator prototypes - UiO

Center of mass [m]:

XC = −0.081E− 03 YC = 3.594E− 03 ZC = 3.043E− 02

Moment of Inertia at Center of Mass [kg*m2]:

Ixx = 5.3369E− 06 Ixy = 1.120E− 05 Ixz = 1.273E− 05Iyx = 1.120E− 05 Iyy = 1.273E− 05 Iyz = 5.3369E− 06Izx = 1.273E− 05 Izy = 5.3369E− 06 Izz = 1.120E− 05

Moment of Inertia at Origin [kg*m2]:

Ixx = 2.479E− 05 Ixy = 1.147E− 05 Ixz = 3.191E− 05Iyx = 1.147E− 05 Iyy = 3.191E− 05 Iyz = 2.479E− 05Izx = 3.191E− 05 Izy = 2.479E− 05 Izz = 1.147E− 05

Motor & Link

Mass [kg]: 0.1505

Center of mass with respect to origin [m]:

XC = −0.0001 YC = 0.015 ZC = 0.056

Moment of Inertia at origin [kg*m2]:

Ixx = 0.597E− 03 Ixy = 0.011E− 03 Ixz = 0.032E− 03Iyx = 0.011E− 03 Iyy = 0.539E− 03 Iyz = −0.103E− 03Izx = 0.033E− 03 Izy = −0.103E− 03 Izz = 0.0941E− 03

C.2.6 Link 5

Gripper mount

Mass [kg]: 0.0087

Center of mass with respect to origin [m]:

XC = −0.002E− 03 YC = 0.202E− 03 ZC = 1.016E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 1.756E− 06 Ixy = 1.341E− 06 Ixz = 1.489E− 06Iyx = 1.341E− 06 Iyy = 1.489E− 06 Iyz = 1.756E− 06

116

Page 135: Design and control of low-cost manipulator prototypes - UiO

Izx = 1.489E− 06 Izy = 1.756E− 06 Izz = 1.341E− 06

Motor mount

Mass [kg]: 0.006

Center of mass with respect to origin [m]:

XC = −0.006E− 03 YC = 0.049E− 03 ZC = 4.868E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 1.488E− 05 Ixy = 0.856E− 06 Ixz = 1.418E− 05Iyx = 0.8561E− 06 Iyy = 1.418E− 05 Iyz = 1.488E− 05Izx = 1.418E− 05 Izy = 1.488E− 05 Izz = 0.856E− 06

Left finger

Mass [kg]: 0.0205

Center of mass with respect to origin [m]:

XC = −3.023E− 02 YC = −8.093E− 03 ZC = 9.091E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 2.005E− 04 Ixy = 2.825E− 05 Ixz = 2.171E− 04Iyx = 2.825E− 05 Iyy = 2.171E− 04 Iyz = 2.005E− 04Izx = 2.171E− 04 Izy = 2.005E− 04 Izz = 2.825E− 05

Right finger

Mass [kg]: 0.0205

Center of mass with respect to origin [m]:

XC = 3.023E− 02 YC = −8.093E− 03 ZC = 9.091E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 2.005E− 04 Ixy = 2.825E− 05 Ixz = 2.171E− 04Iyx = 2.825E− 05 Iyy = 2.171E− 04 Iyz = 2.005E− 04Izx = 2.171E− 04 Izy = 2.005E− 04 Izz = 2.825E− 05

117

Page 136: Design and control of low-cost manipulator prototypes - UiO

Left motor - Dynamixel MX-28T motor

Mass [kg]: 0.075

Center of mass with respect to its own coordinate frame [m]:

XC = 2.407E− 04 YC = −1.290E− 02 ZC = 5.949E− 04

Center of mass with respect to link coordinate frame [m]:

XC = −0.022 YC = 5.948E− 04 ZC = 0.065

Moment of Inertia at Center of Mass (with respect to motor frame) [kg*m2]:

Ixx = 2.265E− 05 Ixy = 3.678E− 08 Ixz = −2.130E− 07Iyx = 3.678E− 08 Iyy = 1.287E− 05 Iyz = −1.146E− 06Izx = −2.130E− 07 Izy = −1.146E− 06 Izz = 1.773E− 05

Moment of Inertia at link Origin [kg*m2]:

Ixx = 2.265E− 05 Ixy = −2.130E− 07 Ixz = −3.678E− 08Iyx = −2.130E− 07 Iyy = 1.773E− 05 Iyz = 1.146E− 06Izx = −3.678E− 08 Izy = 1.146E− 06 Izz = 1.287E− 05

Right motor - Dynamixel MX-28T motor

Mass [kg]: 0.075

Center of mass with respect to its own coordinate frame [m]:

XC = 2.407E− 04 YC = −1.290E− 02 ZC = 5.948E− 04

Center of mass with respect to link coordinate frame [m]:

XC = 0.022 YC = 5.9480E− 04 ZC = 0.065

Moment of Inertia at Center of Mass (with respect to motor frame) [kg*m2]:

Ixx = 2.265E− 05 Ixy = 3.678E− 08 Ixz = −2.130E− 07Iyx = 3.678E− 08 Iyy = 1.287E− 05 Iyz = −1.146E− 06Izx = −2.130E− 07 Izy = −1.146E− 06 Izz = 1.773E− 05

Moment of Inertia at link Origin [kg*m2]:

Ixx = 2.265E− 05 Ixy = −2.130E− 07 Ixz = −3.678E− 08Iyx = −2.130E− 07 Iyy = 1.773E− 05 Iyz = 1.146E− 06

118

Page 137: Design and control of low-cost manipulator prototypes - UiO

Izx = −3.678E− 08 Izy = 1.146E− 06 Izz = 1.287E− 05

Motor & Brackets

Mass [kg]: 0.2057

Center of mass with respect to origin [m]:

XC = 1.752E− 04 YC = 1.169E− 03 ZC = 6.782E− 02

Moment of Inertia at origin [kg*m2]:

Ixx = 1.109E− 03 Ixy = 5.825E− 05 Ixz = 4.474E− 04Iyx = 5.825E− 05 Iyy = 1.207E− 03 Iyz = 4.140E− 04Izx = 4.474E− 04 Izy = 4.140E− 04 Izz = 1.606E− 04

119

Page 138: Design and control of low-cost manipulator prototypes - UiO

120

Page 139: Design and control of low-cost manipulator prototypes - UiO

Bibliography

1. Craig, J. J. Introduction to robotics: mechanics and control, 3/E (PearsonEducation India, 2009).

2. Quigley, M., Asbeck, A. & Ng, A. A low-cost compliant 7-DOF roboticmanipulator in 2011 IEEE International Conference on Robotics andAutomation (2011), 6051–6058.

3. Siciliano, B., Sciavicco, L., Villani, L. & Oriolo, G. Robotics: modelling,planning and control (Springer Science & Business Media, 2010).

4. Ajwad, S. A. et al. Optimal and robust control of multi DOFrobotic manipulator: Design and hardware realization. Cybernetics andSystems 49, 77–93 (2018).

5. Qureshi, M. O. & Syed, R. S. The impact of robotics on employmentand motivation of employees in the service sector, with specialreference to health care. Safety and health at work 5, 198–202 (2014).

6. Maeso, S. et al. Efficacy of the Da Vinci surgical system in abdominalsurgery compared with that of laparoscopy: a systematic review and meta-analysis 2010.

7. Kurfess, T. R. Robotics and automation handbook (CRC press, 2004).

8. Mayeda, H., Osuka, K. & Kangawa, A. A new identification methodfor serial manipulator arms. IFAC Proceedings Volumes 17, 2429–2434(1984).

9. Spong, M. W., Hutchinson, S., Vidyasagar, M. et al. Robot modeling andcontrol (2006).

10. Spong, M. W. & Vidyasagar, M. Robot Dynamics and Control (1989).

11. Ortega, R. & Spong, M. W. Adaptive motion control of rigid robots: Atutorial. Automatica 25, 877–888 (1989).

12. Lynch, K. M. & Park, F. C. Modern Robotics (Cambridge UniversityPress, 2017).

13. Atkeson, C. G., An, C. H. & Hollerbach, J. M. Estimation of inertialparameters of manipulator loads and links. The International Journal ofRobotics Research 5, 101–119 (1986).

14. Paul, R. P. Robot manipulators: mathematics, programming, and control: thecomputer control of robot manipulators (Richard Paul, 1981).

15. Coiffet, P. Robot technology: Interaction with the environment.Volume 2 (1984).

121

Page 140: Design and control of low-cost manipulator prototypes - UiO

16. Olsen, H. & Bekey, G. Identification of parameters in models of robotswith rotary joints in Proceedings. 1985 IEEE International Conference onRobotics and Automation 2 (1985), 1045–1049.

17. Mukerjee, A. Adaptation In Biological Sensory-Motor Systems: A ModelFor Robotic Control. in Intelligent Robots and Computer Vision 521 (1985),243–248.

18. Mukerjee, A. & Ballard, D. Self-calibration in robot manipulators in Pro-ceedings. 1985 IEEE International Conference on Robotics and Automation2 (1985), 1050–1057.

19. Neuman, C. P. & Khosla, P. K. in Adaptive and Learning Systems 175–194(Springer, 1986).

20. Nagy, P. Trajectory tracking control for industrial robots. Journal ofMechanical Working Technology 20, 273–281 (1989).

21. Craig, J. J., Hsu, P. & Sastry, S. S. Adaptive control of mechanicalmanipulators. The International Journal of Robotics Research 6, 16–28(1987).

22. Spong, M. W. & Ortega, R. On adaptive inverse dynamics control ofrigid robots. IEEE Transactions on Automatic Control 35, 92–95 (1990).

23. Amestegui, M., Ortega, R. & Ibarra, J. Adaptive linearizing-decoupling robot control: A comparative study of different paramet-rizations (1987).

24. Middletone, R. & Goodwin, G. Adaptive computed torque control for rigidlink manipulators in 1986 25th IEEE Conference on Decision and Control(1986), 68–73.

25. Horowitz, R. & Tomizuka, M. An adaptive control scheme for mech-anical manipulators—compensation of nonlinearity and decouplingcontrol (1986).

26. McTaggart, M. et al. Mechanical design of a cartesian manipulator forwarehouse pick and place. arXiv preprint arXiv:1710.00967 (2017).

27. Satoshi, O. et al. Light weight manipulator on UAV system for in-frastructure inspection in 2017 International Symposium on Micro-NanoMechatronics and Human Science (MHS) (2017), 1–3.

28. Cheng, N. G. et al. Design and analysis of a robust, low-cost, highlyarticulated manipulator enabled by jamming of granular media in 2012 IEEEInternational Conference on Robotics and Automation (2012), 4328–4333.

29. Rooks, B. The harmonious robot. Industrial Robot: An InternationalJournal 33, 125–130 (2006).

30. Kebria, P. M., Al-Wais, S., Abdi, H. & Nahavandi, S. Kinematicand dynamic modelling of UR5 manipulator in 2016 IEEE InternationalConference on Systems, Man, and Cybernetics (SMC) (2016), 4229–4234.

31. Hirzinger, G. et al. DLR’s torque-controlled light weight robot III-are wereaching the technological limits now? in Proceedings 2002 IEEE Interna-tional Conference on Robotics and Automation (Cat. No. 02CH37292) 2(2002), 1710–1716.

122

Page 141: Design and control of low-cost manipulator prototypes - UiO

32. Pierrot, F. et al. Hippocrate: A safe robot arm for medical applicationswith force feedback. Medical Image Analysis 3, 285–300 (1999).

33. Dombre, E., Duchemin, G., Poignet, P. & Pierrot, F. Dermarob: Asafe robot for reconstructive surgery. IEEE Transactions on Robotics andAutomation 19, 876–884 (2003).

34. Sachs, E., Cima, M., Williams, P., Brancazio, D. & Cornie, J. Threedimensional printing: rapid tooling and prototypes directly from aCAD model. Journal of engineering for industry 114, 481–488 (1992).

35. Yang, L., Li, S., Li, Y., Yang, M. & Yuan, Q. Experimental Investigationsfor Optimizing the Extrusion Parameters on FDM PLA Printed Parts.Journal of Materials Engineering and Performance 28, 169–182 (2019).

36. Karlo, A. Secrets of 5-Axis Machining in New York: Library of CongresCatalogin. J (2008), 15–20.

37. Crisp, J. Introduction to microprocessors and microcontrollers (Elsevier,2003).

38. Yiu, J. The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4Processors (Newnes, 2013).

39. Ibrahim, D. Designing embedded systems with 32-bit PIC microcontrollersand MikroC (Newnes, 2013).

40. Hughes, A. & Drury, B. Electric motors and drives: fundamentals, typesand applications (Newnes, 2019).

41. Chen, K. MCAD-ECAD integration: constraint modeling and propagationPhD thesis (Georgia Institute of Technology, 2008).

42. Halliday, D., Resnick, R. & Walker, J. Fundamentals of physics (JohnWiley & Sons, 2013).

43. Dıaz, E. O. 3D Motion of Rigid Bodies: A Foundation for Robot DynamicsAnalysis (Springer, 2018).

44. Joseph, L. & Cacace, J. Mastering ROS for Robotics Programming: Design,build, and simulate complex robots using the Robot Operating System(Packt Publishing Ltd, 2018).

45. Fabre, R., Rouxel, Q., Passault, G., N’Guyen, S. & Ly, O. Dynaban, anopen-source alternative firmware for dynamixel servo-motors in Robot WorldCup (2016), 169–177.

123