Book Image

Mastering ROS for Robotics Programming, Third edition - Third Edition

By : Lentin Joseph, Jonathan Cacace
Book Image

Mastering ROS for Robotics Programming, Third edition - Third Edition

By: Lentin Joseph, Jonathan Cacace

Overview of this book

The Robot Operating System (ROS) is a software framework used for programming complex robots. ROS enables you to develop software for building complex robots without writing code from scratch, saving valuable development time. Mastering ROS for Robotics Programming provides complete coverage of the advanced concepts using easy-to-understand, practical examples and step-by-step explanations of essential concepts that you can apply to your ROS robotics projects. The book begins by helping you get to grips with the basic concepts necessary for programming robots with ROS. You'll then discover how to develop a robot simulation, as well as an actual robot, and understand how to apply high-level capabilities such as navigation and manipulation from scratch. As you advance, you'll learn how to create ROS controllers and plugins and explore ROS's industrial applications and how it interacts with aerial robots. Finally, you'll discover best practices and methods for working with ROS efficiently. By the end of this ROS book, you'll have learned how to create various applications in ROS and build your first ROS robot.
Table of Contents (22 chapters)
1
Section 1 – ROS Programming Essentials
4
Section 2 – ROS Robot Simulation
11
Section 3 – ROS Robot Hardware Prototyping
15
Section 4 – Advanced ROS Programming

What this book covers

Chapter 1, Introduction to ROS, gives you an understanding of the core underlying concepts of ROS.

Chapter 2, Getting Started with ROS Programming, explains how to work with ROS packages.

Chapter 3, Working with ROS for 3D Modeling, discusses the design of two robots; one is a seven Degrees of Freedom (DOF) manipulator, and the other is a differential drive robot.

Chapter 4, Simulating Robots Using ROS and Gazebo, discusses the simulation of a seven-DOF arm, differential wheeled robots, and ROS controllers that help control robot joints in Gazebo.

Chapter 5, Simulating Robots Using ROS, CoppeliaSim and Webots, introduces the CoppeliaSim and Webots simulators, showing how to simulate and control different types of robots.

Chapter 6, Using the ROS MoveIt! and Navigation Stack On, covers out-of-the-box functionalities such as robot manipulation and autonomous navigation using ROS MoveIt! and the navigation stack.

Chapter 7, Exploring the Advanced Capabilities of ROS-MoveIt!, discusses the capabilities of MoveIt!, such as collision avoidance, perception using 3D sensors, grasping, picking, and placing. After that, we will see how to interface robotic manipulator hardware with MoveIt!.

Chapter 8, ROS for Aerial Robots, discusses how to simulate and control aerial robots with ROS, considering the particular case of quadcopters.

Chapter 9, Interfacing I/O Boards, Sensors, and Actuators to ROS, discusses interfacing some hardware components, such as sensors and actuators, with ROS. We will look at the interfacing of sensors using I/O boards, such as Arduino or Raspberry Pi, with ROS.

Chapter 10, Programming Vision Sensors Using ROS, OpenCV, and PCL, discusses how to interface various vision sensors with ROS and program them using libraries such as Open Source Computer Vision (OpenCV) and Point Cloud Library (PCL).

Chapter 11, Building and Interfacing Differential Drive Mobile Robot Hardware in ROS, helps you to build autonomous mobile robot hardware with differential drive configuration and interface it with ROS. This chapter aims to give you an understanding of building a custom mobile robot and interfacing it with ROS.

Chapter 12, Working with pluginlib, Nodelets, and Gazebo Plugins, shows some of the advanced concepts in ROS, such as ROS pluginlib, nodelets, and Gazebo plugins. We will discuss the functionalities and application of each concept and will practice one example to demonstrate their workings.

Chapter 13, Writing ROS Controllers and Visualization Plugins, shows how to write and run a basic ROS controller. We will also see how to create a plugin for RViz.

Chapter 14, Using ROS in MATLAB and Simulink, discusses how to connect MATLAB and Simulink with ROS.

Chapter 15, ROS for Industrial Robots, helps you understand and install ROS-Industrial packages in ROS. We will see how to develop a MoveIt! IKFast plugin for an industrial robot.

Chapter 16, Troubleshooting and Best Practices in ROS, discusses how to set up a ROS development environment in Eclipse IDE, best practices in ROS, and troubleshooting tips in ROS.