Reviewing a book about ROS programming

// November 7th, 2013 // Artificial Intelligence

In the modern robotics community, there has been a necessity for a book that explains the ins and outs of the Robotic Operating System (ROS).

ROS is the most popular robotic framework used in the world. Created by Willow Garage, it provides a framework for easily communicate processes, standarized access to robotic resources or clear visualisation of robot data. Until now, your only source of material for learning ROS was the excellent, but sometimes confusing, documentation provided by Willow Garage.

Now, Enrique Fernández and Aaron Martinez have filled the gap with their book Learning ROS for Robotics Programming

learningros

The book covers all the basic aspects required to understand ROS, how to install it, and how to use it with your own robot.

First chapter describes how to install two different versions of ROS (Electric and Fuerte), including the case of setting up a virtual machine to work with ROS.
In the second chapter core concepts of ROS are explained: topics, nodes, stacks, packages, services, etc… they are not intuitive at all, but the book provides a clear explanation.

Next chapters includes debugging with ROS, how to use sensors and actuators, and how to simulate your own robot with Gazebo, the default simulator for ROS.

Then, several chapters are dedicated to bring some intelligence to your robot using out of the box solutions included in ROS. How to make a robot navigate and how to make a robot use visual information to define its behaviour.

The book ends with a chapter dedicated to practice all the stuff learned with actual complex robots (even if only in simulations). The last chapter is dedicated to use the freely available simulations of world wide robots to practice about ROS. How ROS has been implemented in those robots and how you can use ROS programming to make those robots perform some useful activity, all of it in the Gazebo simulation environment.

Evaluation

The book is very well structured. It builds from the most simple things to the more complex in a smooth enough progressive complexity. It is full of exercises that guide you step by step in all the concepts. You can definitely use the book to learn the ROS.

There are three key parts of ROS that are correctly described in the book:

  • The content of chapter 3 that describes how to debug ROS code. This is one of the more difficult subjects when learning ROS, may be because it is not correctly described in the official documentation. However, the book correctly achieves to teach the subject.
  • The use of actuators and sensors that can are of common use in robotics are described in great detail.
  • The creation of a simulation for your own robot, is another of the confusing subjects that the book treats very well.
  • I can point two drawbacks:

  • Indicate that the book is focused on ROS Fuerte version, which is a little bit outdated (three versions more have appeared after Fuerte). However, this point is of low importance because the core of ROS concepts do not change from version to version. It can only affect the last chapter of the book.
  • The book is not deep enough to be used as a reference book. However, I believe that the goal of the authors was not that one, but to teach for new comers. If that was the case, the goal is perfectly achieved.
  • My recommendation is that, if you are new to the world of ROS, this book is a must. It will definitely speed up your learning of the matter.

    One Response to “Reviewing a book about ROS programming”

    Leave a Reply