My Account Log in

3 options

Mastering ROS for robotics programming : design, build, and simulate complex robots using the Robot Operating System / Lentin Joseph, Jonathan Cacace.

EBSCOhost Academic eBook Collection (North America) Available online

View online

Ebook Central College Complete Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Joseph, Lentin, author.
Cacace, Jonathan, author.
Language:
English
Subjects (All):
Robots--Programming.
Robots.
Physical Description:
1 online resource (552 pages) : color illustrations
Edition:
Second edition.
Place of Publication:
Birmingham, [England] ; Mumbai, [India] : Packt, 2018.
System Details:
text file
Biography/History:
Joseph Lentin: Lentin Joseph is an author and robotics entrepreneur from India. He runs a robotics software company called Qbotics Labs in India. He has 7 years of experience in the robotics domain primarily in ROS, OpenCV, and PCL. He has authored four books in ROS, namely, Learning Robotics using Python, Mastering ROS for Robotics Programming, ROS Robotics Projects, and Robot Operating System for Absolute Beginners. He is currently pursuing his master's in Robotics from India and is also doing research at Robotics Institute, CMU, USA.
Summary:
Discover best practices and troubleshooting solutions when working on ROS About This Book Develop complex robotic applications using ROS to interface robot manipulators and mobile robots Gain insight into autonomous navigation in mobile robots and motion planning in robot manipulators Discover best practices and troubleshooting solutions Who This Book Is For If you are a robotics enthusiast or researcher who want to learn more about building robot applications using ROS, this book is for you. In order to learn from this book, you should have a basic knowledge of ROS, GNU/Linux, and C++ programming concepts. The book is also excellent for programmers who want to explore the advanced features of ROS. What You Will Learn Create a robot model with a seven-DOF robotic arm and a differential wheeled mobile robot Work with Gazebo and V-REP robotic simulator Implement autonomous navigation in differential drive robots using SLAM and AMCL packages Explore the ROS Pluginlib, ROS nodelets, and Gazebo plugins Interface I/O boards such as Arduino, robot sensors, and high-end actuators Simulate and motion plan an ABB and universal arm using ROS Industrial Explore the latest version of the ROS framework Work with the motion planning of a seven-DOF arm using MoveIt! In Detail In this day and age, robotics has been gaining a lot of traction in various industries where consistency and perfection matter. Automation is achieved via robotic applications and various platforms that support robotics. The Robot Operating System (ROS) is a modular software platform to develop generic robotic applications. This book focuses on the most stable release of ROS (Kinetic Kame), discusses advanced concepts, and effectively teaches you programming using ROS. We begin with aninformative overview of the ROS framework, which will give you a clear idea of how ROS works. During the course of this book, you'll learn to build models of complex robots, and simulate and interface the robot using the ROS MoveIt! motion planning library and ROS navigation stacks. Learn to leverage several ROS packages to embrace your robot models. After covering robot manipulation and navigation, you'll get to grips with the interfacing I/O boards, sensors, and actuators of ROS. Vision sensors are a key component of robots, and an entire chapter is dedicated to the vision sensor and image elaboration, its interface in ROS and programming. You'll also understand the hardware interface and simulation of co...
Contents:
Cover
Title Page
Copyright and Credits
www.PacktPub.com
Contributors
Table of Contents
Preface
Chapter 1: Introduction to ROS
Why should we learn ROS?
Why we prefer ROS for robots
Why some do not prefer ROS for robots
Understanding the ROS filesystem level
ROS packages
ROS metapackages
ROS messages
The ROS services
Understanding the ROS computation graph level
ROS nodes
ROS topics
ROS services
ROS bags
The ROS Master
Using the ROS parameter
ROS community level
What are the prerequisites for starting with ROS?
Running the ROS Master and the ROS parameter server
Checking the roscore command output
Questions
Summary
Chapter 2: Getting Started with ROS Programming
Creating a ROS package
Working with ROS topics
Creating ROS nodes
Building the nodes
Adding custom msg and srv files
Working with ROS services
Working with ROS actionlib
Creating the ROS action server
Creating the ROS action client
Building the ROS action server and client
Creating launch files
Applications of topics, services, and actionlib
Maintaining the ROS package
Releasing your ROS package
Preparing the ROS package for the release
Releasing our package
Creating a Wiki page for your ROS package
Chapter 3: 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 3D robot model in RViz
Interacting with pan-and-tilt joints
Adding physical and collision properties to a URDF model
Understanding robot modeling using xacro
Using properties
Using the math expression
Using macros
Converting xacro to URDF.
Creating the robot description for a seven DOF robot manipulator
Arm specification
Type of joints
Explaining the xacro model of the seven DOF arm
Using constants
Including other xacro files
Using meshes in the link
Working with the robot gripper
Viewing the seven DOF arm in RViz
Understanding joint state publisher
Understanding robot state publisher
Creating a robot model for the differential drive mobile robot
Chapter 4: Simulating Robots Using ROS and Gazebo
Simulating the robotic arm using Gazebo and ROS
Creating the robotic arm simulation model for Gazebo
Adding colors and textures to the Gazebo robot model
Adding transmission tags to actuate the model
Adding the gazebo_ros_control plugin
Adding a 3D vision sensor to Gazebo
Simulating the robotic arm with Xtion Pro
Visualizing the 3D sensor data
Moving robot joints using ROS controllers in Gazebo
Understanding the ros_control packages
Different types of ROS controllers and hardware interfaces
How the ROS controller interacts with Gazebo
Interfacing joint state controllers and joint position controllers to the arm
Launching the ROS controllers with Gazebo
Moving the robot joints
Simulating a differential wheeled robot in Gazebo
Adding the laser scanner to Gazebo
Moving the mobile robot in Gazebo
Adding joint state publishers in the launch file
Adding the ROS teleop node
Chapter 5: Simulating Robots Using ROS and V-REP
Setting up V-REP with ROS
Understanding the vrep_plugin
Interacting with V-REP using ROS services
Interacting with V-REP using ROS topics
Simulating the robotic arm using V-REP and ROS
Adding the ROS interface to V-REP joint controllers
Simulating a differential wheeled robot in V-REP.
Adding a laser sensor to V-REP
Adding a 3D vision sensor to V-REP
Chapter 6: Using the ROS MoveIt! and Navigation Stack
Installing MoveIt!
MoveIt! architecture
The move_group node
Motion planning using MoveIt!
Motion planning request adapters
MoveIt! planning scene
MoveIt! kinematics handling
MoveIt! collision checking
Generating MoveIt! configuration package using the Setup Assistant tool
Step 1 - Launching the Setup Assistant tool
Step 2 - Generating the Self-Collision matrix
Step 3 - Adding virtual joints
Step 4 - Adding planning groups
Step 5 - Adding the robot poses
Step 6 - Setting up the robot end effector
Step 7 - Adding passive joints
Step 8 - Author information
Step 9 - Generating configuration files
Motion planning of robot in RViz using MoveIt! configuration package
Using the RViz Motion Planning plugin
Interfacing the MoveIt! configuration package to Gazebo
Step 1 - Writing the controller configuration file for MoveIt!
Step 2 - Creating the controller launch files
Step 3 - Creating the controller configuration file for Gazebo
Step 4 - Creating the launch file for Gazebo trajectory controllers
Step 5 - Debugging the Gazebo- MoveIt! interface
Understanding the ROS Navigation stack
ROS Navigation hardware requirements
Working with Navigation packages
Understanding the move_base node
Working of Navigation stack
Localizing on the map
Sending a goal and path planning
Collision recovery behavior
Sending the command velocity
Installing the ROS Navigation stack
Building a map using SLAM
Creating a launch file for gmapping
Running SLAM on the differential drive robot
Implementing autonomous navigation using amcl and a static map
Creating an amcl launch file
Summary.
Chapter 7: Working with pluginlib, Nodelets, and Gazebo Plugins
Understanding pluginlib
Creating plugins for the calculator application using pluginlib
Working with the pluginlib_calculator package
Step 1 - Creating the calculator_base header file
Step 2 - Creating the calculator_plugins header file
Step 3 - Exporting plugins using the calculator_plugins.cpp
Step 4 - Implementing the plugin loader using the calculator_loader.cpp
Step 5 - Creating the plugin description file: calculator_plugins.xml
Step 6 - Registering the plugin with the ROS package system
Step 7 - Editing the CMakeLists.txt file
Step 8 - Querying the list of plugins in a package
Step 9 - Running the plugin loader
Understanding ROS nodelets
Creating a nodelet
Step 1 - Creating a package for a nodelet
Step 2 - Creating the hello_world.cpp nodelet
Step 3 - Explanation of hello_world.cpp
Step 4 - Creating the plugin description file
Step 5 - Adding the export tag in package.xml
Step 6 - Editing CMakeLists.txt
Step 7 - Building and running nodelets
Step 8 - Creating launch files for nodelets
Understanding the Gazebo plugins
Creating a basic world plugin
Chapter 8: Writing ROS Controllers and Visualization Plugins
Understanding ros_control packages
The controller_interface package
Initializating the controller
Starting the ROS controller
Updating the ROS controller
Stopping the controller
The controller_manager
Writing a basic joint controller in ROS
Step 1 - Creating the controller package
Step 2 - Creating the controller header file
Step 3 - Creating the controller source file
Step 4 - Explaining the controller source file
Step 5 - Creating the plugin description file
Step 6 - Updating package.xml
Step 7 - Updating CMakeLists.txt.
Step 8 - Building the controller
Step 9 - Writing the controller configuration file
Step 10 - Writing the launch file for the controller
Step 11 - Running the controller along with the seven dof arm in Gazebo
Understanding the ROS visualization tool (RViz) and its plugins
Displays panel
RViz toolbar
Views
Time panel
Dockable panels
Writing an RViz plugin for teleoperation
Methodology of building the RViz plugin
Step 1 - Creating the RViz plugin package
Step 2 - Creating the RViz plugin header file
Step 3 - Creating the RViz plugin definition
Step 5 - Adding the export tags in package.xml
Step 7 - Building and loading plugins
Chapter 9: Interfacing I/O Boards, Sensors, and Actuators to ROS
Understanding the Arduino-ROS interface
What is the Arduino-ROS interface?
Understanding the rosserial package in ROS
Installing rosserial packages on Ubuntu 16.04
Understanding ROS node APIs in Arduino
ROS - Arduino Publisher and Subscriber example
Arduino-ROS, example - blink LED and push button
Arduino-ROS, example - Accelerometer ADXL 335
Arduino-ROS, example - ultrasonic distance sensor
Equations to find distance using the ultrasonic range sensor
Arduino-ROS example - Odometry Publisher
Interfacing non-Arduino boards to ROS
Setting ROS on Odroid-XU4 and Raspberry Pi 2
How to install an OS image to Odroid-XU4 and Raspberry Pi 2
Installation in Windows
Installation in Linux
Connecting to Odroid-XU4 and Raspberry Pi 2 from a PC
Configuring an Ethernet hotspot for Odroid-XU4 and Raspberry Pi 2
Installing Wiring Pi on Odroid-XU4
Installing Wiring Pi on Raspberry Pi 2
Blinking LED using ROS on Raspberry Pi 2.
Push button + blink LED using ROS on Raspberry Pi 2.
Notes:
Includes index.
Description based on online resource; title from PDF title page (EBC, viewed March 22, 2018).
ISBN:
9781788474528
178847452X
OCLC:
1030304582

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account