Learning Robotics using Python
Second Edition
Design, simulate, program, and prototype an autonomous mobile robot using ROS, OpenCV, PCL, and Python
Lentin Joseph
BIRMINGHAM - MUMBAI
Learning Robotics using PythonSecond Edition
Copyright 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Gebin George
Acquisition Editor: Namrata Patil
Content Development Editor: Sharon Raj
Technical Editor: Mohit Hassija
Copy Editor: Safis Editing
Project Coordinator: Virginia Dias
Proofreader: Safis Editing
Indexer: Pratik Shirodkar
Graphics: Tom Scaria
Production Coordinator: Shantanu Zagade
First published: May 2015
Second edition: June 2018
Production reference: 1250618
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78862-331-5
www.packtpub.com
To my mother, Jancy Joseph, and my father, C.G Joseph, for giving me strong support in making this project happen.
mapt.io
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
PacktPub.com
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at service@packtpub.com for more details.
At www.PacktPub.com , you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Contributors
About the author
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.
About the reviewer
Ruixiang Du is a PhD candidate in mechanical engineering at Worcester Polytechnic Institute. He works in the Autonomy, Control, and Estimation Laboratory with a research focus on the motion planning and control of autonomous mobile robots in cluttered and dynamic environments. He received a bachelors degree in automation from North China Electric Power University in 2011 and a masters degree in robotics engineering from WPI in 2013. He has worked on various robotic projects with robot platforms ranging from medical robots, and unmanned aerial/ground vehicles, to humanoid robots.
Packt is searching for authors like you
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Table of Contents
Preface
Learning Robotics using Python contains nine chapters that explain how to build an autonomous mobile robot from scratch and program it using Python. The robot mentioning in this book is a service robot that can be used to serve food in home, hotels, and restaurant. From the beginning to end, the book discusses step-by-step procedures of building of this robot. The book starts with the basics concepts of robotics and then moves to the 3D modeling and simulation of the robot. After successful simulation of the robot, it discusses the hardware components required to build the robot prototype.
The software part of this robot is mainly implemented using Python programming language and software frameworks, such as Robot Operating System (ROS) and OpenCV. You can see the application of python from the designing of a robot to creating robot user interface. The Gazebo simulator is used to simulate the robot and machine vision libraries, such as OpenCV, OpenNI, and PCL, is for processing the 2D and 3D image data. Each chapter is presented with adequate theory for understanding the application part. The book is reviewed by the experts in this field and it is the result of their handwork and passion in robotics.
Who this book is for
Learning Robotics using Python is a good companion for entrepreneurs who want to explore service robotics domain, professionals who want to implement more features on their robots, researchers who want to explore more on robotics, and hobbyist or students who want to learn robotics. The book follows a step-by-step guide, which can easily be captured by anyone.
What this book covers
, Getting Started with Robot Operating System , explains the fundamental concepts of ROS, which are the main platform for programming robot.
, Understanding the Basics of Differential Robots , discusses the fundamental concepts of a differential mobile robot. The concepts are Kinematics and Inverse kinematics of differential drive. This will help you implement the differential drive controller in the software.
, Modeling the Differential Drive Robot , discusses the calculation of the robot design constraints and 2D/3D modeling of this mobile robot. The 2D/3D modeling is based on a set of robot requirements. After completing the design and robot modeling, the reader will get the designed parameters that can be used for creating a robot simulation.