ebook img

Mastering ROS for Robotics Programming: Design, build and simulate complex robots using Robot Operating System and master its out-of-the-box functionalities PDF

480 Pages·2015·13.46 MB·english
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Mastering ROS for Robotics Programming: Design, build and simulate complex robots using Robot Operating System and master its out-of-the-box functionalities

Mastering ROS for Robotics Programming Design, build, and simulate complex robots using Robot Operating System and master its out-of-the-box functionalities Lentin Joseph BIRMINGHAM - MUMBAI Mastering ROS for Robotics Programming Copyright © 2015 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, and its dealers and distributors will be held liable for any damages caused or alleged to be 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. First published: December 2015 Production reference: 1141215 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78355-179-8 www.packtpub.com Credits Author Project Coordinator Lentin Joseph Harshal Ved Reviewers Proofreader Jonathan Cacace Safis Editing Ruixiang Du Indexer Tejal Daruwale Soni Acquisition Editor Vivek Anantharaman Production Coordinator Melwyn D'sa Content Development Editor Athira Laji Cover Work Melwyn D'sa Technical Editor Ryan Kochery Copy Editor Merilyn Pereira Alpha Singh About the Author Lentin Joseph is an author, entrepreneur, electronics engineer, robotics enthusiast, machine vision expert, embedded programmer, and the founder and CEO of Qbotics Labs (http://www.qboticslabs.com) from India. He completed his bachelor's degree in electronics and communication engineering at the Federal Institute of Science and Technology (FISAT), Kerala. For his final year engineering project, he made a social robot that can interact with people. The project was a huge success and was mentioned in many forms of visual and print media. The main features of this robot were that it can communicate with people and reply intelligently and has some image processing capabilities such as face, motion, and color detection. The entire project was implemented using the Python programming language. His interest in robotics, image processing, and Python started with that project. After his graduation, for 3 years he worked in a start-up company focusing on robotics and image processing. In the meantime, he learned famous robotic software platforms such as Robot Operating System (ROS), V-REP, Actin (a robotic simulation tool), and image processing libraries such as OpenCV, OpenNI, and PCL. He also knows robot 3D designing and embedded programming on Arduino and Tiva Launchpad. After 3 years of work experience, he started a new company called Qbotics Labs, which mainly focuses on research to build up some great products in domains such as robotics and machine vision. He maintains a personal website (http://www.lentinjoseph.com) and a technology blog called technolabsz (http://www.technolabsz.com). He publishes his works on his tech blog. He was also a speaker at PyCon2013, India, on the topic Learning Robotics using Python. Lentin is the author of the book Learning Robotics Using Python (refer to http:// learn-robotics.com to know more) by Packt Publishing. The book was about building an autonomous mobile robot using ROS and OpenCV. The book was launched in ICRA 2015 and was featured in the ROS blog, Robohub, OpenCV, the Python website, and various other such forums. Lentin was a finalist in the ICRA 2015 challenge, HRATC (http://www2.isr.uc.pt/~embedded/events/HRATC2015/Welcome.html). I dedicate this book to my parents because they gave me the inspiration to write this book. I also convey my regards to my friends who helped and inspired me to write this book. About the Reviewers Jonathan Cacace was born in Naples, Italy, on December 13, 1987. He received has a bachelor's and master's degree in computer science from the University of Naples Federico II. Currently, he is attending a PhD Scholar Course in Information and Automation Engineering at the Department of Electrical Engineering and Information Technology (DIETI) in the same institution. His research is focused on autonomous action planning and execution by mobile robots, high-level and low-level control of UAV platforms, and human-robot interaction with humanoid robots in service task execution. He is the author and coauthor of several scientific publications in the robotics field, published at international conferences and scientific journals. Jonathan is a member of the PRISMA Laboratory (http://prisma.dieti.unina. it/) of the University of Naples Federico II. With his research group, he is involved in different EU-funded collaborative research projects focused on several topics, such as the use of unmanned aerial vehicles for search and rescue operations or service task execution (http://www.sherpa-project.eu/sherpa/ and http://www.arcas- project.eu/) and the dynamic manipulation of elastic objects using humanoid robotic platforms (http://www.rodyman.eu/). Ruixiang Du is currently a PhD student studying Robotics at Worcester Polytechnic Institute (WPI). He received his bachelor's degree in Automation from North China Electric Power University in 2011 and a master's degree in Robotics Engineering from WPI in 2013. Ruixiang has worked on various robotic projects with robot platforms ranging from medical robots, UAV/UGV, to humanoid robots. He was an active member of Team WPI-CMU for the DARPA Robotics Challenge. Ruixiang has general interests in robotics and in real-time and embedded systems. His research focus is on the control and motion planning of mobile robots in cluttered and dynamic environments. www.PacktPub.com Support files, eBooks, discount offers, and more For support files and downloads related to your book, please visit www.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 [email protected] 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. https://www2.packtpub.com/books/subscription/packtlib Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books. Why subscribe? • Fully searchable across every book published by Packt • Copy and paste, print, and bookmark content • On demand and accessible via a web browser Free access for Packt account holders If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access. Table of Contents Preface xi Chapter 1: Introduction to ROS and Its Package Management 1 Why should we learn ROS? 2 Why we prefer ROS for robots 2 Why some do not prefer ROS for robots 4 Understanding the ROS file system level 5 ROS packages 7 ROS meta packages 9 ROS messages 10 The ROS services 12 Understanding the ROS computation graph level 12 Understanding ROS nodes 15 ROS messages 16 ROS topics 16 ROS services 17 ROS bags 18 Understanding ROS Master 19 Using the ROS parameter 20 Understanding ROS community level 22 What are the prerequisites to start with ROS? 22 Running ROS Master and ROS parameter server 23 Checking the roscore command output 25 Creating a ROS package 26 Working with ROS topics 28 Creating ROS nodes 28 Building the nodes 32 Adding custom msg and srv files 34 Working with ROS services 37 Working with ROS actionlib 42 [ i ]

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.