Skip to main content
Top

2020 | Book

Advanced Robotic Vehicles Programming

An Ardupilot and Pixhawk Approach

Authors: Julio Alberto Mendoza-Mendoza, Victor Javier Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela

Publisher: Apress

insite
SEARCH

About this book

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

Frontmatter

Introduction

Frontmatter
Chapter 1. Hardware and Software Description
Abstract
In this chapter, we will show you what an autopilot is. We’ll also introduce the characteristics and history of the hardware and software used throughout this book, which are the ArduPilot libraries and the Pixhawk autopilot. You will learn the difference between a GUI and an SDK, and how many types of SDKs there are for programming autopilots. Additionally, we will discuss other compatible projects and you will learn to distinguish between clone and original versions.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela
Chapter 2. ArduPilot Working Environment
Abstract
In this chapter, you will learn about the file types and some specific types of variables that are usually employed with the ArduPilot libraries. You will learn the programming flow we recommend using for the development of projects. You’ll also see how to create projects and identify errors using the example of the Eclipse interface development environment (IDE) that comes preloaded with the version of the libraries included with this book. Finally, you’ll explore the use of the ArduPilot libraries in conjunction with development boards.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela
Chapter 3. Concepts and Definitions
Abstract
This chapter will refresh your knowledge about certain concepts that will be useful throughout the rest of the book. First, you will learn about common robotic components employed with the autopilot, such as spatial pose, getter and setter concepts, variables, functions, modules, objects, coding and installation differences, and computational efficiency. Concerning the ArduPilot libraries, you will learn the usual parts of ArduPilot code and the archetypes of programming.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela

Sequential Operation Mode

Frontmatter
Chapter 4. Basic Input and Output Operations
Abstract
In this chapter, you will learn to code with the ArduPilot libraries. This chapter focuses on what we consider the most important basic input and output operations: terminal writing and reading, radio control reading, how to use analog and digital ports, how to read the battery, how to use the onboard main LED, and most importantly, how to read and filter position and orientation signals, which are essential in order to command a vehicle.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela
Chapter 5. Advanced Operations
Abstract
In this chapter, you will explore some advanced ArduPilot topics. In fact, this is one of the most valuable parts of the book because we break down the more complicated commands. We’ll also cover wired and wireless UART serial communications, flight data storage, foundations of time management, and how to use several types of motors.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela
Chapter 6. Quadcopter Control with Smooth Flight Mode
Abstract
In this chapter, we will teach you how to program a vehicle with the previous knowledge acquired. This chapter will guide you through the basics of automatic control, modeling, and the tool known as an allocation matrix, which is very useful for linking theory with practice. All this will be shown with a specific use-case: the quadcopter. By the end of this chapter, you’ll be able to use the skills learned with any other type of robotic vehicle.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela

Real-Time Mode

Frontmatter
Chapter 7. Real-Time Working Environment
Abstract
In this chapter, you will learn key concepts for using the ArduPilot real-time working environment libraries, such as the concept of a linker, the scheduler and its parameters, how to measure the current time of a task, the parts of a scheduler-mode program, and a really simple and understandable code demo for starting real time.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela
Chapter 8. Compendium of the Previous Chapters in Real Time with Application Code
Abstract
In this chapter, the functions previously described are combined into a real-time code with their respective modules. Some other functions not added in the sequential code are included, simply to demonstrate the versatility of the real-time mode in the assignment and hierarchy of auxiliary tasks.
Julio Alberto Mendoza-Mendoza, Victor Gonzalez-Villela, Gabriel Sepulveda-Cervantes, Mauricio Mendez-Martinez, Humberto Sossa-Azuela
Backmatter
Metadata
Title
Advanced Robotic Vehicles Programming
Authors
Julio Alberto Mendoza-Mendoza
Victor Javier Gonzalez-Villela
Gabriel Sepulveda-Cervantes
Mauricio Mendez-Martinez
Humberto Sossa-Azuela
Copyright Year
2020
Publisher
Apress
Electronic ISBN
978-1-4842-5531-5
Print ISBN
978-1-4842-5530-8
DOI
https://doi.org/10.1007/978-1-4842-5531-5

Premium Partner