/uavbook

Repository for the textbook: Small Unmanned Aircraft: Theory and Practice, by Randy Beard and Tim McLain

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Small Unmanned Aircraft: Theory and Practice

Randy Beard, Tim McLain

Princeton University Press, 2012

Supplemental Material. This supplemental material is currently under construction. It will be regularly updated during Winter 2022. This file is preliminary and has not been carefully proof read.

Lecture Material

The following lecture materials are included as a resource for instructors. The slides closely follow the book.

Chapter PDF Slides Powerpoint Last Modified
Chapter 1 - Introduction chap1.pdf chap1.pptx 4/4/2022
Chapter 2 - Coordinate Frames chap2.pdf chap2.pptx 1/11/2019
Chapter 3 - Kinematics and Dynamics chap3.pdf chap3.pptx 1/14/2022
Chapter 4 - Forces and Moments chap4.pdf chap4.pptx 1/21/2022
Chapter 5 - Linear Design Models chap5.pdf chap5.pptx 2/10/2022
Chapter 6 - Autopilot Design chap6.pdf chap6.pptx 2/10/2022
Chapter 7 - Sensors chap7.pdf chap7.pptx 2/14/2022
Chapter 8 - State Estimation chap8.pdf chap8.pptx 2/27/2022
Chapter 9 - Nonlinear Design Models chap9.pdf chap9.pptx 11/4/2014
Chapter 10 - Waypoint and Orbit Following chap10.pdf chap10.pptx 3/11/2022
Chapter 11 - Path Manager chap11.pdf chap11.pptx 03/21/2022
Chapter 12 - Path Planning chap12.pdf chap12.pptx 04/03/2017
Chapter 13 - Cameras chap13.pdf chap13.pptx 04/10/2017

Project Files

The template files in this github account are provided to help students with the project outlined in the book. We have found that if students start with these files, that they can generally do the project in about 3 hours per chapter. Full solutions to the project are available from instructors upon request. We respectfully ask that students and instructors do not post full solutions to the project anywhere on the web. The project creates an excellent learning experience and we believe that anyone who works the project for themselves will be much better equipped to make contributions to the state of the art in small unmanned air vehicles.

Comments

  • There are some issues with the Zagi coefficients given in the textbook. We recommend that you use the following (slightly modified from the book) coefficients for the aerosonde aircraft. aerosonde.m
  • For the Aerosonde model use an initial speed of Va = 35 m/s, and and radius of 250 meters.
  • Additional information: The Aerosonde weight is actually 25kg. Also, the cruise speed is approximately Va=35 m/s.

Video Solutions

Supplemental Material

Our intention is to occasionally add supplemental material to this page. We would also welcome contributions from the broader community. If you are interested in adding material, please contact the authors.

  • Adaptation of MavSim to Underwater Vehicles

  • Full Longitudinal State Direct and Indirect Kalman Filter The Kalman filters presented in the book are meant to be tutorial and are intended for aircraft with very limited processors. Estimating the full state using all available sensors is a much better approach. There are two methods for constructing the Kalman filter: direct state estimation, and indirect state estimation. The following pdf and Simulink model describes and implements both filters for the full longitudinal state. You will note from the simulation, that this method works much better than that described in the book.

  • Dropping an Object on a Target

  • Dubins Airplane Paths The Dubins paths discussed in Chapter 11 assume that the MAV is flying at a constant altitude. The associated model is typically called a Dubins car model. The Dubins car can be extended to a Dubins airplane model that includes altitude. An explanation of the associated Dubins airplane paths is discussed in:

    • Mark Owen, Randal W. Beard, Timothy W. McLain, “Implementing Dubins Airplane Paths on Fixed-wing UAVs,” Handbook of Unmanned Aerial Vehicles, ed. Kimon P. Valavanis, George J. Vachtsevanos, Springer Verlag, Section XII, Chapter 68, p. 1677-1702, 2014. Preprint.
    • Simulink files implementing Dubins airplane paths. Run the Simulink file mavsim_dubins.slx.
  • Feedforward term for Orbit Following Orbit following can be improved by adding a feedforward term on the roll angle. The description in the wind and no wind case are given here:

  • Zagi Coefficients The aerodynamic coefficients for the Zagi aircraft as given in the book, come from this paper.

  • Total Energy Control An alternative to the longitudinal autopilot described in the textbook is the "Total Energy Control System" described here.

    A nonlinear version of the total energy control system is described in the following paper.

    Matthew Argyle, Randal W. Beard, “Nonlinear Total Energy Control for the Longitudinal Dynamics of an Aircraft,” Proceedings of the American Control Conference, Boston, MA, 2016. PDF

    For more detail, see Chapter 6 of

    Matthew E. Argyle, “Modeling and Control of a Tailsitter with a Ducted Fan,” PhD Dissertation, Brigham Young University, 2016. PDF

    • The advantage of the total energy control method is that it is independent of the aerodynamic model.
  • Accelerometers and Attitude Control For Multi-rotors Accelerometers are often used to estimate the roll and pitch angles of multi-rotor vehicles. It turns out that since the aerodynamics of multi-rotors are quite different than fixed wing vehicles, the method described in the book does not work for multi-rotor vehicles. An detailed explanation of what data can be extracted from accelerometers on multi-rotor vehicles is given in * Robert Leishman, John Macdonald, Randal W. Beard, Timothy W. McLain, “Quadrotors and Accelerometers: State Estimation with an Improved Dynamic Model,” IEEE Control Systems Magazine, vol. 34, no. 1, p. 28-41, February, 2014. Preprint.

  • Kalman Filter For a nice introduction to Kalman filtering, view the section chapter of the Udacity course on Artificial Intelligence by Sebastian Thurn.

  • Weather and Wind Data Web site for hour by hour wind and weather information

  • Student Projects (sample)

    Nathan Madsen, 2014 Implemented a model of landing gear and runway interactions, together with an auto landing function.

    Andrew Hendrick, 2014 Computed the aerodynamic coefficients of a Zagi and Pelican using AVL

    Michael Boren, 2014 Implementation of the RRT* algorithm. Project

    Michael Eyler, 2019 LQR control

    Brandon Forsgren, 2019 ROS/C++ implementation

    Derek Knowles, 2019 Path planning Voronoi graphs

    Easton Potokar, 2022 Application to Underwater Vehicles

    Mason Peterson, 2022 Quadplane Trajectory Tracker

    Dan Richards, 2022 Unit Tests on several chapters

    John Morrell, 2022 Eigenstructure Assignment