Developing intelligent robots is a difficult task. Even the act of defining an intelligent robot is hard. However, according to the book’s subtitle--implementation and applications--the authors aim to develop robot applications that show some intelligence, at least by adapting to the environment.
Since coding all the needed algorithms for such complex systems is terribly hard, trying the presented ones on your robotic platform, whatever it is, without reimplementation, can be very effective.
Reusing software is challenging; it is even more challenging in robotics considering the large differences in robotic hardware, mechanics, and sensors. However, reusing is granted by software architectures expressly created for robotics. The open-source Robot Operating System (ROS) is perhaps the most popular of those software platforms. It is a distributed and modular framework, exploiting peer-to-peer design, and independent from the programming language. ROS runs on the core of the computer operating system, providing a unified development interface and various libraries.
The authors of the book intend to transmit their experience with ROS to help students and technicians in developing applications. After presenting ROS, they show how some intelligent functions of an autonomous robot can be readily available in ROS. The book contains 15 chapters organized into three parts.
After a first part containing basic knowledge, the second part is devoted to the implementation of the core robot functions. Turtlebot2, a differential drive base with one arm, is the open-source robot chosen as the test platform. Vision and speech sensors are provided by Microsoft’s Kinect, which contains a red, green, and blue wavelengths (RGB) camera, a depth sensor, and a microphone array. The vision function considers images and point clouds for localization and recognition. The navigation function uses vision. The speech recognition function provides a user interface. Object grasping is the only manipulation function considered.
Part 3 presents four case studies of robotic systems interacting with people in simple home and restaurant scenarios. The applications combine the aforementioned robotic functions for following, serving, and assisting people. The code is provided in the book’s resources.
Using existing algorithms that can possibly solve your robotic problem has great value. However, creating a new robotic application by just picking one up from a library instead of designing the most appropriate solution may presents risks, for instance, underestimating the peculiarity of the problem at hand or over-relying on old algorithms.
The book is an effective tutorial for using ROS. So embark on reading it if you intend to adopt ROS, either by delivering your software or for using available software on your robot. There are very few references to scientific papers; do not expect to find research directions for developing new methods.