A Systematic Approach to Learning Robot Programming with ROS: 1st Edition (Paperback) book cover

A Systematic Approach to Learning Robot Programming with ROS

1st Edition

By Wyatt Newman

Chapman and Hall/CRC

502 pages | 50 Color Illus.

Purchasing Options:$ = USD
Paperback: 9781498777827
pub: 2017-09-15
$81.95
x
Hardback: 9781138096301
pub: 2017-09-01
$165.00
x
eBook (VitalSource) : 9781315152691
pub: 2017-09-15
from $39.98


FREE Standard Shipping!

Description

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

Table of Contents

SECTION I ROS FOUNDATIONS

Introduction to ROS: ROS tools and nodes

Some Ros Concepts

Writing Ros Nodes

Some More Ros Tools: Catkin_Simple, Roslaunch, Rqt_Console, And Rosbag

A Minimal Simulator and Controller Example

Wrap-Up

Messages, Classes and Servers

Defining Custom Messages

Introduction to Ros Services

Using C++ Classes in Ros

Creating Library Modules In Ros

Introduction to Action Servers and Action Clients

Introduction to The Parameter Server

Wrap-Up

SECTION II SIMULATION AND VISUALIZATION IN ROS

Simulation in ROS

The Simple Two-Dimensional Robot Simulator

Modeling for Dynamic Simulation

The Unified Robot Description Format

Introduction to Gazebo

A Minimal Joint Controller

Using A Gazebo Plug-In for Joint Servo Control

Building A Mobile Robot Model

Simulating The Mobile Robot Model

Combining Robot Models

Wrap-Up

Coordinate Transforms in ROS

Introduction to Coordinate Transforms In Ros

The Transform Listener

Using The Eigen Library

Transforming Ros Datatypes

Wrap-Up

Sensing and Visualization in ROS

Markers And Interactive Markers In Rviz

Displaying Sensor Values in Rviz

Wrap-Up

SECTION IIIPERCEPTUAL PROCESSING IN ROS

Using Cameras in ROS

Projective Transformation Into Camera Coordinates

Intrinsic Camera Calibration

Intrinsic Calibration Of Stereo Cameras

Using Opencv with Ros

Wrap-Up

Depth Imaging and Point Clouds

Depth from Scanning Lidar

Depth from Stereo Cameras

Depth Cameras

Wrap-Up

Point Cloud Processing

A Simple Point-Cloud Display Node

Loading and Displaying Point-Cloud Images From Disk

Saving Published Point-Cloud Images to Disk

Interpreting Point-Cloud Images with Pcl Methods

An Object Finder

SECTION IV MOBILE ROBOTS IN ROS

Mobile-Robot Motion Control

Desired State Generation

Robot State Estimation

Differential-Drive Steering Algorithms

Steering with Respect to Map Coordinates

Wrap-Up

Mobile-Robot Navigation

Map Making

Path Planning

An Example Move-Base Client

Modifying The Navigation Stack

Wrap-Up

SECTION V ROBOT ARMS IN ROS

Low-Level Control

A One-Dof, Prismatic-Joint Robot Model

An Example Position Controller

An Example Velocity Controller

An Example Force Controller

Trajectory Messages for Robot Arms

A Trajectory Interpolation Action Server For A 7-Dof Arm

Wrap-Up

Robot Arm Kinematics

Forward Kinematics

Inverse Kinematics

Wrap-Up

Arm Motion Planning

Cartesian Motion Planning

Dynamic Programming for Joint-Space Planning

Cartesian-Motion Action Servers

Wrap-Up

Arm Control with the Baxter Simulator

Running The Baxter Simulator

Baxter Joints and Topics

Baxter's Grippers

Head Pan Control

Commanding Baxter Joints

Using The Ros Joint Trajectory Controller

Joint-Space Record and Playback Nodes

Baxter Kinematics

Baxter Cartesian Moves

Wrap-Up

An Object-Grabber Package

Object-Grabber Code Organization

An Object Manipulation Query Service

Generic Gripper Services

An Object-Grabber Action Server

An Example Object-Grabber Action Client

Wrap-Up

SECTION VI SYSTEM INTEGRATION AND HIGHER-LEVEL CONTROL

Perception-Based Manipulation

Extrinsic Camera Calibration

Integrated Perception and Manipulation

Mobile Manipulation

Mobile Manipulator Model

Mobile Manipulation

Wrap-Up

Conclusion

About the Author

Wyatt Newman is a professor in the department of Electrical Engineering and Computer Science at Case Western Reserve University, where he has taught since 1988. His research is in the areas of mechatronics, robotics and computational intelligence, in which he has 12 patents and over 150 technical publications. He received the S.B. degree from Harvard College in Engineering Science, the S.M. degree in Mechanical Engineering from M.I.T. in thermal and fluid sciences, the M.S.E.E. degree from Columbia University in control theory and network theory, and the Ph.D. degree in Mechanical Engineering from M.I.T. in design and control. A former NSF Young Investigator in robotics, Prof. Newman has also held appointments as: a senior member of research staff, Philips Laboratories; visiting scientist at Philips Natuurkundig Laboratorium; visiting faculty at Sandia National Laboratories, Intelligent Systems and Robotics Center; NASA summer faculty fellow at NASA Glenn Research Center; visiting fellow in neuroscience at Princeton University; distinguished visiting fellow at Edinburgh University, School of Informatics, and the Hung Hing Ying Distinguished Visiting Professor at the University of Hong Kong. Prof. Newman led robotics teams competing in the 2007 DARPA Urban Challenge and in the 2015 DARPA Robotics Challenge, and he continues to be interested in wide-ranging aspects and applications of robotics.

Subject Categories

BISAC Subject Codes/Headings:
COM037000
COMPUTERS / Machine Theory
TEC008000
TECHNOLOGY & ENGINEERING / Electronics / General
TEC037000
TECHNOLOGY & ENGINEERING / Robotics