Embedded Robotics: From Mobile Robots to Autonomous Vehicles with Raspberry Pi and Arduino

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 book presents a unique examination of mobile robots and embedded systems, from introductory to intermediate level. It is structured in three parts, dealing with Embedded Systems (hardware and software design, actuators, sensors, PID control, multitasking), Mobile Robot Design (driving, balancing, walking, and flying robots), and Mobile Robot Applications (mapping, robot soccer, genetic algorithms, neural networks, behavior-based systems, and simulation). The book is written as a text for courses in computer science, computer engineering, IT, electronic engineering, and mechatronics, as well as a guide for robot hobbyists and researchers.

Author(s): Thomas Bräunl
Edition: 4
Publisher: Springer
Year: 2022

Language: English
Pages: 532
Tags: Embedded Systems; Mobile Robots; Autonomous Vehicles; Raspberry Pi; Arduino

Preface
Acknowledgements
Additional Materials
Contents
Embedded Systems
1 Robots and Controllers
1.1 Mobile Robots
1.2 Embedded Controllers
1.3 Robot Design
1.4 Operating System
1.5 Simulation
1.6 Tasks
2 Central Processing Unit
2.1 Logic Gates
2.1.1 Encoder and Decoder
2.1.2 Multiplexer and Demultiplexer
2.1.3 Adder
2.2 Function Units
2.2.1 Adding
2.2.2 Logic Functions
2.2.3 Subtracting
2.2.4 Comparisons
2.3 Registers and Memory
2.4 Retro
2.5 Arithmetic Logic Unit
2.6 Control Unit
2.7 Central Processing Unit
2.7.1 CPU-1—Minimal Design
2.7.2 CPU-2—Double Byte Instructions and Branching
2.7.3 CPU-3—Addresses and Constants
2.7.4 CPU-4—Symmetrical Design
2.8 Structured Design
2.9 Tasks
3 Arduino
3.1 Arduino Hardware
3.2 Arduino Programming
3.3 Arduino Interfacing
3.4 Arduino Communication
3.5 Beyond Arduino
3.5.1 Python for Arduino
3.5.2 ArduPilot
3.5.3 ESP32
3.6 Tasks
4 Raspberry Pi
4.1 Raspberry Pi Operating System and Setup
4.2 Raspberry Pi Tools and Programming
4.2.1 File Exchange for Raspberry Pi
4.2.2 Remote Access for Raspberry Pi
4.2.3 Compiling C and C++ Programs on Raspberry Pi
4.2.4 Interpreting Python Programs on Raspberry Pi
4.2.5 Turnkey System
4.3 Raspberry Pi Input/Output Lines
4.4 Raspberry Pi Communication
4.4.1 Pi Serial Communication
4.4.2 Raspberry Pi LAN and WLAN Communication
4.5 Integration Development Environments
4.6 Tasks
5 Sensors and Interfaces
5.1 Sensor Categories
5.2 Synchronous Serial and I2C Interfaces
5.2.1 Synchronous Serial Interface
5.2.2 I2C Interface
5.3 Binary Sensors
5.4 Shaft Encoders
5.5 A/D Converters
5.6 Position Sensitive Devices—Sonar, Infrared, Laser
5.6.1 Sonar Sensors
5.6.2 Infrared Sensors
5.6.3 Laser Distance Sensors
5.7 Lidar Sensors
5.8 Orientation Sensors
5.9 Inertial Measurement Units
5.10 Global Navigation Satellite Systems
5.10.1 Differential GNSS and RTK
5.10.2 GNSS/IMU Combinations
5.11 Digital Image Sensors
5.11.1 Camera Sensor Data
5.11.2 Camera RoBIOS Interface
5.12 Tasks
6 Actuators
6.1 DC Motors
6.1.1 Motor Model
6.1.2 Simplified Motor Model
6.2 H-Bridge
6.3 Pulse Width Modulation
6.4 Stepper Motors
6.5 Servos
6.6 Tasks
7 Control
7.1 On-Off Control
7.2 PID Control
7.2.1 Proportional Controller
7.2.2 Integral Controller
7.3 Derivative Controller
7.3.1 PID Parameter Tuning
7.4 Velocity Control and Position Control
7.5 Multiple Motors—Driving Straight
7.6 V-Omega Interface
7.7 Tasks
8 Multitasking
8.1 Preemptive Multithreading
8.2 Synchronization
8.2.1 Mutex Example
8.2.2 Master with Multiple Slaves
8.3 Scheduling
8.3.1 Static Priorities
8.3.2 Dynamic Priorities
8.4 Interrupts and Timer-Activated Tasks
8.5 Tasks
9 Communication
9.1 Communication Channels
9.1.1 Ethernet
9.1.2 Wi-Fi
9.1.3 Bluetooth
9.2 File Transfer and Remote Access
9.3 Radio Library
9.4 Robot to Robot Communication
9.5 Robot to PC Communication
9.6 Tasks
Robot Hardware
10 Driving Robots
10.1 Single Wheel Drive
10.2 Differential Drive
10.2.1 Mini Robot Platform FT-DC-002
10.2.2 Four-Wheel-Drive Robot HC-4
10.2.3 SoccerBot S4
10.3 Tracked Robots
10.4 Synchro-Drive
10.5 Ackermann Steering
10.6 Omni-Directional Robots
10.6.1 Mecanum Wheels
10.6.2 Omni-Directional Drive
10.6.3 Omni-Directional Robot Design
10.6.4 Omni-Drive Program
10.7 Drive Kinematics
10.7.1 Differential Drive Kinematics
10.7.2 Ackermann Drive Kinematics
10.7.3 Omni-Drive Kinematics
10.8 Tasks
11 Walking Robots
11.1 Balancing Robots
11.2 Six-Legged Robots
11.3 Biped Robots
11.4 Static Balance
11.5 Dynamic Balance
11.5.1 Dynamic Walking Methods
11.5.2 Alternative Biped Designs
11.6 Tasks
12 Autonomous Boats and Planes
12.1 Autonomous Boats
12.2 Autonomous Underwater Vehicles
12.2.1 Mako AUV
12.2.2 USAL AUV
12.2.3 BlueROV2
12.2.4 AUV Tasks
12.3 Unmanned Aerial Vehicles (UAVs)
12.4 Tasks
13 Robot Manipulators
13.1 Homogeneous Coordinates
13.2 Manipulator Kinematics
13.2.1 Forward Kinematics
13.2.2 Inverse Kinematics
13.3 Manipulator Simulation
13.4 Teaching and Programming
13.5 Industrial Manipulators
13.5.1 Universal Robots UR5
13.5.2 Nachi ST133TF
13.6 Tasks
Robot Software
14 Localization and Navigation
14.1 Localization
14.1.1 Radio Beacons
14.1.2 Light Beacons
14.1.3 Dead Reckoning
14.2 Environment Representation
14.3 Quadtree
14.4 Visibility Graph
14.5 Voronoi Diagram and Brushfire Algorithm
14.5.1 Delaunay Triangulation
14.5.2 Brushfire Algorithm
14.6 Potential Field Method
14.7 Wandering Standpoint Algorithm
14.8 Bug Algorithm Family
14.9 Dijkstra’s Algorithm
14.10 A* Algorithm
14.11 Probabilistic Localization
14.12 SLAM
14.13 Tasks
15 Maze Navigation
15.1 Micro Mouse Contest
15.2 Maze Exploration Algorithms
15.2.1 Wall Following
15.2.2 Recursive Exploration
15.3 Simulated Versus Real Maze Program
15.4 Tasks
16 Image Processing
16.1 Camera Interface
16.2 Image File Formats
16.2.1 Black and White Image Files PBM
16.2.2 Grayscale Image Files PGM
16.2.3 Color Image Files PPM
16.3 Edge Detection
16.4 Motion Detection
16.5 Color Spaces
16.5.1 Red Green Blue (RGB)
16.5.2 Hue Saturation Intensity (HSI)
16.5.3 Normalized RGB (RGB)
16.6 RBG-to-HSI Conversion
16.7 Color Object Detection
16.8 Image Segmentation
16.9 Image Coordinates versus World Coordinates
16.10 Tasks
17 Automotive Systems
17.1 Autonomous Automobiles
17.2 Drive-By-Wire and Safety Systems
17.2.1 Drive-By-Wire
17.2.2 Safety Systems
17.3 Computer Vision for Autonomous Driving
17.4 OpenCV and KITTI
17.5 ROS
17.5.1 ROS Concepts and Core Functions
17.5.2 ROS Packages
17.6 Carla Simulator
17.7 Lane Detection
17.7.1 Edge Detection
17.7.2 Image Tiling
17.7.3 Line Segment Clustering
17.8 Vehicle Recognition and Tracking
17.8.1 Symmetry Operators
17.8.2 Vehicle Tracking
17.9 Automatic Parking
17.10 Autonomous Formula-SAE
17.11 Autonomous Shuttle Bus
17.12 Tasks
Artificial Intelligence
18 AI Concepts
18.1 Software Architecture
18.2 Behavior-Based Systems
18.3 Behavior Framework
18.4 Behavior-Based Applications
18.4.1 Clustering
18.4.2 Tracking
18.4.3 Predator–Prey
18.5 Tasks
19 Neural Networks
19.1 Neural Network Principles
19.2 Feed-Forward Networks
19.3 Backpropagation
19.4 Neural Network Examples
19.5 Neural Robot Control
19.6 Tasks
20 Genetic Algorithms
20.1 Genetic Algorithm Principles
20.1.1 Genotype and Phenotype
20.1.2 GA Execution
20.1.3 Fitness Function
20.1.4 Selection Mechanisms
20.2 Genetic Operators
20.2.1 Crossover
20.2.2 Mutation
20.2.3 Encoding
20.3 Evolution Example
20.4 Implementing Genetic Algorithms
20.5 Genetic Robot Control
20.6 Starman
20.7 Evolving Walking Gaits
20.7.1 Splines
20.7.2 Control Algorithm and Feedback
20.7.3 Controller Evolution
20.7.4 Controller Assessment
20.7.5 Evolved Walking Gaits
20.8 Tasks
21 Deep Learning
21.1 TensorFlow and Caffe
21.2 Carolo-Cup Competition
21.3 Traffic Sign Recognition
21.4 End-To-End Learning for Autonomous Driving
21.5 Tasks
22 Outlook
Outline placeholder
chApp1
Appendix A: RoBIOS Library
A.1 LCD Output
A.2 Keys
A.3 Camera
A.4 Image Processing
A.5 System Functions
A.6 Timer
A.7 USB/Serial Communication
A.8 Audio
A.9 Distance Sensors
A.10 Servos and Motors
A.11 Omega Driving Interface
A.12 Digital and Analog Input/Output
A.13 IR Remote Control
A.14 Radio Communication
A.15 Multitasking
A.16 Simulation only
Appendix B: EyeBot-IO7 Interface
Appendix C: Hardware Description Table
Appendix D: Robot Programming Projects
&texmath1;D.2 Driving
&texmath1;D.3 Sensors
&texmath1;D.4 Navigation
&texmath1;D.5 Robot Groups
D.6 Submarines
D.7 Manipulators