Learning Robotics using Python: Design, simulate, program, and prototype an autonomous mobile robot using ROS, OpenCV, PCL, and Python (2nd Edition)

Rs. 8,315
  • Author: Lentin Joseph
  • ISBN: 9781788623315
  • Publisher: Packt Publishing
  • Edition: 2nd
  • Publication Date: June 28, 2018
  • Format: Paperback – 280 pages
  • Language: English

Out of stock



Share
Description
Key Features
  • Design, simulate, build, and program an interactive autonomous mobile robot
  • Leverage the power of ROS, Gazebo, and Python to enhance your robotic skills
  • A hands-on guide to creating an autonomous mobile robot with the help of ROS and Python

Who This Book Is ForThis book is for those who are conducting research in mobile robotics and autonomous navigation. As well as the robotics research domain, this book is also for the robot hobbyist community. You’re expected to have a basic understanding of Linux commands and Python.

What You Will Learn
  • Design a differential robot from scratch
  • Model a differential robot using ROS and URDF
  • Simulate a differential robot using ROS and Gazebo
  • Design robot hardware electronics
  • Interface robot actuators with embedded boards
  • Explore the interfacing of different 3D depth cameras in ROS
  • Implement autonomous navigation in ChefBot
  • Create a GUI for robot control

In DetailRobot Operating System (ROS) is one of the most popular robotics software frameworks in research and industry. It has various features for implementing different capabilities in a robot without implementing them from scratch.

This book starts by showing you the fundamentals of ROS so you understand the basics of differential robots. Then, you’ll learn about robot modeling and how to design and simulate it using ROS. Moving on, we’ll design robot hardware and interfacing actuators. Then, you’ll learn to configure and program depth sensors and LIDARs using ROS. Finally, you’ll create a GUI for your robot using the Qt framework.

By the end of this tutorial, you’ll have a clear idea of how to integrate and assemble everything into a robot and how to bundle the software package.

Style and approachA step-by-step guide which will help you to create an autonomous mobile robot with the help of ROS and Python. It will help you to understand and implement the fundamental concepts of differential robots and teach you to create differential robot’s simulation using Gazebo.

