ROS robotics projects build a variety of awesome robots that can see, sense, move, and do a lot more using the powerful Robot Operating System

Build a variety of awesome robots that can see, sense, move, and do a lot more using the powerful Robot Operating System About This Book Create and program cool robotic projects using powerful ROS libraries Work through concrete examples that will help you build your own robotic systems of varying c...

Descripción completa

Detalles Bibliográficos
Otros Autores: Joseph, Lentin, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England ; Mumbai, India : Packt Publishing 2017.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630081506719
Tabla de Contenidos:
  • Intro
  • ROS Robotics Projects
  • ROS Robotics Projects
  • Credits
  • About the Author
  • Acknowledgements
  • About the Reviewer
  • www.PacktPub.com
  • Why subscribe?
  • Customer Feedback
  • Preface
  • What this book covers
  • What you need for this book
  • Who this book is for
  • Conventions
  • Reader feedback
  • Customer support
  • Downloading the example code
  • Downloading the color images of this book
  • Errata
  • Piracy
  • Questions
  • 1. Getting Started with ROS Robotics Application Development
  • Getting started with ROS
  • ROS distributions
  • Supported operating systems
  • Robots and sensors supported by ROS
  • Why ROS
  • Fundamentals of ROS
  • The filesystem level
  • The computation graph level
  • The ROS community level
  • Communication in ROS
  • ROS client libraries
  • ROS tools
  • Rviz (ROS Visualizer)
  • rqt_plot
  • rqt_graph
  • Simulators of ROS
  • Installing ROS kinetic on Ubuntu 16.04 LTS
  • Getting started with the installation
  • Configuring Ubuntu repositories
  • Setting up source.list
  • Setting up keys
  • Installing ROS
  • Initializing rosdep
  • Setting the ROS environment
  • Getting rosinstall
  • Setting ROS on VirtualBox
  • Setting the ROS workspace
  • Opportunities for ROS in industries and research
  • Questions
  • Summary
  • 2. Face Detection and Tracking Using ROS, OpenCV and Dynamixel Servos
  • Overview of the project
  • Hardware and software prerequisites
  • Installing dependent ROS packages
  • Installing the usb_cam ROS package
  • Creating a ROS workspace for dependencies
  • Interfacing Dynamixel with ROS
  • Installing the ROS dynamixel_motor packages
  • Creating face tracker ROS packages
  • The interface between ROS and OpenCV
  • Working with the face-tracking ROS package
  • Understanding the face tracker code
  • Understanding CMakeLists.txt
  • The track.yaml file
  • The launch files.
  • Running the face tracker node
  • The face_tracker_control package
  • The start_dynamixel launch file
  • The pan controller launch file
  • The pan controller configuration file
  • The servo parameters configuration file
  • The face tracker controller node
  • Creating CMakeLists.txt
  • Testing the face tracker control package
  • Bringing all the nodes together
  • Fixing the bracket and setting up the circuit
  • The final run
  • Questions
  • Summary
  • 3. Building a Siri-Like Chatbot in ROS
  • Social robots
  • Building social robots
  • Prerequisites
  • Getting started with AIML
  • AIML tags
  • The PyAIML interpreter
  • Installing PyAIML on Ubuntu 16.04 LTS
  • Playing with PyAIML
  • Loading multiple AIML files
  • Creating an AIML bot in ROS
  • The AIML ROS package
  • Installing the ROS sound_play package
  • Installing the dependencies of sound_play
  • Installing the sound_play ROS package
  • Creating the ros_aiml package
  • The aiml_server node
  • The AIML client node
  • The aiml_tts client node
  • The AIML speech recognition node
  • start_chat.launch
  • start_tts_chat.launch
  • start_speech_chat.launch
  • Questions
  • Summary
  • 4. Controlling Embedded Boards Using ROS
  • Getting started with popular embedded boards
  • An introduction to Arduino boards
  • How to choose an Arduino board for your robot
  • Getting started with STM32 and TI Launchpads
  • The Tiva C Launchpad
  • Introducing the Raspberry Pi
  • How to choose a Raspberry Pi board for your robot
  • The Odroid board
  • Interfacing Arduino with ROS
  • Monitoring light using Arduino and ROS
  • Running ROS serial server on PC
  • Interfacing STM32 boards to ROS using mbed
  • Interfacing Tiva C Launchpad boards with ROS using Energia
  • Running ROS on Raspberry Pi and Odroid boards
  • Connecting Raspberry Pi and Odroid to PC
  • Controlling GPIO pins from ROS.
  • Creating a ROS package for the blink demo
  • Running the LED blink demo on Raspberry Pi and Odroid
  • Questions
  • Summary
  • 5. Teleoperate a Robot Using Hand Gestures
  • Teleoperating ROS Turtle using a keyboard
  • Teleoperating using hand gestures
  • Setting up the project
  • Interfacing the MPU-9250 with the Arduino and ROS
  • The Arduino-IMU interfacing code
  • Visualizing IMU TF in Rviz
  • Converting IMU data into twist messages
  • Integration and final run
  • Teleoperating using an Android phone
  • Questions
  • Summary
  • 6. Object Detection and Recognition
  • Getting started with object detection and recognition
  • The find_object_2d package in ROS
  • Installing find_object_2d
  • Installing from source code
  • Running find_object_2d nodes using webcams
  • Running find_object_2d nodes using depth sensors
  • Getting started with 3D object recognition
  • Introduction to 3D object recognition packages in ROS
  • Installing ORK packages in ROS
  • Detecting and recognizing objects from 3D meshes
  • Training using 3D models of an object
  • Training from captured 3D models
  • Recognizing objects
  • Questions
  • Summary
  • 7. Deep Learning Using ROS and TensorFlow
  • Introduction to deep learning and its applications
  • Deep learning for robotics
  • Deep learning libraries
  • Getting started with TensorFlow
  • Installing TensorFlow on Ubuntu 16.04 LTS
  • TensorFlow concepts
  • Graph
  • Session
  • Variables
  • Fetches
  • Feeds
  • Writing our first code in TensorFlow
  • Image recognition using ROS and TensorFlow
  • Prerequisites
  • The ROS image recognition node
  • Running the ROS image recognition node
  • Introducing to scikit-learn
  • Installing scikit-learn on Ubuntu 16.04 LTS
  • Introducing to SVM and its application in robotics
  • Implementing an SVM-ROS application
  • Questions
  • Summary
  • 8. ROS on MATLAB and Android.
  • Getting started with the ROS-MATLAB interface
  • Setting Robotics Toolbox in MATLAB
  • Basic ROS functions in MATLAB
  • Initializing a ROS network
  • Listing ROS nodes, topics, and messages
  • Communicating from MATLAB to a ROS network
  • Controlling a ROS robot from MATLAB
  • Designing the MATLAB GUI application
  • Explaining callbacks
  • Running the application
  • Getting started with Android and its ROS interface
  • Installing rosjava
  • Installing from the Ubuntu package manager
  • Installing from source code
  • Installing android-sdk from the Ubuntu package manager
  • Installing android-sdk from prebuilt binaries
  • Installing the ROS-Android interface
  • Playing with ROS-Android applications
  • Troubleshooting
  • Android-ROS publisher-subscriber application
  • The teleop application
  • The ROS Android camera application
  • Making the Android device the ROS master
  • Code walkthrough
  • Creating basic applications using the ROS-Android interface
  • Troubleshooting tips
  • Questions
  • Summary
  • 9. Building an Autonomous Mobile Robot
  • Robot specification and design overview
  • Designing and selecting the motors and wheels for the robot
  • Computing motor torque
  • Calculation of motor RPM
  • Design summary
  • Building 2D and 3D models of the robot body
  • The base plate
  • The pole and tube design
  • The motor, wheel, and motor clamp design
  • The caster wheel design
  • Middle plate and top plate design
  • The top plate
  • 3D modeling of the robot
  • Simulating the robot model in Gazebo
  • Mathematical model of a differential drive robot
  • Simulating Chefbot
  • Building the URDF model of Chefbot
  • Inserting 3D CAD parts into URDF as links
  • Inserting Gazebo controllers into URDF
  • Running the simulation
  • Mapping and localization
  • Designing and building actual robot hardware
  • Motor and motor driver
  • Motor encoders.
  • Tiva C Launchpad
  • Ultrasonic sensor
  • Ultrasonic sensor
  • OpenNI depth sensor
  • Intel NUC
  • Interfacing sensors and motors with the Launchpad
  • Programming the Tiva C Launchpad
  • Interfacing robot hardware with ROS
  • Running Chefbot ROS driver nodes
  • Gmapping and localization in Chefbot
  • Questions
  • Summary
  • 10. Creating a Self-Driving Car Using ROS
  • Getting started with self-driving cars
  • History of autonomous vehicles
  • Levels of autonomy
  • Functional block diagram of a typical self-driving car
  • GPS, IMU, and wheel encoders
  • Xsens MTi IMU
  • Camera
  • Ultrasonic sensors
  • LIDAR and RADAR
  • Velodyne HDL-64 LIDAR
  • SICK LMS 5xx/1xx and Hokuyo LIDAR
  • Continental ARS 300 radar (ARS)
  • Delphi radar
  • On-board computer
  • Software block diagram of self-driving cars
  • Simulating the Velodyne LIDAR
  • Interfacing Velodyne sensors with ROS
  • Simulating a laser scanner
  • Explaining the simulation code
  • Interfacing laser scanners with ROS
  • Simulating stereo and mono cameras in Gazebo
  • Interfacing cameras with ROS
  • Simulating GPS in Gazebo
  • Interfacing GPS with ROS
  • Simulating IMU on Gazebo
  • Interfacing IMUs with ROS
  • Simulating an ultrasonic sensor in Gazebo
  • Low-cost LIDAR sensors
  • Sweep LIDAR
  • RPLIDAR
  • Simulating a self-driving car with sensors in Gazebo
  • Installing prerequisites
  • Visualizing robotic car sensor data
  • Moving a self-driving car in Gazebo
  • Running hector SLAM using a robotic car
  • Interfacing a DBW car with ROS
  • Installing packages
  • Visualizing the self-driving car and sensor data
  • Communicating with DBW from ROS
  • Introducing the Udacity open source self-driving car project
  • MATLAB ADAS toolbox
  • Questions
  • Summary
  • 11. Teleoperating a Robot Using a VR Headset and Leap Motion
  • Getting started with a VR headset and Leap Motion
  • Project prerequisites.
  • Design and working of the project.