Advanced Robotic Vehicles Programming : An Ardupilot and Pixhawk Approach
معرفی کتاب «Advanced Robotic Vehicles Programming : An Ardupilot and Pixhawk Approach» نوشتهٔ Mastery، White Belt و Julio Alberto Mendoza-Mendoza, Victor Javier Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela، منتشرشده توسط نشر Apress در سال 2020. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
Learn how to program robotic vehicles with ardupilot libraries and pixhawk autopilot, both of which are open source technologies with a global scope. This book is focused on quadcopters but the knowledge is easily extendable to three-dimensional vehicles such as drones, submarines, and rovers. Pixhawk and the ardupilot libraries have grown dramatically in popularity due to the fact that the hardware and software offer a real-time task scheduler, huge data processing capabilities, interconnectivity, low power consumption, and a global developer support. This book shows you how take your robotic programming skills to the next level. From hardware to software, Advanced Robotic Vehicles Programming links theory with practice in the development of unmanned vehicles. By the end of this book, you’ll learn the pixhawk software and ardupilot libraries to develop your own autonomous vehicles. What You'll Learn Model and implement elementary controls in any unmanned vehicle Select hardware and software components during the design process of an unmanned vehicle Use other compatible hardware and software development packages Understand popular scientific and technical nomenclature in the field Identify relevant complexities and processes for the operation of an unmanned vehicle Who This Book Is For Undergraduate and graduate students, researchers, makers, hobbyists, and those who want to go beyond basic programming of an Arduino for any kind of robotic vehicle. Table of Contents 5 About the Authors 12 Acknowledgments 14 Clause of Responsibilities 16 Foreword 18 Warning 19 Prior Knowledge 20 Expected Results 21 Licenses 23 Part I: Introduction 25 Chapter 1: Hardware and Software Description 26 Autopilot 26 Kinds of Autopilot: SDK vs. GUI 28 Kinds of SDKs 30 Pixhawk Autopilot (Hardware) 31 Clones vs. Originals 36 Commercial Autopilot vs. Your Own Design 37 ArduPilot Libraries (Software) 38 Compatibilities and Similar Projects 39 Confusion Between Hardware and Software? 39 Chapter Summary 40 Chapter 2: ArduPilot Working Environment 41 File Types Related to ArduPilot Libraries 41 Specific Data Types 42 Implementation Tip: PPM, PWM, 1000, or 2000? 43 Description and Flow of the Programs Used 44 Coding and Compiling 45 Connection and Loading Interface 45 Physical Execution 46 Display 46 Feedback 46 Uploading Custom Code to the Autopilot 47 Making New Projects by Using Eclipse 51 Error Checking 59 Is It Feasible to Use Arduino Directly with ArduPilot Libraries? 67 Chapter Summary 68 Chapter 3: Concepts and Definitions 69 Auxiliary Components 69 Brushless Motors 69 ESC 71 Propellers 73 Frame 74 Special Connectors 75 Telemetry Module (Wireless Serial Communication) 78 LIPO Battery 79 Battery Tester or Battery Monitor 81 GPS Module 81 Distributor 82 Power Module 83 Silicon Wire 84 Thermofit 85 Fasteners 86 Passive Antivibration Modules 87 Remote Control 87 Embedded On-Board Computer 88 Special Pixhawk Components 89 Computational Efficiency Against Mathematical Equality 90 Working with Variables, Functions, Modules, and Objects 91 Variable 92 Structure 93 Function 93 Module 94 Getter and Setter Concepts 98 Concepts of Orientation and Position 99 Attention: Difference Between Installation and Coding 101 Usual Parts of ArduPilot Code 103 Usual Models for Programming ArduPilot Code 105 Chapter Summary 106 Part 1 References and Suggested Websites 107 Part II: Sequential Operation Mode 109 Chapter 4: Basic Input and Output Operations 110 About the Header 113 About the Setup 116 Writing to the Terminal 116 Terminal Reading 121 Radio Reading 123 Auxiliary Channels and Introduction to State Machines 133 Position and Orientation Internal Sensors Reading 137 External Position Sensors Reading (GPS) 145 Reading Analog Sensors 151 Signals Filtering 154 Digital Reading and Writing 157 Battery Reading 159 Using Visual Alerts Through the Main LED 162 Chapter Summary 163 Chapter 5: Advanced Operations 164 Wired and Wireless Serial Communication 164 Communication Procedure 170 Procedures for Sending Data 170 Data Verification Procedure 175 Description of a Basic Checksum Method 176 Description of the XOR Checksum Method 177 Polling 179 Reading from External Devices Through Serial Communication and Development Boards 192 Writing to Brushless Motors (BLDC Motors) 195 Code Optimization 208 Simplified Function for Writing to Motors 208 Writing to Standard DC Motors (Brushed) 214 Using Stepper Motors 225 Using Servomotors for Auxiliary Tasks 227 Summary of ArduPilot Compatible Motors 232 Data Use and Storage 234 Using the Mission Planner GUI to Plot SD Data 241 Time Management 251 Chapter Summary 257 Chapter 6: Quadcopter Control with Smooth Flight Mode 258 Basic Modeling of a Multicopter 265 Second Example: Bicopter (with Coaxial Motors Analysis) 282 Velocity Kinematic Relations 294 Dynamic Translation Equations 296 Dynamic Rotational Equations 298 Flight Modes 303 Decoupled Tasks 307 Control Methods 312 Closed Loop vs. Open Loop 312 Saturated PD Control (Soft-Mode Basic Control of Flight) 314 Drone Flight Implementation 329 Chapter Summary 338 Part 2 References 339 Part III: Real-Time Mode 343 Chapter 7: Real-Time Working Environment 344 Linker 344 Scheduler Description 345 ArduPilot Usual Parts in Real-Time Mode/Scheduler Mode 346 Measuring the Execution Time of a Task 349 Chapter Summary 355 Chapter 8: Compendium of the Previous Chapters in Real Time with Application Code 356 Module radio.pde 361 Module control.pde 362 Module Data.pde 366 Module Pose.pde 371 Chapter Summary 374 Part 3 References 374 Appendix 1: Comparison of Commands with Other SDKs 376 Appendix 2: Setup Extended Code 380 Appendix 3: Extended Header 382 Appendix 4: The Fully Functional Code 388 Appendix 5: Helpful Keywords 395 Appendix 6: Installing ArduPilot Libraries 397 “Generic” Procedure 397 Installation Procedure 398 Compiling the Libraries 402 Interface Customization and Recompilation from the Preloaded Version of the Eclipse Editor 405 Uploading ∗ .px4 Files to the Autopilot 417 Terminal Test of the Previously Loaded Program 422 References and Suggested Websites 423 Appendix 7: Thrust Vectoring 424 Appendix 8: Omnidirectionality 427 References and Suggested Websites 428 Appendix 9: Extended Power Methods 431 References and Suggested Websites 432 Appendix 10: Summary of the Design of a Quadcopter 434 Vehicle Design 434 Autopilot Selection 436 Selection of the Remote Control 438 References and Websites 439 Appendix 11: Working with Header Files 441 Index 446 Learn how to program robotic vehicles with ardupilot libraries and pixhawk autopilot, both of which are open source technologies with a global scope. This book is focused on quadcopters but the knowledge is easily extendable to three-dimensional vehicles such as drones, submarines, and rovers. Pixhawk and the ardupilot libraries have grown dramatically in popularity due to the fact that the hardware and software offer a real-time task scheduler, huge data processing capabilities, interconnectivity, low power consumption, and a global developer support. This book shows you how take your robotic programming skills to the next level. From hardware to software, Advanced Robotic Vehicles Programming links theory with practice in the development of unmanned vehicles. By the end of this book, you'll learn the pixhawk software and ardupilot libraries to develop your own autonomous vehicles. You will: Model and implement elementary controls in any unmanned vehicle Select hardware and software components during the design process of an unmanned vehicle Use other compatible hardware and software development packages Understand popular scientific and technical nomenclature in the field Identify relevant complexities and processes for the operation of an unmanned vehicle
دانلود کتاب Advanced Robotic Vehicles Programming : An Ardupilot and Pixhawk Approach