ROS Robotics Projects
eBook - ePub

ROS Robotics Projects

Build and control robots powered by the Robot Operating System, machine learning, and virtual reality, 2nd Edition

Ramkumar Gandhinathan, Lentin Joseph

Share book
  1. 456 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

ROS Robotics Projects

Build and control robots powered by the Robot Operating System, machine learning, and virtual reality, 2nd Edition

Ramkumar Gandhinathan, Lentin Joseph

Book details
Book preview
Table of contents
Citations

About This Book

Build exciting robotics projects such as mobile manipulators, self-driving cars, and industrial robots powered by ROS, machine learning, and virtual reality

Key Features

  • Create and program cool robotic projects using powerful ROS libraries
  • Build industrial robots like mobile manipulators to handle complex tasks
  • Learn how reinforcement learning and deep learning are used with ROS

Book Description

Nowadays, heavy industrial robots placed in workcells are being replaced by new age robots called cobots, which don't need workcells. They are used in manufacturing, retail, banks, energy, and healthcare, among other domains. One of the major reasons for this rapid growth in the robotics market is the introduction of an open source robotics framework called the Robot Operating System (ROS).

This book covers projects in the latest ROS distribution, ROS Melodic Morenia with Ubuntu Bionic (18.04). Starting with the fundamentals, this updated edition of ROS Robotics Projects introduces you to ROS-2 and helps you understand how it is different from ROS-1. You'll be able to model and build an industrial mobile manipulator in ROS and simulate it in Gazebo 9. You'll then gain insights into handling complex robot applications using state machines and working with multiple robots at a time. This ROS book also introduces you to new and popular hardware such as Nvidia's Jetson Nano, Asus Tinker Board, and Beaglebone Black, and allows you to explore interfacing with ROS. You'll learn as you build interesting ROS projects such as self-driving cars, making use of deep learning, reinforcement learning, and other key AI concepts.

By the end of the book, you'll have gained the confidence to build interesting and intricate projects with ROS.

What you will learn

  • Grasp the basics of ROS and understand ROS applications
  • Uncover how ROS-2 is different from ROS-1
  • Handle complex robot tasks using state machines
  • Communicate with multiple robots and collaborate to build apps with them
  • Explore ROS capabilities with the latest embedded boards such as Tinker Board S and Jetson Nano
  • Discover how machine learning and deep learning techniques are used with ROS
  • Build a self-driving car powered by ROS
  • Teleoperate your robot using Leap Motion and a VR headset

Who this book is for

If you're a student, hobbyist, professional, or anyone with a passion for learning robotics and interested in learning about algorithms, motion control, and perception capabilities from scratch, this book is for you. This book is also ideal for anyone who wants to build a new product and for researchers to make the most of what's already available to create something new and innovative in the field of robotics.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on ā€œCancel Subscriptionā€ - itā€™s as simple as that. After you cancel, your membership will stay active for the remainder of the time youā€™ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlegoā€™s features. The only differences are the price and subscription period: With the annual plan youā€™ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, weā€™ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is ROS Robotics Projects an online PDF/ePUB?
Yes, you can access ROS Robotics Projects by Ramkumar Gandhinathan, Lentin Joseph in PDF and/or ePUB format, as well as other popular books in Computer Science & Home Automation. We have over one million books available in our catalogue for you to explore.

Information

Year
2019
ISBN
9781838645199
Edition
2

ROS on Embedded Platforms and Their Control

We now know how to build our own robots in simulation and how to control them using the ROS framework. You have also learned how to handle complex robot tasks and how to communicate between multiple robots. All of these concepts were tested out virtually and you should be comfortable with them. If you're wondering how to get them working with real robots or to build your own robots and control them via the ROS framework, this chapter will help you achieve that.
Anyone interested in robotics would definitely be familiar with names such as Arduino and Raspberry Pi. Such boards can be used to control the robot actuators individually or in a control loop by reading the sensors connected to them. But what exactly are those boards? How are they used? How different are they from each other and why does it matter to choose such specific boards? The answers to these questions are quite rational and you should be able to answer them by the end of this chapter.
In this chapter, we shall see how such embedded control boards and computes can be used in ROS. You will begin by understanding how different microcontrollers and processors work, followed by an introduction to a series of such boards that are commonly used by the Robotics community with practical examples. Later, you will learn how to set up ROS on such boards and use them along with your custom projects.
The following topics will be covered in this chapter:
  • Understanding embedded boards
  • Introduction to microcontroller boards
  • Introduction to the Single Board Computer (SBC)
  • Debian versus Ubuntu
  • Setting up ROS on SBC
  • Controlling GPIOs from ROS
  • Benchmarking of SBC
  • Getting started with Alexa and connecting with ROS

