Search icon
Subscription
0
Cart icon
Close icon
You have no products in your basket yet
Save more on your purchases!
Savings automatically calculated. No voucher code required
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Mastering ROS for Robotics Programming, Third edition - Third Edition
Mastering ROS for Robotics Programming, Third edition - Third Edition

Mastering ROS for Robotics Programming, Third edition: Best practices and troubleshooting solutions when working with ROS, Third Edition

By Lentin Joseph , Jonathan Cacace
€36.99 €8.99
Book Oct 2021 594 pages 3rd Edition
eBook
€36.99 €8.99
Print
€45.99
Subscription
€14.99 Monthly
eBook
€36.99 €8.99
Print
€45.99
Subscription
€14.99 Monthly

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon AI Assistant (beta) to help accelerate your learning
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Oct 28, 2021
Length 594 pages
Edition : 3rd Edition
Language : English
ISBN-13 : 9781801071024
Vendor :
Google
Category :
Concepts :
Table of content icon View table of contents Preview book icon Preview Book

Mastering ROS for Robotics Programming, Third edition - Third Edition

Chapter 1: Introduction to ROS

The first two chapters of this book will introduce basic ROS concepts and the ROS package management system in order to approach ROS programming. In this first chapter, we will go through ROS concepts such as the ROS master, the ROS nodes, the ROS parameter server, and ROS messages and services, all while discussing what we need to install ROS and how to get started with the ROS master.

In this chapter, we will cover the following topics:

  • Why should we learn ROS?
  • Understanding the ROS filesystem level.
  • Understanding ROS computation graph level.
  • ROS community level.

Technical requirements

To follow this chapter, the only thing you need is a standard computer running Ubuntu 20.04 LTS or a Debian 10 GNU/Linux distribution.

Why should we use ROS?

Robot Operating System (ROS) is a flexible framework that provides various tools and libraries for writing robotic software. It offers several powerful features to help developers in tasks such as message passing, distributed computing, code reusing, and implementing state-of-the-art algorithms for robotic applications. The ROS project was started in 2007 by Morgan Quigley and its development continued at Willow Garage, a robotics research lab for developing hardware and open source software for robots. The goal of ROS was to establish a standard way to program robots while offering off-the-shelf software components that can be easily integrated with custom robotic applications. There are many reasons to choose ROS as a programming framework, and some of them are as follows:

  • High-end capabilities: ROS comes with ready-to-use functionalities. For example, the Simultaneous Localization and Mapping (SLAM) and Adaptive Monte Carlo Localization (AMCL) packages in ROS can be used for having autonomous navigation in mobile robots, while the MoveIt package can be used for motion planning for robot manipulators. These capabilities can directly be used in our robot software without any hassle. In several cases, these packages are enough for having core robotics tasks on different platforms. Also, these capabilities are highly configurable; we can fine-tune each one using various parameters.
  • Tons of tools: The ROS ecosystem is packed with tons of tools for debugging, visualizing, and having a simulation. The tools, such as rqt_gui, RViz, and Gazebo, are some of the strongest open source tools for debugging, visualization, and simulation. A software framework that has this many tools is very rare.
  • Support for high-end sensors and actuators: ROS allows us to use different device drivers and the interface packages of various sensors and actuators in robotics. Such high-end sensors include 3D LIDAR, laser scanners, depth sensors, actuators, and more. We can interface these components with ROS without any hassle.
  • Inter-platform operability: The ROS message-passing middleware allows communication between different programs. In ROS, this middleware is known as nodes. These nodes can be programmed in any language that has ROS client libraries. We can write high-haveance nodes in C++ or C and other nodes in Python or Java.
  • Modularity: One of the issues that can occur in most standalone robotic applications is that if any of the threads of the main code crash, the entire robot application can stop. In ROS, the situation is different; we are writing different nodes for each process, and if one node crashes, the system can still work.
  • Concurrent resource handling: Handling a hardware resource via more than two processes is always a headache. Imagine that we want to process an image from a camera for face detection and motion detection; we can either write the code as a single entity that can do both, or we can write a single-threaded piece of code for concurrency. If we want to add more than two features to threads, the application behavior will become complex and difficult to debug. But in ROS, we can access devices using ROS topics from the ROS drivers. Any number of ROS nodes can subscribe to the image message from the ROS camera driver, and each node can have different functionalities. This can reduce the complexity in computation and also increase the debugging ability of the entire system.

