Robotics is one of those curious subjects with the capability to engage people from all walks and stages of life. There is something about the struggles of an inanimate object to deal with the complexities of the real world that touches something in many of us, whether the object is R2-D2 chirruping to his companions, a Sony aibo struggling to score a goal in a robot soccer game, or the humble Roomba vacuum cleaner. As a result, robotics researchers find themselves both at the cutting edge of a new science, a science with increasingly impressive achievements, and at the center of a lot of attention from the general public. This, in turn, means that there is a large audience for literature on robotics, most of which is not well-served by robotics researchers, who typically write for their peers, rather than the segment of the general population that makes up the bulk of those who are interested in robotics.
The Robotics Primer is intended to address this mismatch between publications on robotics and the audience that is interested in the subject, or rather, that is one of the things that the book aims to do, as it has ambitious goals. As Matarić explains in the preface, this book was intended to appeal to
an audience that …span(s) K-12 and university educators and students, as well as robotics enthusiasts who…(want) to go beyond the popular press and get under the surface of the subject. The readers of the book (will) hopefully span the ages of early adolescence to retirement, and education levels of elementary school to PhD.
That, as the author notes, is a tall order.
The structure of The Robotics Primer is, more or less, the one adopted by most robotics texts. It starts by looking at the structure of robots, discusses actuators and sensors, and then considers control architectures. This is followed by material on localization and navigation, robot teams, and, finally, machine learning. What makes this book different from others that follow this pattern is that the text is pitched to appeal to a general audience, and here, I think, it achieves its aim very well. It manages, for example, to explain the basic notions of localization, mapping and learning without getting bogged down in technical detail. In fact, the book manages to explain the essence of these topics without introducing any technical detail whatsoever, and these introductions are backed by pointers to more advanced material. To my mind, describing the important problems in robotics, and the methods that have been developed to solve them, in such simple terms is a great achievement, and means that the book really can be read and understood by an audience that cannot connect with the bulk of robotics publications.
However, there is a downside. The problem is that although one can describe the essence of, for example, reinforcement learning in terms of recording the rewards achieved by each action in each state, that is slightly distant from being a description of an algorithm to implement reinforcement learning (and a very long way from the Bellman equation, which lies at the heart of optimal solutions to reinforcement learning problems). As a result, those members of the general audience who read The Robotics Primer and then want to go on and program robots with the techniques that they have been introduced to, have a lot of ground to cover on their own.
This gap is accentuated by the set of exercises that accompany the text. As with the book itself, these are excellent in and of themselves—there are several exercises for each of the major topics in the book, each of which comes with a skeleton solution for the iRobot CreateFootnote 1 or the GumstixFootnote 2 and a full answer. However, there is a considerable gap between where the book leaves off and where a solution to the exercises begins. This gap is both conceptual and practical. On the conceptual side, the exercises require the implementation of ideas that are only introduced at a very abstract level. There is an exercise, for instance, that requires the use of reinforcement learning to help a robot learn to follow a line and, as mentioned above, I do not think the book gives enough detail to allow this to be done. On the practical side, the skeletons and answers are full-blown programs in C++, and to run them on the target platforms is certainly non-trivial. Certainly they are more complex to come to grips with than the Lego robots that we find are suitably taxing for grade-schoolers and even undergraduates who are not majoring in Computer Science. Thus, although I would be comfortable using the book itself with a middle-school classroom, I am not sure I would give the exercises to even a class of computer science undergraduates who had been taught from the book alone, unless I planned to spend a good deal of time providing additional scaffolding.
Overall, I found The Robotics Primer to be a bit of a curate’s egg. It is excellent in parts, and those parts differ depending on the background that one brings. For a K-12 educator, it is an excellent text, but I think it would need to be paired with a different set of exercises and would probably need to use a simpler platform. For a graduate class in robotics, or even an advanced undergraduate class, the exercises are a great resource, but I think either an additional textbook (like Siegwart & Nourbakhsh, Reference Siegwart and Nourbakhsh2004 or Bekey, Reference Bekey2005) or a class reference copy of Choset et al. Reference Choset, Lynch, Hutchinson, Kantor, Burgard, Kavraki and Thrun(2005), would be required. What I do know is that I will be making the book required for the undergraduate class in robotics that we teach non-majors, where it will be coupled with the use of Lego Mindstorms programing using the graphical language RoboLab. That is a class for which we have not earlier had a suitable text, and also features a population that is perhaps right in the middle of the audience that Matarić describes in the preface. It will be interesting to see what they make of the book.