ebook img

Intelligent Autonomous Drones with Cognitive Deep Learning: Build AI-Enabled Land Drones with the Raspberry Pi 4 PDF

519 Pages·2022·15.259 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Intelligent Autonomous Drones with Cognitive Deep Learning: Build AI-Enabled Land Drones with the Raspberry Pi 4

Intelligent Autonomous Drones with Cognitive Deep Learning Build AI-Enabled Land Drones with the Raspberry Pi 4 — David Allen Blubaugh Steven D. Harbour Benjamin Sears Michael J. Findler Intelligent Autonomous Drones with Cognitive Deep Learning Build AI-Enabled Land Drones with the Raspberry Pi 4 David Allen Blubaugh Steven D. Harbour Benjamin Sears Michael J. Findler Intelligent Autonomous Drones with Cognitive Deep Learning: Build AI-Enabled Land Drones with the Raspberry Pi 4 David Allen Blubaugh Steven D. Harbour Springboro, OH, USA Beavercreek Township, OH, USA Benjamin Sears Michael J. Findler Xenia, OH, USA Mesa, AZ, USA ISBN-13 (pbk): 978-1-4842-6802-5 ISBN-13 (electronic): 978-1-4842-6803-2 https://doi.org/10.1007/978-1-4842-6803-2 Copyright © 2022 by David Allen Blubaugh, Steven D. Harbour, Benjamin Sears, Michael J. Findler This work is subject to copyright. All rights are reserved by the publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Susan McDermott Development Editor: James Markham Coordinating Editor: Jessica Vakili Copy Editor: April Rondeau Distributed to the book trade worldwide by Springer Science + Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, email [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected]; for reprint, paperback, or audio rights, please e-mail [email protected]. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on the Github repository: https://github.com/Apress/Intelligent- Autonomous-Drones-with-Cognitive-Deep-Learning. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper Table of Contents About the Authors �������������������������������������������������������������������������������xv Chapter 1: Rover Platform Overview ����������������������������������������������������1 Chapter Objectives ������������������������������������������������������������������������������������������������2 Defining Specifications and Requirements �����������������������������������������������������3 Cognitive Deep Learning Subsystem (Move)���������������������������������������������������������5 Basic System Components ������������������������������������������������������������������������������7 System Rationale (Optional) ����������������������������������������������������������������������������7 Design Constraints (Optional) ������������������������������������������������������������������������10 Other Requirements (Optional) ����������������������������������������������������������������������11 Software System Attributes (Optional) ����������������������������������������������������������12 Architecture (Optional) �����������������������������������������������������������������������������������14 AI Rover Statistical Analysis (Move) ��������������������������������������������������������������������16 Selecting a Chassis ���������������������������������������������������������������������������������������17 Robotic Operating System �����������������������������������������������������������������������������18 Pixhawk 4 Autopilot ���������������������������������������������������������������������������������������19 AI Rover Mission Analysis ������������������������������������������������������������������������������20 AdruPilot Mission Planner Software ��������������������������������������������������������������21 AI Rover Power Analysis ��������������������������������������������������������������������������������22 AI Rover Object-Oriented Programming ��������������������������������������������������������22 List of Components ����������������������������������������������������������������������������������������22 List of Raspberry Pi Rover Kits ����������������������������������������������������������������������23 Acronyms �������������������������������������������������������������������������������������������������������23 iii Table of ConTenTs Chapter 2: AI Rover System Design and Analysis ������������������������������25 Chapter Objectives ����������������������������������������������������������������������������������������������26 Placing the Problem in Context ���������������������������������������������������������������������������27 Developing the First Static UML Diagrams for AI Rover ��������������������������������������30 Developing the First Dynamic UML Diagrams for AI Rover ���������������������������������33 Developing the First Dynamic UML Class Diagrams �������������������������������������������40 Developing the First Dynamic UML Sequence Diagrams ������������������������������������45 Summary�������������������������������������������������������������������������������������������������������������54 Chapter 3: Installing Linux and Development Tools ���������������������������57 Before We Begin ��������������������������������������������������������������������������������������������������58 Installing the VirtualBox Software �����������������������������������������������������������������������59 Creating a New VirtualBox Virtual Machine ���������������������������������������������������62 Installing Linux Ubuntu 20�04�4 in VirtualBox �����������������������������������������������������69 Updating Ubuntu Linux 20�04�4 ���������������������������������������������������������������������82 Configuring Ubuntu Repositories �������������������������������������������������������������������88 Installing Anaconda ���������������������������������������������������������������������������������������������90 ROS Source List ��������������������������������������������������������������������������������������������������92 ROS Environment Variable Key ���������������������������������������������������������������������������92 Installing the Robotic Operating System (ROS) ���������������������������������������������������93 Installing ROSINSTALL �����������������������������������������������������������������������������������94 Starting ROS for the Very First Time ��������������������������������������������������������������95 Adding the ROS Path �������������������������������������������������������������������������������������95 Creating a ROS Catkin Workspace �����������������������������������������������������������������97 Final Checks for Noetic ROS ��������������������������������������������������������������������������99 Noetic ROS Architecture ��������������������������������������������������������������������������������99 iv Table of ConTenTs Simple “Hello World” ROS Test ��������������������������������������������������������������������101 ROS RQT Graph ��������������������������������������������������������������������������������������������103 ROS Gazebo �������������������������������������������������������������������������������������������������103 Summary�����������������������������������������������������������������������������������������������������������105 Chapter 4: Building a Simple Virtual Rover ��������������������������������������107 Objectives ���������������������������������������������������������������������������������������������������������107 ROS, RViz, and Gazebo ��������������������������������������������������������������������������������������108 Essential ROS Commands ���������������������������������������������������������������������������������109 Robot Visualization (RViz) ����������������������������������������������������������������������������������110 Catkin Workspace Revisited ������������������������������������������������������������������������116 The Relationship Between URDF and SDF ���������������������������������������������������119 Building the Chassis ������������������������������������������������������������������������������������120 Using the ROSLAUNCH Command ���������������������������������������������������������������121 Creating Wheels and Drives �������������������������������������������������������������������������123 Creating AI Rover’s Caster ���������������������������������������������������������������������������128 Adding Color to the AI Rover (Optional) �������������������������������������������������������130 Collision Properties ��������������������������������������������������������������������������������������132 Testing the AI Rover’s Wheels ����������������������������������������������������������������������134 Physical Properties ��������������������������������������������������������������������������������������137 Gazebo Introduction ������������������������������������������������������������������������������������������140 Background Information on Gazebo ������������������������������������������������������������141 Starting Gazebo �������������������������������������������������������������������������������������������142 Gazebo Environment Toolbar �����������������������������������������������������������������������144 The Invisible Joints Panel ����������������������������������������������������������������������������146 The Gazebo Main Control Toolbar ����������������������������������������������������������������148 URDF Transformation to SDF Gazebo �����������������������������������������������������������149 Checking the URDF Transformation to SDF Gazebo �������������������������������������151 v Table of ConTenTs First Controlled AI Rover Simulation in Gazebo �������������������������������������������153 First Deep Learning Possibility ��������������������������������������������������������������������157 Moving the AI Rover with Joints Panel ��������������������������������������������������������157 Summary�����������������������������������������������������������������������������������������������������������158 Chapter 5: Adding Sensors to Our Simulation ����������������������������������161 Objectives ���������������������������������������������������������������������������������������������������������161 XML Macro Programming Language �����������������������������������������������������������������162 More Examples of XML �������������������������������������������������������������������������������������165 The Rover Revisited ������������������������������������������������������������������������������������������167 Modular Designed Rover �����������������������������������������������������������������������������167 Gazebo Plug-ins�������������������������������������������������������������������������������������������180 Putting It All Together ����������������������������������������������������������������������������������196 Gazebo Launch File �������������������������������������������������������������������������������������200 Troubleshooting Xacro and Gazebo �������������������������������������������������������������202 Teleop Node for Rover Control ��������������������������������������������������������������������������203 Transform (TF) Graph Visualization �������������������������������������������������������������������205 Troubleshooting RViz Window Errors �����������������������������������������������������������208 Controlling the Rover ����������������������������������������������������������������������������������������210 Drifting Issues with the Rover ���������������������������������������������������������������������211 Our First Python Controller ��������������������������������������������������������������������������211 Building Our Environment ���������������������������������������������������������������������������������213 Summary�����������������������������������������������������������������������������������������������������������214 Chapter 6: Sense and Avoidance ������������������������������������������������������217 Objectives ���������������������������������������������������������������������������������������������������������217 Understanding Coordinate Systems ������������������������������������������������������������������218 Modeling the AI Rover World �����������������������������������������������������������������������������219 Organizing the Project ���������������������������������������������������������������������������������220 vi Table of ConTenTs Modeling the Catacombs (Simplified) ����������������������������������������������������������221 Laser Range-Finding Filter Settings �����������������������������������������������������������������230 Laser Range-Finding Data ���������������������������������������������������������������������������231 Obstacle Sense-and-Avoidance ������������������������������������������������������������������������238 Source Code Analysis ����������������������������������������������������������������������������������244 Interpreting the LiDAR Sensor Data �������������������������������������������������������������247 Sensing and Avoiding Obstacles ������������������������������������������������������������������247 Executing the Avoidance Code ��������������������������������������������������������������������252 Summary�����������������������������������������������������������������������������������������������������������254 Chapter 7: Navigation, SLAM, and Goals �������������������������������������������257 Objectives ���������������������������������������������������������������������������������������������������������257 Overview �����������������������������������������������������������������������������������������������������������258 Mission Types ����������������������������������������������������������������������������������������������������258 Odometry ����������������������������������������������������������������������������������������������������������259 Rover’s Local Navigation �����������������������������������������������������������������������������260 Rover’s Global Navigation ����������������������������������������������������������������������������261 Getting the Rover Heading (Orientation) ������������������������������������������������������262 Executing the rotateRobotOdom�py �������������������������������������������������������������264 Control Theory ���������������������������������������������������������������������������������������������������267 Autonomous Navigation�������������������������������������������������������������������������������267 Simultaneous Localization and Mapping (SLAM) ����������������������������������������������269 Installing SLAM and Associated Libraries����������������������������������������������������271 Setting Up SLAM ������������������������������������������������������������������������������������������272 Navigational Goals and Tasks ����������������������������������������������������������������������273 Importance of Maps ������������������������������������������������������������������������������������������274 SLAM gMapping Introduction ����������������������������������������������������������������������275 Launching Our Rover �����������������������������������������������������������������������������������������276 vii Table of ConTenTs Creating ai_rover_world�launch ������������������������������������������������������������������276 The slam_gmapping Launch File�����������������������������������������������������������������278 Preparing slam_gmapping Package ������������������������������������������������������������280 Modify gmapping_demo�launch File �����������������������������������������������������������281 RViz gMapping ���������������������������������������������������������������������������������������������282 Final Launch Terminal Commands ��������������������������������������������������������������������285 RViz Mapping Configurations�����������������������������������������������������������������������286 Checking LaserScan Configurations ������������������������������������������������������������289 Checking Mapping Configurations ���������������������������������������������������������������290 Saving RViz Configurations ��������������������������������������������������������������������������292 Additional Noetic SLAM Information ������������������������������������������������������������295 The map_server ROS Node �������������������������������������������������������������������������297 Map Image Savings or Modifications ����������������������������������������������������������297 rover_map�pgm Map Image File Data ���������������������������������������������������������299 rover_map�yaml Map File Metadata ������������������������������������������������������������300 ROS Bags �����������������������������������������������������������������������������������������������������302 Importance of ROS Bags ������������������������������������������������������������������������������304 Localization (Finding Lost Rovers) ��������������������������������������������������������������������305 Adaptive Monte Carlo Localization (AMCL) �������������������������������������������������������305 Configuring the AMCL ROS Node �����������������������������������������������������������������309 Importance of Localization and AMCL ���������������������������������������������������������315 Visualizing the AMCL in RViz �����������������������������������������������������������������������315 Moving the Rover’s Pose with RViz �������������������������������������������������������������322 Programming Goal Poses for Rover ������������������������������������������������������������������323 Noetic ROS Navigation Stack �����������������������������������������������������������������������323 Configuring the Navigation Stack ����������������������������������������������������������������324 Summary�����������������������������������������������������������������������������������������������������������325 viii Table of ConTenTs Chapter 8: OpenCV and Perception ���������������������������������������������������327 Objectives ���������������������������������������������������������������������������������������������������������327 Overview �����������������������������������������������������������������������������������������������������������328 Introduction to Computer Vision ������������������������������������������������������������������������329 Solid-State Physics��������������������������������������������������������������������������������������330 Neurobiology �����������������������������������������������������������������������������������������������330 Robotic Navigation ��������������������������������������������������������������������������������������330 What Is Computer Vision? ���������������������������������������������������������������������������������331 OpenCV��������������������������������������������������������������������������������������������������������������332 Images ���������������������������������������������������������������������������������������������������������334 Filters ����������������������������������������������������������������������������������������������������������334 Edge Detectors ��������������������������������������������������������������������������������������������338 NumPy, SciPy, OpenCV, and CV_Bridge �������������������������������������������������������������339 Testing the OpenCV CV_Bridge ��������������������������������������������������������������������339 Edge Detection and LiDAR (Why) ����������������������������������������������������������������������351 Implementation (How) ���������������������������������������������������������������������������������������351 Launching Python Files �������������������������������������������������������������������������������������351 Step 1: Data Pipeline �����������������������������������������������������������������������������������352 Step 2: Data Pipeline �����������������������������������������������������������������������������������353 Step 3: Data Pipeline �����������������������������������������������������������������������������������355 Building and Running the ROS Data Pipeline Application ���������������������������������357 Running the App in Three Different Terminals ���������������������������������������������357 Starting Your Data Pipeline with a ROS Launch File �����������������������������������������359 Summary�����������������������������������������������������������������������������������������������������������361 ix

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.