Mastering ROS for Robotics Programming

Design, build and simulate complex robots using Robot Operating System and master its out-of-the-box functionalities

Mastering ROS for Robotics Programming

This ebook is included in a Mapt subscription
Lentin Joseph

2 customer reviews
Design, build and simulate complex robots using Robot Operating System and master its out-of-the-box functionalities
$0.00
$43.99
$54.99
$29.99p/m after trial
RRP $43.99
RRP $54.99
Subscription
eBook
Print + eBook
Start 30 Day Trial
Subscribe and access every Packt eBook & Video.
 
  • 4,000+ eBooks & Videos
  • 40+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 
Preview in Mapt

Book Details

ISBN 139781783551798
Paperback480 pages

Book Description

The area of robotics is gaining huge momentum among corporate people, researchers, hobbyists, and students. The major challenge in robotics is its controlling software. The Robot Operating System (ROS) is a modular software platform to develop generic robotic applications.

This book discusses the advanced concepts in robotics and how to program using ROS. It starts with deep overview of the ROS framework, which will give you a clear idea of how ROS really works. During the course of the book, you will learn how to build models of complex robots, and simulate and interface the robot using the ROS MoveIt motion planning library and ROS navigation stacks.

After discussing robot manipulation and navigation in robots, you will get to grips with the interfacing I/O boards, sensors, and actuators of ROS. One of the essential ingredients of robots are vision sensors, and an entire chapter is dedicated to the vision sensor, its interfacing in ROS, and its programming.

You will discuss the hardware interfacing and simulation of complex robot to ROS and ROS Industrial (Package used for interfacing industrial robots).

Finally, you will get to know the best practices to follow when programming using ROS.

Table of Contents

Chapter 1: Introduction to ROS and Its Package Management
Why should we learn ROS?
Why we prefer ROS for robots
Why some do not prefer ROS for robots
Understanding the ROS file system level
Understanding the ROS computation graph level
Understanding ROS community level
Questions
Summary
Chapter 2: Working with 3D Robot Modeling in ROS
ROS packages for robot modeling
Understanding robot modeling using URDF
Creating the ROS package for the robot description
Creating our first URDF model
Explaining the URDF file
Visualizing the robot 3D model in RViz
Adding physical and collision properties to a URDF model
Understanding robot modeling using xacro
Conversion of xacro to URDF
Creating the robot description for a seven DOF robot manipulator
Explaining the xacro model of seven DOF arm
Creating a robot model for the differential drive mobile robot
Questions
Summary
Chapter 3: Simulating Robots Using ROS and Gazebo
Simulating the robotic arm using Gazebo and ROS
Questions
Summary
Chapter 4: Using the ROS MoveIt! and Navigation Stack
Installing MoveIt!
Generating MoveIt! configuration package using Setup Assistant tool
Step 1 – Launching the Setup Assistant tool
Motion planning of robot in RViz using MoveIt! configuration package
Understanding ROS Navigation stack
Building a map using SLAM
Questions
Summary
Chapter 5: Working with Pluginlib, Nodelets, and Gazebo Plugins
Understanding pluginlib
Understanding the Gazebo plugins
Questions
Summary
Chapter 6: Writing ROS Controllers and Visualization Plugins
Understanding pr2_mechanism packages
Writing a basic real-time joint controller in ROS
Understanding ros_control packages
Understanding ROS visualization tool (RViz) and its plugins
Writing a RViz plugin for teleoperation
Questions
Summary
Chapter 7: Interfacing I/O Boards, Sensors, and Actuators to ROS
Understanding the Arduino–ROS interface
What is the Arduino–ROS interface?
Interfacing Dynamixel actuators to ROS
Questions
Summary
Chapter 8: Programming Vision Sensors using ROS, Open-CV, and PCL
Understanding ROS – OpenCV interfacing packages
Understanding ROS – PCL interfacing packages
Interfacing USB webcams in ROS
Working with ROS camera calibration
Interfacing Kinect and Asus Xtion Pro in ROS
Interfacing Intel Real Sense camera with ROS
Interfacing Hokuyo Laser in ROS
Interfacing Velodyne LIDAR in ROS
Working with point cloud data
Streaming webcam from Odroid using ROS
Questions
Summary
Chapter 9: Building and Interfacing Differential Drive Mobile Robot Hardware in ROS
Introduction to Chefbot- a DIY mobile robot and its hardware configuration
Questions
Summary
Chapter 10: Exploring the Advanced Capabilities of ROS-MoveIt!
Motion planning using the move_group C++ interface
Collision checking in robot arm using MoveIt!
Working with perception using MoveIt! and Gazebo
Grasping using MoveIt!
Working with robot pick and place task using MoveIt!
Pick and place action in Gazebo and real Robot
Understanding Dynamixel ROS Servo controllers for robot hardware interfacing
Interfacing seven DOF Dynamixel based robotic arm to ROS MoveIt!
Questions
Summary
Chapter 11: ROS for Industrial Robots
Understanding ROS-Industrial packages
Installing ROS-Industrial packages
Block diagram of ROS-Industrial packages
Creating URDF for an industrial robot
Creating MoveIt! configuration for an industrial robot
Installing ROS-Industrial packages of universal robotic arm
Understanding the Moveit! configuration of a universal robotic arm
Working with MoveIt! configuration of ABB robots
Understanding the ROS-Industrial robot support packages
ROS-Industrial robot client package
ROS-Industrial robot driver package
Understanding MoveIt! IKFast plugin
Creating the MoveIt! IKFast plugin for the ABB-IRB6640 robot
Creating the COLLADA file of a robot to work with OpenRave
Generating the IKFast CPP file for the IRB 6640 robot
Questions
Summary
Chapter 12: Troubleshooting and Best Practices in ROS
Setting up Eclipse IDE on Ubuntu 14.04.3
Setting ROS development environment in Eclipse IDE
Best practices in ROS
Best practices in the ROS package
Important troubleshooting tips in ROS
Questions
Summary

What You Will Learn

  • Create a robot model of a Seven-DOF robotic arm and a differential wheeled mobile robot
  • Work with motion planning of a Seven-DOF arm using MoveIt!
  • Implement autonomous navigation in differential drive robots using SLAM and AMCL packages in ROS
  • Dig deep into the ROS Pluginlib, ROS nodelets, and Gazebo plugins
  • Interface I/O boards such as Arduino, Robot sensors, and High end actuators with ROS
  • Simulation and motion planning of ABB and Universal arm using ROS Industrial
  • Explore the ROS framework using its latest version

Authors

Table of Contents

Chapter 1: Introduction to ROS and Its Package Management
Why should we learn ROS?
Why we prefer ROS for robots
Why some do not prefer ROS for robots
Understanding the ROS file system level
Understanding the ROS computation graph level
Understanding ROS community level
Questions
Summary
Chapter 2: Working with 3D Robot Modeling in ROS
ROS packages for robot modeling
Understanding robot modeling using URDF
Creating the ROS package for the robot description
Creating our first URDF model
Explaining the URDF file
Visualizing the robot 3D model in RViz
Adding physical and collision properties to a URDF model
Understanding robot modeling using xacro
Conversion of xacro to URDF
Creating the robot description for a seven DOF robot manipulator
Explaining the xacro model of seven DOF arm
Creating a robot model for the differential drive mobile robot
Questions
Summary
Chapter 3: Simulating Robots Using ROS and Gazebo
Simulating the robotic arm using Gazebo and ROS
Questions
Summary
Chapter 4: Using the ROS MoveIt! and Navigation Stack
Installing MoveIt!
Generating MoveIt! configuration package using Setup Assistant tool
Step 1 – Launching the Setup Assistant tool
Motion planning of robot in RViz using MoveIt! configuration package
Understanding ROS Navigation stack
Building a map using SLAM
Questions
Summary
Chapter 5: Working with Pluginlib, Nodelets, and Gazebo Plugins
Understanding pluginlib
Understanding the Gazebo plugins
Questions
Summary
Chapter 6: Writing ROS Controllers and Visualization Plugins
Understanding pr2_mechanism packages
Writing a basic real-time joint controller in ROS
Understanding ros_control packages
Understanding ROS visualization tool (RViz) and its plugins
Writing a RViz plugin for teleoperation
Questions
Summary
Chapter 7: Interfacing I/O Boards, Sensors, and Actuators to ROS
Understanding the Arduino–ROS interface
What is the Arduino–ROS interface?
Interfacing Dynamixel actuators to ROS
Questions
Summary
Chapter 8: Programming Vision Sensors using ROS, Open-CV, and PCL
Understanding ROS – OpenCV interfacing packages
Understanding ROS – PCL interfacing packages
Interfacing USB webcams in ROS
Working with ROS camera calibration
Interfacing Kinect and Asus Xtion Pro in ROS
Interfacing Intel Real Sense camera with ROS
Interfacing Hokuyo Laser in ROS
Interfacing Velodyne LIDAR in ROS
Working with point cloud data
Streaming webcam from Odroid using ROS
Questions
Summary
Chapter 9: Building and Interfacing Differential Drive Mobile Robot Hardware in ROS
Introduction to Chefbot- a DIY mobile robot and its hardware configuration
Questions
Summary
Chapter 10: Exploring the Advanced Capabilities of ROS-MoveIt!
Motion planning using the move_group C++ interface
Collision checking in robot arm using MoveIt!
Working with perception using MoveIt! and Gazebo
Grasping using MoveIt!
Working with robot pick and place task using MoveIt!
Pick and place action in Gazebo and real Robot
Understanding Dynamixel ROS Servo controllers for robot hardware interfacing
Interfacing seven DOF Dynamixel based robotic arm to ROS MoveIt!
Questions
Summary
Chapter 11: ROS for Industrial Robots
Understanding ROS-Industrial packages
Installing ROS-Industrial packages
Block diagram of ROS-Industrial packages
Creating URDF for an industrial robot
Creating MoveIt! configuration for an industrial robot
Installing ROS-Industrial packages of universal robotic arm
Understanding the Moveit! configuration of a universal robotic arm
Working with MoveIt! configuration of ABB robots
Understanding the ROS-Industrial robot support packages
ROS-Industrial robot client package
ROS-Industrial robot driver package
Understanding MoveIt! IKFast plugin
Creating the MoveIt! IKFast plugin for the ABB-IRB6640 robot
Creating the COLLADA file of a robot to work with OpenRave
Generating the IKFast CPP file for the IRB 6640 robot
Questions
Summary
Chapter 12: Troubleshooting and Best Practices in ROS
Setting up Eclipse IDE on Ubuntu 14.04.3
Setting ROS development environment in Eclipse IDE
Best practices in ROS
Best practices in the ROS package
Important troubleshooting tips in ROS
Questions
Summary

Book Details

ISBN 139781783551798
Paperback480 pages
Read More
From 2 reviews

Read More Reviews