You are on page 1of 53

Robotics Vision and Control

Fundamental Algorithms In MATLAB


Peter Corke
Visit to download the full and correct content document:
https://textbookfull.com/product/robotics-vision-and-control-fundamental-algorithms-in
-matlab-peter-corke/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Automatic Control, Robotics, and Information Processing


Piotr Kulczycki

https://textbookfull.com/product/automatic-control-robotics-and-
information-processing-piotr-kulczycki/

Modern Robotics Mechanics Planning and Control Frank C.


Park

https://textbookfull.com/product/modern-robotics-mechanics-
planning-and-control-frank-c-park/

MATLAB Computer Vision Toolbox User s Guide The


Mathworks

https://textbookfull.com/product/matlab-computer-vision-toolbox-
user-s-guide-the-mathworks/

Machine Vision Algorithms in Java Techniques and


Implementation Whelan Paul F Molloy Derek

https://textbookfull.com/product/machine-vision-algorithms-in-
java-techniques-and-implementation-whelan-paul-f-molloy-derek/
Computer vision: theory, algorithms, practicalities
Fifth Edition Davies

https://textbookfull.com/product/computer-vision-theory-
algorithms-practicalities-fifth-edition-davies/

Numerical Methods of Exploration Seismology With


Algorithms in Matlab r Gary F. Margrave

https://textbookfull.com/product/numerical-methods-of-
exploration-seismology-with-algorithms-in-matlab-r-gary-f-
margrave/

Nonlinear control systems using MATLAB First Edition


Boufadene

https://textbookfull.com/product/nonlinear-control-systems-using-
matlab-first-edition-boufadene/

Control Theory in Biomedical Engineering: Applications


in Physiology and Medical Robotics 1st Edition Olfa
Boubaker (Editor)

https://textbookfull.com/product/control-theory-in-biomedical-
engineering-applications-in-physiology-and-medical-robotics-1st-
edition-olfa-boubaker-editor/

Wind Energy Design First Edition Corke

https://textbookfull.com/product/wind-energy-design-first-
edition-corke/
Peter Corke

Robotics,
Vision
and
Second Edition
Control
FUNDAMENTAL
ALGORITHMS
IN MATLAB®

123
Springer Tracts in Advanced Robotics
Volume 118
Editors: Bruno Siciliano · Oussama Khatib
Peter Corke

Robotics,
Vision and Control
Fundamental Algorithms in MATLAB®

Second, completely revised, extended and updated edition

With 492 Images

Additional material is provided at www.petercorke.com/RVC


Professor Bruno Siciliano
Dipartimento di Ingegneria Elettrica e Tecnologie dell’Informazione,
Università di Napoli Federico II, Via Claudio 21, 80125 Napoli, Italy,
e-mail: siciliano@unina.it

Professor Oussama Khatib


Artificial Intelligence Laboratory, Department of Computer Science,
Stanford University, Stanford, CA 94305-9010, USA,
e-mail: khatib@cs.stanford.edu

Author
Peter Corke
School of Electrical Engineering and Computer Science
Queensland University of Technology (QUT), Brisbane QLD 4000, Australia
e-mail: rvc@petercorke.com

ISSN 1610-7438 ISSN 1610-742X (electronic)


Springer Tracts in Advanced Robotics

ISBN 978-3-319-54412-0 ISBN 978-3-319-54413-7 (eBook)


DOI 10.1007/978-3-319-54413-7

Library of Congress Control Number: 2017934638

1st ed. 2011 © Springer-Verlag Berlin Heidelberg 2011


© Springer International Publishing AG 2017

This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
or part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.

The use of general descriptive names, registered names, trademarks, service marks, etc. in this
publication does not imply, even in the absence of a specific statement, that such names are
exempt from the relevant protective laws and regulations and therefore free for general use.

The publisher, the authors and the editors are safe to assume that the advice and information in
this book are believed to be true and accurate at the date of publication. Neither the publisher
nor the authors or the editors give a warranty, express or implied, with respect to the material
contained herein or for any errors or omissions that may have been made. The publisher remains
neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Production: Armin Stasch and Scientific Publishing Services Pvt. Ltd. Chennai, India
Typesetting and layout: Stasch · Bayreuth (stasch@stasch.com)

Printed on acid-free paper

This Springer imprint is published by Springer Nature


The registered company is Springer International Publishing AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Editorial Advisory Board

Nancy Amato, Texas A & M, USA


Oliver Brock, TU Berlin, Germany
Herman Bruyninckx, KU Leuven, Belgium
Wolfram Burgard, Univ. Freiburg, Germany
Raja Chatila, ISIR – UPMC & CNRS, France
Francois Chaumette, INRIA Rennes – Bretagne Atlantique, France
Wan Kyun Chung, POSTECH, Korea
Peter Corke, Queensland Univ. Technology, Australia
Paolo Dario, Scuola S. Anna Pisa, Italy
Alessandro De Luca, Sapienza Univ. Roma, Italy
Rüdiger Dillmann, Univ. Karlsruhe, Germany
Ken Goldberg, UC Berkeley, USA
John Hollerbach, Univ. Utah, USA
Lydia Kavraki, Rice Univ., USA
Vijay Kumar, Univ. Pennsylvania, USA
Bradley Nelson, ETH Zürich, Switzerland
Frank Park, Seoul National Univ., Korea
Tim Salcudean, Univ. British Columbia, Canada
Roland Siegwart, ETH Zurich, Switzerland
Gaurav Sukhatme, Univ. Southern California, USA

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


To my family Phillipa, Lucy and Madeline for their indulgence and support;
my parents Margaret and David for kindling my curiosity;
and to Lou Paul who planted the seed that became this book.
Foreword

Once upon a time, a very thick document of a dissertation from a faraway land came
to me for evaluation. Visual robot control was the thesis theme and Peter Corke was
its author. Here, I am reminded of an excerpt of my comments, which reads, this is a
masterful document, a quality of thesis one would like all of one’s students to strive for,
knowing very few could attain – very well considered and executed.
The connection between robotics and vision has been, for over two decades, the
central thread of Peter Corke’s productive investigations and successful developments
and implementations. This rare experience is bearing fruit in this second edition of his
book on Robotics, Vision, and Control. In its melding of theory and application, this
second edition has considerably benefited from the author’s unique mix of academic
and real-world application influences through his many years of work in robotic min-
ing, flying, underwater, and field robotics.
There have been numerous textbooks in robotics and vision, but few have reached
the level of integration, analysis, dissection, and practical illustrations evidenced in
this book. The discussion is thorough, the narrative is remarkably informative and
accessible, and the overall impression is of a significant contribution for researchers
and future investigators in our field. Most every element that could be considered as
relevant to the task seems to have been analyzed and incorporated, and the effective
use of Toolbox software echoes this thoroughness.
The reader is taken on a realistic walkthrough the fundamentals of mobile robots,
navigation, localization, manipulator-arm kinematics, dynamics, and joint-level con-
trol, as well as camera modeling, image processing, feature extraction, and multi-view
geometry. These areas are finally brought together through extensive discussion of
visual servo system. In the process, the author provides insights into how complex
problems can be decomposed and solved using powerful numerical tools and effec-
tive software.
The Springer Tracts in Advanced Robotics (STAR) is devoted to bringing to the
research community the latest advances in the robotics field on the basis of their sig-
nificance and quality. Through a wide and timely dissemination of critical research
developments in robotics, our objective with this series is to promote more exchanges
and collaborations among the researchers in the community and contribute to further
advancements in this rapidly growing field.
Peter Corke brings a great addition to our STAR series with an authoritative book,
reaching across fields, thoughtfully conceived and brilliantly accomplished.

Oussama Khatib
Stanford, California
October 2016
Preface
Tell me and I will forget.
Show me and I will remember.
Involve me and I will understand.
Chinese proverb

Simple things should be simple,


complex things should be possible.
Alan Kay

These are exciting times for robotics. Since the first edition of this book was published
we have seen much progress: the rise of the self-driving car, the Mars science labora-
tory rover making profound discoveries on Mars, the Philae comet landing attempt,
and the DARPA Robotics Challenge. We have witnessed the drone revolution – flying
machines that were once the domain of the aerospace giants can now be bought for just
tens of dollars. All this has been powered by the continuous and relentless improve-
ment in computer power and tremendous advances in low-cost inertial sensors and
cameras – driven largely by consumer demand for better mobile phones and gaming
experiences. It’s getting easier for individuals to create robots – 3D printing is now
very affordable, the Robot Operating System (ROS) is both capable and widely used,
and powerful hobby technologies such as the Arduino, Raspberry Pi, Dynamixel servo
motors and Lego’s EV3 brick are available at low cost. This in turn has contributed to
the rapid growth of the global maker community – ordinary people creating at home
what would once have been done by a major corporation. We have also witnessed an
explosion of commercial interest in robotics and computer vision – many startups
and a lot of acquisitions by big players in the field. Robotics even featured on the front
cover of the Economist magazine in 2014!
So how does a robot work? Robots are data-driven machines. They acquire data,
process it and take action based on it. The data comes from sensors measuring the ve-
locity of a wheel, the angle of a robot arm’s joint or the intensities of millions of pixels
that comprise an image of the world that the robot is observing. For many robotic ap-
plications the amount of data that needs to be processed, in real-time, is massive. For
a vision sensor it can be of the order of tens to hundreds of megabytes per second.
Progress in robots and machine vision has been, and continues to be, driven by
more effective ways to process data. This is achieved through new and more efficient
algorithms, and the dramatic increase in computational power that follows Moore’s
“Computers in the future may weigh no law. When I started in robotics and vision in the mid 1980s, see Fig. 0.1, the IBM PC
more than 1.5 tons.” Popular Mechanics, had been recently released – it had a 4.77 MHz 16-bit microprocessor and 16 kbytes
forecasting the relentless march of sci-
(expandable to 256 k) of memory. Over the intervening 30 years computing power has
ence, 1949
perhaps doubled 20 times which is an increase by a factor of one million.
Over the fairly recent history of robotics and machine vision a very large body of
algorithms has been developed to efficiently solve large-scale problems in perception,
planning, control and localization – a significant, tangible, and collective achievement
of the research community. However its sheer size and complexity presents a very real
barrier to somebody new entering the field. Given so many algorithms from which to
choose, a real and important question is:

What is the right algorithm for this particular problem?

One strategy would be to try a few different algorithms and see which works best
for the problem at hand, but this is not trivial and leads to the next question:

How can I evaluate algorithm X on my own data without spending days coding and
debugging it from the original research papers?
xii Preface

Fig. 0.1.
Once upon a time a lot of equip-
ment was needed to do vision-
based robot control. The author
with a large rack full of real-time
image processing and robot
control equipment (1992)

Two developments come to our aid. The first is the availability of general purpose
mathematical software which it makes it easy to prototype algorithms. There are
commercial packages such as MATLAB®, Mathematica®, Maple® and MathCad®, as Respectively the trademarks of The Math-
well as open source projects include SciLab, Octave, and PyLab. All these tools deal Works Inc., Wolfram Research, MapleSoft
and PTC.
naturally and effortlessly with vectors and matrices, can create complex and beauti-
ful graphics, and can be used interactively or as a programming environment. The
second is the open-source movement. Many algorithms developed by researchers are
available in open-source form. They might be coded in one of the general purpose
mathematical languages just mentioned, or written in a mainstream language like C,
C++, Java or Python.
For more than twenty years I have been part of the open-source community and
maintained two open-source MATLAB Toolboxes: one for robotics and one for machine
vision. They date back to my own Ph.D. work and have evolved since then, growing The term machine vision is uncommon
features and tracking changes to the MATLAB language. The Robotics Toolbox has today, but it implied the use of real-time
computer vision techniques in an indus-
also been translated into a number of different languages such as Python, SciLab and
trial setting for some monitoring or con-
LabView. More recently some of its functionality is finding its way into the MATLAB trol purpose. For robotics the real-time
Robotics System Toolbox™ published by The MathWorks. aspect is critical but today the interest-
These Toolboxes have some important virtues. Firstly, they have been around for ing challenges are in nonindustrial ap-
a long time and used by many people for many different problems so the code can be plications such as outdoor robotics. The
term robotic vision is gaining currency
accorded some level of trust. New algorithms, or even the same algorithms coded in
and is perhaps a modern take on ma-
new languages or executing in new environments, can be compared against imple- chine vision.
mentations in the Toolbox.

» allow the user to work with real problems,


not just trivial examples
Secondly, they allow the user to work with real problems, not just trivial examples.
For real robots, those with more than two links, or real images with millions of pixels
the computation required is beyond unaided human ability. Thirdly, they allow us to
gain insight which can otherwise get lost in the complexity. We can rapidly and easily
experiment, play what if games, and depict the results graphically using the power-
ful 2D and 3D graphical display tools of MATLAB. Fourthly, the Toolbox code makes
many common algorithms tangible and accessible. You can read the code, you can
apply it to your own problems, and you can extend it or rewrite it. It gives you a “leg
up” as you begin your journey into robotics.

» a narrative that covers robotics and computer vision


– both separately and together
Preface xiii

The genesis of the book lies in the tutorials and reference material that originally
shipped with the Toolboxes from the early 1990s, and a conference paper describing
the Robotics Toolbox that was published in 1995. After a false start in 2004, the first
edition of this book was written in 2009–2010. The book takes a conversational ap-
proach, weaving text, mathematics and examples into a narrative that covers robotics
and computer vision – both separately and together. I wanted to show how complex
problems can be decomposed and solved using just a few simple lines of code. More
formally this is an inductive learning approach, going from specific and concrete ex-
amples to the more general.

» show how complex problems can be decomposed


and solved
The topics covered in this book are based on my own interests but also guided by
real problems that I observed over many years as a practitioner of both robotics and
computer vision. I want to give the reader a flavor of what robotics and vision is about
and what it can do – consider it a grand tasting menu. I hope that by the end of this
book you will share my enthusiasm for these topics.

» consider it a grand tasting menu


I was particularly motivated to present a solid introduction to computer vision
for roboticists. The treatment of vision in robotics textbooks tends to concentrate
on simple binary vision techniques. In this book we will cover a broad range of top-
ics including color vision, advanced segmentation techniques, image warping, stereo
vision, motion estimation, bundle adjustment, visual odometry and image retrieval.
We also cover nonperspective imaging using fisheye lenses, catadioptric optics and
the emerging area of light-field cameras. These topics are growing in importance for
robotics but are not commonly covered. Vision is a powerful sensor, and roboticists
should have a solid grounding in modern fundamentals. The last part of the book
shows how vision can be used as the primary sensor for robot control.
This book is unlike other text books, and deliberately so. Firstly, there are already
a number of excellent text books that cover robotics and computer vision separately
and in depth, but few that cover both in an integrated fashion. Achieving such inte-
gration is a principal goal of the book.

» software is a first-class citizen in this book


Secondly, software is a first-class citizen in this book. Software is a tangible instan-
tiation of the algorithms described – it can be read and it can be pulled apart, modified
and put back together again. There are a number of classic books that use software in
an illustrative fashion and have influenced my approach, for example LaTeX: A docu-
ment preparation system (Lamport 1994), Numerical Recipes in C (Press et al. 2007),
The Little Lisper (Friedman et al. 1987) and Structure and Interpretation of Classical
Mechanics (Sussman et al. 2001). Over 1 000 examples in this book illustrate how the
Toolbox software can be used and generally provide instant gratification in just a
couple of lines of MATLAB code.

» instant gratification in just a couple of lines


of MATLAB code
Thirdly, building the book around MATLAB and the Toolboxes means that we are
able to tackle more realistic and more complex problems than other books.

» this book provides a complementary approach


xiv Preface

The emphasis on software and examples does not mean that rigor and theory are
unimportant – they are very important, but this book provides a complementary ap-
proach. It is best read in conjunction with standard texts which do offer rigor and
theoretical nourishment. The end of each chapter has a section on further reading
and provides pointers to relevant textbooks and key papers. I try hard to use the least
amount of mathematical notation required, if you seek deep mathematical rigor this
may not be the book for you.
Writing this book provided the impetus to revise and extend the Toolboxes and
to include some great open-source software. I am grateful to the following for code
that has been either incorporated into the Toolboxes or which has been wrapped into
the Toolboxes. Robotics Toolbox contributions include: mobile robot localization
and mapping by Paul Newman; a quadrotor simulator by Paul Pounds; a Symbolic
Manipulator Toolbox by Jörn Malzahn; pose-graph SLAM code by Giorgio Grisetti
and 3D robot models from the ARTE Robotics Toolbox by Arturo Gil. Machine Vision
Toolbox contributions include: RANSAC code by Peter Kovesi; pose estimation by
Francesco Moreno-Noguer, Vincent Lepetit, and Pascal Fua; color space conversions
by Pascal Getreuer; numerical routines for geometric vision by various members of
the Visual Geometry Group at Oxford (from the web site of the Hartley and Zisserman
book; Hartley and Zisserman 2003); k-means, SIFT and MSER algorithms from the
wonderful VLFeat suite (vlfeat.org); graph-based image segmentation software by
Pedro Felzenszwalb; and the OpenSURF feature detector by Dirk-Jan Kroon. The Camera
Calibration Toolbox by Jean-Yves Bouguet is used unmodified.
Along the way I became fascinated by the mathematicians, scientists and engineers
whose work, hundreds of years ago, underpins the science of robotic and computer
vision today. Some of their names have become adjectives like Coriolis, Gaussian,
Laplacian or Cartesian; nouns like Jacobian, or units like Newton and Coulomb. They
are interesting characters from a distant era when science was a hobby and their day
jobs were as doctors, alchemists, gamblers, astrologers, philosophers or mercenaries.
In order to know whose shoulders we are standing on I have included small vignettes
about the lives of some of these people – a smattering of history as a backstory.
In my own career I have had the good fortune to work with many wonderful peo-
ple who have inspired and guided me. Long ago at the University of Melbourne John
Anderson fired my interest in control and Graham Holmes tried with mixed suc-
cess to have me “think before I code”. Early on I spent a life-direction-changing ten
months working with Richard (Lou) Paul in the GRASP laboratory at the University
of Pennsylvania in the period 1988–1989. The genesis of the Toolboxes was my Ph.D.
research (1991–1994) and my advisors Malcolm Good (University of Melbourne) and
Paul Dunn (CSIRO) asked me good questions and guided my research. Laszlo Nemes
(CSIRO) provided great wisdom about life and the ways of organizations, and encour-
aged me to publish and to open-source my software. Much of my career was spent at
CSIRO where I had the privilege and opportunity to work on a diverse range of real
robotics projects and to work with a truly talented set of colleagues and friends. Part
way through writing the first edition I joined the Queensland University of Technology
which made time available to complete that work, and in 2015 sabbatical leave to com-
plete the second.
Many people have helped me in my endeavor and I thank them. I was generously
hosted for periods of productive writing at Oxford (both editions) by Paul Newman,
and at MIT (first edition) by Daniela Rus. Daniela, Paul and Cédric Pradalier made
constructive suggestions and comments on early drafts of that edition. For the second
edition I was helped by comments on draft chapters by: Tim Barfoot, Dmitry Bratanov,
Duncan Campbell, Donald Dansereau, Tom Drummond, Malcolm Good, Peter Kujala,
Obadiah Lam, Jörn Malzahn, Felipe Nascimento Martins, Ajay Pandey, Cédric Pradalier,
Dan Richards, Daniela Rus, Sareh Shirazi, Surya Singh, Ryan Smith, Ben Talbot, Dorian
Tsai and Ben Upcroft; and assisted with wisdom and content by: François Chaumette,
Donald Dansereau, Kevin Lynch, Robert Mahony and Frank Park.
Preface xv