Technical requirements

Let's look into the technical requirements for this chapter:
  • ROS Melodic Morenia on Ubuntu 18.04 (Bionic)
  • Timelines and test platform:
    • Estimated learning time: On average, 150 minutes
    • Project build time (inclusive of compile and run time): On average, 90-120 minutes (depending on setting up the hardware boards with the indicated requirements)
    • Project test platform: HP Pavilion laptop (IntelĀ® Coreā„¢ i7-4510U CPU @ 2.00 GHz Ɨ 4 with 8 GB Memory and 64-bit OS, GNOME-3.28.2)
The code for this chapter is available at https://github.com/PacktPublishing/ROS-Robotics-Projects-SecondEdition/tree/master/chapter_7_ws.
Let's begin this chapter by understanding the different types of embedded boards.

Understanding embedded boards

In an application, if the software is embedded into hardware of a specific design, the application is called an embedded systems application. Embedded systems are found in most of our daily routine gadgets and electronics such as mobile phones, kitchen appliances, and consumer electronics. They are usually designed for specific purposes. One such application where embedded systems are quite famous is robotics.
The hardware boards that carry the software (say, firmware) and that are intended for such specific purposes are what we call embedded boards. They come in two flavors:
  • Microcontroller-based: In microcontroller-based boards, the hardware constitutes a CPU, memory units, peripheral device connectivity through IOs, and communication interface, all in a single chip.
  • Microprocessor-based: In microprocessor-based boards, the hardware majorly constitutes the CPU. The other components such as communication interface, peripheral device connectivity, and timers are all available but as separate modules.
There is another category that resembles a combination of these two and is called System on Chip (SoC). They are quite compact in size and usually target products that are small in size. Modern microprocessor boards, also called SBCs, consist of an SoC embedded on them, along with other components. A simple comparison of the these can be seen in the following table:
Microcontroller (MCU) Microprocessor(MPU) SoC
OS No Yes It may be MCU- or MPU-based. If MPU, then the OS would be compact and light.
Data/computing width 4, 8, 16, 32-bit 16, 32, 64-bit 16, 32, 64-bit.
Clock speed ā‰¤ MHz GHz MHz - GHz.
Memory (RAM) Often in KB, rarely in MB 512 MB - several GB MB - GB.
Memory (ROM) KB to MB (FLASH, EEPROM) MB to TB (FLASH, SSD, HDD) MB to TB (FLASH, SSD, HDD).
Cost Low High High.
Example Atmel 8051 microcontrollers, PIC, ATMEGA series microcontrollers x86, Raspberry Pi, BeagleBone black Cypress PSoc, Qualcomm Snapdragon.
Comparison of embedded boards
Now, let's look at the basic concepts we need to know about for embedded boards.

Important concepts

A general embedded system may constitute a lot of components in its architecture. Since our scope is robotics, let's try to understand embedded systems with respect to robotics:
A simple embedded system representation
As you can see from the preceding diagram, the major components are as follows:
  • Input peripherals: These could be sensors such as lidars, cameras, ultrasound, or infrared sensors that provide information about the environment. User interaction through a UI, joystick, or keypad could also be a part of input peripherals.
  • Output peripherals: These could be actuator controls such as rotating wheels or a link's motion through mechanisms or LCD screens or displays.
  • CPU: This is necessary for computing models or running algorithms, and memory is needed to save this information either temporarily or permanently for operation.
  • Other peripherals: These could be communication interfaces, such as SPI, I2C, or RS-485, which take place either between individual components of the system or with other such systems in the network; or USB and network interfaces such as Ethernet or Wi-Fi....

Table of contents