Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

28/1/2020 Arduino Quadcopter 2: State Estimation with Kalman Filtering of GPS Data – Alex Hagiopol

Alex Hagiopol

Arduino Quadcopter 2: State Estimation with


Kalman Filtering of GPS Data

(h ps://alexhagiopol.files.wordpress.com/2014/11/kalman-filter-image.png)

Along with 3 other robotics students at Georgia Tech, I made a further development on my work on
the Arduino Quadcopter GPS functions that I first introduced in this post.
(h ps://alexhagiopol.com/2014/08/27/arduino-quadcopter-2-gps-integration/) As shown in the
introductory post, GPS data from the DJI Naza GPS receiver can be sent to Arduino via serial
https://alexhagiopol.com/2014/11/06/arduino-quadcopter-2-state-estimation-with-kalman-filtering-of-gps-data/ 1/4
28/1/2020 Arduino Quadcopter 2: State Estimation with Kalman Filtering of GPS Data – Alex Hagiopol

communications. The next step is to program Arduino to produce a location estimate based on those
GPS data. Although raw (latitude,longitude) data could be used as a location estimate, problems arise
when the quadrotor enters areas where the GPS signal strength is lower and (latitude, longitude)
updates are received at a much lower frequency. In the outdoor tests we performed in Atlanta, the rate
of GPS data retrieval varied from as high 2 Hz to as low as < 0.1 Hz. This means that if the quadrotor
depends only on raw GPS data, its location estimate could be 10 seconds old or more. In addition to
issues with data retrieval frequency, raw GPS data are also noisy, thus increasing the unreliability of
such an unfiltered location estimation scheme.

The problems discussed above are what motivate the implementation of a Kalman Filter on board the
Arduino control hardware. The Kalman Filter is a popular mathematical technique in robotics because
it produces state estimates based on noisy sensor data. This great tutorial
(h p://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf) explains the Kalman Filter. You can find
our online and offline Arduino implementations of the Kalman Filter on my github page.
(h ps://github.com/alexhagiopol/public/tree/master/Kalman%20Filter%20for%20Quadrotor%20GPS) The
most useful implementation is Arduino_Kalman_Online_With_Interpolation.ino because it updates
the quadrotor’s state estimate in spite of a lack of GPS data from the receiver hardware.

Below is a poster we put together to succinctly describe the work. The figures show the valuable
benefit of having state estimates even when GPS data are not available. Black marks show GPS data
while pink marks show Kalman Filtered state estimates made by Arduino in real time. The beneficial
smoothing effect and the 1.75m location estimation accuracy are also evident.

https://alexhagiopol.com/2014/11/06/arduino-quadcopter-2-state-estimation-with-kalman-filtering-of-gps-data/ 2/4
28/1/2020 Arduino Quadcopter 2: State Estimation with Kalman Filtering of GPS Data – Alex Hagiopol

(h ps://alexhagiopol.files.wordpress.com/2014/11/kalman-filter-poster.png)

https://alexhagiopol.com/2014/11/06/arduino-quadcopter-2-state-estimation-with-kalman-filtering-of-gps-data/ 3/4
28/1/2020 Arduino Quadcopter 2: State Estimation with Kalman Filtering of GPS Data – Alex Hagiopol

November 6, 2014November 6, 2014 · alexhagiopol · Tagged arduino, DJI Naza, Filter, GPS, GPS data,
Kalman, Kalman Filter, quadcopter, robotics · Leave a comment

Blog at WordPress.com.

https://alexhagiopol.com/2014/11/06/arduino-quadcopter-2-state-estimation-with-kalman-filtering-of-gps-data/ 4/4

You might also like