In this book the author stresses software as the most important topic in modern robotics. In particular the book concentrates on software for mobile robots, and the author demonstrates how inexpensive solutions can be constructed by mounting Raspberry Pi controllers and cameras onto model cars or other simple mechanical drive systems. He introduces EyeSim-VR, a freely available system that can realistically simulate driving, swimming, diving, and walking robots. The emphasis throughout is on algorithm development and all software assignments can run on real robot hardware, as well as on the simulation system presented. The book is suitable for undergraduate and graduate courses in artificial intelligence and robotics, and also for self-study by practitioners. All software used in this book, including all example programs, can be freely downloaded online, with native applications for MacOS, Windows, Linux, and Raspberry Pi.
Author(s): Thomas Bräunl
Publisher: Springer
Year: 2020
Language: English
Pages: 183
PREFACE
CONTENTS
1 ROBOT HARDWARE
1.1 Actuators
1.2 Sensors
1.3 User Interface
1.4 Processor
1.5 Complete Robot
1.6 Communication
1.7 Simulation
1.8 Tasks
2 ROBOT SOFTWARE
2.1 Software Installation
2.2 First Steps in Python
2.3 First Steps in C
2.4 Driving a Square in Python
2.5 Driving a Square in C or C++
2.6 SIM Scripts and Environment Files
2.7 Display and Input Buttons
2.8 Distance Sensors
2.9 Camera
2.10 Robot Communication
2.11 Multitasking
2.12 Using an IDE
2.13 Tasks
3 DRIVING ALGORITHMS
3.1 Random Drive
3.2 Driving to a Target Position
3.3 Turn and Drive Straight
3.4 Circle
3.5 Dog Curve
3.6 Splines
3.7 Tasks
4 LIDAR SENSORS
4.1 Lidar Scans
4.2 Corners and Obstacles
4.3 Tasks
5 ROBOT SWARMS
5.1 Setting up a Swarm
5.2 Follow Me
5.3 Multiple Followers
5.4 Tasks
6 WALL FOLLOWING
6.1 Wall Following Algorithm
6.2 Simplified Wall Following Program
6.3 Tasks
7 ALTERNATIVE DRIVES
7.1 Ackermann Steering
7.2 Omni-directional Drives
7.3 Driving in Terrain
7.4 Tasks
8 BOATS AND SUBS
8.1 Mechanical AUV and Boat Structure
8.2 Specifying an Underwater Structure
8.3 Submarine Diving
8.4 Submarine Movement
8.5 Tasks
9 MAZES
9.1 Micromouse
9.2 Wall Following
9.3 Robustness and Control
9.4 Maze Driving with Lidar
9.5 Recursive Maze Exploration
9.6 Flood-Fill
9.7 Shortest Path
9.8 Tasks
10 NAVIGATION
10.1 Navigation in Unknown Environments
10.2 DistBug Algorithm
10.3 Navigation in Known Environments
10.4 Quadtrees
10.5 Quadtree Implementation
10.6 Shortest Path Algorithm
10.7 Tasks
11 ROBOT VISION
11.1 Camera and Screen Functions
11.2 Edge Detection
11.3 OpenCV
11.4 Color Detection
11.5 Motion Detection
11.6 Tasks
12 STARMAN
12.1 Moving Limbs
12.2 Motion Model
12.3 Genetic Algorithms
12.4 Evolution Run
12.5 Tasks
13 DRIVERLESS CARS
13.1 Autonomous Model Car Competitions
13.2 Carolo-Cup
13.3 Lane Keeping
13.4 Intersections and Zebra Crossings
13.5 Traffic Sign Recognition
13.6 End-to-End Learning
13.7 Tasks
14 FORMULA SAE
14.1 Electric Driving
14.2 Drive by Wire
14.3 Safety System
14.4 Autonomous Driving
14.5 Cone Track Racing
14.6 Tasks
15 OUTLOOK
APPENDIX