Table of Contents
  1.  Title Page
  2. Copyright and Credits
  3. Learning Robotics using Python Second Edition
  4. Dedication
  5. Packt Upsell
  6. Why subscribe?
  7. PacktPub.com
  8. Contributors
  9. About the author
  10. About the reviewer
  11. Packt is searching for authors like you
  12. Preface
  13. Who this book is for
  14. What this book covers
  15. To get the most out of this book
  16. Download the example code files
  17. Download the color images
  18. Conventions used
  19. Get in touch
  20. Reviews
  21. Getting Started with Robot Operating System
  22. Technical requirements
  23. Introduction to ROS
  24. ROS concepts
  25. The ROS filesystem
  26. The ROS Computation Graph
  27. The ROS community level
  28. Installing ROS on Ubuntu
  29. Introducing catkin
  30. Creating a ROS package
  31. Hello_world_publisher.py
  32. Hello_world_subscriber.py
  33. Introducing Gazebo
  34. Installing Gazebo
  35. Testing Gazebo with the ROS interface
  36. Summary
  37. Questions
  38. Understanding the Basics of Differential Robots
  39. Mathematical modeling of the robot
  40. Introduction to the differential drive system and robot kinematics
  41. Forward kinematics of a differential robot
  42. Explanations of the forward kinematics equation
  43. Inverse kinematics
  44. Summary
  45. Questions
  46. Further information
  47. Modeling the Differential Drive Robot
  48. Technical requirements
  49. Requirements of a service robot
  50. Robot drive mechanism
  51. Selection of motors and wheels
  52. Calculation of RPM of motors
  53. Calculation of motor torque
  54. The design summary
  55. The robot chassis design
  56. Installing LibreCAD, Blender, and MeshLab
  57. Installing LibreCAD
  58. Installing Blender
  59. Installing MeshLab
  60. Creating 2D CAD drawing of a robot using LibreCAD
  61. The base plate designs
  62. Base plate pole design
  63. Wheel, motor, and motor clamp design
  64. Caster wheel design
  65. Middle plate design
  66. Top plate design
  67. Working with a 3D model of the robot using Blender
  68. Python scripting in Blender
  69. Introduction to Blender Python APIs
  70. Python script of the robot model
  71. Creating a URDF model of the robot
  72. Creating a Chefbot description ROS package
  73. Summary
  74. Questions
  75. Further reading
  76. Simulating a Differential Drive Robot Using ROS
  77. Technical requirements
  78. Getting started with the Gazebo simulator
  79. The Gazebo’s graphical user interface
  80. The Scene
  81. The Left Panel
  82. Right Panel
  83. Gazebo toolbars
  84. Upper toolbar
  85. Bottom toolbar
  86. Working with a TurtleBot 2 simulation
  87. Moving the robot
  88. Creating a simulation of Chefbot
  89. Depth image to laser scan conversion
  90. URDF tags and plugins for Gazebo simulation
  91. Cliff sensor plugin
  92. Contact sensor plugin
  93. Gyroscope plugin
  94. Differential drive plugin
  95. Depth camera plugin
  96. Visualizing the robot sensor data
  97. Getting started with Simultaneous Localization and Mapping
  98. Implementing SLAM in the Gazebo environment
  99. Creating a map using SLAM
  100. Getting started with Adaptive Monte Carlo Localization
  101. Implementing AMCL in the Gazebo environment
  102. Autonomous navigation of Chefbot in the hotel using Gazebo
  103. Summary
  104. Questions
  105. Further reading
  106. Designing ChefBot Hardware and Circuits
  107. Technical requirements
  108. Specifications of the ChefBot’s hardware
  109. Block diagram of the robot
  110. Motor and encoder
  111. Selecting motors, encoders, and wheels for the robot
  112. Motor driver
  113. Selecting a motor driver/controller
  114. Input pins
  115. Output pins
  116. Power supply pins
  117. Embedded controller board
  118. Ultrasonic sensors
  119. Selecting an ultrasonic sensor
  120. Inertial measurement unit
  121. Kinect/Orbbec Astra
  122. Central processing unit
  123. Speakers/mic
  124. Power supply/battery
  125. How ChefBot’s hardware works’?
  126. Summary
  127. Questions
  128. Further reading
  129. Interfacing Actuators and Sensors to the Robot Controller
  130. Technical requirements
  131. Interfacing DC geared motor to Tiva C LaunchPad
  132. Differential wheeled robot
  133. Installing Energia IDE
  134. Motor interfacing code
  135. Interfacing quadrature encoder with Tiva C Launchpad
  136. Processing encoder data
  137. Quadrature encoder interfacing code
  138. Working with Dynamixel actuators
  139. Working with ultrasonic distance sensors
  140. Interfacing HC-SR04 to Tiva C LaunchPad
  141. Working of HC-SR04
  142. Interfacing Code of Tiva C Launchpad
  143. Interfacing Tiva C LaunchPad with Python
  144. Working with the IR proximity sensor
  145. Working with Inertial Measurement Units
  146. Inertial navigation
  147. Interfacing MPU 6050 with Tiva C LaunchPad
  148. Setting the MPU 6050 library in Energia
  149. Interfacing code of Energia
  150. Summary
  151. Questions
  152. Further reading
  153. Interfacing Vision Sensors with ROS
  154. Technical requirements
  155. List of robotic vision sensors and image libraries
  156. Pixy2/CMUcam5
  157. Logitech C920 webcam
  158. Kinect 360
  159. Intel RealSense D400 series
  160. Orbbec Astra depth sensor
  161. Introduction to OpenCV, OpenNI, and PCL
  162. What is OpenCV?
  163. Installation of OpenCV from the source code in Ubuntu
  164. Reading and displaying an image using the Python-OpenCV interface
  165. Capturing from the web camera
  166. What is OpenNI?
  167. Installing OpenNI in Ubuntu
  168. What is PCL?
  169. Programming Kinect with Python using ROS, OpenCV, and OpenNI
  170. How to launch the OpenNI driver
  171. The ROS interface with OpenCV
  172. Creating a ROS package with OpenCV support
  173. Displaying Kinect images using Python, ROS, and cv_bridge
  174. Interfacing Orbbec Astra with ROS
  175. Installing the Astra–ROS driver
  176. Working with point clouds using Kinect, ROS, OpenNI, and PCL
  177. Opening the device and generating a point cloud
  178. Conversion of point cloud data to laser scan data
  179. Working with SLAM using ROS and Kinect
  180. Summary
  181. Questions
  182. Further reading
  183. Building ChefBot Hardware and the Integration of Software
  184. Technical requirements
  185. Building ChefBot hardware
  186. Configuring ChefBot PC and setting ChefBot ROS packages
  187. Interfacing ChefBot sensors to the Tiva-C LaunchPad
  188. Embedded code for ChefBot
  189. Writing a ROS Python driver for ChefBot
  190. Understanding ChefBot ROS launch files
  191. Working with ChefBot Python nodes and launch files
  192. Working with SLAM on ROS to build a map of the room
  193. Working with ROS localization and navigation
  194. Summary
  195. Questions
  196. Further reading
  197. Designing a GUI for a Robot Using Qt and Python
  198. Technical requirements
  199. Installing Qt on Ubuntu 16.04 LTS
  200. Working with Python bindings of Qt
  201. PyQt
  202. Installing PyQt in Ubuntu 16.04 LTS
  203. PySide
  204. Installing PySide on Ubuntu 16.04 LTS
  205. Working with PyQt and PySide
  206. Introducing Qt Designer
  207. Qt signals and slots
  208. Converting a UI file into Python code
  209. Adding a slot definition to PyQt code
  210. Operation of the Hello World GUI application
  211. Working with ChefBot’s control GUI
  212. Installing and working with rqt in Ubuntu 16.04 LTS
  213. Summary
  214. Questions
  215. Further reading
  216. Assessments
  217. Chapter 1, Getting Started with the Robot Operating System
  218. Chapter 2, Understanding the Basics of Differential Robots
  219. Chapter 3, Modeling the Differential Drive Robot
  220. Chapter 4, Simulating a Differential Drive Robot Using ROS
  221. Chapter 5, Designing ChefBot Hardware and Circuits
  222. Chapter 6, Interfacing Actuators and Sensors to the Robot Controller
  223. Chapter 7, Interfacing Vision Sensors with ROS
  224. Chapter 8, Building ChefBot Hardware and Integration of Software
  225. Chapter 9, Designing a GUI for a Robot Using Qt and Python
  226. Other Books You May Enjoy
  227. Leave a review – let other readers know what you think
Author Biography

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.

Additional information
Weight0.485 kg
Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.