FinUniversity Electronic Library

     

Details

Staple, Danny. Learn robotics programming: build and control AI-enabled autonomous robots using the Raspberry Pi and Python / Danny Staple. — Second edition. — 1 online resource — <URL:http://elib.fa.ru/ebsco/2731479.pdf>.

Record create date: 1/27/2021

Subject: Robots — Programming.; Python (Computer program language); Raspberry Pi (Computer); Python (Computer program language); Raspberry Pi (Computer); Robots — Programming.

Collections: EBSCO

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Document access rights

Network User group Action
Finuniversity Local Network All Read Print Download
Internet Readers Read Print
-> Internet Anonymous

Table of Contents

  • Cover
  • Title Page
  • Copyright and Credits
  • About Packt
  • Contributors
  • Table of Contents
  • Preface
  • Section 1: The Basics – Preparing for Robotics
  • Chapter 1: Introduction to Robotics
    • What does robot mean?
    • Exploring advanced and impressive robots
      • The Mars rovers
    • Discovering robots in the home
      • The washing machine
      • Other household robots
    • Exploring robots in industry
      • Robot arms
      • Warehouse robots
    • Competitive, educational, and hobby robots
    • Summary
    • Assessment
    • Further reading
  • Chapter 2: Exploring Robot Building Blocks – Code and Electronics
    • Technical requirements
    • Looking at what's inside a robot
    • Exploring types of robot components
      • Types of motors
      • Other types of actuators
      • Status indicators – displays, lights, and sounds
      • Types of sensors
    • Exploring controllers and I/O
      • I/O pins
      • Controllers
      • Choosing a Raspberry Pi
    • Planning components and code structure
    • Planning the physical robot
    • Summary
    • Exercise
    • Further reading
  • Chapter 3: Exploring the Raspberry Pi
    • Technical requirements
    • Exploring the Raspberry Pi's capabilities
      • Speed and power
      • Connectivity and networking
      • Picking the Raspberry Pi 3A+
    • Choosing the connections
      • Raspberry Pi HATs
    • What is Raspberry Pi OS?
    • Preparing an SD card with Raspberry Pi OS
    • Summary
    • Assessment
    • Further reading
  • Chapter 4: Preparing a Headless Raspberry Pi for a Robot
    • Technical requirements
    • What is a headless system, and why is it useful in a robot?
    • Setting up Wi-Fi on the Raspberry Pi and enabling SSH
    • Finding your Pi on the network
      • Setting up Bonjour for Microsoft Windows
      • Testing the setup
      • Troubleshooting
    • Using PuTTY or SSH to connect to your Raspberry Pi
    • Configuring Raspberry Pi OS
      • Renaming your Pi
      • Securing your Pi (a little bit)
      • Rebooting and reconnecting
      • Updating the software on your Raspberry Pi
      • Shutting down your Raspberry Pi
    • Summary
    • Assessment
    • Further reading
  • Chapter 5: Backing Up the Code with Git and SD Card Copies
    • Technical requirements
    • Understanding how code can be broken or lost
      • SD card data loss and corruption
      • Changes to the code or configuration
    • Strategy 1 – Keeping the code on a PC and uploading it
    • Strategy 2 – Using Git to go back in time
    • Strategy 3 – Making SD card backups
      • Windows
      • Mac
      • Linux
    • Summary
    • Assessment
    • Further reading
  • Section 2: Building an Autonomous Robot – Connecting Sensors and Motors to a Raspberry Pi
  • Chapter 6: Building Robot Basics – Wheels, Power, and Wiring
    • Technical requirements
    • Choosing a robot chassis kit
      • Size
      • Wheel count
      • Wheels and motors
      • Simplicity
      • Cost
      • Conclusion
    • Choosing a motor controller board
      • Integration level
      • Pin usage
      • Size
      • Soldering
      • Power input
      • Connectors
      • Conclusion
    • Powering the robot
    • Test fitting the robot
    • Assembling the base
      • Attaching the encoder wheels
      • Fitting the motor brackets
      • Adding the castor wheel
      • Putting the wheels on
      • Bringing the wires up
      • Fitting the Raspberry Pi
      • Adding the batteries
      • The completed robot base
    • Connecting the motors to the Raspberry Pi
      • Wiring the Motor HAT in
      • Independent power
    • Summary
    • Exercises
    • Further reading
  • Chapter 7: Drive and Turn – Moving Motors with Python
    • Technical requirements
    • Writing code to test your motors
      • Preparing libraries
      • Test – finding the Motor HAT
      • Test – demonstrating that the motors move
      • Troubleshooting
      • Understanding how the code works
    • Steering a robot
      • Types of steering
      • Steering the robot we are building
    • Making a Robot object – code for our experiments to talk to the robot
      • Why make this object?
      • What do we put in the robot object?
    • Writing a script to follow a predetermined path
    • Summary
    • Exercises
    • Further reading
  • Chapter 8: Programming Distance Sensors with Python
    • Technical requirements
    • Choosing between optical and ultrasonic sensors
      • Optical sensors
      • Ultrasonic sensors
      • Logic levels and shifting
      • Why use two sensors?
    • Attaching and reading an ultrasonic sensor
      • Securing the sensors to the robot
      • Adding a power switch
      • Wiring the distance sensors
      • Installing Python libraries to communicate with the sensor
      • Reading an ultrasonic distance sensor
      • Troubleshooting
    • Avoiding walls – writing a script to avoid obstacles
      • Adding the sensors to the robot class
      • Making the obstacle avoid behaviors
    • Summary
    • Exercises
    • Further reading
  • Chapter 9: Programming RGB Strips in Python
    • Technical requirements
    • What is an RGB strip?
    • Comparing light strip technologies
      • RGB values
    • Attaching the light strip to the Raspberry Pi
      • Attaching the LED strip to the robot
    • Making a robot display the code object
      • Making an LED interface
      • Adding LEDs to the Robot object
      • Testing one LED
    • Making a rainbow display with the LEDs
      • Colour systems
      • Making a rainbow on the LEDs
    • Using the light strip for debugging the avoid behavior
      • Adding basic LEDs to the avoid behavior
      • Adding rainbows
    • Summary
    • Exercises
    • Further reading
  • Chapter 10: Using Python to Control Servo Motors
    • Technical requirements
    • What are servo motors?
      • Looking inside a servo
      • Sending input positions to a servo motor
    • Positioning a servo motor with the Raspberry Pi
      • Writing code for turning a servo
      • Troubleshooting
      • Controlling DC motors and servo motors
      • Calibrating your servos
    • Adding a pan and tilt mechanism
      • Building the kit
      • Attaching the pan and tilt mechanism to the robot
    • Creating pan and tilt code
      • Making the servo object
      • Adding the servo to the robot class
      • Circling the pan and tilt head
      • Running it
      • Troubleshooting
    • Building a scanning sonar
      • Attaching the sensor
      • Installing the library
      • Behavior code
    • Summary
    • Exercises
    • Further reading
  • Chapter 11: Programming Encoders with Python
    • Technical requirements
    • Measuring the distance traveled with encoders
      • Where machines use encoders
      • Types of encoders
      • Encoding absolute or relative position
      • Encoding direction and speed
      • The encoders we are using
    • Attaching encoders to the robot
      • Preparing the encoders
      • Lifting the Raspberry Pi
      • Fitting the encoders onto the chassis
      • Wiring the encoders to the Raspberry Pi
    • Detecting the distance traveled in Python
      • Introducing logging
      • Simple counting
      • Adding encoders to the Robot object
      • Turning ticks into millimeters
    • Driving in a straight line
      • Correcting veer with a PID
      • Creating a Python PID controller object
      • Writing code to go in a straight line
      • Troubleshooting this behavior
    • Driving a specific distance
      • Refactoring unit conversions into the EncoderCounter class
      • Setting the constants
      • Creating the drive distance behavior
    • Making a specific turn
      • Writing the drive_arc function
    • Summary
    • Exercises
    • Further reading
  • Chapter 12: IMU Programming with Python
    • Technical requirements
    • Learning more about IMUs
      • Suggested IMU models
    • Soldering – attaching headers to the IMU
      • Making a solder joint
    • Attaching the IMU to the robot
      • Physical placement
      • Wiring the IMU to the Raspberry Pi
    • Reading the temperature
      • Installing the software
      • Troubleshooting
      • Reading the temperature register
      • Troubleshooting
      • Simplifying the VPython command line
    • Reading the gyroscope in Python
      • Understanding the gyroscope
      • Adding the gyroscope to the interface
      • Plotting the gyroscope
    • Reading an accelerometer in Python
      • Understanding the accelerometer
      • Adding the accelerometer to the interface
      • Displaying the accelerometer as a vector
    • Working with the magnetometer
      • Understanding the magnetometer
      • Adding the magnetometer interface
      • Displaying magnetometer readings
    • Summary
    • Exercises
    • Further reading
  • Section 3: Hearing and Seeing – Giving a Robot Intelligent Sensors
  • Chapter 13: Robot Vision – Using a Pi Camera and OpenCV
    • Technical requirements
    • Setting up the Raspberry Pi camera
      • Attaching the camera to the pan-and-tilt mechanism
      • Wiring in the camera
    • Setting up computer vision software
      • Setting up the Pi Camera software
      • Getting a picture from the Raspberry Pi
      • Installing OpenCV and support libraries
    • Building a Raspberry Pi camera stream app
      • Designing the OpenCV camera server
      • Writing the CameraStream object
      • Writing the image server main app
      • Building a template
      • Running the server
      • Troubleshooting
    • Running background tasks when streaming
    • Following colored objects with Python
      • Turning a picture into information
      • Enhancing the PID controller
      • Writing the behavior components
      • Running the behavior
      • Troubleshooting
    • Tracking faces with Python
      • Finding objects in an image
      • Planning our behavior
      • Writing face-tracking code
      • Running the face-tracking behavior
      • Troubleshooting
    • Summary
    • Exercises
    • Further reading
  • Chapter 14: Line Following with a Camera in Python
    • Technical requirements
    • Introduction to line following
      • What is line following?
      • Usage in industry
      • Types of line following
    • Making a line-follower test track
      • Getting the test track materials in place
      • Making a line
    • Line-following computer vision pipeline
      • Camera line-tracking algorithms
      • The pipeline
    • Trying computer vision with test images
      • Why use test images?
      • Capturing test images
      • Writing Python to find the edges of the line
      • Locating the line from the edges
      • Trying test pictures without a clear line
    • Line following with the PID algorithm
      • Creating the behavior flow diagram
      • Adding time to our PID controller
      • Writing the initial behavior
      • Tuning the PID
      • Troubleshooting
    • Finding a line again
    • Summary
    • Exercises
    • Further reading
  • Chapter 15: Voice Communication with a Robot Using Mycroft
    • Technical requirements
    • Introducing Mycroft – understanding voice agent terminology
      • Speech to text
      • Wake words
      • Utterances
      • Intent
      • Dialog
      • Vocabulary
      • Skills
    • Limitations of listening for speech on a robot
    • Adding sound input and output to the Raspberry Pi
      • Physical installation
      • Installing a voice agent on a Raspberry Pi
      • Installing the ReSpeaker software
      • Getting Mycroft to talk to the sound card
      • Starting to use Mycroft
      • Troubleshooting
    • Programming a Flask API
      • Overview of Mycroft controlling the robot
      • Starting a behavior remotely
      • Programming the Flask control API server
      • Troubleshooting
    • Programming a voice agent with Mycroft on the Raspberry Pi
      • Building the intent
      • Troubleshooting
      • Adding another intent
    • Summary
    • Exercises
    • Further reading
  • Chapter 16: Diving Deeper with the IMU
    • Technical requirements
    • Programming a virtual robot
      • Modeling the robot in VPython
    • Detecting rotation with the gyroscope
      • Calibrating the gyroscope
      • Rotating the virtual robot with the gyroscope
    • Detecting pitch and roll with the accelerometer
      • Getting pitch and roll from the accelerometer vector
      • Smoothing the accelerometer
      • Fusing accelerometer and gyroscope data
    • Detecting a heading with the magnetometer
      • Calibrating the magnetometer
    • Getting a rough heading from the magnetometer
    • Combining sensors for orientation
    • Driving a robot from IMU data
    • Summary
    • Exercises
    • Further reading
  • Chapter 17: Controlling the Robot with a Phone and Python
    • Technical requirements
    • When speech control won't work – why we need to drive
    • Menu modes – choosing your robot's behavior
      • Managing robot modes
      • Troubleshooting
      • The web service
      • The template
      • Running it
      • Troubleshooting
    • Choosing a controller — how we are going to drive the robot, and why
      • Design and overview
    • Preparing the Raspberry Pi for remote driving—get the basic driving system going
      • Enhancing the image app core
      • Writing the manual drive behavior
      • The template (web page)
      • The style sheet
      • Creating the code for the sliders
      • Running this
      • Troubleshooting
    • Making the robot fully phone-operable
      • Making menu modes compatible with Flask behaviors
      • Loading video services
      • Styling the menu
    • Making the menu start when the Pi starts
      • Adding lights to the menu server
      • Using systemd to automatically start the robot
    • Summary
    • Exercises
    • Further reading
  • Section 4: Taking Robotics Further
  • Chapter 18: Taking Your Robot Programming Skills Further
    • Online robot building communities – forums and social media
      • YouTube channels to get to know
      • Technical questions – where to get help
    • Meeting robot builders – competitions, makerspaces, and meetups
      • Makerspaces
      • Maker Faires, Raspberry Jams, and Dojos
      • Competitions
    • Suggestions for further skills – 3D printing, soldering, PCB, and CNC
      • Design skills
      • Skills for shaping and building
      • Electronics skills
    • Finding more information on computer vision
      • Books
      • Online courses
      • Social media
    • Extending to machine learning
      • Robot Operating System
    • Summary
    • Further reading
  • Chapter 19: Planning Your Next Robot Project – Putting It All Together
    • Technical requirements
    • Visualizing your next robot
    • Making a block diagram
    • Choosing the parts
    • Planning the code for the robot
    • Letting the world know
    • Summary
  • Other Books You May Enjoy
  • Index

Usage statistics

stat Access count: 0
Last 30 days: 0
Detailed usage statistics