  This document describes standard approaches for filtering and estimation for
quadrotors, created for the Udacity Flying Cars course. We assume previous
knowledge of probability and some knowledge of linear algebra. We do not assume
previous knowledge of Kalman filters or Bayes filters. This document derives an
EKF for various models of drones in 1D, 2D, and 3D. We use the EKF and notation
as defined in Thrun et al. [13]. We also give pseudocode for the Bayes filter,
the EKF, and the Unscented Kalman filter [14]. The motivation behind this
document is the lack of a step-by-step EKF tutorial that provides the
derivations for a quadrotor helicopter. The goal of estimation is to infer the
drone's state (pose, velocity, acceleration, and biases) from its sensor values
and control inputs. This problem is challenging because sensors are noisy.
Additionally, because of weight and cost issues, many drones have limited
on-board computation so we want to estimate these values as quickly as
possible. The standard method for performing this method is the Extended Kalman
filter, a nonlinear extension of the Kalman filter which linearizes a nonlinear
transition and measurement model around the current state. However the
Unscented Kalman filter is better in almost every respect: simpler to
implement, more accurate to estimate, and comparable runtimes.