I have tried my hardest to eliminate errors but inevitably some will remain. Please
email bug reports to me at rvc@petercorke.com as well as suggestions for improve-
ments and extensions.
Writing the second edition was financially supported by EPSRC Platform Grant EP/
M019918/1, QUT Science & Engineering Faculty sabbatical grant, QUT Vice Chancellor’s
Excellence Award, QUT Robotics and Autonomous Systems discipline and the ARC
Centre of Excellence for Robotic Vision (grant CE140100016).
Over both editions I have enjoyed wonderful support from MathWorks, through
their author program, and from Springer. My editor Thomas Ditzinger has been a great
supporter of this project and Armin Stasch, with enormous patience and dedication in
layout and typesetting, has transformed my untidy ideas into a thing of beauty.
Finally, my deepest thanks are to Phillipa who has supported me and “the book”
with grace and patience for a very long time and in many different places – without
her this book could never have been written.

Peter Corke
Brisbane,
Queensland
October 2016

Note on the Second Edition


It seems only yesterday that I turned in the manuscript for the first edition of this book,
but it was in fact December 2010, the end of 20 months of writing. So the oldest parts
of the book are over 6 years old – it’s time for an update!
The revision principle was to keep the good (narrative style, code as a first-class citi-
zen, soft plastic cover) and eliminate the bad (errors and missing topics). I started with
the collected errata for the first edition and pencilled markup from a battered copy of the
first edition that I’ve carried around for years. There were more errors than I would have
liked and I thank everybody who submitted errata and suggested improvements.
The first edition was written before I taught in the university classroom or created
the MOOCs, which is the inverse of the way books are normally developed. Preparing
for teaching gave me insights into better ways to present some topics, particularly
around pose representation, robot kinematics and dynamics so the presentation has
been adjusted accordingly.
New content includes matrix exponential notation; the basics of screw theory and
Lie algebra; inertial navigation; differential steer and omnidirectional mobile robots; a
deeper treatment of SLAM systems including scan matching and pose graphs; greater
use of MATLAB computer algebra; operational space control; deeper treatment of ma-
nipulator dynamics and control; visual SLAM and visual odometry; structured light;
bundle adjustment; and light-field cameras.
In the first edition I shied away from Lie algebra, matrix exponentials and twists
but I think it’s important to cover them. The topic is deeply mathematical and I’ve
tried to steer a middle ground between hardcore algebraic topology and the homog-
enous transformation only approach of most other texts, while also staying true to the
overall approach of this book.
All MATLAB generated figures have been regenerated to reflect recent improve-
ments to MATLAB graphics and all code examples have been updated as required and
tested, and are available as MATLAB Live Scripts.
The second edition of the book is matched by new major releases of my Toolboxes:
Robotics Toolbox (release 10) and the Machine Vision Toolbox (release 4). These newer
versions of the toolboxes have some minor incompatibilities with previous releases of the
toolboxes, and therefore also with the code examples in the first edition of the book.
Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Robots, Jobs and Ethics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 About the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 MATLAB Software and the Toolboxes . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Notation, Conventions and Organization . . . . . . . . . . . . . . . . . . . . . 10
1.2.3 Audience and Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.4 Learning with the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.5 Teaching with the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.6 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Part I Foundations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 Representing Position and Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1 Working in Two Dimensions (2D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.1 Orientation in 2-Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.2 Pose in 2-Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 Working in Three Dimensions (3D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.1 Orientation in 3-Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.2 Pose in 3-Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3 Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.1 Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.2 Understanding the Exponential Mapping . . . . . . . . . . . . . . . . . . . . . 50
2.3.3 More About Twists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3.4 Dual Quaternions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.3.5 Configuration Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4 Using the Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.5 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3 Time and Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63


3.1 Time-Varying Pose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1.1 Derivative of Pose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1.2 Transforming Spatial Velocities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.1.3 Incremental Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.1.4 Incremental Rigid-Body Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2 Accelerating Bodies and Reference Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.1 Dynamics of Moving Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.2 Transforming Forces and Torques . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.3 Inertial Reference Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.3 Creating Time-Varying Pose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3.1 Smooth One-Dimensional Trajectories . . . . . . . . . . . . . . . . . . . . . . . 70
xviii Contents

3.3.2 Multi-Dimensional Trajectories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73


3.3.3 Multi-Segment Trajectories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3.4 Interpolation of Orientation in 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3.5 Cartesian Motion in 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.4 Application: Inertial Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.4.1 Gyroscopes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.4.2 Accelerometers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.4.3 Magnetometers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.4.4 Sensor Fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.5 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Part II Mobile Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93


4 Mobile Robot Vehicles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.1 Wheeled Mobile Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.1.1 Car-Like Mobile Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.1.2 Differentially-Steered Vehicle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1.3 Omnidirectional Vehicle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.2 Flying Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.3 Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.3.1 Nonholonomic
and Under-Actuated Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.4 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Toolbox and MATLAB Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

5 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.1 Reactive Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.1.1 Braitenberg Vehicles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.1.2 Simple Automata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.2 Map-Based Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.2.1 Distance Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.2.2 D* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.2.3 Introduction to Roadmap Methods . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.2.4 Probabilistic Roadmap Method (PRM) . . . . . . . . . . . . . . . . . . . . . . 137
5.2.5 Lattice Planner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.2.6 Rapidly-Exploring Random Tree (RRT) . . . . . . . . . . . . . . . . . . . . . 144
5.3 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
MATLAB Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

6 Localization . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151


6.1 Dead Reckoning . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.1.1 Modeling the Vehicle .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.1.2 Estimating Pose . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.2 Localizing with a Map . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.3 Creating a Map . . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.4 Localization and Mapping . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.5 Rao-Blackwellized SLAM . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.6 Pose Graph SLAM . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Contents xix

6.7 Sequential Monte-Carlo Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175


6.8 Application: Scanning Laser Rangefinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Laser Odometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Laser-Based Map Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Laser-Based Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.9 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Toolbox and MATLAB Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

Part III Arm-Type Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189


7 Robot Arm Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
7.1 Forward Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
7.1.1 2-Dimensional (Planar) Robotic Arms . . . . . . . . . . . . . . . . . . . . . . . 194
7.1.2 3-Dimensional Robotic Arms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.2 Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.2.1 2-Dimensional (Planar) Robotic Arms . . . . . . . . . . . . . . . . . . . . . . . 205
7.2.2 3-Dimensional Robotic Arms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
7.3 Trajectories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
7.3.1 Joint-Space Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
7.3.2 Cartesian Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
7.3.3 Kinematics in Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
7.3.4 Motion through a Singularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
7.3.5 Configuration Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
7.4 Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
7.4.1 Joint Angle Offsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
7.4.2 Determining Denavit-Hartenberg Parameters . . . . . . . . . . . . . . . . 217
7.4.3 Modified Denavit-Hartenberg Parameters . . . . . . . . . . . . . . . . . . . 218
7.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
7.5.1 Writing on a Surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
7.5.2 A Simple Walking Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
7.6 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
MATLAB and Toolbox Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

8 Manipulator Velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229


8.1 Manipulator Jacobian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
8.1.1 Jacobian in the World Coordinate Frame . . . . . . . . . . . . . . . . . . . . 229
8.1.2 Jacobian in the End-Effector Coordinate Frame . . . . . . . . . . . . . . . 232
8.1.3 Analytical Jacobian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
8.2 Jacobian Condition and Manipulability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
8.2.1 Jacobian Singularities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
8.2.2 Manipulability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
8.3 Resolved-Rate Motion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
8.3.1 Jacobian Singularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
8.4 Under- and Over-Actuated Manipulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
8.4.1 Jacobian for Under-Actuated Robot . . . . . . . . . . . . . . . . . . . . . . . . . 241
8.4.2 Jacobian for Over-Actuated Robot . . . . . . . . . . . . . . . . . . . . . . . . . . 242
8.5 Force Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
8.5.1 Transforming Wrenches to Joint Space . . . . . . . . . . . . . . . . . . . . . . 244
8.5.2 Force Ellipsoids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
8.6 Inverse Kinematics: a General Numerical Approach . . . . . . . . . . . . . . . . . . . 245
8.6.1 Numerical Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
xx Contents

8.7 Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 247


8.7.1 Computing the Manipulator Jacobian Using Twists . . . . . . . . . . . 247
8.8 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 247
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 248
MATLAB and Toolbox Notes . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 248
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 248

9 Dynamics and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251


9.1 Independent Joint Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
9.1.1 Actuators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
9.1.2 Friction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
9.1.3 Effect of the Link Mass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
9.1.4 Gearbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
9.1.5 Modeling the Robot Joint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
9.1.6 Velocity Control Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
9.1.7 Position Control Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
9.1.8 Independent Joint Control Summary . . . . . . . . . . . . . . . . . . . . . . . . 262
9.2 Rigid-Body Equations of Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
9.2.1 Gravity Term . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
9.2.2 Inertia Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
9.2.3 Coriolis Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
9.2.4 Friction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
9.2.5 Effect of Payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
9.2.6 Base Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
9.2.7 Dynamic Manipulability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
9.3 Forward Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
9.4 Rigid-Body Dynamics Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
9.4.1 Feedforward Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
9.4.2 Computed Torque Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
9.4.3 Operational Space Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
9.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
9.5.1 Series-Elastic Actuator (SEA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
9.6 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

Part IV Computer Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283


10 Light and Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
10.1 Spectral Representation of Light . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
10.1.1 Absorption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
10.1.2 Reflectance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
10.1.3 Luminance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
10.2 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
10.2.1 The Human Eye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
10.2.2 Measuring Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
10.2.3 Reproducing Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
10.2.4 Chromaticity Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
10.2.5 Color Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
10.2.6 Other Color and Chromaticity Spaces . . . . . . . . . . . . . . . . . . . . . . . 301
10.2.7 Transforming between Different Primaries . . . . . . . . . . . . . . . . . . . 304
10.2.8 What Is White? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
10.3 Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
10.3.1 Color Temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
10.3.2 Color Constancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Contents xxi

10.3.3 White Balancing . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 308


10.3.4 Color Change Due to Absorption . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
10.3.5 Dichromatic Reflectance . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 310
10.3.6 Gamma . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 310
10.4 Application: Color Image . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 312
10.4.1 Comparing Color Spaces . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 312
10.4.2 Shadow Removal . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 313
10.5 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Further Reading . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Data Sources . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 317

11 Image Formation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319


11.1 Perspective Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11.1.1 Perspective Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11.1.2 Modeling a Perspective Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.3 Discrete Image Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.4 Camera Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
11.1.5 Projecting Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
11.1.6 Lens Distortion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
11.2 Camera Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
11.2.1 Homogeneous Transformation Approach . . . . . . . . . . . . . . . . . . . . 331
11.2.2 Decomposing the Camera
Calibration Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
11.2.3 Pose Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
11.2.4 Camera Calibration Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
11.3 Wide Field-of-View Imaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
11.3.1 Fisheye Lens Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
11.3.2 Catadioptric Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
11.3.3 Spherical Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
11.4 Unified Imaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
11.4.1 Mapping Wide-Angle Images to the Sphere . . . . . . . . . . . . . . . . . . 345
11.4.2 Mapping from the Sphere to a Perspective Image . . . . . . . . . . . . . 347
11.5 Novel Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
11.5.1 Multi-Camera Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
11.5.2 Light-Field Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
11.6 Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
11.6.1 Projecting 3D Lines and Quadrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
11.6.2 Nonperspective Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
11.7 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Further Reading and Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Toolbox Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12 Images and Image Processing . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 359


12.1 Obtaining an Image . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 359
12.1.1 Images from Files . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 359
12.1.2 Images from an Attached Camera ... . . . . . . . . . . . . . . . . . . . . . . . 363
12.1.3 Images from a Movie File . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 365
12.1.4 Images from the Web . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 366
12.1.5 Images from Maps . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 367
12.1.6 Images from Code . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 367
12.2 Image Histograms . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 369
12.3 Monadic Operations . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . 370
xxii Contents

12.4 Diadic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372


12.5 Spatial Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
12.5.1 Linear Spatial Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
12.5.2 Template Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
12.5.3 Nonlinear Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
12.6 Mathematical Morphology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
12.6.1 Noise Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
12.6.2 Boundary Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
12.6.3 Hit or Miss Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
12.6.4 Distance Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
12.7 Shape Changing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
12.7.1 Cropping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
12.7.2 Image Resizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
12.7.3 Image Pyramids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
12.7.4 Image Warping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
12.8 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Sources of Image Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
MATLAB Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
General Software Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

13 Image Feature Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413


13.1 Region Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
13.1.1 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
13.1.2 Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
13.1.3 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
13.1.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
13.2 Line Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
13.2.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
13.3 Point Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
13.3.1 Classical Corner Detectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
13.3.2 Scale-Space Corner Detectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
13.4 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
MATLAB Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457

14 Using Multiple Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459


14.1 Feature Correspondence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
14.2 Geometry of Multiple Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
14.2.1 The Fundamental Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
14.2.2 The Essential Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
14.2.3 Estimating the Fundamental Matrix
from Real Image Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
14.2.4 Planar Homography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
14.3 Stereo Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
14.3.1 Sparse Stereo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
14.3.2 Dense Stereo Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
14.3.3 Peak Refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
14.3.4 Cleaning up and Reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
14.3.5 3D Texture Mapped Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
14.3.6 Anaglyphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
14.3.7 Image Rectification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
14.4 Bundle Adjustment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Contents xxiii

14.5 Point Clouds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503


14.5.1 Fitting a Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
14.5.2 Matching Two Sets of Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
14.6 Structured Light . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
14.7 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
14.7.1 Perspective Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
14.7.2 Mosaicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
14.7.3 Image Matching and Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
14.7.4 Visual Odometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
14.8 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
MATLAB and Toolbox Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529

Part V Robotics, Vision and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533


15 Vision-Based Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
15.1 Position-Based Visual Servoing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
15.2 Image-Based Visual Servoing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
15.2.1 Camera and Image Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
15.2.2 Controlling Feature Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
15.2.3 Estimating Feature Depth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
15.2.4 Performance Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
15.3 Using Other Image Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
15.3.1 Line Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
15.3.2 Circle Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
15.3.3 Photometric Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
15.4 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562

16 Advanced Visual Servoing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565


16.1 XY/Z-Partitioned IBVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
16.2 IBVS Using Polar Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
16.3 IBVS for a Spherical Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
16.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
16.4.1 Arm-Type Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
16.4.2 Mobile Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
16.4.3 Aerial Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
16.5 Wrapping Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
A Installing the Toolboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
B Linear Algebra Refresher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
C Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
D Lie Groups and Algebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
E Linearization, Jacobians and Hessians . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
F Solving Systems of Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
G Gaussian Random Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
H Kalman Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
I Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
J Peak Finding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
xxiv Contents

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Index of People . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Index of Functions, Classes and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
General Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
Nomenclature

The notation used in robotics and computer vision varies considerably across books and
research papers. The symbols used in this book, and their units where appropriate, are
listed below. Some symbols have multiple meanings and their context must be used to
disambiguate them.
xxvi Nomenclature
Nomenclature xxvii
xxviii Nomenclature
Nomenclature xxix

MATLAB® Toolbox Conventions


 A Cartesian coordinate, a point, is expressed as a column vector.
 A set of points is expressed as a matrix with columns representing the coordinates
of individual points.
 A rectangular region by two opposite corners [xmin xmax; ymin ymax].
 A robot configuration, a set of joint angles, is expressed as a row vector.
 Time series data is expressed as a matrix with rows representing time steps.
 A MATLAB matrix has subscripts (i, j) which represent row and column respec-
tively. Image coordinates are written (u, v) so an image represented by a matrix I
is indexed as I(v, u).
 Matrices with three or more dimensions are frequently used:
– A color image has 3 dimensions: row, column, color plane.
– A greyscale image sequence has 3 dimensions: row, column, index.
– A color image sequence has 4 dimensions: row, column, color plane, index.

Common Abbreviations
2D 2-dimensional
3D 3-dimensional
DOF Degrees of freedom
n-tuple A group of n numbers, it can represent a point of a vector
Chapter

1 Introduction

The term robot means different things to different people. Science fiction books and
movies have strongly influenced what many people expect a robot to be or what it can
do. Sadly the practice of robotics is far behind this popular conception. One thing is
certain though – robotics will be an important technology in this century. Products
such as vacuum cleaning robots have already been with us for over a decade and self-
driving cars are coming. These are the vanguard of a wave of smart machines that will
appear in our homes and workplaces in the near to medium future.
In the eighteenth century the people of Europe were fascinated by automata such as
Vaucanson’s duck shown in Fig. 1.1a. These machines, complex by the standards of the
day, demonstrated what then seemed life-like behavior. The duck used a cam mecha-
nism to sequence its movements and Vaucanson went on to explore mechanization of
silk weaving. Jacquard extended these ideas and developed a loom, shown in Fig. 1.1b,
that was essentially a programmable weaving machine. The pattern to be woven was
encoded as a series of holes on punched cards. This machine has many hallmarks of a
modern robot: it performed a physical task and was reprogrammable.
The term robot first appeared in a 1920 Czech science fiction play “Rossum’s Universal
Robots” by Karel .apek (pronounced Chapek). The term was coined by his brother
Josef, and in the Czech language means serf labor but colloquially means hardwork
or drudgery. The robots in the play were artificial people or androids and as in so
many robot stories that follow this one, the robots rebel and it ends badly for human-
ity. Isaac Asimov’s robot series, comprising many books and short stories written be-
tween 1950 and 1985, explored issues of human and robot interaction and morality.
The robots in these stories are equipped with “positronic brains” in which the “Three
laws of robotics” are encoded. These stories have influenced subsequent books and
movies which in turn have shaped the public perception of what robots are. The mid
twentieth century also saw the advent of the field of cybernetics – an uncommon term
today but then an exciting science at the frontiers of understanding life and creating
intelligent machines.
The first patent for what we would now consider a robot was filed in 1954 by
George C. Devol and issued in 1961. The device comprised a mechanical arm with

Fig. 1.1.
Early programmable machines.
a Vaucanson’s duck (1739) was
an automaton that could flap its
wings, eat grain and defecate. It
was driven by a clockwork mech-
anism and executed a single
program; b The Jacquard loom
(1801) was a reprogrammable
machine and the program was
held on punched cards (photo-
graph by George P. Landow
from www.victorianweb.org)
2 Chapter 1 · Introduction

a gripper that was mounted on a track and the sequence of motions was encod-
ed as magnetic patterns stored on a rotating drum. The first robotics company,
Unimation, was founded by Devol and Joseph Engelberger in 1956 and their first
industrial robot shown in Fig. 1.2 was installed in 1961. The original vision of Devol
and Engelberger for robotic automation has become a reality and many millions of
arm-type robots such as shown in Fig. 1.3 have been built and put to work at tasks
such as welding, painting, machine loading and unloading, electronic assembly,
packaging and palletizing. The use of robots has led to increased productivity and
improved product quality. Today many products we buy have been assembled or
handled by a robot.

Fig. 1.2.
Universal automation. a A plan
view of the machine from Devol’s
patent; b the first Unimation
robot working at a General
Motors factory (photo courtesy
of George C. Devol)

Unimation Inc. (1956–1982). Devol sought financing to develop his unimation technology and at
a cocktail party in 1954 he met Joseph Engelberger who was then an engineer with Manning,
Maxwell and Moore. In 1956 they jointly established Unimation, the first robotics company, in
Danbury Connecticut. The company was acquired by Consolidated Diesel Corp. (Condec) and
became Unimate Inc. a division of Condec. Their first robot went to work in 1961 at a General
Motors die-casting plant in New Jersey. In 1968 they licensed technology to Kawasaki Heavy
Industries which produced the first Japanese industrial robot. Engelberger served as chief execu-
tive until it was acquired by Westinghouse in 1982. People and technologies from this company
have gone on to be very influential on the whole field of robotics.

George C. Devol, Jr. (1912–2011) was a prolific American inventor. He was born in Louisville,
Kentucky, and in 1932 founded United Cinephone Corp. which manufactured phonograph
arms and amplifiers, registration controls for printing presses and packaging machines. In
1954, he applied for US patent 2,988,237 for Programmed Article Transfer which introduced
the concept of Universal Automation or “Unimation”. Specifically it described a track-mounted
polar-coordinate arm mechanism with a gripper and a programmable controller – the precur-
sor of all modern robots.
In 2011 he was inducted into the National Inventors Hall of Fame. (Photo on the right: cour-
tesy of George C. Devol)

Joseph F. Engelberger (1925–2015) was an American engineer and entrepreneur who is often referred
to as the “Father of Robotics”. He received his B.S. and M.S. degrees in physics from Columbia
University, in 1946 and 1949, respectively. Engelberger has been a tireless promoter of robotics.
In 1966, he appeared on The Tonight Show Starring Johnny Carson with a Unimate robot which
poured a beer, putted a golf ball, and directed the band. He promoted robotics heavily in Japan,
which led to strong investment and development of robotic technology in that country.
Engelberger served as chief executive of Unimation until 1982, and in 1984 founded Transitions
Research Corporation which became HelpMate Robotics Inc., an early entrant in the hospital ser-
vice robot sector. He was elected to the National Academy of Engineering, received the Beckman
Award and the Japan Prize, and has written two books: Robotics in Practice (1980) and Robotics
in Service (1989). Each year the Robotics Industries Association presents an award in his honor
to “persons who have contributed outstandingly to the furtherance of the science and practice
of robotics.”
Chapter 1 · Introduction 3

These first generation robots are fixed in place and cannot move about the fac-
tory – they are not mobile. By contrast mobile robots as shown in Figs. 1.4 and
1.5 can move through the world using various forms of mobility. They can loco-
mote over the ground using wheels or legs, fly through the air using fixed wings or
multiple rotors, move through the water or sail over it. An alternative taxonomy
is based on the function that the robot performs. Manufacturing robots operate
in factories and are the technological descendents of the first generation robots.
Service robots supply services to people such as cleaning, personal care, medical
rehabilitation or fetching and carrying as shown in Fig. 1.5b. Field robots, such as
those shown in Fig. 1.4, work outdoors on tasks such as environmental monitor-
ing, agriculture, mining, construction and forestry. Humanoid robots such as shown
in Fig. 1.6 have the physical form of a human being – they are both mobile robots
In practice the categorization of robots and service robots.
is not very consistently applied.

Fig. 1.3.
Manufacturing robots, tech-
nological descendants of the
Unimate shown in Fig. 1.2.
a A modern six-axis robot de-
signed for high accuracy and
throughput (image courtesy
ABB robotics); b Baxter two-
armed robot with built in vision
capability and programmable
by demonstration, designed for
moderate throughput piece work
(image courtesy Rethink Robotics)

Rossum’s Universal Robots (RUR). In the introductory scene Helena Glory is visiting Harry Domin
the director general of Rossum’s Universal Robots and his robotic secretary Sulla.
Domin Sulla, let Miss Glory have a look at you.
Helena (stands and offers her hand) Pleased to meet you. It must be very hard for you
out here, cut off from the rest of the world [the factory is on an island]
Sulla I do not know the rest of the world Miss Glory. Please sit down.
Helena (sits) Where are you from?
Sulla From here, the factory
Helena Oh, you were born here.
Sulla Yes I was made here.
Helena (startled) What?
Domin (laughing) Sulla isn’t a person, Miss Glory, she’s a robot.
Helena Oh, please forgive me …
The full play can be found at http://ebooks.adelaide.edu.au/c/capek/karel/rur. (Image on the
left: Library of Congress item 96524672)
4 Chapter 1 · Introduction

A manufacturing robot is typically an arm-type manipulator on a fixed base such


as Fig. 1.3a that performs repetitive tasks within a local work cell. Parts are presented
to the robot in an orderly fashion which maximizes the advantage of the robot’s high
speed and precision. High-speed robots are hazardous and safety is achieved by ex-
cluding people from robotic work places, typically placing the robot inside a cage. In
contrast the Baxter robot shown in Fig. 1.3b is human safe, it operates at low speed
and stops moving if it encounters an obstruction.
Field and service robots face specific and significant challenges. The first chal-
lenge is that the robot must operate and move in a complex, cluttered and chang-
ing environment. A delivery robot in a hospital must operate despite crowds of
people and a time-varying configuration of parked carts and trolleys. A Mars rover
as shown in Fig. 1.5a must navigate rocks and small craters despite not having an
accurate local map in advance of its travel. Robotic, or self-driving cars, such as
shown in Fig. 1.5c, must follow roads, avoid obstacles and obey traffic signals and Fig. 1.4. Non-land-based mobile
the rules of the road. The second challenge for these types of robots is that they robots. a Small autonomous un-
derwater vehicle (Todd Walsh
must operate safely in the presence of people. The hospital delivery robot operates © 2013 MBARI); b Global Hawk
among people, the robotic car contains people and a robotic surgical device oper- unmanned aerial vehicle (UAV)
ates inside people. (photo courtesy of NASA)

Cybernetics, artificial intelligence and robotics. Cybernetics flour- (Wiener 1965). A characteristic of a cybernetic system is the use
ished as a research field from the 1930s until the 1960s and was of feedback which is common in engineering and biological sys-
fueled by a heady mix of new ideas and results from neurology, tems. The ideas were later applied to evolutionary biology, psy-
control theory and information theory. Research in neurology chology and economics.
had shown that the brain was an electrical network of neurons. In 1956 a watershed conference was hosted by John McCarthy
Harold Black, Henrik Bode and Harry Nyquist at Bell Labs were at Dartmouth College and attended by Minsky, Shannon, Herbert
researching negative feedback and the stability of electrical net- Simon, Allen Newell and others. This meeting defined the term
works, Claude Shannon’s information theory described digital artificial intelligence (AI) as we know it today with an em-
signals, and Alan Turing was exploring the fundamentals of phasis on digital computers and symbolic manipulation and
computation. Walter Pitts and Warren McCulloch proposed led to new research in robotics, vision, natural language, se-
an artificial neuron in 1943 and showed how it might perform mantics and reasoning. McCarthy and Minsky formed the AI
simple logical functions. In 1951 Marvin Minsky built SNARC group at MIT, and McCarthy left in 1962 to form the Stanford
(from a B24 autopilot and comprising 3 000 vacuum tubes) AI Laboratory. Minsky focused on artificially simple “blocks
which was perhaps the first neural-network-based learning world”. Simon, and his student Newell, were influential in AI
machine as his graduate project. William Grey Walter’s ro- research at Carnegie-Mellon University from which the Robotics
botic tortoises showed life-like behavior. Maybe an electronic Institute was spawned in 1979. These AI groups were to be very
brain could be built! influential in the development of robotics and computer vision
An important early book was Norbert Wiener’s Cybernetics in the USA. Societies and publications focusing on cybernetics
or Control and Communication in the Animal and the Machine are still active today.
Another random document with
no related content on Scribd:
THE OCCUPATION OF NEW ORLEANS.
At eleven o’clock, A. M., on the 24th, the flag-ship raised her anchor,
and led the way up the river towards New Orleans. Commander
Farragut had been apprised of the obstacles which he would meet,
and was therefore prepared to encounter them. There was no
occurrences of moment on the way up the river, except the
demonstrations of joy or of opposition made by the people, according
to their loyal or disloyal sympathies. Boats loaded with cotton were
burnt or burning along the river as they passed, and fragments of the
Mississippi battery floated down the stream.
At about the same hour of the next day, the fleet reached two forts,
one on either side of the river, about two miles below the city, known
as the Chalmette batteries, which had no flags flying. At eleven
o’clock they opened on the Cayuga, which was then in the advance.
After a short time spent in firing the bow-guns, the Hartford poured
in a terrific broadside, which appeared to be very destructive. Other
discharges followed from other vessels, and the garrison abandoned
the works without hoisting a flag. The guns being silenced, and the
forts evacuated, the fleet passed on and came to anchor opposite the
city about one o’clock. The river was filled with vessels on fire, and
along the levee cotton, stores, and other property were wantonly
burned, filling the atmosphere with suffocating smoke, and adding to
the heat of the day. Vast amounts of property were thus destroyed.
On shore and on the wharves the people hastened to and fro, some
cheering for Jeff. Davis and the Confederacy, Beauregard, and
others, while some of the more exulting loyalists cheered for the
Union and the old flag.
NEW ORLEANS AND VICINITY.

SHOWING THE DISTANCES ON THE


MISSISSIPPI, AND THE ISLANDS BY
THEIR NUMBERS.

At two o’clock Commodore Farragut sent Captain Bailey on shore


to communicate with the authorities, and demand a surrender of the
city. He started with a flag of truce, and on reaching the levee was
greeted with curses by the mob. With some difficulty he reached the
City Hall, with the officer who accompanied him, and there found the
Mayor, City Council, and General Lovell, the commander of the rebel
forces in the city. New Orleans being under martial law, the civil
authorities could do nothing, and General Lovell declared he would
never surrender it. He was informed that the city was then in the
power of the Federal fleet, and the responsibility of any suffering or
destruction that might follow his obstinate determination must rest
with him. If no resistance were made, nothing would be injured.
General Lovell then agreed to evacuate the city, and restore it to the
control of the civil authorities. Captain Bailey and Lieutenant Perkins
entered a carriage and returned to their boats. Just before they
reached the levee, the new ram Mississippi, already mentioned,
floated down the river wrapt in flames. The rebels had attempted to
tow her up the river, but finding some of the Federal vessels on the
alert in pursuit, they set her on fire. Two or three other similar
vessels, partly built, were in the shipyards of the city and Algiers, on
the other side of the river, which were also destroyed.
When the news of the passage of the forts by the Federal fleet had
been telegraphed to the city, the popular excitement was unbounded.
Under apprehension that the city would be pillaged, and given up to
the violence of a body of Northern desperadoes, the mob, led on by
some of the most bitter secessionists, were anxious to fire the public
buildings, and reduce the city to ruin in advance. But other counsels
prevailed, and they were fortunately restrained from the commission
of these atrocities.
On the following morning, the 26th, at half-past six o’clock, the
Mayor sent his secretary and chief of police to see the Commodore,
informing him that he would call a meeting of the Council at ten
o’clock. Commodore Farragut replied to the message of the Mayor,
and sent him a formal demand for the unqualified surrender of the
city. The Council met, and on hearing a message from the Mayor,
John T. Monroe, that body adopted resolutions in accordance with
the message, and the Mayor made a reply to the Commodore, stating
that the city was subject to his power. Both the message of the
Mayor, and his reply to Commodore Farragut, breathed a spirit of
bold defiance to the Federal authority, declaring that they submitted
only to stern necessity, and that they still maintained their allegiance
to the Confederate States.
At ten o’clock two officers were sent on shore, with a body of
marines, to raise the flag on the Custom House; but the protest of the
Mayor was so urgent, under the apprehension that the mob would
resist this attempt to plant the old flag in its rightful place, that the
Commodore deemed it advisable to recall the order. About the same
time the Pensacola sent a boat to raise the flag on the mint. A general
order for a thanksgiving service at eleven o’clock, on shipboard, had
been issued, for the success of the expedition, and while thus
engaged, the stars and stripes were torn down by a mob. The
Pensacola fired a howitzer, killing one man, which occasioned
intense excitement.
On the surrender of the forts, General Butler hastened with his
forces to the city, where he arrived, with his transports, on the
afternoon of the 28th.
On the morning of the 29th, Pierre Soulé, one of the most
prominent men of New Orleans, visited the Commodore for the
purpose of a private interview. Soon after he left the ship, the
marines of the fleet went ashore in the small boats to raise the flag on
the Custom House and Post Office. Two howitzers were in the
company, to assist, if necessary, in maintaining order. The duty of
hauling down the State flag of Louisiana, and replacing it with the
national emblem, was assigned to Commander H. H. Bell. When the
boats reached the levee, the men formed in line of march, and
proceeded to the Custom House, where the stars and stripes were
once more flung to the southern breeze. After leaving the Custom
House, they proceeded to the City Hall, where Captain Bell
generously yielded the distinction of raising the flag to George
Russell, boatswain’s mate of the Hartford, who had won general
approbation by his heroic conduct.
General Butler established his headquarters in the city, proclaimed
martial law, and commenced his administration without opposition.
With this peaceful and successful result was crowned one of the most
brilliant achievements in naval history.
THE EVACUATION OF YORKTOWN.

May 4, 1862.

As the month of April was passing away, dispatches from the


peninsula gave assurances that the two great armies now confronting
each other before Yorktown would in a few days be compelled to test
their relative strength in a general engagement, should neither,
meantime, voluntarily abandon the position. The daily bulletin of
casualties gave evidence of closer and more sanguinary contests
among the working or reconnoitering parties, or from the batteries
erected on new parallels of rugged embankments springing up daily
in closer proximity. A most arduous portion of the soldiers’ labor
during the siege is thus graphically described:
Working in the Trenches.—A working party is detailed for night
duty. With muskets slung on their backs and shovels and picks on
their shoulders, they proceed to the selected ground. The white tape
marks the line of excavation—the dark lanterns are “faced to the
rear”—the muskets are carefully laid aside—the shovels are in hand,
and each man silently commences to dig. Not a word is spoken—not
one spade clicks against another. Each man first digs a hole large
enough to cover himself—he then turns and digs to his right-hand
neighbor. Then the ditch deepens and widens, and the parapet rises.
Yet all is silent—the relief comes and the weary ones retire. The
words and jests of the enemy are often heard, while no noise from
the men disturbs the stillness save the dull rattle of the earth as each
spadeful is thrown to the top. At daylight a long line of earthworks,
affording complete protection, greets the astonished eyes of the
enemy, while the sharpshooters’ bullets whisper terror to his ears.
On the 2d of May the rebels opened fire from an immense gun
mounted on a pivot at a corner of the main fort on the heights of
Yorktown, which inflicted serious injury on the Federals, who replied
with much spirit from their No. 1 battery, mounting one and two
hundred-pounder Parrot guns. On the twenty-third discharge of the
enemy’s gun it burst into a thousand pieces, tearing up the parapet,
and making fearful havoc among the immense crowd surrounding it.
The Federal guns on No. 1 battery were then brought to bear on the
rebel works at Yorktown and Gloucester, and on their shipping, with
marked effect, to which they were unable to reply.
From the 1st to the 4th of May the Confederate army evacuated
Yorktown, without awaking the suspicions of the besiegers, making a
safe retreat with all their field artillery and most of their stores.
Eighty heavy guns at Yorktown and Gloucester, with large quantities
of ordnance stores, fell into possession of the Federals, who occupied
the rebel ramparts on the morning of the fourth.
On the same day the iron battery Merrimac made her appearance
off Sewall’s Point, and the Federal gunboats availed themselves of
the opportunity to go up the York river, convoying a portion of the
army transports, with the design of intercepting the retreating
enemy, while most of the cavalry and horse artillery, followed by the
infantry, started in immediate pursuit by land.
When within two and a half miles of Williamsburg, at two o’clock
on May 4th, General Stoneman’s advance came up with the enemy,
who threw out a body of cavalry to check the pursuit. Captain
Gibbon’s battery was brought to bear on the horsemen, who on their
approach were met by a charge of the First and Sixth regular cavalry,
who drove them back, capturing twenty-five of their number. Two of
the Federals were killed, and about twenty wounded; and twenty of
Captain Gibbon’s horses were killed.
THE BATTLE OF WILLIAMSBURG.

May 5, 1862.

The evacuation of Yorktown, which occupied several days, was


completed on the morning of Sunday, the 4th of May, the main body
of the retreating rebels taking the principal road through
Williamsburg, and smaller portions of the army passing along the
road near the banks of the York river. A line of entrenchments had
been run about two and a half miles from Williamsburg, and became
the scene of a fiercely contested engagement on May 5th.
The rebel forces had succeeded in passing through the city, and left
a force of about five thousand men to engage and retard the advance
of the Union army.
The approach to Williamsburg from the lower part of the
peninsula is by two roads, one on the James river side, from Warwick
court-house, and the other from Yorktown, on the York river side.
Both these roads lead through a dense forest, broken only by
occasional openings, and over alternate soils of sand, reddish clay
and swamp. The heavy rains had saturated the soil, and the retreat of
the rebels, with their ponderous trains, had cut the roads up to an
extent that made them almost impassable. In very many places
where they led over swampy ground, horses and wagons would sink
together, and other teams were necessary to draw them out and place
them upon soil that was firm only by comparison. This was the
general character of both these roads. They gradually approach each
other through the forest, and meet at a sharp angle about forty rods
beyond the edge of the forest, in a large open plain, which stretches
away on either side, and lies directly in front of the village of
Williamsburg, at a distance of about two miles. Beyond this
intersection of the two roads, and directly ahead, was a long
earthwork, some hundred rods in advance, called Fort Page, (also
called Fort Magruder,) commanding with its guns and the infantry
who were concealed behind its walls both these converging roads.
Looking to the right, the eye ranges over a broad open field,
stretching a mile or more away, with a rolling surface, backed by a
swamp, and dotted with five separate earthworks, placed to
command the plain in advance and concentrate their cross-fire upon
the troops approaching by the roads. Looking to the left, there are
three other works of a similar character, commanding the
approaches on that side. Here the woods came closer up to the road,
and for a space of some twenty or thirty acres lying along the James
river road, the trees had been cut down, and the ground in part had
been filled with rifle-pits.
BIRDS-EYE VIEW OF THE COUNTRY FROM RICHMOND TO
YORKTOWN.

1. Richmond.—2. Manchester.—3. Hanover C. H.—4.


Mechanicsville.—5. Beaver Dam.—6. Gaines Mills.—7. New
Bridge.—8. Cold Harbor.—9. Garnetts.—10. Golding.—11. Trent.—
12. Couch.—13. Savage’s Station.—14. Fair Oaks.—15. Seven Oaks.
—16. Bottoms Bridge.—17. White Oaks Bridge and Swamp.—18.
Charles City Roads.—19. Malvern Hills.—20. Turkey Bridge.—21.
Turkey Creek.—22. Turkey Island Bend.—23. Berkeley.—24.
Harrison’s Landing.—25. City Point.—26. Fort Darling.—27.
Dispatch Station.—28. Summit.—29. White House.—30.
Cumberland Landing.—31. New Kent C. H.—32. West Point.—33.
Williamsburg.—34. Yorktown.—35. Gloucester Point.—36. James
River.—37. Chickahominy River.—38. York River.—39. Pamunky
River.—40. Mattapony River.—41. Riemkatank River.—42.
Rappahannock River.—43. Richmond and York Railroad.—44.
Virginia Central Railroad.—45. Richmond and Fredericksburg
Railroad.—46. Richmond and Danville Railroad.—47. Petersburg
and Richmond Railroad.—48. Appamotox.

As soon as the evacuation of Yorktown was ascertained, on Sunday


morning, General Stoneman, with several regiments of cavalry,
followed by light field batteries, including horse artillery, started in
pursuit of the enemy. About noon General Hooker’s division left the
camp in front of Yorktown, followed by General Kearney’s division,
both belonging to General Heintzelman’s corps, and marched
towards Williamsburg, to support General Stoneman, and assist him
in cutting off the enemy’s retreat. The cavalry followed close upon
the rear guard of the enemy, and during the day there was occasional
skirmishing between them. After having advanced about six miles
the cavalry halted to await the arrival of the infantry. The divisions of
Generals Smith and Hooker met at a crossing of the roads, and
continued on their routes, and met again at the junction below Fort
Page. It was now late in the day, and General Sumner, who desired to
engage the enemy, was compelled to defer an attack until the
morning.
The troops bivouacked at night in the best positions they could
secure. General Hooker’s division was in front of the centre of the
enemy’s works. General Smith’s infantry, and General Stoneman’s
artillery and cavalry were on the right. Generals Kearney and Couch
had also come up, and halted in the rear, while other divisions took
position where they could be disposed to the best advantage. Rain
had fallen almost constantly during the day, and now a stormy night
drew its dark mantle over them, while the wearied army lay upon the
wet earth, and sought repose.
Early on the following morning, the 5th, the troops commenced
their march, and soon came up to the point where the road passes
out of the woods into the open plain before the fort. The first who
came up formed a part of General Hooker’s division. As they
advanced from the James river road to the opening, they were
greeted with a storm of balls and grape from the bastion; and as the
men were deployed in the woods, and attempted to pass over the
fallen timber, they were met by a heavy fire from the rebel infantry,
close in front, concealed in their rifle-pits or behind the trees.
General Hooker ordered up Bramhall’s battery, but just as it left
the woods and was coming out into the open ground, the wheels
stuck fast in the deep clay mire, in which the horses vainly
floundered in the effort to draw them out. The rebels had pushed
their infantry into the woods on their right, and were pouring deadly
volleys into the ranks of the Federal troops, which compelled them to
retire. One gun was abandoned. General Hooker’s men struggled
nobly against the terrible disadvantages under which they were
fighting,—for the rebels, seeing the progress they were making, sent
back for reinforcements, and they increased during the day until not
less than twenty-five thousand of their troops turned back from their
retreat.
As the enemy gradually augmented in number, the fight became
more severe, and was hotly contested on both sides. General Hooker
had resolved to maintain his position. General Grover’s brigade, (the
First, Eleventh and Sixteenth Massachusetts, and Second New
Hampshire,) was on the left; General Sickles’ brigade, (the First,
Second, Third, Fourth and Fifth Excelsior of New York,) and General
Patterson’s New Jersey brigade, (the Fifth, Sixth, Seventh and
Eighth,) occupied positions nearer the right of the column. Near
these were company “H,” United States First Artillery, Captain
Bramhall, and company “O,” New York Volunteer Artillery, Captain
Smith. These regiments took positions along the edge of the woods,
and the artillery opened on the forts, when the struggle became
general nearly along the whole line.
At an early period of the battle it was perceived that the enemy was
endeavoring to turn the left of the Federal line, when a part of the
First and the Eleventh Massachusetts were ordered forward to
anticipate and prevent the movement. While the Eleventh was
engaged at a point about fifty yards from the enemy, a rebel officer
displayed a white flag, and shouted, “Don’t fire on your friends!”
Colonel Blaisdell immediately ordered his men to cease firing, and
Michael Doherty, a private of company A, stepped forward to meet
the flag, upon which the officer called out to his men, “Now, give it to
them!” The command was immediately obeyed, and a heavy fire was
poured into the regiment, by which a number of men were cut down.
Doherty fell among the rest, but he fired his piece at the dastardly
officer, who fell dead upon the spot.
The First Massachusetts remained at its post, doing severe
execution among the enemy until all its ammunition had been
expended, when it was relieved by the Seventy-second New York,
Lieutenant-Colonel Moses, which was in turn relieved by the
Seventieth New York, Colonel Dwight, who was also aided by a
portion of the Second New Hampshire.
The reinforcements of the enemy were pouring in, and adding
continually to the severity of the struggle. Colonel Moses was ordered
to the front, for the purpose of silencing a battery on the left. He was
soon confronted with a most murderous fire, when he was relieved
by the Seventieth New York. The rebel regiments in front were
reinforced by another, and soon successfully engaged. Colonel
Dwight was slightly wounded in the leg, and Colonel Farnum, being
severely wounded, was carried to the rear. The regiment fought with
determined bravery, against superior numbers, when Colonel Dwight
ordered a charge through the fallen timber. The Soldiers, with
invigorating cheers, advanced upon the rebels, and with irresistible
ardor put them to flight. The regiment held its position till its
ammunition was exhausted, and then supplied themselves from the
cartridge-boxes of their dead and wounded comrades.
On came the rebel reinforcements. Massive and determined
columns pressed forward, and at last the helpless regiment, which
had expended all its ammunition, was pressed vigorously by the
enemy, and Colonel Dwight and many of his men were taken
prisoners. They were carried to Williamsburg, where they were
rescued the next day, when the Federal army reached that city. The
heroism of this regiment may be seen from the fact that out of thirty-
three commissioned officers who went into the action, no less than
twenty-two were killed or wounded.

BATTLE OF WILLIAMSBURG.

The engagement had now become one of grand proportions. Two


regiments of the New Jersey brigade were conducted by General
Patterson to the front, to assist in repelling another attempt of the
enemy to turn the Federal left. They occupied the heavy timber
which interrupted the view of the enemy’s works. When they
advanced they were also met by fresh regiments of the enemy, and
for a time the advantage alternated between the contending forces,
and the tide of battle was seen to ebb and flow on either side,
uncertain as to the issue. The forces of the enemy suffered severely as
well as the Federals, who delivered their fire while lying upon the
ground. Just then, Colonel Johnson came up with the Eighth New
Jersey, in time to check the flanking movement of the enemy, which
was rapidly reaching round to the left. Again the orders of the rebel
officers, to the front and rear were heard, and again the surging
columns of the foe were met and driven back. In this position for
nearly five hours the New Jersey brigade stood the fire of superior
numbers, and with all the coolness and determination of veterans
resisted the advance of the enemy. At a late hour in the day the
arrival of fresh troops relieved them from the ground they had
disputed with such undaunted courage.
Generals Heintzelman and Sumner united their commands toward
the right, on the line of the Yorktown road. General Hooker, finding
himself so severely pressed, sent to General Heintzelman for
reinforcements, but he was away, and the message was read and
returned to General Hooker by General Sumner, who endorsed it,
“opened and read by the senior officer on the field.” After some time
spent in painful suspense by General Hooker, he was cheered by the
arrival of General Peck with his brigade, forming the advance of
General Couch’s division, which arrived on the ground at one o’clock,
having marched up from Lee’s Mills, ten or twelve miles, that
morning, in the midst of a pouring rain, and through mud ankle
deep. General Hooker being sorely pressed, the men were marched
at once into the field, taking a position on his right, in the centre of
the army, where they were at once exposed to the full force of the
enemy’s fire. For two hours they held their position against terrible
odds. Twice they were driven back, and twice they rallied again, and
recovered their ground.
When the brigade first reached the field, the One Hundred and
Second Pennsylvania advanced to the front, delivered its fire, and fell
back, giving place to the Ninety-eighth Pennsylvania, which held the
ground until the One Hundred and Second rallied, and the two
maintained the position. The Fifty-fifth New York, De Trobrian’s
Zouaves, came up on the left and then retired, while the Sixty-second
New York held the rebels in check, and the One Hundred and Second
and Ninety-eighth Pennsylvania delivered a cross-fire. The Fifty-fifth
then formed a new line of battle, and advanced to the support of the
Sixty-second, and the Ninety-third Pennsylvania came up and
opened fire on a battery commanding the road, until the rebels were
driven back at all points.
The Federal reinforcements were at last coming up to the scene of
action. Urgent requests for aid had been sent to the rear, and
Governor Sprague rode back from the field to Yorktown, to report
the facts to General McClellan and urge forward the requisite
assistance. In the mean time General Kearney, with his division, a
part of General Heintzelmar’s corps, had received orders from him to
press on with the utmost haste, which was done. He arrived, closely
followed by General Berry, with his brigade, when they took a
position on the extreme left, in order to prevent flanking by the
enemy. The Third Michigan was ordered to the left as a support,
while General Berry moved forward with the remaining regiments,
arriving on the ground at about half-past two o’clock, P. M. The Fifth
Michigan, Colonel Terry, proceeded to the left of the road, in front of
some fallen timber and the rifle-pits, while the Thirty-seventh New
York, Colonel Hayman, went still further to the left. The Second
Michigan occupied a position on the right of the road. As soon as
these arrangements were completed, an order was given for the
troops under General Berry to advance and charge, which they did in
a splendid manner, driving the enemy entirely out of the timber. At
this charge the enemy lost sixty-three men killed. The rebels, being
posted in the rifle-pits, caused the Federal troops much annoyance.
The Fifth Michigan, however, soon compelled them to retreat,
although it lost a great many of its men in the effort.
The enemy had the advantage of protection, while the Union men
were obliged to expose themselves in bold relief. The Federal bullets
could not penetrate the earthworks around the rifle-pits, and the
only way to drive the enemy out was to make a bayonet charge. This
charge was made in splendid style by the Fifth Michigan in front, and
the Thirty-seventh New York at the left, the men pushing up to the
pits near enough to bayonet the riflemen behind them. By this charge
considerable loss was occasioned on both sides.
When General Kearney’s troops were coming into action, they met
the lengthened files of General Hooker’s wounded being carried to
the rear. The shrieks of the lacerated and bleeding soldiers, who had
been fighting so long and so well, pierced the air, and this, joined to
the mud and rain, and the exhaustion of those who had come several
miles on a forced march, was not calculated to produce a favorable
impression on them as they were going into action. General
Heintzelman, however, ordered several of the bands to strike up
national and martial airs; and, when the strains of these familiar
tunes reached the ears of the wounded, their cheers mingled with
those of the soldiers who were just rushing into the battle. The effect
was wonderful on the other side; for some of the prisoners state that
when they heard the bands strike up the Star-Spangled Banner,
followed by that enthusiastic cheer, they knew that the victory would
be ours.
The Third and Fourth Maine regiments having been detached from
General Birney’s brigade, and temporarily assigned to General
Emory, General Birney came forward with the two remaining
regiments,—the Thirty-eighth New York, Colonel J. H. Ward, and the
Fortieth New York, Colonel Reilly. These were deployed to the right
of the Hampton road, and, like those under General Berry on the left,
relieved fragments of regiments which had borne the brunt of the
battle since its commencement. All this time the rebel artillery was
sending a rapid fire into the Federal ranks.
The Thirty-eighth New York regiment was ordered to charge down
the road and take the enemy’s rifle-pits in front by the flank. Colonel
Ward led seven companies of his regiment in this most brilliant and
successful charge. The other three companies, under Lieutenant-
Colonel Strong, were doing efficient service in an adjacent portion of
the field.
The battle had now been raging uninterruptedly from an early
hour in the morning, and seemed at last to be checked by the heroic
conduct and successful charge of General Kearney’s troops. The
extreme left was still heavily pressed, however, by the obstinate force
of the rebels in that part of the line.
To General Hancock was intrusted the most dangerous, because
the boldest manœuvre of the day. He passed with his brigade—the
Fifth Wisconsin, Colonel Cobb; the Sixth Maine, Colonel Burnham;
the Forty-ninth Pennsylvania, Colonel Lowrie; the Seventh Maine,
Colonel Mason, and the Thirty-third New York, Colonel R. F. Taylor,
supported by Lieutenant Cowan’s and Captain Wheeler’s batteries—
to the right, for a mile parallel to the front, but completely hidden by
the forest. Thence across a fifty-acre heath edged with timber, north
to the extreme left of the enemy’s line of works. At this point the
rebels had dammed a creek which empties into York river, and
straight across the narrow causeway frowned an earthwork, which
looked imposing as a castle from its commanding position on the
opposite hill.
General Hancock found this singular defence deserted, but it was
with caution his skirmishers ventured across the dam and planted
the Federal flag on the parapet, fifty feet above water mark. Then the
whole force went over at double-quick, turned to the left, and
followed a narrow, dangerous road, a gorge cut in the hill-side by the
pond, till it emerged in turn, from the east, on the open battle-field.
A splendid picture met the eye. Two miles distant Hooker was
fighting the rebels on the other side of Fort Page. From the latter
point the rebel artillery was playing upon his lines. Between Hancock
and the fort were two lesser works, at intervals of half a mile. Their
garrisons quickly retreated on seeing him, and retired on the main
force—the movement before practiced on the left, and one which
plainly indicated that the rebel force was too small to hold the line.
But it was also evident, from the determined stand made in and near
Fort Page, that the rear guard was under orders to make a desperate
maintenance of its position.
Although Hancock had a regiment with him besides his own, yet
his force was scarcely five thousand, all told, and totally separated
from the main body. If overpowered in front, retreat would be utterly
impossible through the narrow gorge behind them. General Keyes
appeared on the field at this moment, and told General Hancock that
he did not visit him to assume the command as ranking officer, but
to see him, Hancock, “carry the left.” General Keyes at once sent back
for a support of cavalry and artillery. This was about one o’clock in
the afternoon. For some reason, General Sumner omitted ordering
the reinforcements forward.
A regiment was soon in the enemy’s deserted works (No. 3 from
York river). The old flag was raised with wild cheers from its parapet;
and eight cannon were quickly unlimbered in the field beyond. A
smaller, intermediate outwork was still held between this and Fort
Magruder. In front of it a line of rebel skirmishers deployed, but
were quickly dispersed and forced to retire. In five minutes the
Union guns were playing, some on the great fort at six hundred yards
distance, the rest on the woods to the north, through which the
rebels were retreating on their main body.
Just then the clouds broke away in the west, and a flood of light
came in upon the whole panorama. Nothing could be more beautiful
and inspiriting. The deserted rebel forts, surmounted with Federal
colors; Hancock’s infantry awaiting orders in battle line; a signal
officer waving to the centre his flag-signals from the parapet of work
No. 3; the long fire-belching, smoke-canopied curve of Fort Page in
the distance; still further beyond, white flashes, and huge clouds of
smoke appearing from Hooker’s battle-ground on the left, of whose
desperate contest the stunning roll of musketry and roar of cannon
gave true token—all these combined formed a broad battle-picture
worthy of Varney.
Wheeler’s artillery fired with precision and rapidity for an hour,
the fort answering gun for gun. But the rebel infantry seemed to have
their hands full in managing Hooker, and as it was not yet
practicable to storm the fort, the Union forces found little to do, and
stood under fire of the artillery with small loss, awaiting a share in
the business. It was not long in coming, and came in the shape which
more than one observer had feared from the outset. It was preceded
at four o’clock by one of those dead, ominous half hour pauses which
so often make the decisive turn of an engagement. Many thought the
enemy were retreating. Others, who have had occasion to dread these
still and awful lapses from the bloody work of a field-day,
prognosticated an unknown danger impending close at hand.
Suddenly there burst from the woods on the right flank a battalion
of rebel cavalry! Then, to the right and left of the horse, three
regiments of infantry supporting it!
But General Hancock was equal to the crisis. Forming his infantry
against this sudden attack, he held them in magnificent order, while
the rebel foot and horse came on, cheering, firing, and charging in
gallant and imposing style. Wheeler’s battery turned and poured hot
volleys into them as they came, and over five thousand muskets
riddled them through and through. But they kept on—nearer—nearer
—closing up, cheering, and sure of their power to sweep the Federals
before them.

Thus they came, swifter than it can be told, until their line, now
broken and irregular, was within two hundred yards of the
unwavering columns. Then Hancock showed himself the coolest and
bravest of the brave. Taking off his hat, and using the courtly prefix
of the olden time, he said: “Ready, now! Gentlemen, CHARGE!” The
whole line swept forward, as the reaper’s sickle rushes through the
grain. Its keen edge had not yet touched the enemy, when his ranks
broke simultaneously, fled in confusion to the rear, and the field of
Williamsburg was won.
About five o’clock P. M. some excitement was caused in the rear,
and soon an officer, with his staff, rode to the opening in the woods
where he could get a view of the field. It was General McClellan. The
moment he was seen, loud and deafening cheers rose up along the
lines of the centre, and rolled away to the right and left, imparting a
new enthusiasm to the forces. The chief officers were quickly
consulted, and reinforcements were sent to the aid of Hancock and
Hooker. Hancock’s brilliant and successful charge had already won
the day on the right, and the effect of it in the panic and rout of the
rebels was becoming sensibly felt in front of Hooker’s division, when
the long-looked for assistance came to his side. The rebels promptly
retired, and the desperate struggle of the day closed on a splendidly
contested field. The men were compelled to bivouack on the ground,
with the rain still falling, in proud anticipation of a renewal of the
conflict in the morning.
The rebels had been reinforced as late as five o’clock, and it was
expected that General Johnston would command them in the
morning in person, but the opportune appearance of the Federal
reinforcements, together with the successful movements of General
Hancock, created a panic among them, and they fell back on
Williamsburg, and commenced their hasty retreat from that place. At
two o’clock on Tuesday morning the Federal forces began to move.
As they approached Williamsburg they found the way clear, and on
coming up to the city the rear guard of the foe were flying on the road
toward Richmond, leaving the town to be occupied by the Federal
troops. General McClellan appointed General Jameson Military
Governor of the place, and the troops marched through the main
street of the city to the homely, but glorious and soul-stirring strains
of “Yankee Doodle.”
The houses, churches, barns and stables were found filled with the
wounded of the rebel army, as well as the Federals whom they had
taken prisoners. It was a sad, heart-rending scene, those brave
soldiers mangled, dying and dead. The Federal troops immediately
commenced the work of burial, while the surgeons found incessant
occupation in the discharge of their duties. The battle field presented
a frightful scene of carnage, and several days passed before all the
dead and wounded stragglers were found in the woods and among
the underbrush where they had fallen.
The loss of the Federals was about 500 killed, 1,600 wounded, and
623 prisoners. That of the rebels was somewhat greater in killed and
wounded. Five hundred prisoners fell into Federal hands. Some
hundred of the rebel dead were buried on the day following the
battle. Lieutenant-Colonel Irwin, of the Eighth Alabama, formerly
United States Senator, was found dead on the field.
Thirty-five regiments of the rebels were engaged in the action, that
number being represented by the wounded men left after the battle.
BATTLE OF WEST POINT, VA.

May 7, 1862.

West Point is the name given to the landing-place at the head of


the York river, which is formed by the junction of the Pamunkey and
Mattapony rivers, and is thirty miles above Yorktown.
After the evacuation of that place, and the entrance of the Federal
troops, the Union army proceeded in its advance toward Richmond
by different routes, as already detailed. One column marched by the
land route, under Heintzelman, Sumner, Hooker, Kearney and
Keyes, while General Franklin led his corps by transports up the York
river to West Point, leaving Yorktown at nine o’clock, on Tuesday
morning, May 6th. The banks of the river presented a fine
appearance, and white flags were displayed from many of the houses.
The house of Mr. Bigler, a firm loyalist, was almost covered with an
immense flag, bearing the stars and stripes, while one of the ladies of
the house waved the beautiful emblem of peace along its folds, from
one of the windows. The rebels had set fire to a valuable mill
belonging to Mr. Bigler, and its ruins were still sending up great
clouds of smoke into the air, a lurid witness of the destruction which
had marked their progress. The army arrived at West Point about
two o’clock, P. M., and commenced its disembarkation.
In consequence of the shallowness of the approach by water, it
became necessary to use pontoon boats and scows to facilitate the
landing. Operations were therefore slow; but the troops were landed
by midnight. The rebels did not dispute the landing. Pickets were
immediately thrown out into the woods in front, the roads leading to
the landing-place examined, and trees were thrown across the roads.
The pickets were occasionally engaged during the night, but only two

You might also like