# 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. *

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

UAVBook Supplement on Kalman Filtering. (updated 3/15/2017)

## Dropping an Object on a Target

UAVBook Supplement on Object Dropping. (updated 10/25/2017)

## Propeller Model

An alternative propeller model to that described in the book is described in

## 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:

## Python Simulator

- A simulator that implements the architecture in the book using Python
- PyUAVSim at https://github.com/savadha2/PyUAVSim/
- Developed by Sharath Avadhanam.
- Currently under development.

## Zagi Coefficients

zagi_coefficents.pdf 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: tecs_autopilot.pdf.

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: https://www.udacity.com/course/viewer#!/c-cs373/l-48723604

## Weather and Wind Data

This is a nice web site for hour by hour wind and weather information:

http://www.usairnet.com/cgi-bin/launch/code.cgi?Submit=Go&sta=KPVU&state=UT

## Student Projects (sample)

2014_nathan_madsen_auto_landing.zip - Nathan Madsen implemented a model of landing gear and runway interactions, together with an auto landing function.

andrew_hendricks_avl_aero_coefficients.zip - Andrew Hendrick computed the aerodynamic coefficients of a Zagi and a Pelican using AVL. The project files and the coefficients are contained in this zipped file. andrew_hendricks_avl_aero_coefficients.pdf

2014_rrtstar_michael_boren.zip - Michael Boren's implementation of the RRT* algorithm.

2019. Michael Eyler: LQR control: https://github.com/eyler94/EE674LQR.git

2019. Brandon Forsgren. ROS/C++ implementation: https://github.com/b4sgren/mav_simulator

2019. Derek Knowles. Path planning Voronoi graphs: https://github.com/betaBison/EC-EN-674-Flight-Dynamics-Controls/tree/master/project