Foundations of Robotics: A Multidisciplinary Approach with Python and ROS

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This open access book introduces key concepts in robotics in an easy to understand language using an engaging project-based approach. It covers contemporary topics in robotics, providing an accessible entry point to fundamentals in all the major domains. A section is dedicated to introducing programming concepts using Python, which has become a language of choice in robotics and AI. The book also introduces the reader to the Robot Operating System (ROS), the ubiquitous software and algorithmic framework used by researchers and the industry. The book provides an inspired, up-to-date and multidisciplinary introduction to robotics in its many forms, including emerging topics related to robotics on Machine Learning, ethics, Human-Robot Interaction,  and Design Thinking. The book also includes interviews with industry experts, providing an additional layer of insight into the world of robotics. The book is made open access through the generous support from Kinova Robotics. The book is suitable as an undergraduate textbook in a relevant engineering course. It is also suitable for students in art and design, high school students, and self-learners who would like to explore foundational concepts in robotics.

This book provides the ‘foundation’ for understanding how robots work. It is the accessible introduction that artists and engineers have been waiting for.”

- Ken Goldberg, William S. Floyd Jr. Distinguished Chair in Engineering, UC Berkeley.


Author(s): Damith Herath, David St-Onge
Publisher: Springer
Year: 2022

Language: English
Pages: 548
City: Singapore

