Computing Reviews

Beginning robotics with Raspberry Pi and Arduino :using Python and OpenCV
Cicolani J., Apress,New York, NY,2018. 363 pp.Type:Book
Date Reviewed: 03/14/19

The language used in this book is very close to beginner level. It includes many examples, with code, images, and details of the materials needed to assemble the presented robot. The book’s ten chapters cover five key aspects related to low-cost robots: the robot controller based on Raspberry Pi and Arduino, the robot programming language, which in this case is Python, together with open-source libraries to work with artificial vision (OpenCV), the sensory system, and the acting system. It is a good book to promote the use of robotics in science, technology, engineering and mathematics (STEM) disciplines.

The book provides readers with step-by-step instructions for configuring the hardware to be able to program the robot, installing the Raspbian operating system, and setting up remote access to Raspberry Pi to program or configure it. The book covers aspects of object-oriented programming in general and imperative programming in particular, using the Python language as support. Raspberry Pi’s input/output (I/O) interface is studied and extended using Arduino, and then applied to the control of a DC motor, making use of a special board due to the current requirements of the motor and showing the basic principles for conducting electronic welding. As examples of sensors, an infrared sensor and a vision camera are analyzed. Finally, the fundamentals of the proportional–integral–derivative (PID) control algorithm are presented.

As mentioned, the book is a step-by-step guide, including a detailed list of materials to build a low-cost robot based on the principles discussed above (chapter 1). Chapters 2 and 3 propose different ways (from the most basic to the most advanced) to install and configure Raspbian and remote access to Raspberry Pi, and continue with the steps to install the programming environment for Python and to write and execute the typical “Hello, World!” program. The concepts of variable and data type are introduced, showing the most common and presenting the basic control structures, the user-defined functions and the library functions. The concept of class in object-oriented programming is also introduced. The concepts presented are very basic and may be sufficient as a first introduction to programming robots.

Chapter 4 analyzes Raspberry Pi’s I/O interface, identifying its limitations and justifying the use of a board dedicated to I/O, that is, Arduino. Python examples of I/O using the Raspberry Pi general-purpose I/O (GPIO) are presented for basic digital I/O, that is, an ultrasonic sensor input and a pulse width modulation (PWM) output. Chapter 5 justifies the convenience of working with Arduino for real-time applications. It describes a step-by-step procedure for working with Arduino from hardware and software points of view (with a simplified variant of the programming language C). Digital and analog I/O and the interconnection between Arduino and Raspberry Pi are also analyzed.

Chapter 6 is dedicated to actuators, specifically DC motors. It describes the different types of motors and the problems they present in the demand for current peaks under certain conditions, justifying the use of a motor control board. Python examples are shown to spin one or two engines. Chapter 7 presents a step-by-step procedure for assembling the robot from all the components presented in the previous chapters.

Chapter 8, “Working with Infrared Sensors,” explains the principle of operation and different uses and introduces programming examples to obtain readings from Arduino. Using the problem of tracking a line as an example, the concept of proportional control is presented in a very intuitive way, to justify the use of a PID controller to avoid zigzag movement of the robot. The fundamentals of PID control are presented, but obviously in a very basic way, and the algorithm implemented using Python is shown. Finally, in chapter 9, the author introduces the basic problem of computer vision and explains how it can be solved using OpenCV and Raspberry Pi. The book ends with chapter 10, “Conclusion.”

In summary, I think it is a very suitable introductory book to mobile robotics, mainly for pre-university courses.

More reviews about this item: Amazon

Reviewer:  Jose Carlos Moreno Ubeda Review #: CR146470 (1905-0148)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy