Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Hands-On ROS for Robotics Programming
Hands-On ROS for Robotics Programming

Hands-On ROS for Robotics Programming: Program highly autonomous and AI-capable mobile robots powered by ROS

Arrow left icon
Profile Icon Bernardo Ronquillo Japón
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (2 Ratings)
Paperback Feb 2020 432 pages 1st Edition
eBook
$24.99 $35.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Bernardo Ronquillo Japón
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (2 Ratings)
Paperback Feb 2020 432 pages 1st Edition
eBook
$24.99 $35.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$24.99 $35.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Hands-On ROS for Robotics Programming

Assembling the Robot

This chapter will provide you with a variety of practical assembly guidelines about the mobile robot that the content of this book is based on. With a very practical approach in mind, we'll deep dive into the characteristics of GoPiGo3 and what makes it an ideal platform to learn robotics.

First, we will focus on the hardware and talk about the components that every robot is composed of including the mechanical parts and embedded system, sensor, and motors.

After completing the GoPiGo3 assembly section, you will be acquiring manual skills so that you can start manipulating typical components in robotics. You will also be driven to adopt a systematic approach of applying partial verification tests while assembling your robot, also known as unit tests.

After introducing the GoPiGo3 robot in the first section of this chapter, we will explain these concepts...

Understanding the GoPiGo3 robot

GoPiGo3 is a Raspberry Pi-based robot car manufactured by Dexter Industries. It is intended to be used as an educational kit for learning about both robotics and programming, two complementary perspectives that clearly show the transversal knowledge you should acquire to become a robotics engineer. We'll explain what this means by letting Nicole Parrot, Director of Engineering at Modular Robotics, explain it in her own words:

"The GoPiGo originated from a Kickstarter campaign in early 2014 when the Raspberry Pi was still somewhat new. The first users were hobbyists, but soon teachers and coding club volunteers were sharing their GoPiGo with their students. This lead to various changes being made to the board to make a classroom-ready robot. It's robust, it has a full list of features, and it's still based on the Raspberry Pi...

Getting familiar with the embedded hardware

Do you remember which hardware is for what? The GoPiGo3 board is for interfacing with sensors and actuators, while Raspberry Pi is used for computing tasks. We will cover these topics in detail here.

The GoPiGo3 board

This customized board (https://www.dexterindustries.com/GoPiGo/learning/hardware-port-description/) provides the general features that are expected from a controller:

  • Real-time communication with sensors and actuators.
  • Interface input/output (I/O) through a serial peripheral interface (SPI) that feeds the data from the sensors to the Raspberry Pi and may also receive commands for the actuators (also from the Raspberry Pi, after running the logic in its CPU for every...

Deep diving into the electromechanics

As explained in GoPiGo's official documentation (https://www.dexterindustries.com/GoPiGo/learning/technical-specifications-for-the-gopigo-raspberry-pi-robotics-kit/), the specifications of the GoPiGo3 robot are as follows:

  • Operating voltage: 7V-12V
  • External interfaces:
    • I2C ports: Two Grove ports connected to the Raspberry Pi I2C bus through a level-conversion chip
    • Serial ports: One Grove port connected to the serial pins on the Raspberry Pi through a level-conversion chip
    • Analog digital ports: Two Grove ports connected to the GoPiGo3 microcontroller
  • Encoders: Two magnetic encoders with six pulse counts per rotation (with 120:1 gear reduction for a total of 720 pulses per wheel rotation)
  • Wheels diameter: 66.5 mm
  • Distance between wheels: 117 mm
  • More: Design information is available at the official GitHub repository (https://github.com...

Putting it all together

Now that you are familiar with the hardware, it is time to put everything together, connect it, and run a quick test to check that GoPiGo3 works properly. The assembly process is very well documented in a step-by-step guide in the official documentation, along with plenty of figures and photos; you can find this documentation at https://www.dexterindustries.com/GoPiGo/get-started-with-the-gopigo3-raspberry-pi-robot/1-assemble-gopigo3/.

Alternatively, you can use the Workbench training environment at https://edu.workbencheducation.com/ and register a personal account for free to go through the same assembly process while registering your progress. If you do, then follow the two assembly stages that are covered in the official documentation from the manufacturer:

Quick hardware test

To perform a quick test and focus on the hardware at hand, we will use DexterOS, the Raspbian-based distro created by Dexter Industries to allow the user to get started quickly. Details of the operating system are provided at https://www.dexterindustries.com/dexteros/. Instead of having to deal with a full Linux desktop, Dexter Industries has simplified the interface by providing a simple web environment.

You can access it by connecting to the Wi-Fi access point called GoPiGo (a password won't be needed). This way, you will be connected directly to the robot with your laptop. Before installing it, let's review the resources we have available.

Resources

There are at least three sites/repositories...

Summary

In this chapter, we familiarized ourselves with the GoPiGo3 hardware by learning about the physical principles of the sensors and the motor the kit has. We checked that they worked properly by running some quick tests so that we can start programming tasks.

In the next chapter, we will learn how to program GoPiGo3 with Python while we execute some unit tests for each of its main components: the servomotors, distance sensor, line follower, IMU, and the Pi Camera.

Questions

  1. Is it mandatory for a robot to have a computer such as Raspberry Pi?

A) Yes, because the computer powers the controller board.
B) No, because the computer is only needed for visualizing the software code on a screen. It may work alone with the controller if a program has been flashed to it.
C) Not really; you could write a small program that controls the robot and flash it to the chip of the controller. Every time you power the robot, it will execute the program in an endless loop.

  1. What kind of radiation is emitted by the distance sensor of GoPiGo3?

A) Laser
B) Infrared
C) Ultrasound

  1. Why can't you see the light being emitted by the line-follower sensor?

A) Because the sensor has to be previously activated with a software command
B) It does not emit light but a magnetic field
C) It does not emit anything in the visible range of light

  1. What is the purpose of the...

Further reading

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Learn fundamental ROS concepts and apply them to solve navigation tasks
  • Work with single board computers to program smart behavior in mobile robots
  • Understand how specific characteristics of the physical environment influence your robot’s performance

Description

Connecting a physical robot to a robot simulation using the Robot Operating System (ROS) infrastructure is one of the most common challenges faced by ROS engineers. With this book, you'll learn how to simulate a robot in a virtual environment and achieve desired behavior in equivalent real-world scenarios. This book starts with an introduction to GoPiGo3 and the sensors and actuators with which it is equipped. You'll then work with GoPiGo3's digital twin by creating a 3D model from scratch and running a simulation in ROS using Gazebo. Next, the book will show you how to use GoPiGo3 to build and run an autonomous mobile robot that is aware of its surroundings. Finally, you'll find out how a robot can learn tasks that have not been programmed in the code but are acquired by observing its environment. You'll even cover topics such as deep learning and reinforcement learning. By the end of this robot programming book, you'll be well-versed with the basics of building specific-purpose applications in robotics and developing highly intelligent autonomous robots from scratch.

Who is this book for?

If you are an engineer looking to build AI-powered robots using the ROS framework, this book is for you. Robotics enthusiasts and hobbyists who want to develop their own ROS robotics projects will also find this book useful. Knowledge of Python and/or C++ programming and familiarity with single board computers such as Raspberry Pi is necessary to get the most out of this book.

What you will learn

  • Get to grips with developing environment-aware robots
  • Gain insights into how your robots will react in physical environments
  • Break down a desired behavior into a chain of robot actions
  • Relate data from sensors with context to produce adaptive responses
  • Apply reinforcement learning to allow your robot to learn by trial and error
  • Implement deep learning to enable your robot to recognize its surroundings

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Feb 26, 2020
Length: 432 pages
Edition : 1st
Language : English
ISBN-13 : 9781838551308
Category :
Concepts :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Feb 26, 2020
Length: 432 pages
Edition : 1st
Language : English
ISBN-13 : 9781838551308
Category :
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 158.97
ROS Robotics Projects,
$48.99
Hands-On ROS for Robotics Programming
$48.99
Mastering ROS for Robotics Programming, Third edition
$60.99
Total $ 158.97 Stars icon

Table of Contents

18 Chapters
Section 1: Physical Robot Assembly and Testing Chevron down icon Chevron up icon
Assembling the Robot Chevron down icon Chevron up icon
Unit Testing of GoPiGo3 Chevron down icon Chevron up icon
Getting Started with ROS Chevron down icon Chevron up icon
Section 2: Robot Simulation with Gazebo Chevron down icon Chevron up icon
Creating the Virtual Two-Wheeled ROS Robot Chevron down icon Chevron up icon
Simulating Robot Behavior with Gazebo Chevron down icon Chevron up icon
Section 3: Autonomous Navigation Using SLAM Chevron down icon Chevron up icon
Programming in ROS - Commands and Tools Chevron down icon Chevron up icon
Robot Control and Simulation Chevron down icon Chevron up icon
Virtual SLAM and Navigation Using Gazebo Chevron down icon Chevron up icon
SLAM for Robot Navigation Chevron down icon Chevron up icon
Section 4: Adaptive Robot Behavior Using Machine Learning Chevron down icon Chevron up icon
Applying Machine Learning in Robotics Chevron down icon Chevron up icon
Machine Learning with OpenAI Gym Chevron down icon Chevron up icon
Achieve a Goal through Reinforcement Learning Chevron down icon Chevron up icon
Assessment Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(2 Ratings)
5 star 50%
4 star 0%
3 star 50%
2 star 0%
1 star 0%
Rohith Apr 20, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book along with the development kit it uses is a very powerful tool to learn ROS. Although ROS is very vast in itself, this book covers most of the basics, commands, tools like simulators and visualizers and has added links to dive deeper. As far as robotics programming is concerned, it starts from learning about sensors, communications, and then gradually proceeds to use the ROS navigation stack, SLAM and reinforcement learning to give the robot an intelligent behavior. Briefly touches on machine learning and computer vision as well. Would recommend for anyone who wants to learn ROS with an actual hardware setup
Amazon Verified review Amazon
B Nov 15, 2021
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
It's unfortunate that a book written last year is already out of date. It's a major rev down on Ubuntu, which I could live with, but it uses ROS instead of ROS2. ROS2 is the future and was out at the time of publication, and should have had all the necessary packages. The choice to go with ROS definitely limits the lifespan of the text. I was hoping the GitHub might have code for both, but no such luck.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.