A Systematic Approach to Learning Robot Programming with ROS

Wyatt Newman

September 15, 2017 by Chapman and Hall/CRC
Textbook - 502 Pages - 50 Color Illustrations
ISBN 9781498777827 - CAT# K29786


Add to Wish List
FREE Standard Shipping!


  • Teaches ROS from the ground up without dependence on detailed prior expertise
  • Introduces the reader to ROS incrementally, building on a coherent sequence of topics
  • Assumes rudimentary knowledge of C++, but does not assume expertise in details of programming, robotics, machine vision, kinematics/dynamics, or software engineering
  • Presents ROS programming together with Gazebo simulations
  • Provides a survey of robotics topics, including kinematics, machine vision, point-cloud processing, mapping, navigation, and user interfaces


A Systematic Approach to Learning Robot Programming with ROS provides a comprehensive, introduction to the essential components of ROS through detailed explanations of simple code examples along with the corresponding theory of operation. The book explores the organization of ROS, how to understand ROS packages, how to use ROS tools, how to incorporate existing ROS packages into new applications, and how to develop new packages for robotics and automation. It also facilitates continuing education by preparing the reader to better understand the existing on-line documentation.

The book is organized into six parts. It begins with an introduction to ROS foundations, including writing ROS nodes and ROS tools. Messages, Classes, and Servers are also covered. The second part of the book features simulation and visualization with ROS, including coordinate transforms.

The next part of the book discusses perceptual processing in ROS. It includes coverage of using cameras in ROS, depth imaging and point clouds, and point cloud processing. Mobile robot control and navigation in ROS is featured in the fourth part of the book

The fifth section of the book contains coverage of robot arms in ROS. This section explores robot arm kinematics, arm motion planning, arm control with the Baxter Simulator, and an object-grabber package. The last part of the book focuses on system integration and higher-level control, including perception-based and mobile manipulation.

This accessible text includes examples throughout and C++ code examples are also provided at https://github.com/wsnewman/learning_ros