The ROS community is growing very fast, and there are many users and developers worldwide. Most high-end robotics companies are now porting their software to ROS. This trend is also visible in industrial robotics, in which companies are switching from proprietary robotic applications to ROS.

Now that we know why it is convenient to study ROS, we can start introducing its core concepts. There are mainly three levels in ROS: the filesystem level, the computation graph level, and the community level. We will briefly have a look at each level.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Become proficient in ROS programming using C++ with this comprehensive guide
  • Build complex robot applications using the ROS Noetic Ninjemys release to interface robot manipulators with mobile robots
  • Learn to interact with aerial robots using ROS

Description

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.

What you will learn

Create a robot model with a 7-DOF robotic arm and a differential wheeled mobile robot Work with Gazebo, CoppeliaSim, and Webots robotic simulators Implement autonomous navigation in differential drive robots using SLAM and AMCL packages Interact with and simulate aerial robots using ROS Explore ROS pluginlib, ROS nodelets, and Gazebo plugins Interface I/O boards such as Arduino, robot sensors, and high-end actuators Simulate and perform motion planning for an ABB robot and a universal arm using ROS-Industrial Work with the motion planning features of a 7-DOF arm using MoveIt

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon AI Assistant (beta) to help accelerate your learning
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Oct 28, 2021
Length 594 pages
Edition : 3rd Edition
Language : English
ISBN-13 : 9781801071024
Vendor :
Google
Category :
Concepts :

Table of Contents

22 Chapters
Preface Chevron down icon Chevron up icon
1. Section 1 – ROS Programming Essentials Chevron down icon Chevron up icon
2. Chapter 1: Introduction to ROS Chevron down icon Chevron up icon
3. Chapter 2: Getting Started with ROS Programming Chevron down icon Chevron up icon
4. Section 2 – ROS Robot Simulation Chevron down icon Chevron up icon
5. Chapter 3: Working with ROS for 3D Modeling Chevron down icon Chevron up icon
6. Chapter 4: Simulating Robots Using ROS and Gazebo Chevron down icon Chevron up icon
7. Chapter 5: Simulating Robots Using ROS, CoppeliaSim, and Webots Chevron down icon Chevron up icon
8. Chapter 6: Using the ROS MoveIt! and Navigation Stack Chevron down icon Chevron up icon
9. Chapter 7: Exploring the Advanced Capabilities of ROS MoveIt! Chevron down icon Chevron up icon
10. Chapter 8: ROS for Aerial Robots Chevron down icon Chevron up icon
11. Section 3 – ROS Robot Hardware Prototyping Chevron down icon Chevron up icon
12. Chapter 9: Interfacing I/O Board Sensors and Actuators to ROS Chevron down icon Chevron up icon
13. Chapter 10: Programming Vision Sensors Using ROS, OpenCV, and PCL Chevron down icon Chevron up icon
14. Chapter 11: Building and Interfacing Differential Drive Mobile Robot Hardware in ROS Chevron down icon Chevron up icon
15. Section 4 – Advanced ROS Programming Chevron down icon Chevron up icon
16. Chapter 12: Working with pluginlib, nodelets, and Gazebo Plugins Chevron down icon Chevron up icon
17. Chapter 13: Writing ROS Controllers and Visualization Plugins Chevron down icon Chevron up icon
18. Chapter 14: Using ROS in MATLAB and Simulink Chevron down icon Chevron up icon
19. Chapter 15: ROS for Industrial Robots Chevron down icon Chevron up icon
20. Chapter 16: Troubleshooting and Best Practices in ROS Chevron down icon Chevron up icon
21. Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Filter icon Filter
Top Reviews
Rating distribution
Empty star icon Empty star icon Empty star icon Empty star icon Empty star icon 0
(0 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 0%
1 star 0%

Filter reviews by


No reviews found
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.