This textbook provides a comprehensive, but tutorial, introduction to robotics, computer vision, and control. It is written in a light but informative conversational style, weaving text, figures, mathematics, and lines of code into a narrative that covers robotics and computer vision―separately, and together as robotic vision. Over 1600 code examples show how complex problems can be decomposed and solved using just a few simple lines of code.
This edition is based on Python and is accompanied by fully open-source Python-based Toolboxes for robotics and machine vision. The new Toolboxes enable the reader to easily bring the algorithmic concepts into practice and work with real, non-trivial, problems on a broad range of computing platforms. For the beginning student the book makes the algorithms accessible, the Toolbox code can be read to gain understanding, and the examples illustrate how it can be used. The code can also be the starting point for new work, for practitioners, students, or researchers, by writing programs based on Toolbox functions, or modifying the Toolbox code itself.
The first two editions of this book were based on MATLAB in conjunction with open-source MATLAB Toolboxes that are now thirty years old – that’s a long time for any piece of software. Much has happened in the last decade that motivate a change to the software foundations of the book, and that has led to two third editions: The version you are reading, is based on Python which is a popular open-source language with massive third party support. The old MATLAB Toolboxes have been redesigned and reimplemented in Python, taking advantage of popular open-source packages and resources to provide platform portability, fast browser-based 3D graphics, online documentation, fast numerical and symbolic operations, shareable and web-browseable notebooks all powered by GitHub and the open-source community.
The computational foundation of this book is Python 3, a powerful and popular programming language that is likely to be familiar to students, researchers and hobbyists. The core functionality of Python can be extended with packages that can be downloaded, installed and then imported. Python, combined with popular packages such as NumPy, SciPy and Matplotlib provides a powerful interactive mathematical software environment that makes linear algebra, data analysis and high-quality graphics a breeze. Functionality for robotics and computer vision is provided by additional easily-installable packages.
Author(s): Peter Corke
Series: Springer Tracts in Advanced Robotics
Edition: 3
Publisher: Springer
Year: 2023
Language: English
Commentary: Publisher's PDF
Pages: 835
Tags: Algorithms; Robotics; Computer Vision; Python; Control Theory
Foreword
Preface
Contents
Nomenclature
1 Introduction
1.1 A Brief History of Robots
1.2 Types of Robots
1.3 Definition of a Robot
1.4 Robotic Vision
1.5 Ethical Considerations
1.6 About the Book
I Foundations
2 Representing Position and Orientation
2.1 Foundations
2.2 Working in Two Dimensions (2D)
2.3 Working in Three Dimensions (3D)
2.4 Advanced Topics
2.5 Using the Toolbox
2.6 Wrapping Up
3 Time and Motion
3.1 Time-Varying Pose
3.2 Accelerating Bodies and Reference Frames
3.3 Creating Time-Varying Pose
3.4 Application: Inertial Navigation
3.5 Wrapping Up
II Mobile Robotics
4 Mobile Robot Vehicles
4.1 Wheeled Mobile Robots
4.2 Aerial Robots
4.3 Advanced Topics
4.4 Wrapping Up
5 Navigation
5.1 Introduction to Reactive Navigation
5.2 Introduction to Map-Based Navigation
5.3 Planning with a Graph-Based Map
5.4 Planning with an Occupancy-Grid Map
5.5 Planning with Roadmaps
5.6 Planning Driveable Paths
5.7 Advanced Topics
5.8 Wrapping Up
6 Localization and Mapping
6.1 Dead Reckoning Using Odometry
6.2 Localizing with a Landmark Map
6.3 Creating a Landmark Map
6.4 Simultaneous Localization and Mapping
6.5 Pose-Graph SLAM
6.6 Sequential Monte-Carlo Localization
6.7 Rao-Blackwellized SLAM
6.8 Application: Lidar
6.9 Wrapping Up
III Robot Manipulators
7 Robot Arm Kinematics
7.1 Forward Kinematics
7.2 Inverse Kinematics
7.3 Trajectories
7.4 Applications
7.5 Advanced Topics
7.6 Wrapping Up
8 Manipulator Velocity
8.1 Manipulator Jacobian
8.2 Application: Resolved-Rate Motion Control
8.3 Jacobian Condition and Manipulability
8.4 Force Relationships
8.5 Numerical Inverse Kinematics
8.6 Advanced Topics
8.7 Wrapping Up
9 Dynamics and Control
9.1 Independent Joint Control
9.2 Rigid-Body Equations of Motion
9.3 Forward Dynamics
9.4 Rigid-Body Dynamics Compensation
9.5 Task-Space Dynamics and Control
9.6 Applications
9.7 Wrapping Up
IV Computer Vision
10 Light and Color
10.1 Spectral Representation of Light
10.2 Color
10.3 Advanced Topics
10.4 Application: Color Images
10.5 Wrapping Up
11 Images and Image Processing
11.1 Obtaining an Image
11.2 Pixel Value Distribution
11.3 Monadic Operations
11.4 Dyadic Operations
11.5 Spatial Operations
11.6 Mathematical Morphology
11.7 Shape Changing
11.8 Wrapping Up
12 Image Feature Extraction
12.1 Region Features
12.2 Line Features
12.3 Point Features
12.4 Applications
12.5 Wrapping Up
13 Image Formation
13.1 Perspective Camera
13.2 Camera Calibration
13.3 Wide Field-of-View Cameras
13.4 Unified Imaging Model
13.5 Novel Cameras
13.6 Applications
13.7 Advanced Topics
13.8 Wrapping Up
14 Using Multiple Images
14.1 Point Feature Correspondence
14.2 Geometry of Multiple Views
14.3 Sparse Stereo
14.4 Dense Stereo
14.5 Anaglyphs
14.6 Other Depth Sensing Technologies
14.7 Point Clouds
14.8 Applications
14.9 Wrapping Up
V Vision-Based Control
15 Vision-Based Control
15.1 Position-Based Visual Servoing
15.2 Image-Based Visual Servoing
15.3 Using Other Image Features
15.4 Wrapping Up
16 Advanced Visual Servoing
16.1 XY/Z-Partitioned IBVS
16.2 IBVS Using Polar Coordinates
16.3 IBVS for a Spherical Camera
16.4 Applications
16.5 Wrapping Up
Supplementary Information
A Installing the Toolboxes
B Linear Algebra
C Geometry
D Lie Groups and Algebras
E Linearization, Jacobians and Hessians
F Solving Systems of Equations
G Gaussian Random Variables
H Kalman Filter
I Graphs
J Peak Finding
References
Index of People
Index of Functions, Classes and MethodsClasses are shown in bold, methods are prefixed by a dot. Other entries are functions.
Index of ModelsThese block diagram models are included in the rvc3python package in the folder models. To run them requires the bdsim package.
General Index