Advanced Robotic Vehicles Programming - An Ardupilot and Pixhawk Approach

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. Pixha...

Full description

Saved in:
Bibliographic Details
Main Authors: Sepulveda-Cervantes Gabriel, Mendez-Martinez Mauricio, Mendoza-Mendoza Julio Alberto, Gonzalez-Villela Victor, Sossa-Azuela Humberto
Format: eBook Book
Language:English
Published: Berkeley, CA Apress, an imprint of Springer Nature 2020
Apress
Apress L. P
Edition:1
Subjects:
ISBN:1484255305, 9781484255308, 9781484255315, 1484255313
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • Title Page Clause of Responsibilities Warning Prior Knowledge Expected Results Licenses Table of Contents 1. Hardware and Software Description 2. ArduPilot Working Environment 3. Concepts and Definitions 4. Basic Input and Output Operations 5. Advanced Operations 6. Quadcopter Control with Smooth Flight Mode 7. Real-Time Working Environment 8. Compendium of the Previous Chapters in Real Time with Application Code Appendices Index
  • ArduPilot Usual Parts in Real-Time Mode/Scheduler Mode -- Measuring the Execution Time of a Task -- Chapter Summary -- Chapter 8: Compendium of the  Previous Chapters in Real Time with  Application Code -- Module radio.pde -- Module control.pde -- Module Data.pde -- Module Pose.pde -- Chapter Summary -- Part 3 References -- Appendix 1: Comparison of Commands with Other SDKs -- Appendix 2: Setup Extended Code -- Appendix 3: Extended Header -- Appendix 4: The Fully Functional Code -- Appendix 5: Helpful Keywords -- Appendix 6: Installing ArduPilot Libraries -- "Generic" Procedure -- Installation Procedure -- Compiling the Libraries -- Interface Customization and Recompilation from the Preloaded Version of the Eclipse Editor -- Uploading ∗ .px4 Files to the Autopilot -- Terminal Test of the Previously Loaded Program -- References and Suggested Websites -- Appendix 7: Thrust Vectoring -- Appendix 8: Omnidirectionality -- References and Suggested Websites -- Appendix 9: Extended Power Methods -- References and Suggested Websites -- Appendix 10: Summary of the Design of a Quadcopter -- Vehicle Design -- Autopilot Selection -- Selection of the Remote Control -- References and Websites -- Appendix 11: Working with Header Files -- Index
  • Intro -- Table of Contents -- About the Authors -- Acknowledgments -- Clause of Responsibilities -- Foreword -- Warning -- Prior Knowledge -- Expected Results -- Licenses -- Part I: Introduction -- Chapter 1: Hardware and Software Description -- Autopilot -- Kinds of Autopilot: SDK vs. GUI -- Kinds of SDKs -- Pixhawk Autopilot (Hardware) -- Clones vs. Originals -- Commercial Autopilot vs. Your Own Design -- ArduPilot Libraries (Software) -- Compatibilities and Similar Projects -- Confusion Between Hardware and Software? -- Chapter Summary -- Chapter 2: ArduPilot Working Environment -- File Types Related to ArduPilot Libraries -- Specific Data Types -- Implementation Tip: PPM, PWM, 1000, or 2000? -- Description and Flow of the Programs Used -- Coding and Compiling -- Connection and Loading Interface -- Physical Execution -- Display -- Feedback -- Uploading Custom Code to the Autopilot -- Making New Projects by Using Eclipse -- Error Checking -- Is It Feasible to Use Arduino Directly with ArduPilot Libraries? -- Chapter Summary -- Chapter 3: Concepts and Definitions -- Auxiliary Components -- Brushless Motors -- ESC -- Propellers -- Frame -- Special Connectors -- Telemetry Module (Wireless Serial Communication) -- LIPO Battery -- Battery Tester or Battery Monitor -- GPS Module -- Distributor -- Power Module -- Silicon Wire -- Thermofit -- Fasteners -- Passive Antivibration Modules -- Remote Control -- Embedded On-Board Computer -- Special Pixhawk Components -- Computational Efficiency Against Mathematical Equality -- Working with Variables, Functions, Modules, and Objects -- Variable -- Structure -- Function -- Module -- Getter and Setter Concepts -- Concepts of Orientation and Position -- Attention: Difference Between Installation and Coding -- Usual Parts of ArduPilot Code -- Usual Models for Programming ArduPilot Code -- Chapter Summary
  • Part 1 References and Suggested Websites -- Part II: Sequential Operation Mode -- Chapter 4: Basic Input and Output Operations -- About the Header -- About the Setup -- Writing to the Terminal -- Terminal Reading -- Radio Reading -- Auxiliary Channels and Introduction to State Machines -- Position and Orientation Internal Sensors Reading -- External Position Sensors Reading (GPS) -- Reading Analog Sensors -- Signals Filtering -- Digital Reading and Writing -- Battery Reading -- Using Visual Alerts Through the Main LED -- Chapter Summary -- Chapter 5: Advanced Operations -- Wired and Wireless Serial Communication -- Communication Procedure -- Procedures for Sending Data -- Data Verification Procedure -- Description of a Basic Checksum Method -- Description of the XOR Checksum Method -- Polling -- Reading from External Devices Through Serial Communication and Development Boards -- Writing to Brushless Motors (BLDC Motors) -- Code Optimization -- Simplified Function for Writing to Motors -- Writing to Standard DC Motors (Brushed) -- Using Stepper Motors -- Using Servomotors for Auxiliary Tasks -- Summary of ArduPilot Compatible Motors -- Data Use and Storage -- Using the Mission Planner GUI to Plot SD Data -- Time Management -- Chapter Summary -- Chapter 6: Quadcopter Control with Smooth Flight Mode -- Basic Modeling of a Multicopter -- Second Example: Bicopter (with Coaxial Motors Analysis) -- Velocity Kinematic Relations -- Dynamic Translation Equations -- Dynamic Rotational Equations -- Flight Modes -- Decoupled Tasks -- Control Methods -- Closed Loop vs. Open Loop -- Saturated PD Control (Soft-Mode Basic Control of Flight) -- Drone Flight Implementation -- Chapter Summary -- Part 2 References -- Part III: Real-Time Mode -- Chapter 7: Real-Time Working Environment -- Linker -- Scheduler Description