Learn how to apply artificial intelligence, engineering, and machine learning to create smart robots capable of interacting with their environment, engaging with users, making decisions, and navigating autonomously Key Features Gain a holistic understanding of robot design, systems engineering, and task analysis Implement AI/ML techniques to detect and manipulate objects and navigate robots using landmarks Integrate voice and natural language interactions to create a digital assistant and artificial personality for your robot Purchase of the print or Kindle book includes a free PDF eBook Book Description Unlock the potential of your robots by enhancing their perception with cutting-edge artificial intelligence and machine learning techniques. From neural networks to computer vision, this book equips you with the tools and practical use cases to create truly smart robots. Starting with robotics basics, robot architecture, control systems, and decision-making theory, this book presents systems-engineering methods to design problem-solving robots with single-board computers. You'll explore object recognition and genetic algorithms to teach your robot to identify and pick up objects, and you'll also harness the power of natural language processing to give your robot a voice. To enhance your robot further, you'll master neural networks to classify and separate objects and navigate autonomously, before advancing to guiding your robot arms using reinforcement learning and genetic algorithms. The book also covers path planning and goal-oriented programming to prioritize your robot's tasks, showing you how to connect all software using Python and ROS 2 for a seamless experience. By the end of this book, you'll have learned how to transform your robot into a helpful assistant with NLP and give it an artificial personality, ready to tackle real-world tasks and even crack jokes. What you will learn Get started with robotics and AI essentials Understand path planning, decision trees, and search algorithms to enhance your robot Explore object recognition using neural networks and supervised learning techniques Employ genetic algorithms to enable your robot arm to manipulate objects Teach your robot to listen using Natural Language Processing through an expert system Program your robot in how to avoid obstacles and retrieve objects with machine learning and computer vision Apply simulation techniques to give your robot an artificial personality Who this book is for This book is for practicing robotics engineers and enthusiasts aiming to advance their skills by applying AI and ML techniques. Students and researchers looking for practical guidance for solving specific problems or approaching a difficult robot design will find this book insightful. Proficiency in Python programming, familiarity with electronics and wiring, single board computers, Linux-based command-line interface (CLI), and knowledge of AI/ML concepts are required to get started with this book. Cover Title Page Copyright and Credits Foreword Contributors Table of Contents Preface Part 1: Building Blocks for Robotics and Artificial Intelligence Chapter 1: The Foundation of Robotics and Artificial Intelligence Technical requirements The basic principle of robotics and AI What is AI and autonomy (and what is it not)? Are recent developments in AI anything new? What is a robot? Our sample problem – clean up this room! The basics of robotics The techniques used in this book When do you need AI for your robot? Introducing the robot and our development environment Software components (ROS, Python, and Linux) Robot control systems and a decision-making framework Summary Questions Further reading Chapter 2: Setting Up Your Robot Technical requirements Understanding the anatomy of a robot Introducing subsumption architecture A brief introduction to ROS Hardware and software setup Preparing the laptop Summary Questions Further reading Chapter 3: Conceptualizing the Practical Robot Design Process A systems engineering-based approach to robotics Understanding our task – cleaning up the playroom Use cases Our robot’s task – part 1 Our robot’s task – part 2 What is our robot to do? Using storyboards Storyboard – put away the toys Project goals Understanding the scope of our use case Identifying our hardware needs Breaking down our software needs Writing a specification Summary Questions Further reading Part 2: Adding Perception, Learning, and Interaction to Robotics Chapter 4: Recognizing Objects Using Neural Networks and Supervised Learning Technical requirements A brief overview of image processing Understanding our object recognition task Image manipulation Convolution Artificial neurons Training a CNN Using YOLOv8 – an object recognition model Understanding how to train our toy detector Building the toy detector Summary Questions Further reading Chapter 5: Picking Up and Putting Away Toys using Reinforcement Learning and Genetic Algorithms Technical requirements Task analysis Designing the software Setting up the solution Machine learning for robot arms How do we pick actions? Creating the interface to the arm Introducing Q-learning for grasping objects Writing the code Introducing GAs Understanding how the GA process works Building a GA process Alternative robot arm ML approaches Google’s SAC-X Amazon Robotics Challenge Summary Questions Further reading Chapter 6: Teaching a Robot to Listen Technical requirements Exploring robot speech recognition with NLP Briefly introducing the NLP concept Setting our goals Understanding the STT process Clarifying the intent Programming our robot Setting up the hardware Setting up the Mycroft software Adding skills Summary Questions Further reading Part 3: Advanced Concepts – Navigation, Manipulation, Emotions, and More Chapter 7: Teaching the Robot to Navigate and Avoid Stairs Technical requirements Task analysis Understanding the SLAM methodology Exploring alternative navigation techniques Introducing the Floor Finder technique Implementing neural networks Processing the image Training the neural network for navigation CNN robot control implementation Summary Questions Further reading Chapter 8: Putting Things Away Technical requirements Task analysis Introducing decision trees What do we mean by pruning? Creating self-classifying decision trees Understanding entropy Implementing one-hot encoding Random forests Introducing robot path planning Understanding the coordinate system Developing a map based on our knowledge Introducing the A* algorithm Introducing the D* (D-star or dynamic A*) algorithm GPS path finding Summary Questions Further reading Chapter 9: Giving the Robot an Artificial Personality Technical requirements What is an artificial personality? A brief introduction to the (obsolete) Turing test, chatbots, and generative AI The art and science of simulation An emotion state machine Playing the emotion game Creating a model of human behavior Integrating an artificial personality into our robot Constructing a personality Adding context Under construction Developing the robot emotion engine Creating a human emotion model Creating human information storage Context memory Summary Questions Further reading Chapter 10: Conclusions and Reflections Learning when to stop Careers in robotics Exploring the current state of AI Looking ahead in AI and robotics Is AI phobia reasonable? Comparing the needs of humans and AI Understanding risk in AI Summary Questions Further reading Answers Appendix Introducing MOSA A brief overview of ROS 2 Understanding the basic concepts Comparing ROS 2 and ROS Software requirements for the robot Installing ROS 2 Installing other packages Basic ROS 2 commands Introducing the hardware for the robot Effectors – base, motors, and wheels Battery DC/DC power supply CPU – the brains of the outfit Effectors – robot arm Arm controller Arduino microcontroller and motor controller Sensor – USB camera Sensor and effector – audio interface Robot safety tips Index Other Books You May Enjoy