Foreword by Ken Goldberg
Foreword by Sue Keay
Preface
Acknowledgements
Contents
Editors and Contributors
Part I Contextual Design
1 Genealogy of Artificial Beings: From Ancient Automata to Modern Robotics
1.1 What is a Robot?
1.2 A Mythical Origin
1.3 Early Automata
1.4 Anatomical Analogies: Understanding Through Replication
1.4.1 Leonardo Da Vinci
1.4.2 The Canard Digérateur, the Writer, the Musician and the Drawer
1.4.3 Babbage and the Computer-Robot Schism
1.5 Industrial (R)evolutions
1.6 Modern Robotics
1.6.1 Coping with the Unknown
1.6.2 Robots in Arts and Research–Creation
1.7 Social Robotics
1.8 Robotic Futures and Transrobotics
References
2 Teaching and Learning Robotics: A Pedagogical Perspective
2.1 Learning Objectives
2.2 Introduction
2.3 Defining the Body of Knowledge of the Robotics Field
2.4 Review of Research on Pedagogies and Practices in Robotics Education
2.4.1 Adaptation of Content from Different Disciplines
2.4.2 Constructivist Approaches to Learning
2.4.3 Situated Learning Methodology
2.4.4 Flipped Classroom
2.4.5 Gamification
2.4.6 Online Interactive Tools
2.5 Assessment Practices
2.5.1 Collaborative and Individual Project-Based Assessment
2.5.2 Competition-Based Assessment
2.5.3 Reflective Learning
2.6 Paving the Way for Innovative Pedagogies and Assessment in Robotics Education 
2.7 Chapter Summary
2.8 Quiz
References
3 Design Thinking: From Empathy to Evaluation
3.1 Learning Objectives
3.2 Introduction
3.2.1 What Is Design Thinking
3.2.2 Design Thinking Models (Double Diamond Model, IDEO Design Thinking and d.school Methods)
3.2.3 Design 1.0–4.0 and Its Alignment with Robotics
3.3 Design Thinking Process: Discover, Define, Develop and Deliver
3.3.1 What Is the Discover Mode, Why Empathise and How
3.3.2 What Is the Define Mode, Why Ideate and How
3.3.3 What Is the Develop Mode, Why Ideate and Prototype and How
3.3.4 What Is the Deliver Mode, Why and How
3.4 Conclusion
3.5 Quiz
References
4 Software Building Blocks: From Python to Version Control
4.1 Learning Objectives
4.2 Introduction
4.2.1 Thinking About Coding
4.3 Python and Basics of Programming
4.3.1 Variables, Strings and Assignment Statements
4.3.2 Relational and Logical Operators
4.3.3 Decision Structures
4.3.4 Loops
4.3.5 Functions
4.3.6 Callback Function
4.4 Object-Oriented Programming
4.5 Error Handling
4.6 Secure Coding
4.7 Case Study—Writing Your First Program in Python
4.7.1 A Note on Migrating from MATLAB® to Python
4.8 Version Control Basics
4.8.1 Git
4.9 Containerising Applications
4.10 Chapter Summary
4.11 Revision Questions
4.12 Further Reading
References
5 The Robot Operating System (ROS1&2): Programming Paradigms and Deployment
5.1 Learning Objectives
5.2 Introduction
5.3 Why ROS?
5.4 What Is ROS?
5.4.1 ROS1&2: ROSCore Versus DDS
5.4.2 ROS Industrial
5.5 Key Features from the Core
5.5.1 Communication Protocols
5.5.2 Launch and Run
5.5.3 ROS Bags
5.5.4 Transforms and Visualization
5.6 Additional Useful Features
5.6.1 ROS Perception and Hardware Drivers
5.6.2 ROS Navigation and MoveIt!
5.6.3 Gazebo Simulator
5.7 Linux for Robotics
5.8 Chapter Summary
5.9 Revision Questions
5.10 Further Reading
References
6 Mathematical Building Blocks: From Geometry to Quaternions to Bayesian
6.1 Learning Objectives
6.2 Introduction
6.3 Basic Geometry and Linear Algebra
6.3.1 Coordinate Systems
6.3.2 Vector/Matrix Representation
6.3.3 Basic Vector/Matrix Operations
6.4 Geometric Transformations
6.4.1 Basic Transformations
6.4.2 2D/3D Rotations
6.4.3 Quaternion
6.4.4 Homogeneous Transformation Matrices
6.5 Basic Probability
6.5.1 Likelihood
6.5.2 Bayes' Theorem
6.5.3 Gaussian Distribution
6.6 Derivatives
6.6.1 Taylor Series
6.6.2 Jacobian
6.7 Basic Statistics
6.7.1 Variance
6.7.2 General Population and Samples
6.7.3 The Null Hypothesis
6.7.4 The General Linear Model
6.7.5 T-test
6.7.6 ANOVA
6.8 Chapter Summary
6.9 Revision Questions
6.10 Further Reading
References
Part II Embedded Design
7 What Makes Robots? Sensors, Actuators, and Algorithms
7.1 Learning Objectives
7.2 Introduction
7.3 Sense: Sensing the World with Sensors
7.3.1 Typical Sensor Characteristics
7.3.2 Common Sensors in Robotics
7.4 Think: Algorithms
7.5 Act: Moving About with Actuators
7.5.1 Common Actuators in Robotics
7.6 Computer Vision in Robotics
7.6.1 Plane Detection
7.6.2 Optical Flow
7.6.3 Visual Odometry
7.7 Review Questions
7.8 Further Reading
References
8 How to Move? Control, Navigation and Path Planning for Mobile Robots
8.1 Learning Objectives
8.2 Introduction
8.3 Mobile Robots
8.3.1 Wheeled Robots
8.3.2 Walking Robots
8.3.3 Flying Robots
8.4 Controlling Robots
8.4.1 PID Controllers
8.4.2 Fuzzy Logic Controllers
8.5 Path Planning
8.5.1 Heuristic Path Planning Algorithms
8.5.2 Probabilistic Path Planning Algorithms
8.6 Obstacle Avoidance
8.6.1 Bug Algorithm
8.6.2 The Vector Field Histogram (VFH)
8.7 Chapter Summary
8.8 Review Questions
8.9 Further Reading
References
9 Lost in Space! Localisation and Mapping
9.1 Learning Objectives
9.2 Introduction
9.3 Robot Localisation Problem
9.3.1 Odometry-Based Localisation
9.3.2 IMU-Based Odometry
9.3.3 Visual Odometry
9.3.4 Map-Based Localisation
9.4 The Robot Mapping Problem
9.4.1 Occupancy Grid Maps
9.4.2 Other Types of Maps
9.5 The Simultaneous Localisation and Mapping (SLAM) Problem
9.5.1 An Estimation Theoretic Approach to the Localisation, Mapping and SLAM Problems
9.6 The Kalman Filter
9.6.1 Linear Discrete-Time Kalman Filter
9.6.2 The Extended Kalman Filter (EKF)
9.6.3 Data Association
9.7 A Case Study: Robot Localisation Using the Extended Kalman Filter
9.7.1 Assumptions
9.7.2 Derivation of the EKF-Based Localisation Algorithm
9.8 Summary
9.9 Review Questions
9.10 Further Reading
References
10 How to Manipulate? Kinematics, Dynamics and Architecture of Robot Arms
Learning Objectives
Introduction
Architectures
Kinematics of Serial Manipulators
Direct Kinematics
Denavit-Hartenberg Convention
Inverse Kinematics
Jacobian
Singularities
Kinematics of Parallel Manipulators
Direct and Inverse Kinematics
Jacobians
Singularities
Dynamics
Euler-Lagrange
Newton-Euler
Chapter Summary
Revision Questions
Further Reading
References
11 Get Together! Multi-robot Systems: Bio-Inspired Concepts and Deployment Challenges
11.1 Objectives of the Chapter
11.2 Introduction
11.3 Types of Multi-robot Systems
11.3.1 Centralized Multi-robot System
11.3.2 Distributed Multi-robot System
11.3.3 Decentralized Multi-robot System
11.4 Swarm Programming
11.4.1 Swarm Programming Languages
11.4.2 Programming in Buzz
11.5 Deployment of Real-World Swarm Systems
11.5.1 Human Swarm Interaction
11.5.2 Data Management, Communication and Mobility
11.5.3 Fault Handling
11.6 Chapter Summary
11.7 Chapter Revision
11.8 Further Reading
References
12 The Embedded Design Process: CAD/CAM and Prototyping
12.1 Learning Objectives
12.2 Introduction
12.3 The Design Process and CAD
12.4 The Design Process Versus Design Thinking
12.5 Cad Systems
12.6 CAD File Types
12.7 CAD Parametric Modelling—Assembly and Part Files
12.8 CAD Parametric Modelling—Drawing Files
12.9 CAD File Transfer
12.10 VR and AR for CAD
12.11 CAM and CNC
12.12 Workshop
12.13 Case study- Hexapod Robot Project
12.14 Revision Questions
References
Part III Interaction Design
13 Social Robots: Principles of Interaction Design and User Studies
13.1 Learning Objectives
13.2 Introduction
13.3 Cobots, Social Robots and Human–Robot Interaction
13.4 Why Conduct Research?
13.4.1 Motivation for the Research
13.4.2 Target Audience
13.4.3 Research Questions
13.5 Deciding on Your Research Variables
13.5.1 Variables
13.5.2 Operationalisation
13.5.3 Relevance-Sensitivity Trade-Off
13.5.4 Research Designs
13.5.5 Descriptive Research
13.5.6 Correlational Research
13.5.7 Experimental Research
13.5.8 Between-Subjects and Within-Subjects Designs
13.5.9 Random Assignment
13.5.10 Reviews and Meta-Analyses
13.5.11 Which Research Design Is Best?
13.6 Sampling, Reliability and Validity
13.6.1 Sampling
13.6.2 Reliability
13.6.3 Validity
13.6.4 Things that Can Go Wrong with Validity
13.6.5 Ways to Address Problems with Validity
13.7 Ethics
13.7.1 Ethics and Ethics Review Boards
13.7.2 Ethical Principles in Research
13.7.3 Data, Analysis and Interpretation
13.7.4 Common Mistakes and Pitfalls
13.8 Chapter Summary
13.9 Revision Questions
References
14 Safety First: On the Safe Deployment of Robotic Systems
14.1 Learning Objectives
14.2 Introduction
14.2.1 Terms and Definitions
14.2.2 Challenges with the Safe Deployment of Robotic Systems
14.3 Standards
14.3.1 Organizations
14.3.2 Classification and Relevant Technical Specifications/Standards
14.4 Industrial Risk Assessment and Mitigation
14.4.1 Risk Assessment
14.4.2 Risk Mitigation
14.4.3 Integration, Validation and Monitoring
14.5 Cobots
14.5.1 Human-Robot Collaboration
14.5.2 Types of Collaborative Operation Methods
14.5.3 Hazards Inherent to Cobots
14.5.4 Risk Assessment and Mitigation Measures for Collaborative Applications
14.6 Mobile Robots
14.6.1 Hazards Inherent to Mobile Robots
14.6.2 UAV Operations
14.6.3 Battery Hazards
14.6.4 Risk Assessment and Mitigation Measures for Mobile Robots
14.7 Chapter Summary
14.8 Revision Questions
14.9 Further Reading
References
15 Managing the World Complexity: From Linear Regression to Deep Learning
15.1 Objectives of the Chapter
15.2 Introduction
15.3 Definitions
15.4 From Linear Regression to Deep Learning
15.4.1 Loss Optimization
15.4.2 Linear Regression
15.4.3 Training Generalizable Models
15.4.4 Deep Neural Networks
15.4.5 Gradient Back-Propagation in Deep Neural Networks
15.4.6 Convolutional Neural Networks
15.4.7 Recurrent Neural Networks
15.4.8 Deep Learning for Practical Applications
15.5 Policy Search for Robotic Control
15.5.1 Limitations of Supervised Learning for Control
15.5.2 Deep Reinforcement Learning
15.5.3 Improvements of Deep Q-Learning
15.5.4 Deep Reinforcement Learning for Practical Applications
15.6 Wrapping It Up: How to Deeply Understand the World
15.7 Summary
15.8 Quiz
15.9 Further Reading
References
16 Robot Ethics: Ethical Design Considerations
16.1 Learning Objectives
16.2 Introduction
16.3 Ethics
16.3.1 Normative Ethics
16.3.2 Consequentialism
16.3.3 Deontology
16.3.4 Virtue Ethics
16.4 The Non-Neutrality of Technology
16.4.1 Dual-Use
16.5 Technological Determinism and Multiple Futures
16.6 Human Values in Design
16.7 Value Sensitive Design
16.7.1 Conceptual Phase
16.7.2 Empirical Phase
16.7.3 Technological Phase
16.7.4 Contextual Design
16.8 Ethics Tools
16.8.1 Checklists
16.8.2 Standards
16.8.3 Design Principles
16.8.4 Ethical Frameworks
16.9 Case Study: VSD of a Danish Healthcare Drone
16.10 Responsible Research and Innovation
16.10.1 AIRR Framework
16.11 Chapter Summary
16.12 Revision Questions
References
Part IV Projects
17 Robot Hexapod Build Labs
17.1 Introduction
17.2 Project One: Defining the Robot System
17.2.1 Project Objectives
17.2.2 Project Description
17.2.3 Project Tasks
17.3 Project Two: Modelling the Position Kinematics
17.3.1 Project Objectives
17.3.2 Project Description
17.3.3 Project Tasks
17.3.4 Case Study Example
17.4 Project Three: Modelling the Velocity Kinematics with Python
17.4.1 Project Objectives
17.4.2 Project Description
17.4.3 Project Tasks
17.4.4 Case Study Example
17.5 Project Four: Building Communication Protocols
17.5.1 Project Objectives
17.5.2 Project Description
17.5.3 Project Tasks
17.6 Some Final Thoughts
References
18 Deployment of Advanced Robotic Solutions: The ROS Mobile Manipulator Laboratories
18.1 Introduction
18.1.1 Dingo and Gen3 Lite
18.1.2 Recommended Tools and Base Skill Set Required
18.2 Project 1: Discovering ROS and the Dingo
18.2.1 Project Objectives
18.2.2 Project Description
18.2.3 First Task: Manual Control in Simulation
18.2.4 First Task: Manual Control in Reality
18.2.5 Second Task: Inverse Kinematics
18.2.6 Third Task: Simulation Versus Reality
18.3 Project 2: Kalman for Differential Drive
18.3.1 Project Objectives
18.3.2 Project Description
18.3.3 First Task: Extract Encoders Information (Notebook Project2_1)
18.3.4 Second Task: Estimate the Sensor’s Noise (CSV_Analyse)
18.3.5 Third Task: Design a Kalman Filter (Project2_2)
18.3.6 Fourth Task: Design Justification and Validation
18.4 Project 3: 3-DoF Kinematics
18.4.1 Project Objectives
18.4.2 Project Description
18.4.3 First Task: Denavit–Hartenberg Table
18.4.4 Second Task: Transformation Matrices
18.4.5 Third Task: Inverse Kinematics
18.4.6 Fourth Task: Validation
18.5 Project 4: Let’s Bring It Back Together!
18.5.1 Project Objectives
18.5.2 Project Description
18.5.3 First Task: Teleoperation
18.5.4 Second Task: Hit a Marker!
18.5.5 Third Task: Grasping
18.5.6 Fourth Task: Risk Assessment
18.6 Project 5: Save the Day!
18.6.1 Project Objectives
18.6.2 Project Description
18.6.3 First Task: Autonomous Navigation
18.6.4 Second Task: User Interface
18.6.5 Third Task: Ergonomy Study
Index