Learning robotics using Python design, simulate, program, and prototype an autonomous mobile robot using ROS, Open-CV, PCL, and Phython

Design, simulate, and program interactive robots About This Book 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 P...

Descripción completa

Detalles Bibliográficos
Otros Autores: Joseph, Lentin, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham : Packt [2018]
Edición:Second edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630627306719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credits
  • Dedication
  • Packt Upsell
  • Contributors
  • Table of Contents
  • Preface
  • Chapter 1: Getting Started with Robot Operating System
  • Technical requirements
  • Introduction to ROS
  • ROS concepts
  • The ROS filesystem
  • The ROS Computation Graph
  • The ROS community level
  • Installing ROS on Ubuntu
  • Introducing catkin
  • Creating a ROS package
  • Hello_world_publisher.py
  • Hello_world_subscriber.py
  • Introducing Gazebo
  • Installing Gazebo
  • Testing Gazebo with the ROS interface
  • Summary
  • Questions
  • Chapter 2: Understanding the Basics of Differential Robots
  • Mathematical modeling of the robot
  • Introduction to the differential drive system and robot kinematics
  • Forward kinematics of a differential robot
  • Explanations of the forward kinematics equation
  • Inverse kinematics
  • Summary
  • Questions
  • Further information
  • Chapter 3 : Modeling the Differential Drive Robot
  • Technical requirements
  • Requirements of a service robot
  • Robot drive mechanism
  • Selection of motors and wheels
  • Calculation of RPM of motors
  • Calculation of motor torque
  • The design summary
  • The robot chassis design
  • Installing LibreCAD, Blender, and MeshLab
  • Installing LibreCAD
  • Installing Blender
  • Installing MeshLab
  • Creating 2D CAD drawing of a robot using LibreCAD
  • The base plate designs
  • Base plate pole design
  • Wheel, motor, and motor clamp design
  • Caster wheel design
  • Middle plate design
  • Top plate design
  • Working with a 3D model of the robot using Blender
  • Python scripting in Blender
  • Introduction to Blender Python APIs
  • Python script of the robot model
  • Creating a URDF model of the robot
  • Creating a Chefbot description ROS package
  • Summary
  • Questions
  • Further reading
  • Chapter 4: Simulating a Differential Drive Robot Using ROS.
  • Technical requirements
  • Getting started with the Gazebo simulator
  • The Gazebo's graphical user interface
  • The Scene
  • The Left Panel
  • Right Panel
  • Gazebo toolbars
  • Upper toolbar
  • Bottom toolbar
  • Working with a TurtleBot 2 simulation
  • Moving the robot
  • Creating a simulation of Chefbot
  • Depth image to laser scan conversion
  • URDF tags and plugins for Gazebo simulation
  • Cliff sensor plugin
  • Contact sensor plugin
  • Gyroscope plugin
  • Differential drive plugin
  • Depth camera plugin
  • Visualizing the robot sensor data
  • Getting started with Simultaneous Localization and Mapping
  • Implementing SLAM in the Gazebo environment
  • Creating a map using SLAM
  • Getting started with Adaptive Monte Carlo Localization
  • Implementing AMCL in the Gazebo environment
  • Autonomous navigation of Chefbot in the hotel using Gazebo
  • Summary
  • Questions
  • Further reading
  • Chapter 5: Designing ChefBot Hardware and Circuits
  • Technical requirements
  • Specifications of the ChefBot's hardware
  • Block diagram of the robot
  • Motor and encoder
  • Selecting motors, encoders, and wheels for the robot
  • Motor driver
  • Selecting a motor driver/controller
  • Input pins
  • Output pins
  • Power supply pins
  • Embedded controller board
  • Ultrasonic sensors
  • Selecting an ultrasonic sensor
  • Inertial measurement unit
  • Kinect/Orbbec Astra
  • Central processing unit
  • Speakers/mic
  • Power supply/battery
  • How ChefBot's hardware works'?
  • Summary
  • Questions
  • Further reading
  • Chapter 6: Interfacing Actuators and Sensors to the Robot Controller
  • Technical requirements
  • Interfacing DC geared motor to Tiva C LaunchPad
  • Differential wheeled robot
  • Installing Energia IDE
  • Motor interfacing code
  • Interfacing quadrature encoder with Tiva C Launchpad
  • Processing encoder data
  • Quadrature encoder interfacing code.
  • Working with Dynamixel actuators
  • Working with ultrasonic distance sensors
  • Interfacing HC-SR04 to Tiva C LaunchPad
  • Working of HC-SR04
  • Interfacing Code of Tiva C Launchpad
  • Interfacing Tiva C LaunchPad with Python
  • Working with the IR proximity sensor
  • Working with Inertial Measurement Units
  • Inertial navigation
  • Interfacing MPU 6050 with Tiva C LaunchPad
  • Setting the MPU 6050 library in Energia
  • Interfacing code of Energia
  • Summary
  • Questions
  • Further reading
  • Chapter 7: Interfacing Vision Sensors with ROS
  • Technical requirements
  • List of robotic vision sensors and image libraries
  • Pixy2/CMUcam5
  • Logitech C920 webcam
  • Kinect 360
  • Intel RealSense D400 series
  • Orbbec Astra depth sensor
  • Introduction to OpenCV, OpenNI, and PCL
  • What is OpenCV?
  • Installation of OpenCV from the source code in Ubuntu
  • Reading and displaying an image using the Python-OpenCV interface
  • Capturing from the web camera
  • What is OpenNI?
  • Installing OpenNI in Ubuntu
  • What is PCL?
  • Programming Kinect with Python using ROS, OpenCV, and OpenNI
  • How to launch the OpenNI driver
  • The ROS interface with OpenCV
  • Creating a ROS package with OpenCV support
  • Displaying Kinect images using Python, ROS, and cv_bridge
  • Interfacing Orbbec Astra with ROS
  • Installing the Astra-ROS driver
  • Working with point clouds using Kinect, ROS, OpenNI, and PCL
  • Opening the device and generating a point cloud
  • Conversion of point cloud data to laser scan data
  • Working with SLAM using ROS and Kinect
  • Summary
  • Questions
  • Further reading
  • Chapter 8: Building ChefBot Hardware and the Integration of Software
  • Technical requirements
  • Building ChefBot hardware
  • Configuring ChefBot PC and setting ChefBot ROS packages
  • Interfacing ChefBot sensors to the Tiva-C LaunchPad
  • Embedded code for ChefBot.
  • Writing a ROS Python driver for ChefBot
  • Understanding ChefBot ROS launch files
  • Working with ChefBot Python nodes and launch files
  • Working with SLAM on ROS to build a map of the room
  • Working with ROS localization and navigation
  • Summary
  • Questions
  • Further reading
  • Chapter 9: Designing a GUI for a Robot Using Qt and Python
  • Technical requirements
  • Installing Qt on Ubuntu 16.04 LTS
  • Working with Python bindings of Qt
  • PyQt
  • Installing PyQt in Ubuntu 16.04 LTS
  • PySide
  • Installing PySide on Ubuntu 16.04 LTS
  • Working with PyQt and PySide
  • Introducing Qt Designer
  • Qt signals and slots
  • Converting a UI file into Python code
  • Adding a slot definition to PyQt code
  • Operation of the Hello World GUI application
  • Working with ChefBot's control GUI
  • Installing and working with rqt in Ubuntu 16.04 LTS
  • Summary
  • Questions
  • Further reading
  • Assessments
  • Other Books You May Enjoy
  • Index.